diff options
author | wm4 <nfxjfg@googlemail.com> | 2015-10-15 20:19:55 +0200 |
---|---|---|
committer | wm4 <nfxjfg@googlemail.com> | 2015-10-15 20:19:55 +0200 |
commit | 17fe18d21ad9caba5dec08237b511c7fb89e88b3 (patch) | |
tree | d955bbfb3bafbcca96ee8255a543948c4a2b6664 /libavcodec | |
parent | cdf4a13f86157155bf9518a51369f0d5c03ae707 (diff) | |
download | ffmpeg-17fe18d21ad9caba5dec08237b511c7fb89e88b3.tar.gz |
Revert "avcodec/h264: remove redundant and bogus get_format call"
This reverts commit be583c6fd3a6f06844b56619653b9b0e4561870d.
This was not approved, and was accidentally pushed. I'm very sorry.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h264_slice.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 1272319635..a346ccbc00 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1129,6 +1129,17 @@ fail: return ret; } +static enum AVPixelFormat non_j_pixfmt(enum AVPixelFormat a) +{ + switch (a) { + case AV_PIX_FMT_YUVJ420P: return AV_PIX_FMT_YUV420P; + case AV_PIX_FMT_YUVJ422P: return AV_PIX_FMT_YUV422P; + case AV_PIX_FMT_YUVJ444P: return AV_PIX_FMT_YUV444P; + default: + return a; + } +} + /** * Decode a slice header. * This will (re)intialize the decoder and call h264_frame_start() as needed. @@ -1312,6 +1323,9 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl) || h->mb_width != h->sps.mb_width || h->mb_height != h->sps.mb_height * (2 - h->sps.frame_mbs_only_flag) )); + if (h->avctx->pix_fmt == AV_PIX_FMT_NONE + || (non_j_pixfmt(h->avctx->pix_fmt) != non_j_pixfmt(get_pixel_format(h, 0)))) + must_reinit = 1; if (first_slice && av_cmp_q(h->sps.sar, h->avctx->sample_aspect_ratio)) must_reinit = 1; |