[MPlayer-cvslog] r28801 - trunk/libmpcodecs/vd_ffmpeg.c
reimar
subversion at mplayerhq.hu
Tue Mar 3 14:38:34 CET 2009
Author: reimar
Date: Tue Mar 3 14:38:33 2009
New Revision: 28801
Log:
Add another hack to work-around the currently completely inconsistent way in
which libavcodec sets AVCodecContext::pix_fmt.
Modified:
trunk/libmpcodecs/vd_ffmpeg.c
Modified: trunk/libmpcodecs/vd_ffmpeg.c
==============================================================================
--- trunk/libmpcodecs/vd_ffmpeg.c Tue Mar 3 10:19:35 2009 (r28800)
+++ trunk/libmpcodecs/vd_ffmpeg.c Tue Mar 3 14:38:33 2009 (r28801)
@@ -409,7 +409,8 @@ static int init(sh_video_t *sh){
uninit(sh);
return 0;
}
- // this is necessary in case get_format was never called
+ // this is necessary in case get_format was never called and init_vo is
+ // too late e.g. for H.264 VDPAU
set_format_params(avctx, avctx->pix_fmt);
mp_msg(MSGT_DECVIDEO, MSGL_V, "INFO: libavcodec init OK!\n");
return 1; //mpcodecs_config_vo(sh, sh->disp_w, sh->disp_h, IMGFMT_YV12);
@@ -504,6 +505,9 @@ static int init_vo(sh_video_t *sh, enum
pix_fmt != ctx->pix_fmt ||
!ctx->vo_initialized)
{
+ // this is a special-case HACK for MPEG-1/2 VDPAU that uses neither get_format nor
+ // sets the value correctly in avcodec_open.
+ set_format_params(avctx, avctx->pix_fmt);
mp_msg(MSGT_DECVIDEO, MSGL_V, "[ffmpeg] aspect_ratio: %f\n", aspect);
if (sh->aspect == 0 ||
av_cmp_q(avctx->sample_aspect_ratio,
More information about the MPlayer-cvslog
mailing list