mirror of
https://github.com/mpv-player/mpv
synced 2025-01-20 21:07:29 +01:00
sample_aspect_ratio
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11195 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
74d75bf69b
commit
4b29d38b01
@ -383,14 +383,19 @@ static void draw_slice(struct AVCodecContext *s,
|
|||||||
static int init_vo(sh_video_t *sh){
|
static int init_vo(sh_video_t *sh){
|
||||||
vd_ffmpeg_ctx *ctx = sh->context;
|
vd_ffmpeg_ctx *ctx = sh->context;
|
||||||
AVCodecContext *avctx = ctx->avctx;
|
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->width != sh->disp_w ||
|
||||||
avctx->height != sh->disp_h ||
|
avctx->height != sh->disp_h ||
|
||||||
!ctx->vo_inited)
|
!ctx->vo_inited)
|
||||||
{
|
{
|
||||||
mp_msg(MSGT_DECVIDEO, MSGL_V, "[ffmpeg] aspect_ratio: %f\n", avctx->aspect_ratio);
|
mp_msg(MSGT_DECVIDEO, MSGL_V, "[ffmpeg] aspect_ratio: %f\n", aspect);
|
||||||
ctx->last_aspect = avctx->aspect_ratio;
|
ctx->last_aspect = aspect;
|
||||||
// if(ctx->last_aspect>=0.01 && ctx->last_aspect<100)
|
// if(ctx->last_aspect>=0.01 && ctx->last_aspect<100)
|
||||||
if(sh->aspect==0.0)
|
if(sh->aspect==0.0)
|
||||||
sh->aspect = ctx->last_aspect;
|
sh->aspect = ctx->last_aspect;
|
||||||
|
@ -445,7 +445,11 @@ static int config(struct vf_instance_s* vf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (e && ratio > 0.1 && ratio < 10.0) {
|
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;
|
lavc_venc_context->aspect_ratio= ratio;
|
||||||
|
#endif
|
||||||
mp_dbg(MSGT_MENCODER, MSGL_DBG2, "aspect_ratio: %f\n", ratio);
|
mp_dbg(MSGT_MENCODER, MSGL_DBG2, "aspect_ratio: %f\n", ratio);
|
||||||
} else {
|
} else {
|
||||||
mp_dbg(MSGT_MENCODER, MSGL_ERR, "aspect ratio: cannot parse \"%s\"\n", lavc_param_aspect);
|
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)
|
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;
|
lavc_venc_context->aspect_ratio = (float)d_width/d_height;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* keyframe interval */
|
/* keyframe interval */
|
||||||
if (lavc_param_keyint >= 0) /* != -1 */
|
if (lavc_param_keyint >= 0) /* != -1 */
|
||||||
|
Loading…
Reference in New Issue
Block a user