diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2012-06-22 01:11:23 +0400 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2012-06-22 19:45:25 +0400 |
commit | 8875333707f43900c1a0fa54cca0789025dde70b (patch) | |
tree | a00443c074ead8f97895a3729aed2332a14e48cf /libavcodec | |
parent | a5a93fa8f5aad3a1e6e71b95eaef96b734ba0dd3 (diff) |
utvideo: Fix interlaced prediction for RGB utvideo.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/utvideo.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/libavcodec/utvideo.c b/libavcodec/utvideo.c index a3b0d7cf01..e5efa4a7ec 100644 --- a/libavcodec/utvideo.c +++ b/libavcodec/utvideo.c @@ -439,10 +439,17 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, plane_start[i], c->frame_pred == PRED_LEFT); if (ret) return ret; - if (c->frame_pred == PRED_MEDIAN) - restore_median(c->pic.data[0] + rgb_order[i], c->planes, - c->pic.linesize[0], avctx->width, avctx->height, - c->slices, 0); + if (c->frame_pred == PRED_MEDIAN) { + if (!c->interlaced) { + restore_median(c->pic.data[0] + rgb_order[i], c->planes, + c->pic.linesize[0], avctx->width, + avctx->height, c->slices, 0); + } else { + restore_median_il(c->pic.data[0] + rgb_order[i], c->planes, + c->pic.linesize[0], avctx->width, + avctx->height, c->slices, 0); + } + } } restore_rgb_planes(c->pic.data[0], c->planes, c->pic.linesize[0], avctx->width, avctx->height); |