changeset 3457:0bbc97acefde libavformat

simplify
author bcoudurier
date Wed, 11 Jun 2008 09:06:27 +0000
parents fb5dd21f7e18
children 1ccb0b1813c9
files movenc.c
diffstat 1 files changed, 12 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/movenc.c	Wed Jun 11 09:02:01 2008 +0000
+++ b/movenc.c	Wed Jun 11 09:06:27 2008 +0000
@@ -1254,26 +1254,23 @@
     return (((str[0]-0x60) & 0x1F) << 10) + (((str[1]-0x60) & 0x1F) << 5) + ((str[2]-0x60) & 0x1F);
 }
 
-static int mov_write_psp_udta_tag(ByteIOContext *pb,
+static void mov_write_psp_udta_tag(ByteIOContext *pb,
                                   const char *str, const char *lang, int type)
 {
     int len = utf8len(str)+1;
     if(len<=0)
-        return 0;
+        return;
     put_be16(pb, len*2+10);            /* size */
     put_be32(pb, type);                /* type */
     put_be16(pb, language_code(lang)); /* language */
     put_be16(pb, 0x01);                /* ? */
     ascii_to_wc(pb, str);
-    return len*2+10;
 }
 
 static int mov_write_uuidusmt_tag(ByteIOContext *pb, AVFormatContext *s)
 {
-    size_t size;
-    offset_t pos, curpos;
+    offset_t pos, pos2;
 
-    size = 0;
     if (s->title[0]) {
         pos = url_ftell(pb);
         put_be32(pb, 0); /* size placeholder*/
@@ -1282,12 +1279,11 @@
         put_be32(pb, 0x21d24fce); /* 96 bit UUID */
         put_be32(pb, 0xbb88695c);
         put_be32(pb, 0xfac9c740);
-        size += 24;
 
+        pos2 = url_ftell(pb);
         put_be32(pb, 0); /* size placeholder*/
         put_tag(pb, "MTDT");
         put_be16(pb, 4);
-        size += 10;
 
         // ?
         put_be16(pb, 0x0C);                 /* size */
@@ -1295,23 +1291,17 @@
         put_be16(pb, language_code("und")); /* language */
         put_be16(pb, 0x0);                  /* ? */
         put_be16(pb, 0x021C);               /* data */
-        size += 12;
-
-        size += mov_write_psp_udta_tag(pb, LIBAVCODEC_IDENT,      "eng", 0x04);
-        size += mov_write_psp_udta_tag(pb, s->title,              "eng", 0x01);
-//        snprintf(dt,32,"%04d/%02d/%02d %02d:%02d:%02d",t_st->tm_year+1900,t_st->tm_mon+1,t_st->tm_mday,t_st->tm_hour,t_st->tm_min,t_st->tm_sec);
-        size += mov_write_psp_udta_tag(pb, "2006/04/01 11:11:11", "und", 0x03);
 
-        // size
-        curpos = url_ftell(pb);
-        url_fseek(pb, pos, SEEK_SET);
-        put_be32(pb, size);
-        url_fseek(pb, pos+24, SEEK_SET);
-        put_be32(pb, size-24);
-        url_fseek(pb, curpos, SEEK_SET);
+        mov_write_psp_udta_tag(pb, LIBAVCODEC_IDENT,      "eng", 0x04);
+        mov_write_psp_udta_tag(pb, s->title,              "eng", 0x01);
+//        snprintf(dt,32,"%04d/%02d/%02d %02d:%02d:%02d",t_st->tm_year+1900,t_st->tm_mon+1,t_st->tm_mday,t_st->tm_hour,t_st->tm_min,t_st->tm_sec);
+        mov_write_psp_udta_tag(pb, "2006/04/01 11:11:11", "und", 0x03);
+
+        updateSize(pb, pos2);
+        return updateSize(pb, pos);
     }
 
-    return size;
+    return 0;
 }
 
 static int mov_write_moov_tag(ByteIOContext *pb, MOVContext *mov,