[FFmpeg-devel] [PATCH] extends Generic/CDDI/MPEG2 essence descriptors
Michael Niedermayer
michael at niedermayer.cc
Wed Jun 1 17:42:59 CEST 2016
On Thu, Apr 21, 2016 at 05:03:01PM +0300, Maksym Veremeyenko wrote:
> Hi,
>
> attached patches extends Generic/CDDI/MPEG2 essence descriptors with
> additional items. These items required by AMWA AS-10 MXF
> specification.
>
> --
> Maksym Veremeyenko
>
> mxfenc.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 46 insertions(+), 1 deletion(-)
> ac195a1f686025452a8dcb009ed62ec9a2b69db8 0002-Extend-mpeg2-video-descriptor-with-additional-items.patch
> From 937b1e3f14d641b83a40c9dc5e64e227121dddfa Mon Sep 17 00:00:00 2001
> From: Maksym Veremeyenko <verem at m1.tv>
> Date: Thu, 21 Apr 2016 01:18:39 +0300
> Subject: [PATCH 2/2] Extend mpeg2 video descriptor with additional items
>
> ---
> libavformat/mxfenc.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
> 1 files changed, 46 insertions(+), 1 deletions(-)
>
> diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> index ec42cf5..c658624 100644
> --- a/libavformat/mxfenc.c
> +++ b/libavformat/mxfenc.c
> @@ -50,6 +50,7 @@
> #include "libavcodec/dnxhddata.h"
> #include "libavcodec/h264.h"
> #include "libavcodec/internal.h"
> +#include "libavcodec/mpegvideo.h"
> #include "audiointerleave.h"
> #include "avformat.h"
> #include "avio_internal.h"
> @@ -458,6 +459,14 @@ static const MXFLocalTagPair mxf_local_tag_batch[] = {
> // MPEG video Descriptor
> { 0x8000, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x0B,0x00,0x00}}, /* BitRate */
> { 0x8007, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x0A,0x00,0x00}}, /* ProfileAndLevel */
> + { 0x8001, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x02,0x00,0x00}}, /* Single Sequence Flag */
> + { 0x8002, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x03,0x00,0x00}}, /* Constant B Picture Flag */
> + { 0x8003, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x04,0x00,0x00}}, /* Coded Content Scanning Kind */
> + { 0x8004, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x05,0x00,0x00}}, /* Low Delay Indicator */
> + { 0x8005, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x06,0x00,0x00}}, /* Closed GOP Indicator */
> + { 0x8006, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x07,0x00,0x00}}, /* Identical GOP */
> + { 0x8008, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x08,0x00,0x00}}, /* Maximum GOP Size */
> + { 0x8009, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x09,0x00,0x00}}, /* Maximum B Picture Count */
> // Wave Audio Essence Descriptor
> { 0x3D09, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x02,0x03,0x03,0x05,0x00,0x00,0x00}}, /* Average Bytes Per Second */
> { 0x3D0A, {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x02,0x03,0x02,0x01,0x00,0x00,0x00}}, /* Block Align */
> @@ -1203,7 +1212,10 @@ static void mxf_write_mpegvideo_desc(AVFormatContext *s, AVStream *st)
> int profile_and_level = (st->codecpar->profile<<4) | st->codecpar->level;
>
> if (st->codecpar->codec_id != AV_CODEC_ID_H264) {
> - mxf_write_cdci_common(s, st, mxf_mpegvideo_descriptor_key, 8+5);
> + AVCodecContext *avctx = st->codec;
> + MpegEncContext *mpeg = (avctx)?avctx->priv_data:NULL;
this is not ok
it breaks API and ABI, MpegEncContext can change without major
version bumps, its not even guranteed the
priv_data is a MpegEncContext also the data can be stream copied
you can only take information from AVStream, AVCodecParameters,
AVCodecContext side data and the AVPacket data and extradata
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Everything should be made as simple as possible, but not simpler.
-- Albert Einstein
-------------- 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/20160601/071612ee/attachment.sig>
More information about the ffmpeg-devel
mailing list