On 2015-03-03 05:06, Mark Reid wrote:
+/*
+ * Returns the calculated length a local tag containing an utf-8
string as utf-16
+ */
+static uint64_t mxf_utf16_local_tag_length(const char *utf8_str)
+{
+    return utf8_str? 4 + mxf_utf16len(utf8_str) * 2: 0;

Should return zero if mxf_utf16len()*2 > 65535.

+}
+
+/*
+ * Write a local tag containing an utf-8 string as utf-16
  */
 static void mxf_write_local_tag_utf16(AVIOContext *pb, int tag, const
char *value)
 {
-    int i, size = strlen(value);
+    int size = mxf_utf16len(value);
     mxf_write_local_tag(pb, size*2, tag);

Same here. Check that size*2 < 65536. I don't want us outputting illegal MXFs.

-    for (i = 0; i < size; i++)
-        avio_wb16(pb, value[i]);
+    avio_put_str16be(pb, value);
 }

/Tomas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to