Hello!

On 08/31/2016 05:00 PM, Carl Eugen Hoyos wrote:
Are you using this feature already (internally) or did you just feel like it is
missing? (Sorry, it is not meant offending.) I wonder if all this complexity
really has a real-world use-case...
We may or may not be using this functionality internally. Maybe the signed off-tag gives a hint where :).
How is "chnl" related to "chan"? I thought I remember that "chan" already
offers possibilities for custom channel layouts.
Can both be used in the same file?
To me it seems these two tags are probably historically connected, chan being a precursor to chnl, though there seem to be some big differences in the range of options, if not in practical functionality. For example, the predefined layouts are completely different - mov_chan.c mentions 85 predefined channel layouts whereas channel_layouts_isoiec23001_8.h has 20.

The conversions in mov_chan.c seem a bit lossy, though, for example:

{ MOV_CH_LAYOUT_MPEG_4_0_A, AV_CH_LAYOUT_4POINT0 }, // L, R, C, Cs { MOV_CH_LAYOUT_MPEG_4_0_B, AV_CH_LAYOUT_4POINT0 }, // C, L, R, Cs { MOV_CH_LAYOUT_AC3_3_1, AV_CH_LAYOUT_4POINT0 }, // L, C, R, Cs

Is this not losing the channel order? It doesn't seem like it's compensated anywhere.

I doubt the two tags can be used in the same track in a way that it makes sense. Perhaps more so in the same file, with alternative audio tracks where audio tracks originate from different sources?

It seems the mov_chan.c approach would be applicable to these layouts as well, except the mapping between existing FFmpeg layouts might be error-prone and one wouldn't want to have duplicate layouts meaning the same thing. Also mov_chan.c seems to have code for indicating speaker positions (by their coordinates) in ff_mov_read_chan, but it just throws them away (it doesn't even try to write anything complicated in mov_write_chan_tag).

The trickiest parts in my opinion would be:

1) The same channels can be in different order in the same file in different channel layouts. Doesn't FFmpeg throw away this permutation information? Does some higher level care about that?

2) There is no API or internals for dealing with speakers at arbitrary azimuth/elevation.

I'm of course just selling this patch, but it does seem less risky to have a side-data-based implementation in first ;-). (Perhaps even by adding a suffix _EXPERIMENTAL to the side data, but it seems FFmpeg hasn't done that so far.)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to