Patrick Williams | b48b7b4 | 2016-08-17 15:04:38 -0500 | [diff] [blame^] | 1 | gst-ffmpeg: h264: skip error concealment when SPS and slices are |
| 2 | mismatching |
| 3 | |
| 4 | Fixes out of array accesses |
| 5 | |
| 6 | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind |
| 7 | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> |
| 8 | (cherry picked from commit 695af8eed642ff0104834495652d1ee784a4c14d) |
| 9 | |
| 10 | Upstream-Status: Backport |
| 11 | |
| 12 | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> |
| 13 | Signed-off-by: Yue Tao <yue.tao@windriver.com> |
| 14 | --- |
| 15 | libavcodec/h264.c | 2 +- |
| 16 | 1 files changed, 1 insertions(+), 1 deletions(-) |
| 17 | |
| 18 | diff --git a/libavcodec/h264.c b/libavcodec/h264.c |
| 19 | index da144db..0aab4e7 100644 |
| 20 | --- a/gst-libs/ext/libav/libavcodec/h264.c |
| 21 | +++ b/gst-libs/ext/libav/libavcodec/h264.c |
| 22 | @@ -2351,7 +2351,7 @@ static int field_end(H264Context *h, int in_setup) |
| 23 | * past end by one (callers fault) and resync_mb_y != 0 |
| 24 | * causes problems for the first MB line, too. |
| 25 | */ |
| 26 | - if (!FIELD_PICTURE) |
| 27 | + if (!FIELD_PICTURE && h->current_slice && !h->sps.new) |
| 28 | ff_er_frame_end(s); |
| 29 | |
| 30 | ff_MPV_frame_end(s); |
| 31 | -- |
| 32 | 1.7.5.4 |
| 33 | |