always write required version string local tag
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Sat, 30 Aug 2008 22:37:19 +0000 (22:37 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Sat, 30 Aug 2008 22:37:19 +0000 (22:37 +0000)
Originally committed as revision 15059 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mxfenc.c

index 0bb90f5..3a8d6c2 100644 (file)
@@ -338,6 +338,7 @@ static void mxf_write_local_tag_utf16(ByteIOContext *pb, int tag, const char *va
 static void mxf_write_identification(AVFormatContext *s)
 {
     ByteIOContext *pb = s->pb;
+    const char *version;
     int length, company_name_len, product_name_len, version_string_len;
 
     mxf_write_metadata_key(pb, 0x013000);
@@ -347,9 +348,11 @@ static void mxf_write_identification(AVFormatContext *s)
 
     length = 80 + company_name_len + product_name_len;
     if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) {
-        version_string_len = strlen(LIBAVFORMAT_IDENT) * 2;
-        length += 4 + version_string_len;
+        version = LIBAVFORMAT_IDENT;
+    } else {
+        version = "0.0.0";
     }
+    length += 4 + strlen(version)*2;
     klv_encode_ber_length(pb, length);
 
     // write uid
@@ -362,8 +365,7 @@ static void mxf_write_identification(AVFormatContext *s)
 
     mxf_write_local_tag_utf16(pb, 0x3C01, "FFmpeg");     // Company Name
     mxf_write_local_tag_utf16(pb, 0x3C02, "OP1a Muxer"); // Product Name
-    if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT))
-        mxf_write_local_tag_utf16(pb, 0x3C04, LIBAVFORMAT_IDENT); // Version String
+    mxf_write_local_tag_utf16(pb, 0x3C04, version); // Version String
 
     // write product uid
     mxf_write_local_tag(pb, 16, 0x3C05);