diff options
author | Xidorn Quan <quanxunzhen@gmail.com> | 2013-05-20 23:28:06 +0800 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-05-20 23:34:15 +0200 |
commit | 5a65fea655fb2558a3004a93f782c1534dd6a363 (patch) | |
tree | 359b26c94bacca7466b9e589ac7b1e85b8f0f979 /libavutil/frame.c | |
parent | a67304d05f11b2377bf157a356d7ebb00f3e06dd (diff) | |
download | ffmpeg-5a65fea655fb2558a3004a93f782c1534dd6a363.tar.gz |
avutil/frame: continue to process bufs even if some are empty
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/frame.c')
-rw-r--r-- | libavutil/frame.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libavutil/frame.c b/libavutil/frame.c index 11601ad19a..24ad0dd224 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -259,7 +259,9 @@ int av_frame_ref(AVFrame *dst, AVFrame *src) } /* ref the buffers */ - for (i = 0; i < FF_ARRAY_ELEMS(src->buf) && src->buf[i]; i++) { + for (i = 0; i < FF_ARRAY_ELEMS(src->buf); i++) { + if (!src->buf[i]) + continue; dst->buf[i] = av_buffer_ref(src->buf[i]); if (!dst->buf[i]) { ret = AVERROR(ENOMEM); @@ -366,8 +368,9 @@ int av_frame_is_writable(AVFrame *frame) if (!frame->buf[0]) return 0; - for (i = 0; i < FF_ARRAY_ELEMS(frame->buf) && frame->buf[i]; i++) - ret &= !!av_buffer_is_writable(frame->buf[i]); + for (i = 0; i < FF_ARRAY_ELEMS(frame->buf); i++) + if (frame->buf[i]) + ret &= !!av_buffer_is_writable(frame->buf[i]); for (i = 0; i < frame->nb_extended_buf; i++) ret &= !!av_buffer_is_writable(frame->extended_buf[i]); |