[FFmpeg-devel] [PATCH v3 19/25] avcodec/avcodec, avformat/movenc: support embedding channel layout to stream side data

Michael Niedermayer 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
> solution.
> 
> 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.
-- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20161217/15c22d61/attachment.sig>


More information about the ffmpeg-devel mailing list