[FFmpeg-cvslog] h264: fully check cropping amount from sps
Vittorio Giovara
git at videolan.org
Tue Aug 26 22:07:56 CEST 2014
ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Mon Aug 25 20:40:19 2014 -0400| [e87f5e4e5f2e2e36b0b7826d708cda7049877af0] | committer: Vittorio Giovara
h264: fully check cropping amount from sps
Even if sps.crop is true, the cropping amount may be zero.
Fixes a sample with a valid but broken container cropping.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e87f5e4e5f2e2e36b0b7826d708cda7049877af0
---
libavcodec/h264_slice.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 83d3426..69aed1d 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1028,9 +1028,11 @@ static int init_dimensions(H264Context *h)
{
int width = h->width - (h->sps.crop_right + h->sps.crop_left);
int height = h->height - (h->sps.crop_top + h->sps.crop_bottom);
+ int crop_present = h->sps.crop_left || h->sps.crop_top ||
+ h->sps.crop_right || h->sps.crop_bottom;
/* handle container cropping */
- if (!h->sps.crop &&
+ if (!crop_present &&
FFALIGN(h->avctx->width, 16) == h->width &&
FFALIGN(h->avctx->height, 16) == h->height) {
width = h->avctx->width;
More information about the ffmpeg-cvslog
mailing list