[FFmpeg-devel] [PATCH v3 19/25] avcodec/avcodec, avformat/movenc: support embedding channel layout to stream side data
michael at niedermayer.cc
Sat Dec 17 20:29:41 EET 2016
On Mon, Sep 19, 2016 at 04:25:42PM +0300, Erkki Seppälä wrote:
> Added support for passing complex channel layout configuration as side
> packet data (AV_PKT_DATA_AUDIO_TRACK_CHANNEL_LAYOUT) to ISO media files
> as specified by ISO/IEC 14496-12. AVAudioTrackChannelLayout has the
> fields to setting both predefined audio layouts, completely configuring
> the azimuth and elevation of each speaker as well as describing the
> number of audio objects in the scene.
> This information isn't integrated into the existing channel layout
> system though, which is much more restricted compared to what the
> standard permits. However, the side packet data is structured so that it
> does not require too much ISO base media file format knowledge in client
> code. In addition, it should be possible to extend the enumeration and
> the record to allow for using the same side data for a more native
> The names of the channels and layouts are available in
> channel_layout_isoiec23001_8.h with slightly obtuse names such as
> AV_SPEAKER_POSITION_ISOIEC230081_8_L and
> AV_CH_LAYOUT_ISOIEC230081_8_1_0_0 to encourage path forward to a more
> native solution for FFmpeg.
> This channel layout information ends up to a chnl box in the written
> file in an isom track.
> Signed-off-by: Erkki Seppälä <erkki.seppala.ext at nokia.com>
> Signed-off-by: OZOPlayer <OZOPL at nokia.com>
> libavcodec/avcodec.h | 71 +++++++++++++++++++++++
> libavformat/movenc.c | 87 +++++++++++++++++++++++++++-
> libavutil/channel_layout_isoiec23001_8.h | 97 ++++++++++++++++++++++++++++++++
> 3 files changed, 254 insertions(+), 1 deletion(-)
> create mode 100644 libavutil/channel_layout_isoiec23001_8.h
(non cosmetic) patches should not span across libs
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 0079d22..7b52975 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -39,6 +39,7 @@
> #include "libavutil/log.h"
> #include "libavutil/pixfmt.h"
> #include "libavutil/rational.h"
> +#include "libavutil/channel_layout_isoiec23001_8.h"
including a private header from a public one is not possible
(it is private in this patch even if subsequently that changes)
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The worst form of inequality is to try to make unequal things equal.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 181 bytes
Desc: Digital signature
More information about the ffmpeg-devel