[FFmpeg-devel] [PATCH 1/3] avformat/dvdvideodec: add CLUT utilities and subtitle palette support

Marth64 marth64 at proxyid.net
Wed Mar 6 17:43:26 EET 2024


It is true that this is necessary when muxing to Matroska, but it is also
the case for MOV - the MOV muxer expects RGB prior to converting to YUV
again. So this would be needed for MOV also, despite the awkward conversion
circle. I should update the document to reflect this.


On Wed, Mar 6, 2024 at 09:36 Marth64 <marth64 at proxyid.net> wrote:

> Good morning,
>
> DVD subtitle palettes, which are natively YUV, are currently carried as
> a hex string in their respective subtitle streams and have
> no concept of colorspace tagging (even predating dvd demuxer). The
> convention is to convert
> them to RGB prior to storage. Common players will only render
> the palettes properly if they are stored as RGB. Even ffmpeg itself
> expects this, and already does -in libavformat- the YUV-RGB conversions,
> specifically in mov.c and movenc.c.
>
> The point of this patch is to provide a consolidation of the code
> that deals with creating the extradata as well as the RGB conversion.
> That can then (1) enable usable palette support for DVD demuxer if it is
> merged
> and (2) start the process of consolidating the related conversions in
> MOV muxer/demuxer and eventually find a way to properly tag
> the colorspace.
>
> Thank you!
>
> On Wed, Mar 6, 2024 at 09:18 Timo Rothenpieler <timo at rothenpieler.org>
> wrote:
>
>> On 06/03/2024 16:09, Stefano Sabatini wrote:
>> > On date Wednesday 2024-03-06 01:19:11 -0600, Marth64 wrote:
>> >> Since last iteration: removes unused variable in dvdclut.c
>> >>
>> >> Signed-off-by: Marth64 <marth64 at proxyid.net>
>> >> ---
>> >>   doc/demuxers.texi         |  5 +++
>> >>   libavformat/Makefile      |  2 +-
>> >>   libavformat/dvdclut.c     | 75
>> +++++++++++++++++++++++++++++++++++++++
>> >>   libavformat/dvdclut.h     | 37 +++++++++++++++++++
>> >>   libavformat/dvdvideodec.c | 15 ++++++++
>> >>   5 files changed, 133 insertions(+), 1 deletion(-)
>> >>   create mode 100644 libavformat/dvdclut.c
>> >>   create mode 100644 libavformat/dvdclut.h
>> >>
>> >> diff --git a/doc/demuxers.texi b/doc/demuxers.texi
>> >> index f4bac8f3b3..1a17c6db16 100644
>> >> --- a/doc/demuxers.texi
>> >> +++ b/doc/demuxers.texi
>> >> @@ -394,6 +394,11 @@ often with junk data intended for controlling a
>> real DVD player's
>> >>   buffering speed and with no other material data value.
>> >>   Default is 1, true.
>> >>
>> >
>> >> + at item clut_rgb @var{bool}
>> >> +Output subtitle palettes (CLUTs) as RGB, required for Matroska.
>> >> +Disable to output the palette in its original YUV colorspace.
>> >> +Default is 1, true.
>> >
>> > Can you expand about this? When is matroska used in a DVD?
>>
>> Sounds to me like muxing _to_ matroska needs RGB palettes, but DVDs
>> bring YUV ones.
>>
>> > Can we make the setting automatic in case matroska is detected?
>> >
>> > [...]
>> >
>> > LGTM otherwise.
>> > _______________________________________________
>> > ffmpeg-devel mailing list
>> > ffmpeg-devel at ffmpeg.org
>> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> >
>> > To unsubscribe, visit link above, or email
>> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>>
>


More information about the ffmpeg-devel mailing list