summaryrefslogtreecommitdiff
path: root/vpxenc.c
AgeCommit message (Collapse)Author
2016-05-10Add VP9 encoder API for level specification.hui su
Add control API VP9E_SET_TARGET_LEVEL that allows the encoder to control the output bitstream level and/or keep level related statistics. Usage: 255 do not care about level (default) 0 keep level related stats only 10 target for level 1 11 target for level 1.1 . . . 62 target for level 6.2 Usage for vpxenc: --target-level=0/255/10/11... Change-Id: I31d1aeca19358b893e7577b4e63748c8e614034a
2016-04-25TODO cleanup: s/EbmlGlobal/WebmOutputContext/Vignesh Venkatasubramanian
This brings the struct's name in line with WebmInputContext. Change-Id: I1a1c7ae60b006ae5de8253177d6d996f5867866d
2016-03-22Prevent encoder crash caused by row tile dependenciesYunqing Wang
In multi-thread case, the encoder may crash if using encoder option tile-rows > 0. To prevent that, force tile-rows=0 in this situation. This is a workaround for WebM issue 1095: https://bugs.chromium.org/p/webm/issues/detail?id=1095 The further fix can be done by adding synchronizations after a tile row is encoded. But this will hurt multi-threaded encoder performance. So, it is recommended to use tile-rows=0 while encoding with threads > 1. Change-Id: I656cbcc200f8d0410d09530e7981ad8f32fe7bc9
2016-02-25vp9: set kf_max_dist to a reasonable default (128)James Zern
the same as vp8, with the same reasoning from: 2a0d7b1 Reduce the default kf_max_dist to 128. see also: https://trac.ffmpeg.org/ticket/4904 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815673 + restore vpxenc behavior of taking the library default rather than forcing 5s This change also exposes an issue with one-pass svc in cbr mode, keep the old default in datarate_test.cc for now. Change-Id: Id6d1244f42490b06fefc1a7b4e12a423a1f83e88
2016-02-11vpxenc: quiet unused param warningJames Zern
Change-Id: Ib6ed1b8c03f6c269f8d667b21b895b35363cee9e
2016-02-02Add high bit depth args to arg listhui su
So that their usage info. will show up with --help. Change-Id: I8542240dcc98e8be29ac63d081f5abb932627cbf
2016-01-18Use input framerate as timebase if none was explicitly specified.Ronald S. Bultje
After patch: $ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30 $ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null - [..] [Parsed_psnr_0 @ 0x7f8913c21e40] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271 Before patch: $ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30 $ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null - [..] [Parsed_psnr_0 @ 0x7fbdaac22780] PSNR y:27.427366 u:41.505376 v:36.853477 average:28.990890 min:22.219454 max:52.509271 $ ffmpeg -i x.ivf -f rawvideo x.yuv $ ffmpeg -f rawvideo -vcodec rawvideo -video_size 352x240 -framerate 29.97 -i x.yuv -i tennis_sif.y4m -lavfi psnr -f null - [..] [Parsed_psnr_0 @ 0x7fadf9e013a0] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271 Change-Id: Ifac2d6c2ff8379b2d318fe5cfe4be0bf1bc9f27f
2016-01-13Adding an aq mode for 360 videosDebargha Mukherjee
Different quality levels are used for different regions in the frame depending on how far they are vertically from the center. Specifically, three segments are used based on the mi_row index with respect number to the number of mi_rows in the frame. Change-Id: Ifc8b777bc58ea8521dffc4640360c67d99f8d381
2015-12-16vpxenc: don't warn about libwebm availability if writing IVF.Ronald S. Bultje
Change-Id: I1a9635a9948458e6c83f5b58764b7e720d98e2ea
2015-10-29Specify feasible parameter values for lossless modehui su
Change-Id: I53d9719dcb81fa83fe3c920a552db5a0f1cacefa
2015-09-29vpxenc: Allow non i420 input for VP10.Tom Finegan
BUG=https://code.google.com/p/webm/issues/detail?id=1066 Change-Id: I3bd26a516ef3d2742c523af570f639f9312df6df
2015-08-21vpxenc: fix DECODER ifdefJames Zern
CONFIG_VP10_ENCODER -> CONFIG_VP10_DECODER Change-Id: I6f1a798835acc4ef66bd2c5d6ffb02247c74b1d6
2015-08-17create vp10_arg_ctrl_maphui su
Change-Id: Ibe49acb022f1d557ffccb91e7bd2558870ff1a0b
2015-08-17remove unused high-bit-depth args from arg listhui su
Change-Id: I8373a0e980aaaa0d0cab8b2e69d1a897ff5aec2d
2015-08-14Remove vp10's build dependency on vp9Yaowu Xu
CONFIG_VP9_HIGHBITDEPTH is currently used by both vp9 and vp10, but in many place outside vp9/vp10, the macro was used in conjunction of CONFIG_VP9. This created a dependency on vp9 for vp10 to build. This commit removes the dependency by use CONFIG_VP9_HIGHBITDEPTH only in these places. Change-Id: I8cc007fc9cf132394c6498ce6759e606b64a6ad0
2015-08-12Add vpxenc help infoYaowu Xu
1. information on --test-decode 2. vp10 specific parameters, currently shared with vp9 Change-Id: Ida4b691052441e68b9352746988027e5a2a26f48
2015-08-12Fix high bit depth in vp10 codebaseJingning Han
Change-Id: Iacbfac29898ac7954eb6375e83873dbb7390fd47
2015-08-11Fork VP9 and VP10 codebaseJingning Han
This commit folks the VP9 and VP10 codebase and makes libvpx support VP8, VP9, and VP10. Change-Id: I81782e0b809acb3c9844bee8c8ec8f4d5e8fa356
2015-07-06Expose params min-gf-interval/max-gf-intervalDebargha Mukherjee
Adds two new vp9 parameters --min-gf-interval and --max-gf-interval to enable testing based on frequency of alt-ref frames. Also adds a unit-test to test enforcement of min-gf-interval. For both these parameters the default value is 0, which indicates they are picked by the encoder, based on resolution and framerate considerations. If they are greater than zero, the specified parameter is honored. (Additional note by paulwilkins) Note that there is a slight oddity in that key frames are also GFs and considered part of GF only group. However they are treated as not being part of an arf group because for arf groups the previous GF is assumed to be the terminal or overlay frame for the previous group. (end note) Change-Id: Ibf0c30b72074b3f71918ab278ccccc02a95a70a0
2015-06-05vpxenc: relocate vp8/vp9 only optionsJames Zern
move them under their respective config check to avoid some unused variable warnings when disabled Change-Id: Ic5e5280cf1bc1f56e8349676f0bedae4acef34ea
2015-06-05vpxenc: Add support for pixel aspect ratio.Frank Galligan
WebM files will adjust the display width and height according to the input pixel aspect ratio. The default pixel aspect ratio is 1:1. BUG=https://code.google.com/p/webm/issues/detail?id=1005 Change-Id: I23e0a601b7259fa9513cb86110c41b8437769808
2015-06-04Make vp9 the default codec for vpxencYaowu Xu
Change-Id: Ic3b4f3c9a6d8f9b04efb8b5ee080880895063564
2015-05-11vpxenc: make some functions staticJames Zern
silences missing-prototype warnings Change-Id: I641a61b21f9de135e59e3769a2063d5a94f34746
2015-05-11tools_common.h: fix usage_exit() prototypeJames Zern
+ the definitions in the examples silences a missing-prototype warning Change-Id: I7c064cacd6d2073a6107de6c3e2cc46ef8a68411
2015-03-13Provide information on codec controlsYaowu Xu
The commit updates the comments in vp8cx.h to make it clear which codec support each of codec control functions. Change-Id: Ibf876e289d4325bbb61ce19311da60d384624c2f
2015-03-12Rename a vp9 only control with vp9e prefixYaowu Xu
Also updated comments and doc to make it clear that the control is supported in VP9 only. Change-Id: I6f120b65135fc1185695e9e3dc29fbe0d430824b
2015-02-13Remove redundant testAdrian Grange
Change-Id: I11e4fd8dcd44b0475f3bff0545a035feb223ce55
2015-02-10Add --color-space to vpxencYaowu Xu
This enbale the encoder to set color space information for the input video, so it is then coded in the output bitstream. Change-Id: Ife03deab3c762425ccd27c4c190902c4d94a76f4
2015-02-02Require webm when explicitly requestedJohann
https://code.google.com/p/webm/issues/detail?id=906 Change-Id: I72841078ff81152d21d84ccf4d5548e757685a6d
2015-01-14Add encoder control for setting color spaceYaowu Xu
This commit adds encoder side control for vp9 to set color space info in the output compressed bitstream. It also amends the "vp9_encoder_params_get_to_decoder" test to verify the correct color space information is passed from the encoder end to decoder end. Change-Id: Ibf5fba2edcb2a8dc37557f6fae5c7816efa52650
2014-12-17Corrected value range of --cpu-used for vp9Yaowu Xu
This commit removes undefined value options of cpu-used for VP9 and changed vpxenc prompt to reflect the usable range of [-8,8] Change-Id: Ib80fef3dbb6ec9aabac45ed13e8ab6fbaf94f55e
2014-12-16Silence -Werror=unused-parameterJohann
Cast away remaining issues so that new ones don't get lost in the noise. Change-Id: Iacd6999b0686ce80f9835730d68db6382690fa92
2014-12-03Various updates to vp8.Marco
Change-Id: Icc7a816491897107764e4c936288e9000e6319b8
2014-10-27Add a new control of golden frame boost in CBR modeYaowu Xu
0 means that golden boost is off, and uses average frame target rate, a non-zero number means the percentage of boost over average frame bitrate is given initially to golden frames in CBR mode. Change-Id: If4334fe2cc424b65ae0cce27f71b5561bf1e577d
2014-10-24Add a new control of max bitrate for inter frameYaowu Xu
Change-Id: I205de3611622cff7f751ea8baf9f82784581730a
2014-10-13Resolves some lint errorsDeb Mukherjee
And also fixes some style consistency issues. Change-Id: I3dc6d44e17d2d6075dc9b02c4255a7395046c5e0
2014-10-08Fixes naming bug from previous highbitdepth patchDeb Mukherjee
Change-Id: Ife939930309ceea730dd5df594b8f36e6644bf36
2014-10-08Refactoring of highbitdepth bitshift operationsDeb Mukherjee
Moves the high bitdepth bit-shift operations to tools_common.c Change-Id: Ifab91574362609cd224d2d6bae5fde00652eb3e4
2014-10-03Remove experimental-bitstream flag for profiles>0Deb Mukherjee
Profiles 1-3 are stable enough that we can remove the experimental bitstream commandline option. Change-Id: Id2a64a08192d7eac6c45384ee34196330351c6d8
2014-10-01Adds support of 440 content.Deb Mukherjee
Adds enums and corresponding vpx level code. Change-Id: Ia402d47490a4466988d7edc6b7e3e5163f20a381
2014-10-01High-bitdepth bugfixesDeb Mukherjee
Miscellaneous bug-fixes for high bitdepth functionality. With this patch, high bit-depth profiles become mostly functional, except for an intermittent assert failure issue that is being tracked. Change-Id: I6a7fcbdcf1e5b09842e88535f8442d2e1230748c
2014-09-12Change the control function of VP9 denoiser.JackyChen
Change from VP8E_SET_NOISE_SENSITIVITY to VP9E_SET_NOISE_SENSITIVITY Change-Id: Ia210a7029b26924e30973f0f9798a338e0412407
2014-09-04Fix a visual studio warningYaowu Xu
Change-Id: I7f935e61c8c0ade7893a5212701f07bb346d78cb
2014-09-02Adds config opt for highbitdepth + misc. vpxDeb Mukherjee
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles. Also includes most vpx level high bit-depth functions. However encode/decode in the highbitdepth profiles will not work until the rest of the code is in place. Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
2014-08-28Merge "Renaming vpxenc option from frame_boost to frame-boost."Dmitry Kovalev
2014-08-28Adding several vpxenc parameter ranges to help output.Dmitry Kovalev
Change-Id: Iec1a00203930a539ed584961aed4b2bfd7488255
2014-08-25Renaming vpxenc option from frame_boost to frame-boost.Dmitry Kovalev
We use dashes, no underscores. Change-Id: I423eee946d10731856e15591eb6e9e4628e3ee6c
2014-08-21vpxenc.c : static warnings cleanoutJim Bankoski
Change-Id: Ia55317606c78a9d984db0321ef142548d20b64bc 1: dereference of global->codec checked 2: warning fails to recognize fatal(xxx) as exit or return 3: ctrl_args_map can be null 4: streams can be null
2014-08-15vpxenc: fix compile with --disable-libyuvJames Zern
Change-Id: I13d975d1f0e598e498798e4f33b06483f3a41130
2014-08-06Add tune-content command line optionAlex Converse
Change-Id: I3793b54ad432e46bcdb2dcc7adc0e15fa6deec47