[Ffmpeg-devel] integrating AVS decoding into MPlayer

Rich Felker dalias
Fri Jul 14 18:07:43 CEST 2006

On Fri, Jul 14, 2006 at 09:05:43AM +0100, M?ns Rullg?rd wrote:
> Reimar Doeffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de> writes:
> > Hello,
> > On Thu, Jul 13, 2006 at 10:11:30PM +0100, M??ns Rullg??rd wrote:
> >> "Stefan Gehrer" <stefan.gehrer at gmx.de> writes:
> >> > Von: "M??ns Rullg??rd" 
> >> >> I don't see how this fourcc gets used.  The files are MPEG PS, and the
> >> >> lavf PS demuxer detects AVS video without consulting that table.
> >
> > And what about remuxing into e.g. avi?
> There is no avi fourcc defined for avs, so it can't be done.

Then define one. This is what we've always done in the past.

> >> > MPlayer's demux_lavf.c calls codec_get_bmp_tag() to translate lavf's
> >> > codec_id into a codec_tag, and it seems that it does things after that
> >> > based on codec_tag only, but I might be wrong.
> >> 
> >> That's just plain wrong.  Someone needs to fix mplayer.
> >
> > What is so wrong about that?
> You can't play files using codecs without a defined avi fourcc.

They need to have one defined anyway. It's required for storage in
most containers including NUT. :)

> > By switching to codec id instead of fourcc? What would be the
> > advantage of that?
> A player that can handle more than one container format needs an
> internal codec identification system, be it based on integers,
> strings, or something else.  Each demuxer has to map whatever id
> system its container uses to the internal id.  How does mplayer handle
> mpeg ts codec ids anyway?  Or matroska?  Or ogg?  None of those use a
> fourcc at all, so they can't possibly be looked up in the avi table.

The internal system is fourcc. Identifiers from other containers are
mapped to and from fourcc, sometimes using internal 32bit identifiers
from other containers (like mpeg) as a fourcc. Whether this latter
practice is a good idea, I dunno.

> There is *nothing* fundamental about those goddamn fourccs.  As soon
> as you realize that, your life will become so much easier.

It's not fundamental, but universal. Out of the thousand or so codecs
out there, 99% have a fourcc and about 1% have a matroska identifier.
This issue was discussed in the NUT development list and that's why we
adopted fourcc.


More information about the ffmpeg-devel mailing list