summaryrefslogtreecommitdiff
path: root/libavcodec/h264_refs.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2013-01-14 20:07:53 +0100
committerAnton Khirnov <anton@khirnov.net>2013-01-14 21:36:08 +0100
commitea382767ad2191acbe97e90624059723e15f0e4b (patch)
treee87eab40ab69996627379caeed5c679b3676bd0d /libavcodec/h264_refs.c
parent5e753ed502d3597077d8675ca1438e1bcade1459 (diff)
h264: fix ff_generate_sliding_window_mmcos() prototype.
It's been returning an error value since bad446e251405dc250c3cbee199072e083a1e4b9 Also check for the errors it returns.
Diffstat (limited to 'libavcodec/h264_refs.c')
-rw-r--r--libavcodec/h264_refs.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index 62c2a5758e..0e4bd76931 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -488,7 +488,7 @@ static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int n_mmcos)
return 0;
}
-void ff_generate_sliding_window_mmcos(H264Context *h, int first_slice)
+int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice)
{
MpegEncContext * const s = &h->s;
MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp;
@@ -521,6 +521,7 @@ void ff_generate_sliding_window_mmcos(H264Context *h, int first_slice)
mmco_index, h->mmco_index, i);
return AVERROR_INVALIDDATA;
}
+ return 0;
}
int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){
@@ -686,7 +687,7 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,
int first_slice)
{
MpegEncContext * const s = &h->s;
- int i;
+ int i, ret;
MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp;
int mmco_index = 0;
@@ -743,8 +744,11 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,
}
mmco_index = i;
} else {
- if (first_slice)
- ff_generate_sliding_window_mmcos(h, first_slice);
+ if (first_slice) {
+ ret = ff_generate_sliding_window_mmcos(h, first_slice);
+ if (ret < 0 && s->avctx->err_recognition & AV_EF_EXPLODE)
+ return ret;
+ }
mmco_index = -1;
}
}