[FFmpeg-cvslog] avformat/flvenc: refine the flvenc shift_data code

Steven Liu git at videolan.org
Tue Jan 24 06:32:16 EET 2017


ffmpeg | branch: master | Steven Liu <lq at chinaffmpeg.org> | Tue Jan 24 12:31:36 2017 +0800| [1bb192ef6c1771ee18d1c5ed31d7c0cac8a25ebb] | committer: Steven Liu

avformat/flvenc: refine the flvenc shift_data code

refine the flvenc shift_data move data option

Signed-off-by: Steven Liu <lq at chinaffmpeg.org>

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

 libavformat/flvenc.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
index 5714321..d7506c5 100644
--- a/libavformat/flvenc.c
+++ b/libavformat/flvenc.c
@@ -626,13 +626,15 @@ static int shift_data(AVFormatContext *s)
     avio_seek(read_pb, flv->keyframes_info_offset, SEEK_SET);
     pos = avio_tell(read_pb);
 
-    /* shift data by chunk of at most keyframe *filepositions* and *times* size */
+#define READ_BLOCK do {                                                             \
     read_size[read_buf_id] = avio_read(read_pb, read_buf[read_buf_id], metadata_size);  \
-    read_buf_id ^= 1;
-    do {
+    read_buf_id ^= 1;                                                               \
+} while (0)
 
-        read_size[read_buf_id] = avio_read(read_pb, read_buf[read_buf_id], metadata_size);  \
-        read_buf_id ^= 1;
+    /* shift data by chunk of at most keyframe *filepositions* and *times* size */
+    READ_BLOCK;
+    do {
+        READ_BLOCK;
         n = read_size[read_buf_id];
         if (n < 0)
             break;



More information about the ffmpeg-cvslog mailing list