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

Steve Lhomme robux4 at gmail.com
Thu Apr 6 12:48:54 EEST 2017


On Thu, Apr 6, 2017 at 11:38 AM, wm4 <nfxjfg at googlemail.com> wrote:
> 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.

Yes, but for example if you're going to have stereo pictures you may
need to setup your allocated textures a certain way.

Also AVColorPrimaries are found in the mastering metadata are found in
AVCodecContext, should the metadata write there instead ?

> You should configure your vout based on the _decoded_ frame, not
> get_format.
> _______________________________________________
> libav-devel mailing list
> libav-devel at libav.org
> https://lists.libav.org/mailman/listinfo/libav-devel


More information about the ffmpeg-devel mailing list