Commit Graph

138 Commits

Author SHA1 Message Date
Anton Khirnov
06484d0b8a libx264: implement encode2(). 2012-02-08 20:59:07 +01:00
Anton Khirnov
05d699222d libx264: split extradata writing out of encode_nals().
This is done in preparation for the following patch.
2012-02-08 20:58:48 +01:00
Anton Khirnov
e15e2a6d2a libx264: fix indentation. 2012-02-02 22:23:17 +01:00
Anton Khirnov
7232bfbd93 lavc: remove disabled FF_API_X264_GLOBAL_OPTS cruft. 2012-01-27 10:38:33 +01:00
Martin Storsjö
57facb73ab libx264: Don't leave max_b_frames as -1 if the user didn't set it
max_b_frames is initialized to -1 for libx264, to allow
distinguishing between an explicit user set 0 and a default not
touched 0 (see bb73cda2).

If max_b_frames is left as -1, this affects dts generation (where
expressions like max_b_frames != 0 are used), so make sure it is
left at the default 0 after the libx264 init function returns.

This avoids unnecessarily producing dts != pts when using
profile=baseline.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-01-14 02:08:42 +02:00
Janne Grunau
b4d44a45f9 threads: introduce CODEC_CAP_AUTO_THREADS and add it to libx264
Some external codecs have their own code to determine the best number
of threads. This number is not necessary the number of cpu cores.
Thread_count will be only 0 if the codec has CODEC_CAP_AUTO_THREADS.
2012-01-01 14:37:37 +01:00
Anton Khirnov
145f741e11 AVOptions: rename FF_OPT_TYPE_* => AV_OPT_TYPE_* 2011-10-12 16:51:16 +02:00
Anton Khirnov
46c3c53bae libx264: support yuv422/444 output. 2011-10-12 08:27:36 +02:00
Anton Khirnov
d97efd7f87 libx264: support 9- and 10-bit output. 2011-10-06 09:16:06 +02:00
Luca Barbato
3a78fb57de libx264: introduce slice-max-size option
Yet another option useful for low latency streaming.
2011-09-16 07:56:17 -07:00
Anton Khirnov
0962f23b35 libx264: fix setting some more parameters
Specifically, trellis, nr, me_range, me_method, subq, b_strategy,
keyint_min, chroma_me and coder.
Change their defaults to -1 and apply them after
x264_param_default_preset() if the user explicitly set them.
2011-09-07 10:36:15 +02:00
Andrej Peterka
2bb5d637fc libx264: fix setting the H.264 level
Move setting it after x264_param_default_preset()

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-07 09:16:06 +02:00
Anton Khirnov
9c684feadc libx264: add 'direct-pred' private option
Deprecate AVCodecContext.directpred
2011-09-07 07:27:55 +02:00
Anton Khirnov
0635a8aa21 libx264: add 'partitions' private option
Deprecate AVCodecContext.partitions.
2011-09-07 07:27:18 +02:00
Anton Khirnov
7042337673 libx264: add 'cplxblur' private option
Deprecate AVCodecContext.complexityblur
2011-09-06 21:03:41 +02:00
Anton Khirnov
71b5f4427b libx264: add 'deblock' private option
Deprecate AVCodecContext.deblockalpha/deblockbeta
2011-09-06 21:02:45 +02:00
Anton Khirnov
f83c45183e libx264: add 'b-bias' private option
Deprecate AVCodecContext.bframebias.
2011-09-06 20:14:35 +02:00
Anton Khirnov
bb73cda2f6 libx264: fix setting some options.
Specifically: gop_size, max_b_frames, scenechange_threshold, qmin, qmax,
max_qdiff, qblur, qcompress and refs.

Change their default values to -1 and only use them if the user
explicitly set them. Otherwise x264 defaults are used.

Move setting those options after x264_param_default_preset(), so they
don't get overwritten by it.
2011-09-06 20:13:28 +02:00
Anton Khirnov
d8dee0e7bd libx264: remove useless assignment
priv_data is memset to 0.
2011-09-06 20:13:11 +02:00
Anton Khirnov
1440037411 libx264: use X264_THREADS_AUTO constant instead of 0. 2011-09-01 10:12:30 +02:00
Anton Khirnov
5d06f15235 libx264: set default thread count to 0 (auto) 2011-08-31 17:39:13 +02:00
Anton Khirnov
0dc5e12f1e libx264: add 'mbtree' private option.
Deprecate CODEC_FLAG2_MBTREE
2011-08-31 13:24:02 +02:00
Anton Khirnov
38934f19fe libx264: add 'psy' private option.
Deprecate CODEC_FLAG2_PSY
2011-08-31 13:23:37 +02:00
Anton Khirnov
cf90c5d0e0 libx264: add 'aud' private option.
Deprecate CODEC_FLAG2_AUD.
2011-08-31 10:26:11 +02:00
Anton Khirnov
3b82aeeec0 libx264: add 'fast-pskip' private option.
Deprecate CODEC_FLAG2_FASTPSKIP.
2011-08-31 10:25:54 +02:00
Anton Khirnov
373257fa79 libx264: add '8x8dct' private option.
Deprecate CODEC_FLAG2_8X8DCT.
2011-08-31 10:25:34 +02:00
Anton Khirnov
eab21c32e3 libx264: add 'mixed-refs' private option.
Deprecate CODEC_FLAG2_MIXED_REFS.
2011-08-31 10:25:06 +02:00
Anton Khirnov
0f29699db7 libx264: add 'weightb' private option.
Deprecate CODEC_FLAG2_BPYRAMID.
2011-08-31 10:24:56 +02:00
Anton Khirnov
34dda1251d libx264: add 'b-pyramid' private option.
Deprecate CODEC_FLAG2_BPYRAMID.
2011-08-31 10:24:17 +02:00
Anton Khirnov
5d4a1048ee libx264: add 'intra-refresh' private option.
Deprecate CODEC_FLAG2_INTRA_REFRESH.
2011-08-31 10:23:26 +02:00
Anton Khirnov
faaecd4708 libx264: add 'ssim' private option.
Deprecate CODEC_FLAG2_SSIM.
2011-08-31 10:23:03 +02:00
Anton Khirnov
3b81636f33 libx264: make options compatible with x264
Replace '_' with '-', merge psy-trellis into psy-rd and rename cqp->qp
Also fix typo pdy-rd -> psy-rd
2011-08-31 10:21:36 +02:00
Anton Khirnov
4ae30cac22 libx264: add 'crf_max' private option.
Deprecate corresponding global option.
2011-08-24 14:33:40 +02:00
Anton Khirnov
c5dd0bc4ca libx264: add 'weightp' private option.
Deprecate corresponding global option.
2011-08-24 14:32:24 +02:00
Anton Khirnov
d4b9671318 libx264: add 'rc_lookahead' private option.
Deprecate corresponding global option.
2011-08-24 14:31:55 +02:00
Anton Khirnov
2a44a8f609 libx264: add 'psy_trellis' private option.
Deprecate corresponding global option.
2011-08-24 14:31:07 +02:00
Anton Khirnov
93e623c642 libx264: add 'psy_rd' private option.
Deprecate corresponding global option.
2011-08-24 14:30:25 +02:00
Anton Khirnov
5c75b2a0b7 libx264: add 'aq_strength' private option.
Deprecate corresponding global option.
2011-08-24 14:30:00 +02:00
Anton Khirnov
85254fcb46 libx264: add 'aq_mode' private option.
Deprecate corresponding global option.
2011-08-24 14:28:40 +02:00
Anton Khirnov
9d508e4914 libx264: add 'cqp' private option.
Deprecate corresponding global option.
2011-08-24 14:28:07 +02:00
Anton Khirnov
d5dc8cc297 libx264: add 'crf' private option.
Deprecate corresponding global option.

Ideally all x264 private options should be generated automatically, but
x264 doesn't provide the API for this yet.
2011-08-24 14:26:12 +02:00
Anton Khirnov
ae60927aef libx264: only use ABR mode when the user explicitly set bitrate. 2011-08-22 07:17:39 +02:00
Anton Khirnov
03eff2bf43 libx264: use medium preset by default. 2011-08-22 07:17:38 +02:00
Reinhard Tartler
69c4bee8fa libx264: Include hint for possible values for configuring libx264
The output of the x264 commandline tool contains the most uptodate
description of the possible values for the -preset, -tune and -profile
options.
2011-08-12 14:09:59 +02:00
Baptiste Coudurier
5caa2de19e libx264: do not set pic quality if no frame is output
Avoids uninitialized reads.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-08-08 14:33:09 +02:00
Baptiste Coudurier
07a227b432 libx264: add preset, tune, profile and fastfirstpass private options
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-08-08 14:33:09 +02:00
Jindrich Makovicka
e25c67108a libx264: handle closed GOP codec flag
Also update libx264 presets to keep closed gop as default.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-05-17 23:01:42 +02:00
Stefano Sabatini
975a1447f7 Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-05-02 12:18:44 +02:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Jason Garrett-Glaser
f7f8120fb9 Fix broken vbv_buffer_init handling in libx264.c
Due to being pants-on-head retarded, libavcodec defaults this to zero, which
results in broken output.  This didn't affect ffmpeg.c, which sets it itself,
but caused problems for other calling apps using VBV.
2011-02-08 15:59:27 -08:00
Diego Elio Pettenò
d36beb3f69 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:45 +00:00
Marco Gittler
b09f548285 Pass field order flag to libx264
Signed-off-by: Jason Garrett-Glaser <jason@x264.com>
2011-01-25 18:07:34 -08:00
Jason Garrett-Glaser
3cf8db9447 Add fullrange support to libx264.c x264 interface
Originally committed as revision 25904 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-07 09:51:27 +00:00
Jason Garrett-Glaser
2c5168afed Remove bitrate tolerance from libx264 interface
Nobody ever uses it correctly, and ffmpeg sets it incorrectly, so we'll just
leave it out.

Originally committed as revision 25720 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-11 14:34:27 +00:00
Nicolas George
3ab354d777 Make libx264 take the pict_type input parameter into account,
thus making forced key frames work.

Patch by Nicolas George, nicolas d george a normalesup d org

Originally committed as revision 25567 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-25 14:40:00 +00:00
James Zern
2aa72ecccc Add new -slices option and use it for libvpx and libx264.
Patch by James Zern, jzern google

Originally committed as revision 25551 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-22 18:09:14 +00:00
Jason Garrett-Glaser
652d9d24dc Properly initialize x264_picture_t in libx264.
Bump libx264 version requirement accordingly.

Originally committed as revision 23430 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-02 20:05:27 +00:00
Baptiste Coudurier
d545fa56f1 fix x264 encoding when delay is > number of input frames
Originally committed as revision 23197 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-19 20:48:29 +00:00
Jason Garrett-Glaser
e8c7fca90c Add intra refresh and crf-max support to the libavcodec libx264 wrapper.
Minor version bump.

Originally committed as revision 23038 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-06 22:38:18 +00:00
Jason Garrett-Glaser
dbb4f0515f vertical align in libx264.c
Originally committed as revision 22915 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-19 21:20:20 +00:00
Takashi Mochizuki
d749da7e8b Fix typo: CODEC_FLAG2_SSIM is in flags2, not in flags.
Patch by Takashi Mochizuki mochi (A) da2 (.) so (dash) net (dot) ne (.) jp

Originally committed as revision 22759 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-01 15:52:50 +00:00
Stefano Sabatini
72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Baptiste Coudurier
f3b3b4895a Enable more libx264 options, aq, psy, rc lookahead and ssim
Originally committed as revision 22670 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-25 19:25:21 +00:00
Jason Garrett-Glaser
76d81909ae 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
2010-01-19 04:00:08 +00:00
Loren Merritt
f543f636a5 revert r20775, because equivalent code has been committed to x264 instead
Originally committed as revision 20783 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-09 00:38:22 +00:00
Jason Garrett-Glaser
2d0cacded7 Boolify options passed to x264.
Originally committed as revision 20775 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-08 20:35:01 +00:00
Erik Slagter
25a42948c6 Add MBtree support for libx264
Patch by Erik Slagter

Originally committed as revision 20774 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-08 20:01:46 +00:00
Jason Garrett-Glaser
096c87f667 Add weightp support in API for libx264.
ffmpeg can encode baseline profile again.

Originally committed as revision 20600 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-24 15:49:34 +00:00
Jason Garrett-Glaser
1953898162 Update libx264.c for x264 API change
Change behavior of b-pyramid option.

Originally committed as revision 20308 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-19 09:35:19 +00:00
Diego Biurrun
8a8720c1bb cosmetics: K&R coding style, prettyprinting
Originally committed as revision 20083 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-29 18:03:30 +00:00
Jason Garrett-Glaser
2d3beedee2 Add support for new x264 API.
Originally committed as revision 19977 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-23 09:03:26 +00:00
Reimar Döffinger
2ba8301769 Mark all pix_fmts and supported_framerates compound literals as const.
Makes no difference for gcc but at least icc can put them in .rodata then.

Originally committed as revision 19789 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-06 16:09:21 +00:00
Jason Garrett-Glaser
fe022ce2f8 Fix libx264.c to not drop SEI userdata from x264 encoder.
Most muxers in ffmpeg ignore the SEI if it is placed in extradata, so instead
it has to be catted to the front of the first video frame.

Originally committed as revision 19310 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-30 23:45:01 +00:00
Ralf Terdic
5c4e97282f Fix mem leak.
Patch by Ralf Terdic contact >AT< jswiff com

Originally committed as revision 15612 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-13 13:47:05 +00:00
Jason Garrett-Glaser
a5d2413345 x264 has removed the b-rdo and bime options, and instead integrated
them into the subme number to attempt to reduce the number of
unnecessary options.  subme now scales up to 9.
Patch by Jason Garett-Glaser %darkshikari A gmail P com%

Originally committed as revision 15523 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-02 19:05:35 +00:00
Baptiste Coudurier
0bc4c436aa sync to latest x264 git, field was renamed
Originally committed as revision 15337 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-16 01:13:55 +00:00
Stefano Sabatini
d4be08e0c9 Make X264_init() no longer assign avctx->rc_eq to libx264's context.
Fix a crash due to X264_init() setting the libx264 rc_eq field to NULL
when rc_eq was not defined. As a consequence rc_eq can no longer be
manually specified and passed to libx264, but this option is going to
be removed from the libx264 public API anyway.

See the thread: "Fix crash in libx264 when rc_eq is not set".

Originally committed as revision 15029 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-29 17:37:32 +00:00
Stefano Sabatini
fe4bf37455 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
Originally committed as revision 13759 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-12 21:50:13 +00:00
Baptiste Coudurier
89223ef698 add esa/dia compat me options and new tesa for libx264
Originally committed as revision 13660 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-05 01:57:35 +00:00
Baptiste Coudurier
d9e5c9b718 x264 interlaced encoding option
Originally committed as revision 13656 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-04 00:56:36 +00:00
Baptiste Coudurier
682a48a107 cleanup, remove useless parentheses
Originally committed as revision 13655 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-04 00:44:43 +00:00
Carl Eugen Hoyos
eacced45c4 Replace some occurrences of -1 with PIX_FMT_NONE.
Fixes icc warning #188: enumerated type mixed with another type

Originally committed as revision 13130 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-05-11 22:28:43 +00:00
Stefano Sabatini
6140271f54 Add some long names to AVCodec declarations.
patch by Stefano Sabatini, stefano.sabatini-lala poste it

Originally committed as revision 13017 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-29 07:24:44 +00:00
Zuxy Meng
98a6fff98c Apply 'cold' attribute to init/uninit functions in libavcodec
Originally committed as revision 12525 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-03-21 03:11:20 +00:00
Benoit Fouet
3709f0d706 map warning levels between libx264 and libavutil
Originally committed as revision 9607 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-12 08:22:28 +00:00
Måns Rullgård
f225016296 update my email address
Originally committed as revision 9489 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-05 20:08:51 +00:00
Diego Biurrun
1cc60c47c5 Consistent naming and lib prefixes for x264, xvid and mp3lame within the code.
Originally committed as revision 9230 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-06 08:51:41 +00:00
Diego Biurrun
6f1af73557 Give all wrappers for external libraries names starting with lib.
Originally committed as revision 9226 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-06 00:14:18 +00:00