[FFmpeg-devel] [PATCH 3/3] avformat/electronicarts: add option to return alpha channel in the main video stream in VP6A codec

Peter Ross pross at xvid.org
Thu Nov 17 09:32:03 EET 2022


On Mon, Nov 14, 2022 at 11:05:44PM +0100, Marton Balint wrote:
> 
> 
> On Mon, 14 Nov 2022, Anton Khirnov wrote:
> 
> > Quoting Marton Balint (2022-11-13 19:44:41)
> > > Signed-off-by: Marton Balint <cus at passwd.hu>
> > > ---
> > >  doc/demuxers.texi            | 18 ++++++++++++++++
> > >  libavformat/electronicarts.c | 42 +++++++++++++++++++++++++++++++-----
> > >  libavformat/version.h        |  2 +-
> > >  3 files changed, 56 insertions(+), 6 deletions(-)
> > > 
> > > diff --git a/doc/demuxers.texi b/doc/demuxers.texi
> > > index 2b6dd86c2a..f07f3f5318 100644
> > > --- a/doc/demuxers.texi
> > > +++ b/doc/demuxers.texi
> > > @@ -285,6 +285,24 @@ This demuxer accepts the following option:
> > > 
> > >  @end table
> > > 
> > > + at section ea
> > > +
> > > +Electronic Arts Multimedia format demuxer.
> > > +
> > > +This format is used by various Electronic Arts games.
> > > +
> > > + at subsection Options
> > > +
> > > + at table @option
> > > +
> > > + at item merge_alpha @var{bool}
> > > +
> > > +Normally the VP6 alpha channel (if exists) is returned as a secondary video
> > > +stream,
> > 
> > Why? And why keep it as the default?
> 
> VP6 alpha in EA format is a second VP6 encoded video stream where only the Y
> component is used and is interpreted as the alpha channel of the first VP6
> stream. The alpha VP6 stream is muxed separately from the main VP6 stream,
> has its own stream headers and packet headers. In theory the two streams
> might not even have the same resolution (although most likely that is not
> something that is seen or supported in the wild), but the format is capable
> of doing it.
> 
> Merged VP6 alpha (also known as the VP6A codec) means that a packet of the
> video stream contains the corresponding packet of both VP6 substreams like
> this:
> {OffsetOfAlpha, DataPacket, AlphaDataPacet}
> So data and alpha data of a frame is merged to a single packet, this is how
> VP6 video with alpha is muxed in FLV and SWF.
> 
> So the first approach is more like how the demuxer sees data in the EA
> format, unfortunately it is different to what the FLV or SWF format expects,
> so - having no better place for it in the framework - I decided to do an
> optional format conversion in the EA demuxer.
> 
> I did not want to change the default, but certainly doable if people prefer
> it.

looks good. i have no preference.

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20221117/86d42375/attachment.sig>


More information about the ffmpeg-devel mailing list