diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-10-20 21:21:42 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-10-20 21:21:42 +0000 |
commit | 4b29d38b015c189bfce66f1def81f0e22492a348 (patch) | |
tree | 42bcf42902a802a83a3e5135575d77b2f66922fb /libmpcodecs | |
parent | 74d75bf69bca4269f3fa0796112a3c6970df6cc4 (diff) |
sample_aspect_ratio
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11195 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r-- | libmpcodecs/vd_ffmpeg.c | 11 | ||||
-rw-r--r-- | libmpcodecs/ve_lavc.c | 8 |
2 files changed, 16 insertions, 3 deletions
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c index 48f79f353d..6f97991d28 100644 --- a/libmpcodecs/vd_ffmpeg.c +++ b/libmpcodecs/vd_ffmpeg.c @@ -383,14 +383,19 @@ static void draw_slice(struct AVCodecContext *s, static int init_vo(sh_video_t *sh){ vd_ffmpeg_ctx *ctx = sh->context; AVCodecContext *avctx = ctx->avctx; +#if LIBAVCODEC_BUILD >= 4687 + float aspect= av_q2d(avctx->sample_aspect_ratio) * avctx->width / avctx->height; +#else + float aspect= avctx->aspect_ratio; +#endif - if (avctx->aspect_ratio != ctx->last_aspect || + if ( aspect != ctx->last_aspect || avctx->width != sh->disp_w || avctx->height != sh->disp_h || !ctx->vo_inited) { - mp_msg(MSGT_DECVIDEO, MSGL_V, "[ffmpeg] aspect_ratio: %f\n", avctx->aspect_ratio); - ctx->last_aspect = avctx->aspect_ratio; + mp_msg(MSGT_DECVIDEO, MSGL_V, "[ffmpeg] aspect_ratio: %f\n", aspect); + ctx->last_aspect = aspect; // if(ctx->last_aspect>=0.01 && ctx->last_aspect<100) if(sh->aspect==0.0) sh->aspect = ctx->last_aspect; diff --git a/libmpcodecs/ve_lavc.c b/libmpcodecs/ve_lavc.c index 143b36cb1d..80930195c9 100644 --- a/libmpcodecs/ve_lavc.c +++ b/libmpcodecs/ve_lavc.c @@ -445,7 +445,11 @@ static int config(struct vf_instance_s* vf, } if (e && ratio > 0.1 && ratio < 10.0) { +#if LIBAVCODEC_BUILD >= 4687 + lavc_venc_context->sample_aspect_ratio= av_d2q(ratio * height / width, 30000); +#else lavc_venc_context->aspect_ratio= ratio; +#endif mp_dbg(MSGT_MENCODER, MSGL_DBG2, "aspect_ratio: %f\n", ratio); } else { mp_dbg(MSGT_MENCODER, MSGL_ERR, "aspect ratio: cannot parse \"%s\"\n", lavc_param_aspect); @@ -453,7 +457,11 @@ static int config(struct vf_instance_s* vf, } } else if (lavc_param_autoaspect) +#if LIBAVCODEC_BUILD >= 4687 + lavc_venc_context->sample_aspect_ratio = av_d2q((float)d_width/d_height*height / width, 30000); +#else lavc_venc_context->aspect_ratio = (float)d_width/d_height; +#endif /* keyframe interval */ if (lavc_param_keyint >= 0) /* != -1 */ |