[FFmpeg-devel] [PATCH] avformat/mxfdec: Detect jpeg2000 through codec_ul too
Paul B Mahol
onemda at gmail.com
Fri Jun 12 19:17:46 CEST 2015
On 6/12/15, Michael Niedermayer <michaelni at gmx.at> wrote:
> Fixes Ticket2345
>
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
> libavformat/mxfdec.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
> index 78e2393..7389555 100644
> --- a/libavformat/mxfdec.c
> +++ b/libavformat/mxfdec.c
> @@ -166,6 +166,7 @@ typedef struct MXFDescriptor {
> enum MXFMetadataSetType type;
> UID essence_container_ul;
> UID essence_codec_ul;
> + UID codec_ul;
> AVRational sample_rate;
> AVRational aspect_ratio;
> int width;
> @@ -974,6 +975,9 @@ static int mxf_read_generic_descriptor(void *arg,
> AVIOContext *pb, int tag, int
> case 0x3004:
> avio_read(pb, descriptor->essence_container_ul, 16);
> break;
> + case 0x3005:
> + avio_read(pb, descriptor->codec_ul, 16);
> + break;
> case 0x3006:
> descriptor->linked_track_id = avio_rb32(pb);
> break;
> @@ -1151,6 +1155,11 @@ static const MXFCodecUL
> mxf_data_essence_container_uls[] = {
> { {
> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
> }, 0, AV_CODEC_ID_NONE },
> };
>
> +static const MXFCodecUL mxf_codec_uls[] = {
> + { {
> 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x09,0x04,0x01,0x02,0x02,0x03,0x01,0x01,0x00
> }, 14, AV_CODEC_ID_JPEG2000 },
> + { {
> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
> }, 0, AV_CODEC_ID_NONE },
> +};
> +
> static const char* const mxf_data_essence_descriptor[] = {
> "vbi_vanc_smpte_436M",
> };
> @@ -1950,6 +1959,11 @@ static int mxf_parse_structural_metadata(MXFContext
> *mxf)
> /* TODO: drop PictureEssenceCoding and SoundEssenceCompression,
> only check EssenceContainer */
> codec_ul = mxf_get_codec_ul(ff_mxf_codec_uls,
> &descriptor->essence_codec_ul);
> st->codec->codec_id = (enum AVCodecID)codec_ul->id;
> + if (st->codec->codec_id == AV_CODEC_ID_NONE) {
> + codec_ul = mxf_get_codec_ul(mxf_codec_uls,
> &descriptor->codec_ul);
> + st->codec->codec_id = (enum AVCodecID)codec_ul->id;
> + }
> +
> av_log(mxf->fc, AV_LOG_VERBOSE, "%s: Universal Label: ",
> avcodec_get_name(st->codec->codec_id));
> for (k = 0; k < 16; k++) {
> --
> 1.7.9.5
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
lgtm
More information about the ffmpeg-devel
mailing list