aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2015-03-08 04:06:32 +0000
committerVittorio Giovara <vittorio.giovara@gmail.com>2015-06-30 15:34:37 +0200
commit3e3056f2a020dd77efdf379dbd4c06a65b4a499a (patch)
tree5aae453a69553d0fba5767fb09dcc83a036be7b5
parent3ad678a85b96fc5fecd60e3d3a31ca5ffc89d67f (diff)
downloadffmpeg-3e3056f2a020dd77efdf379dbd4c06a65b4a499a.tar.gz
h264: Allow stream and container cropping at the same time
The container cropping is applied only when difference is within 16 pixels, and the smallest value between the two is chosen. Bug-Id: 383 Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
-rw-r--r--libavcodec/h264_slice.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 16043dcb0e..d287662286 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -896,13 +896,10 @@ 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 (!crop_present &&
- FFALIGN(h->avctx->width, 16) == h->width &&
- FFALIGN(h->avctx->height, 16) == h->height) {
+ if (FFALIGN(h->avctx->width, 16) == FFALIGN(width, 16) &&
+ FFALIGN(h->avctx->height, 16) == FFALIGN(height, 16)) {
width = h->avctx->width;
height = h->avctx->height;
}