Hi Paul On Wed, Dec 5, 2018 at 9:52 AM Paul B Mahol <one...@gmail.com> wrote:
> Signed-off-by: Paul B Mahol <one...@gmail.com> > --- > libavformat/mxfenc.c | 49 ++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 49 insertions(+) > > diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c > index 3549b4137d..e481b19ff3 100644 > --- a/libavformat/mxfenc.c > +++ b/libavformat/mxfenc.c > @@ -146,6 +146,7 @@ enum ULIndex { > INDEX_JPEG2000, > INDEX_H264, > INDEX_S436M, > + INDEX_PRORES, > }; > > static const struct { > @@ -159,6 +160,7 @@ static const struct { > { AV_CODEC_ID_DNXHD, INDEX_DNXHD }, > { AV_CODEC_ID_JPEG2000, INDEX_JPEG2000 }, > { AV_CODEC_ID_H264, INDEX_H264 }, > + { AV_CODEC_ID_PRORES, INDEX_PRORES }, > { AV_CODEC_ID_NONE } > }; > > @@ -314,6 +316,11 @@ static const MXFContainerEssenceEntry > mxf_essence_container_uls[] = { > { > 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x17,0x01,0x02,0x00 > }, > { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0a,0x04,0x01,0x02,0x02,0x01,0x01,0x5C,0x00 > }, > mxf_write_s436m_anc_desc }, > + // ProRes > + { { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0d,0x0d,0x01,0x03,0x01,0x02,0x1c,0x01,0x00 > }, > + { > 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x17,0x00 > }, > + { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0d,0x04,0x01,0x02,0x02,0x03,0x06,0x03,0x00 > }, > + mxf_write_cdci_desc }, > { { > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 > }, > { > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 > }, > { > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 > }, > @@ -1945,6 +1952,43 @@ static int mxf_write_partition(AVFormatContext *s, > int bodysid, > return 0; > } > > +static const struct { > + int profile; > + UID codec_ul; > +} mxf_prores_codec_uls[] = { > + { FF_PROFILE_PRORES_PROXY, { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0d,0x04,0x01,0x02,0x02,0x03,0x06,0x01,0x00 > } }, > + { FF_PROFILE_PRORES_LT, { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0d,0x04,0x01,0x02,0x02,0x03,0x06,0x02,0x00 > } }, > + { FF_PROFILE_PRORES_STANDARD, { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0d,0x04,0x01,0x02,0x02,0x03,0x06,0x03,0x00 > } }, > + { FF_PROFILE_PRORES_HQ, { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0d,0x04,0x01,0x02,0x02,0x03,0x06,0x04,0x00 > } }, > + { FF_PROFILE_PRORES_4444, { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0d,0x04,0x01,0x02,0x02,0x03,0x06,0x05,0x00 > } }, > + { FF_PROFILE_PRORES_XQ, { > 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0d,0x04,0x01,0x02,0x02,0x03,0x06,0x06,0x00 > } }, > +}; > + > +static int mxf_parse_prores_frame(AVFormatContext *s, AVStream *st, > AVPacket *pkt) > +{ > + MXFContext *mxf = s->priv_data; > + MXFStreamContext *sc = st->priv_data; > + int i, profile; > + > + if (mxf->header_written) > + return 1; > + > + sc->codec_ul = NULL; > + profile = st->codecpar->profile; > We should fetch the profile from the bitstream. -- Baptiste Coudurier _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel