[FFmpeg-devel] Channel layouts for aac encoding/decoding and vorbis decoding

Nicolas George nicolas.george
Mon Aug 10 22:14:11 CEST 2009

Le tridi 23 thermidor, an CCXVII, Benjamin Larsson a ?crit?:
> The FFmpeg codecs should use that layout for output and input. Though
> there are still some codecs that do not adhere to that.

Is it really the best option? Channels reordering is a non-trivial
operation, it may be costly.

I admit I did not run any benchmark, but if, for example, I use libfaad
through lavc and play the resulting file to the sound card, the idea that
lavc is converting the FC-FL-FR-RL-RR-LF order from libfaad to its internal
FL-FR-FC-LF-RL-RR while I have to convert it once again to FL-FR-RL-RR-FC-LF
as expected by ALSA, is somewhat disturbing. It would be best if the
reordering could be done only once.

Someone mentioned the similarity between channels ordering and colorspace,
and I agree that both notions are very similar.

But the message said that all video codecs decode to YUV420: that is not
true. Most video codecs decode to YUV420 because that is the pixel format
they use internally, but there are codecs that work with other pixel

(For example I just did: "ffmpeg -i colin.fli 't%05d.png'" to convert a FLI
file from an old DOS game into a sequence of PNG files: all the work was
done in PAL8, no conversion to YUV420 was done. If I force a conversion to
YUV420, a slight alteration of the colors is visible.)

As far as I understand the code in ffmpeg, if the pixel format from the
decoder is not accepted by the encoder, ffmpeg automatically inserts a
swscale converter in the process.

I think a similar solution for video codecs would be both the most practical
and the most efficient.


  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090810/5fadcf94/attachment.pgp>

More information about the ffmpeg-devel mailing list