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

Steve Lhomme robux4 at gmail.com
Thu Apr 6 17:44:19 EEST 2017

On Thu, Apr 6, 2017 at 1:08 PM, Hendrik Leppkes <h.leppkes at gmail.com> wrote:
> On Thu, Apr 6, 2017 at 11:35 AM, Steve Lhomme <robux4 at gmail.com> wrote:
>> On Thu, Apr 6, 2017 at 11:08 AM, 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.
>> I understand, that's why I prefer asking before trying things out.
>>> 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.
>> This is already the case. I copy the relevant metadata of the AVFrame
>> in the picture we are going to display. But the underlying stream
>> format has no idea that it has HDR metadata. We can't tell the user
>> what kind of metadata the stream has (think of ffprobe-like info).
> So you just want this for probing, not even for actual playback?
> The users will get over it then, I'm sure. Otherwise you could just
> decode one frame and retrieve the metadata - thats the best way to
> retrieve full accurate information anyway.

In this particular case, for now, yes. But I am asking a more general
question on how metadata, that are necessary for playback may be known
when configuring the playback pipeline, can be provided early.

I guess for now I can find a solution for my special use case.

> - Hendrik
> _______________________________________________
> 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