提交 76d81909 编写于 作者: J Jason Garrett-Glaser

Update libx264.c to use new libx264 features

With b_keyframe instead of IDR for detecting keyframes, ffmpeg should now
support periodic encoding with periodic intra refresh (although there is no
interface option for it yet).
Set the new timebase values for full VFR input support.
Bump configure to check for API version 83.

Originally committed as revision 21317 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 51d83986
......@@ -2460,8 +2460,8 @@ enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg
enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 -lm &&
{ check_cpp_condition x264.h "X264_BUILD >= 79" ||
die "ERROR: libx264 version must be >= 0.79."; }
{ check_cpp_condition x264.h "X264_BUILD >= 83" ||
die "ERROR: libx264 version must be >= 0.83."; }
enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
......
......@@ -109,7 +109,7 @@ static int X264_frame(AVCodecContext *ctx, uint8_t *buf,
if (bufsize < 0)
return -1;
/* FIXME: dts */
/* FIXME: libx264 now provides DTS, but AVFrame doesn't have a field for it. */
x4->out_pic.pts = pic_out.i_pts;
switch (pic_out.i_type) {
......@@ -126,7 +126,7 @@ static int X264_frame(AVCodecContext *ctx, uint8_t *buf,
break;
}
x4->out_pic.key_frame = pic_out.i_type == X264_TYPE_IDR;
x4->out_pic.key_frame = pic_out.b_keyframe;
x4->out_pic.quality = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA;
return bufsize;
......@@ -208,8 +208,8 @@ static av_cold int X264_init(AVCodecContext *avctx)
x4->params.i_height = avctx->height;
x4->params.vui.i_sar_width = avctx->sample_aspect_ratio.num;
x4->params.vui.i_sar_height = avctx->sample_aspect_ratio.den;
x4->params.i_fps_num = avctx->time_base.den;
x4->params.i_fps_den = avctx->time_base.num;
x4->params.i_fps_num = x4->params.i_timebase_den = avctx->time_base.den;
x4->params.i_fps_den = x4->params.i_timebase_num = avctx->time_base.num;
x4->params.analyse.inter = 0;
if (avctx->partitions) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册