[SCM] libav/experimental: Use an AVMetadata struct for storing metadata, simplify.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:17:50 UTC 2013


The following commit has been merged in the experimental branch:
commit 4bf65e2a4d6ad9a6fda368712fe7022ee990c6fb
Author: Stefano Sabatini <stefano.sabatini-lala at poste.it>
Date:   Sat Oct 16 15:25:02 2010 +0000

    Use an AVMetadata struct for storing metadata, simplify.
    
    Originally committed as revision 25508 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/ffmpeg.c b/ffmpeg.c
index 999cb46..63b4b5f 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -188,8 +188,7 @@ static int64_t start_time = 0;
 static int64_t recording_timestamp = 0;
 static int64_t input_ts_offset = 0;
 static int file_overwrite = 0;
-static int metadata_count;
-static AVMetadataTag *metadata;
+static AVMetadata *metadata;
 static int do_benchmark = 0;
 static int do_hex_dump = 0;
 static int do_pkt_dump = 0;
@@ -2866,10 +2865,7 @@ static int opt_metadata(const char *opt, const char *arg)
     }
     *mid++= 0;
 
-    metadata_count++;
-    metadata= av_realloc(metadata, sizeof(*metadata)*metadata_count);
-    metadata[metadata_count-1].key  = av_strdup(arg);
-    metadata[metadata_count-1].value= av_strdup(mid);
+    av_metadata_set2(&metadata, arg, mid, 0);
 
     return 0;
 }
@@ -3676,6 +3672,7 @@ static void opt_output_file(const char *filename)
     int input_has_video, input_has_audio, input_has_subtitle;
     AVFormatParameters params, *ap = ¶ms;
     AVOutputFormat *file_oformat;
+    AVMetadataTag *tag = NULL;
 
     if (!strcmp(filename, "-"))
         filename = "pipe:";
@@ -3757,10 +3754,8 @@ static void opt_output_file(const char *filename)
 
         oc->timestamp = recording_timestamp;
 
-        for(; metadata_count>0; metadata_count--){
-            av_metadata_set2(&oc->metadata, metadata[metadata_count-1].key,
-                                            metadata[metadata_count-1].value, 0);
-        }
+        while ((tag = av_metadata_get(metadata, "", tag, AV_METADATA_IGNORE_SUFFIX)))
+            av_metadata_set2(&oc->metadata, tag->key, tag->value, 0);
     }
 
     output_files[nb_output_files++] = oc;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list