You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	reuse MXFCodecUL for data def and simplify
Originally committed as revision 17042 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		| @@ -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[] = { | ||||
|   | ||||
| @@ -55,15 +55,10 @@ typedef struct { | ||||
| 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 | ||||
|   | ||||
| @@ -618,7 +618,7 @@ static int mxf_match_uid(const UID key, const UID uid, int len) | ||||
|  | ||||
| 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 @@ static const MXFCodecUL *mxf_get_codec_ul(const MXFCodecUL *uls, UID *uid) | ||||
|     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 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) | ||||
|         } | ||||
|  | ||||
|         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) { | ||||
|   | ||||
| @@ -325,11 +325,11 @@ static void mxf_free(AVFormatContext *s) | ||||
|     } | ||||
| } | ||||
|  | ||||
| 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_track(AVFormatContext *s, AVStream *st, enum MXFMetadataSe | ||||
|  | ||||
| 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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user