[FFmpeg-cvslog] r17042 - in trunk/libavformat: mxf.c mxf.h mxfdec.c mxfenc.c

bcoudurier subversion
Sun Feb 8 06:12:31 CET 2009


Author: bcoudurier
Date: Sun Feb  8 06:12:30 2009
New Revision: 17042

Log:
reuse MXFCodecUL for data def and simplify

Modified:
   trunk/libavformat/mxf.c
   trunk/libavformat/mxf.h
   trunk/libavformat/mxfdec.c
   trunk/libavformat/mxfenc.c

Modified: trunk/libavformat/mxf.c
==============================================================================
--- trunk/libavformat/mxf.c	Sun Feb  8 05:42:38 2009	(r17041)
+++ trunk/libavformat/mxf.c	Sun Feb  8 06:12:30 2009	(r17042)
@@ -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[] = {

Modified: trunk/libavformat/mxf.h
==============================================================================
--- trunk/libavformat/mxf.h	Sun Feb  8 05:42:38 2009	(r17041)
+++ trunk/libavformat/mxf.h	Sun Feb  8 06:12:30 2009	(r17042)
@@ -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

Modified: trunk/libavformat/mxfdec.c
==============================================================================
--- trunk/libavformat/mxfdec.c	Sun Feb  8 05:42:38 2009	(r17041)
+++ trunk/libavformat/mxfdec.c	Sun Feb  8 06:12:30 2009	(r17042)
@@ -618,7 +618,7 @@ static int mxf_match_uid(const UID key, 
 
 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_u
     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
         }
 
         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) {

Modified: trunk/libavformat/mxfenc.c
==============================================================================
--- trunk/libavformat/mxfenc.c	Sun Feb  8 05:42:38 2009	(r17041)
+++ trunk/libavformat/mxfenc.c	Sun Feb  8 06:12:30 2009	(r17042)
@@ -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(AVFormatCont
 
 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




More information about the ffmpeg-cvslog mailing list