summaryrefslogtreecommitdiff
path: root/libavutil/frame.c
diff options
context:
space:
mode:
authorXidorn Quan <quanxunzhen@gmail.com>2013-05-20 23:28:06 +0800
committerMichael Niedermayer <michaelni@gmx.at>2013-05-20 23:34:15 +0200
commit5a65fea655fb2558a3004a93f782c1534dd6a363 (patch)
tree359b26c94bacca7466b9e589ac7b1e85b8f0f979 /libavutil/frame.c
parenta67304d05f11b2377bf157a356d7ebb00f3e06dd (diff)
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.c9
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]);