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

Marth64 marth64 at proxyid.net
Wed Mar 6 17:36:32 EET 2024


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