[FFmpeg-devel] [libav-devel] ff_thread_get_format and metadata

wm4 nfxjfg at googlemail.com
Thu Apr 6 12:38:16 EEST 2017


On Thu, 6 Apr 2017 11:08:24 +0200
Hendrik Leppkes <h.leppkes at gmail.com> wrote:

> On Thu, Apr 6, 2017 at 11:01 AM, Steve Lhomme <robux4 at gmail.com> wrote:
> > Hi,
> >
> > As I am progressing in proper HDR10 support in VLC, I am facing an
> > issue. The mastering (and lighting pending patch) metadata are set on
> > the AVFrame but not available to the ff_get_format() receiver.
> >
> > That means when we configure our vout and decoder we don't know if
> > it's going to have HDR metadata or not.
> >
> > Could we move the mastering (and lighting) metadata on the
> > AVCodecContext ? Or provide the metadata on the ff_get_format() call ?
> >
> > I CC'ed libav as they have opinions on possible API changes, even
> > though there is no mastering metadata support in there yet.  
> 
> 
> I'm against polluting AVCodecContext with more random fields, and
> get_format is fixed API/ABI, we can't change that very easily.
> 
> In general, this is per-frame metadata, which can appear or change
> with any given frame, without get_format being invoked again. You
> should probably just be able to have your output react to that once it
> receives it.

+1

Also, get_format is not for such things - it's to allocate frames
_only_, and thus needs only size and pixfmt.

You should configure your vout based on the _decoded_ frame, not
get_format.


More information about the ffmpeg-devel mailing list