Mercurial > libavformat.hg
changeset 4404:7cf3b77ad6ff libavformat
reuse MXFCodecUL for data def and simplify
author | bcoudurier |
---|---|
date | Sun, 08 Feb 2009 05:12:30 +0000 |
parents | 39f6b190c772 |
children | 61319d92bc36 |
files | mxf.c mxf.h mxfdec.c mxfenc.c |
diffstat | 4 files changed, 14 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/mxf.c Sun Feb 08 04:42:38 2009 +0000 +++ b/mxf.c Sun Feb 08 05:12:30 2009 +0000 @@ -24,11 +24,10 @@ /** * SMPTE RP224 http://www.smpte-ra.org/mdd/index.html */ -const MXFDataDefinitionUL ff_mxf_data_definition_uls[] = { - { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x01,0x03,0x02,0x02,0x01,0x00,0x00,0x00 }, CODEC_TYPE_VIDEO }, - { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x01,0x03,0x02,0x02,0x02,0x00,0x00,0x00 }, CODEC_TYPE_AUDIO }, - { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x05,0x01,0x03,0x02,0x02,0x02,0x02,0x00,0x00 }, CODEC_TYPE_AUDIO }, - { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, CODEC_TYPE_DATA }, +const MXFCodecUL ff_mxf_data_definition_uls[] = { + { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x01,0x03,0x02,0x02,0x01,0x00,0x00,0x00 }, 13, CODEC_TYPE_VIDEO }, + { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x01,0x03,0x02,0x02,0x02,0x00,0x00,0x00 }, 13, CODEC_TYPE_AUDIO }, + { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, CODEC_TYPE_DATA }, }; const MXFCodecUL ff_mxf_codec_uls[] = {
--- a/mxf.h Sun Feb 08 04:42:38 2009 +0000 +++ b/mxf.h Sun Feb 08 05:12:30 2009 +0000 @@ -55,15 +55,10 @@ typedef struct { UID uid; unsigned matching_len; - enum CodecID id; + int id; } MXFCodecUL; -typedef struct { - UID uid; - enum CodecType type; -} MXFDataDefinitionUL; - -extern const MXFDataDefinitionUL ff_mxf_data_definition_uls[]; +extern const MXFCodecUL ff_mxf_data_definition_uls[]; extern const MXFCodecUL ff_mxf_codec_uls[]; #ifdef DEBUG
--- a/mxfdec.c Sun Feb 08 04:42:38 2009 +0000 +++ b/mxfdec.c Sun Feb 08 05:12:30 2009 +0000 @@ -618,7 +618,7 @@ static const MXFCodecUL *mxf_get_codec_ul(const MXFCodecUL *uls, UID *uid) { - while (uls->id != CODEC_ID_NONE) { + while (uls->uid[0]) { if(mxf_match_uid(uls->uid, *uid, uls->matching_len)) break; uls++; @@ -626,16 +626,6 @@ return uls; } -static enum CodecType mxf_get_codec_type(const MXFDataDefinitionUL *uls, UID *uid) -{ - while (uls->type != CODEC_TYPE_DATA) { - if(mxf_match_uid(uls->uid, *uid, 16)) - break; - uls++; - } - return uls->type; -} - static void *mxf_resolve_strong_ref(MXFContext *mxf, UID *strong_ref, enum MXFMetadataSetType type) { int i; @@ -757,7 +747,8 @@ } PRINT_KEY(mxf->fc, "data definition ul", source_track->sequence->data_definition_ul); - st->codec->codec_type = mxf_get_codec_type(ff_mxf_data_definition_uls, &source_track->sequence->data_definition_ul); + codec_ul = mxf_get_codec_ul(ff_mxf_data_definition_uls, &source_track->sequence->data_definition_ul); + st->codec->codec_type = codec_ul->id; source_package->descriptor = mxf_resolve_strong_ref(mxf, &source_package->descriptor_ref, AnyType); if (source_package->descriptor) {
--- a/mxfenc.c Sun Feb 08 04:42:38 2009 +0000 +++ b/mxfenc.c Sun Feb 08 05:12:30 2009 +0000 @@ -325,11 +325,11 @@ } } -static const MXFDataDefinitionUL *mxf_get_data_definition_ul(enum CodecType type) +static const MXFCodecUL *mxf_get_data_definition_ul(int type) { - const MXFDataDefinitionUL *uls = ff_mxf_data_definition_uls; - while (uls->type != CODEC_TYPE_DATA) { - if (type == uls->type) + const MXFCodecUL *uls = ff_mxf_data_definition_uls; + while (uls->uid[0]) { + if (type == uls->id) break; uls++; } @@ -509,7 +509,7 @@ static void mxf_write_common_fields(ByteIOContext *pb, AVStream *st) { - const MXFDataDefinitionUL *data_def_ul = mxf_get_data_definition_ul(st->codec->codec_type); + const MXFCodecUL *data_def_ul = mxf_get_data_definition_ul(st->codec->codec_type); MXFStreamContext *sc = st->priv_data; // find data define uls