diff options
author | Steven Liu <lq@chinaffmpeg.org> | 2017-01-24 12:31:36 +0800 |
---|---|---|
committer | Steven Liu <lq@chinaffmpeg.org> | 2017-01-24 12:31:36 +0800 |
commit | 1bb192ef6c1771ee18d1c5ed31d7c0cac8a25ebb (patch) | |
tree | 36953969a0e504b3d81cbcf0cb8e8f2e466c611f | |
parent | 2f7cc21b61220d205e3c57384f354187417971fb (diff) | |
download | ffmpeg-1bb192ef6c1771ee18d1c5ed31d7c0cac8a25ebb.tar.gz |
avformat/flvenc: refine the flvenc shift_data code
refine the flvenc shift_data move data option
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
-rw-r--r-- | libavformat/flvenc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 5714321282..d7506c56fb 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; |