diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2015-07-17 21:21:03 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-07-17 21:21:03 +0200 |
commit | e56f14659f580954626e8c1660771c593ecd74fa (patch) | |
tree | c2c0eeb1f93092778165d4812316df3df2d65ff8 /libavcodec/libx264.c | |
parent | 4c7c0d37e5c2ad5b046d1f543e47850c8b94403d (diff) | |
parent | e1319aa1c1be9b64117c19170344fb78841dd67c (diff) | |
download | ffmpeg-e56f14659f580954626e8c1660771c593ecd74fa.tar.gz |
Merge commit 'e1319aa1c1be9b64117c19170344fb78841dd67c'
* commit 'e1319aa1c1be9b64117c19170344fb78841dd67c':
libx264: Add support for the MPEG2 encoder
Conflicts:
configure
libavcodec/Makefile
libavcodec/libx264.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/libx264.c')
-rw-r--r-- | libavcodec/libx264.c | 63 |
1 files changed, 49 insertions, 14 deletions
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 4f34d065a5..4487fef736 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -384,7 +384,14 @@ static av_cold int X264_init(AVCodecContext *avctx) if (avctx->global_quality > 0) av_log(avctx, AV_LOG_WARNING, "-qscale is ignored, -crf is recommended.\n"); +#if CONFIG_LIBX262_ENCODER + if (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO) { + x4->params.b_mpeg2 = 1; + x264_param_default_mpeg2(&x4->params); + } else +#else x264_param_default(&x4->params); +#endif x4->params.b_deblocking_filter = avctx->flags & CODEC_FLAG_LOOP_FILTER; @@ -842,20 +849,6 @@ static const AVOption options[] = { { NULL }, }; -static const AVClass x264_class = { - .class_name = "libx264", - .item_name = av_default_item_name, - .option = options, - .version = LIBAVUTIL_VERSION_INT, -}; - -static const AVClass rgbclass = { - .class_name = "libx264rgb", - .item_name = av_default_item_name, - .option = options, - .version = LIBAVUTIL_VERSION_INT, -}; - static const AVCodecDefault x264_defaults[] = { { "b", "0" }, { "bf", "-1" }, @@ -887,6 +880,21 @@ static const AVCodecDefault x264_defaults[] = { { NULL }, }; +#if CONFIG_LIBX264_ENCODER +static const AVClass x264_class = { + .class_name = "libx264", + .item_name = av_default_item_name, + .option = options, + .version = LIBAVUTIL_VERSION_INT, +}; + +static const AVClass rgbclass = { + .class_name = "libx264rgb", + .item_name = av_default_item_name, + .option = options, + .version = LIBAVUTIL_VERSION_INT, +}; + AVCodec ff_libx264_encoder = { .name = "libx264", .long_name = NULL_IF_CONFIG_SMALL("libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), @@ -918,3 +926,30 @@ AVCodec ff_libx264rgb_encoder = { .defaults = x264_defaults, .pix_fmts = pix_fmts_8bit_rgb, }; +#endif + +#if CONFIG_LIBX262_ENCODER +static const AVClass X262_class = { + .class_name = "libx262", + .item_name = av_default_item_name, + .option = options, + .version = LIBAVUTIL_VERSION_INT, +}; + +AVCodec ff_libx262_encoder = { + .name = "libx262", + .long_name = NULL_IF_CONFIG_SMALL("libx262 MPEG2VIDEO"), + .type = AVMEDIA_TYPE_VIDEO, + .id = AV_CODEC_ID_MPEG2VIDEO, + .priv_data_size = sizeof(X264Context), + .init = X264_init, + .encode2 = X264_frame, + .close = X264_close, + .capabilities = CODEC_CAP_DELAY | CODEC_CAP_AUTO_THREADS, + .priv_class = &X262_class, + .defaults = x264_defaults, + .pix_fmts = pix_fmts_8bit, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, +}; +#endif |