Mercurial > mplayer.hg
changeset 17973:75442247ee56
reinit vo when pix_fmt changes.
Avoids broken image or even crash with mf://*.jpg and JPGs with different chroma sampling.
author | reimar |
---|---|
date | Mon, 27 Mar 2006 10:32:52 +0000 |
parents | 03170287aea9 |
children | 9a5a62f480e6 |
files | libmpcodecs/vd_ffmpeg.c |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/vd_ffmpeg.c Mon Mar 27 08:38:32 2006 +0000 +++ b/libmpcodecs/vd_ffmpeg.c Mon Mar 27 10:32:52 2006 +0000 @@ -58,6 +58,7 @@ typedef struct { AVCodecContext *avctx; AVFrame *pic; + enum PixelFormat pix_fmt; float last_aspect; int do_slices; int do_dr1; @@ -533,6 +534,7 @@ if (// aspect != ctx->last_aspect || width != sh->disp_w || height != sh->disp_h || + pix_fmt != ctx->pix_fmt || !ctx->vo_inited) { mp_msg(MSGT_DECVIDEO, MSGL_V, "[ffmpeg] aspect_ratio: %f\n", aspect); @@ -542,6 +544,7 @@ sh->aspect = ctx->last_aspect; sh->disp_w = width; sh->disp_h = height; + ctx->pix_fmt = pix_fmt; switch(pix_fmt){ // YUVJ are YUV formats that use the full Y range and not just // 16 - 235 (see colorspaces.txt).