[FFmpeg-cvslog] lavf/webvttdec: factorize identifier and settings side data code.

Clément Bœsch git at videolan.org
Sat Jun 1 15:12:59 CEST 2013


ffmpeg | branch: master | Clément Bœsch <ubitux at gmail.com> | Sat Jun  1 15:08:00 2013 +0200| [07f6a66bf553ce02ad9e6dc7d415d3f8faa431fb] | committer: Clément Bœsch

lavf/webvttdec: factorize identifier and settings side data code.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=07f6a66bf553ce02ad9e6dc7d415d3f8faa431fb
---

 libavformat/webvttdec.c |   34 +++++++++++++---------------------
 1 file changed, 13 insertions(+), 21 deletions(-)

diff --git a/libavformat/webvttdec.c b/libavformat/webvttdec.c
index 894a762..7d9910b 100644
--- a/libavformat/webvttdec.c
+++ b/libavformat/webvttdec.c
@@ -142,27 +142,19 @@ static int webvtt_read_header(AVFormatContext *s)
         sub->pts = ts_start;
         sub->duration = ts_end - ts_start;
 
-        if (identifier_len) {
-            uint8_t *buf = av_packet_new_side_data(sub,
-                                                   AV_PKT_DATA_WEBVTT_IDENTIFIER,
-                                                   identifier_len);
-            if (!buf) {
-                res = AVERROR(ENOMEM);
-                goto end;
-            }
-            memcpy(buf, identifier, identifier_len);
-        }
-
-        if (settings_len) {
-            uint8_t *buf = av_packet_new_side_data(sub,
-                                                   AV_PKT_DATA_WEBVTT_SETTINGS,
-                                                   settings_len);
-            if (!buf) {
-                res = AVERROR(ENOMEM);
-                goto end;
-            }
-            memcpy(buf, settings, settings_len);
-        }
+#define SET_SIDE_DATA(name, type) do {                                  \
+    if (name##_len) {                                                   \
+        uint8_t *buf = av_packet_new_side_data(sub, type, name##_len);  \
+        if (!buf) {                                                     \
+            res = AVERROR(ENOMEM);                                      \
+            goto end;                                                   \
+        }                                                               \
+        memcpy(buf, name, name##_len);                                  \
+    }                                                                   \
+} while (0)
+
+        SET_SIDE_DATA(identifier, AV_PKT_DATA_WEBVTT_IDENTIFIER);
+        SET_SIDE_DATA(settings,   AV_PKT_DATA_WEBVTT_SETTINGS);
     }
 
     ff_subtitles_queue_finalize(&webvtt->q);



More information about the ffmpeg-cvslog mailing list