commit fcf70c2f9853d74ac077a7af016e28eef05e2f5a Author: Yusuke Nakamura Date: Sat Jan 30 13:53:01 2010 -0800 Fix regression in r1406 Bitrate was printed incorrectly for some input framerates. x264.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 3f3343abfba8a2377a66b6a7f7a8c564ade86bc6 Author: Loren Merritt Date: Sat Jan 30 12:01:51 2010 -0800 Fix log2f detection, include order, some gcc warnings r1413 caused crashes on any system with malloc.h. Also switch to std=c99 or std=gnu99 if supported by the compiler. Fix visualize support. Makefile | 6 +++--- common/common.c | 10 +++++----- common/common.h | 2 +- common/cpu.c | 8 ++++---- common/osdep.h | 2 ++ configure | 22 +++++++++++++++------- encoder/encoder.c | 8 ++++---- encoder/ratecontrol.c | 2 +- output/flv.c | 2 +- 9 files changed, 36 insertions(+), 26 deletions(-) commit 63b74d874328e630ecb7eaa37cf780c45b992f0e Author: Jason Garrett-Glaser Date: Fri Jan 29 11:01:44 2010 -0800 Fix abstraction violations in x264.c No calling application--not even x264cli--should ever look inside x264_t. x264.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) commit 2d2c8616c03586575529bb19cacfd8b6b01c3508 Author: Diogo Franco Date: Thu Jan 28 17:28:03 2010 -0800 Move -D CFLAGS to config.h Makefile | 12 +++++----- common/common.h | 1 - common/osdep.h | 2 + configure | 60 ++++++++++++++++++++++++++++++------------------------ 4 files changed, 41 insertions(+), 34 deletions(-) commit 3838c301e1ee1718e6f1e037d21bb21525b3eab6 Author: Steven Walters Date: Thu Jan 28 17:26:40 2010 -0800 Fix stat with large file support common/common.h | 1 - common/osdep.h | 1 + 2 files changed, 1 insertions(+), 1 deletions(-) commit 6bd24a94c06ca81baa0156ff418be247e658a28f Author: Diogo Franco Date: Wed Jan 27 20:29:50 2010 -0800 Implement ffms2 version check Depends on ffms2 version 2.13.1 (r272). Tries pkg-config's built-in version checking first. Uses only the preprocessor to avoid cross-compilation issues. configure | 20 +++++++++++++++++++- 1 files changed, 19 insertions(+), 1 deletions(-) commit 38cfabe33e17940870099fcf5d60daae080a3880 Author: Jason Garrett-Glaser Date: Wed Jan 27 19:41:27 2010 -0800 Fix implicit CBR message to only print when in ABR mode Also make it print outside of debug mode. encoder/ratecontrol.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) commit d355878be5616dc871058cb931b281b1d5cfbfbc Author: Diogo Franco Date: Wed Jan 27 13:11:08 2010 -0800 Add configure check for log2 support Some incredibly braindamaged operating systems, such as FreeBSD, blatantly ignore the C specification and omit certain functions that are required by ISO C. log2f is one of these functions that periodically goes missing in such operating systems. common/osdep.h | 4 ++++ configure | 4 ++++ 2 files changed, 8 insertions(+), 0 deletions(-) commit 616900186aa2bf2e04205a010daaa2776bc0944a Author: Diogo Franco Date: Wed Jan 27 10:12:42 2010 -0800 Add config.log support Now, if configure fails, you'll be able to see why. .gitignore | 1 + configure | 106 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 89 insertions(+), 18 deletions(-) commit f20aace8d4fe7e35df9258e4c5fe773d08550f34 Author: Diogo Franco Date: Wed Jan 27 09:26:35 2010 -0800 Fix cross-compiling with lavf, add support for ffms2.pc Also update configure script to work with newest ffms. configure | 52 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 30 insertions(+), 22 deletions(-) commit d81c26db6909e2e3d9b85b21a2618287dce29575 Author: Yusuke Nakamura Date: Tue Jan 26 16:01:54 2010 -0800 Improve DTS generation, move DTS compression into libx264 This change fixes some cases in which PTS could be less than DTS. Additionally, a new parameter, b_dts_compress, enables DTS compression. DTS compression eliminates negative DTS (i.e. initial delay) due to B-frames. The algorithm changes timebase in order to avoid duplicating DTS. Currently, in x264cli, only the FLV muxer uses it. The MP4 muxer doesn't need it, as it uses an EditBox instead. common/common.c | 1 + common/common.h | 5 ++++ common/frame.c | 2 +- common/frame.h | 2 +- encoder/encoder.c | 39 ++++++++++++++++++++++++++++++++- encoder/slicetype.c | 4 +- output/flv.c | 58 ++++++++++++++++---------------------------------- output/mp4.c | 28 ++---------------------- x264.c | 10 ++++++++- x264.h | 5 +++- 10 files changed, 82 insertions(+), 72 deletions(-) commit 3659b8124a809c39d61a28bdf1b235e81c02b06d Author: Anton Mitrofanov Date: Tue Jan 26 11:41:18 2010 -0800 Various threading-related cosmetics Simplify a lot of code and remove some unnecessary variables. common/common.h | 14 +++----- encoder/analyse.c | 12 +++--- encoder/encoder.c | 83 +++++++++++++++++++++++++++---------------------- encoder/ratecontrol.c | 22 ++++++------ 4 files changed, 68 insertions(+), 63 deletions(-) commit 0f985245093047980c1b6148562222265b230dff Author: Jason Garrett-Glaser Date: Mon Jan 25 11:23:55 2010 -0800 Hardcode the bs_t in cavlc.c; passing it around is a waste Saves ~1.5kb of code size, very slight speed boost. encoder/cavlc.c | 143 ++++++++++++++++++++++++++------------------------ encoder/encoder.c | 2 +- encoder/macroblock.h | 2 +- encoder/rdo.c | 6 +-- 4 files changed, 79 insertions(+), 74 deletions(-) commit 00f933f05df722e4b133d2c57f1f45dba285430c Author: David Conrad Date: Sat Jan 23 18:05:25 2010 -0800 Fix lavf input with pipes and image sequences x264 should now be able to encode from an image sequence using an image2-style formatted string (e.g. file%02d.jpg). x264.c | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-) commit 1a1b356a2996629d2c5ad2b568df8df9bff32954 Author: Jason Garrett-Glaser Date: Thu Jan 21 23:07:11 2010 -0800 Fix bitstream alignment with multiple slices Broke multi-slice encoding on CPUs without unaligned access. New system simply forces a bitstream realignment at the start of each writing function and flushes when it reaches the end. common/bs.h | 14 +++++++++++++- encoder/encoder.c | 2 +- encoder/set.c | 8 ++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) commit 90a249aa40deec9234f9ea7554deb8a418183094 Author: Jason Garrett-Glaser Date: Thu Jan 21 10:00:07 2010 -0800 Merge nnz_backup with scratch buffer Slightly less memory usage. common/common.h | 1 - common/frame.c | 5 +++-- common/macroblock.c | 2 -- encoder/encoder.c | 4 +++- 4 files changed, 6 insertions(+), 6 deletions(-) commit 20fa784d2d9e0d5e524d4e3834699e9ff9b57511 Author: Steven Walters Date: Wed Jan 20 09:00:54 2010 -0800 Use cross-prefix properly with pkg-config for cross-compiling configure | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 952aa77c8c7980614cbaa4800e865f4f6a701043 Author: Jason Garrett-Glaser Date: Mon Jan 18 20:29:33 2010 -0800 Various performance optimizations Simplify and compact storage of direct motion vectors, faster --direct auto. Shrink various arrays to save a bit of cache. Simplify and reorganize B macroblock type writing in CABAC. Add some missing ALIGNED macros. common/common.h | 8 +++--- common/macroblock.c | 62 +++++++++++++++++++++++++++---------------------- common/macroblock.h | 4 --- encoder/analyse.c | 20 ++++++++++++---- encoder/cabac.c | 37 +++++++++++++++-------------- encoder/cavlc.c | 2 +- encoder/macroblock.h | 2 +- encoder/me.c | 4 +- 8 files changed, 76 insertions(+), 63 deletions(-) commit bef4e3e601970c9bfd0c94d6621f100cf015e1f8 Author: Jason Garrett-Glaser Date: Mon Jan 18 15:50:06 2010 -0800 Fix crash on new AMD M300 and similar CPUs Apparently these CPUs have SSE4a, but not misaligned SSE. common/cpu.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) commit 6cb6086269d789a184cb6262fedb8205d821a44f Author: Jason Garrett-Glaser Date: Sun Jan 17 19:11:05 2010 -0500 Fix intra refresh with subme < 6 Also improve the quality of intra masking. encoder/analyse.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) commit cc65eaba97bb46923dec665e5a91855ac1d97dbf Author: Jason Garrett-Glaser Date: Sat Jan 16 20:11:29 2010 -0500 Add support for multiple --tune options Tunes apply in the order they are listed in the case of conflicts. Psy tunings, i.e. film/animation/grain/psnr/ssim, cannot be combined. Also clarify --profile, which forces the limits of a profile, not the profile itself. x264.c | 184 ++++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 105 insertions(+), 79 deletions(-) commit e4acb95b119743cc933ff3c8f0410aa7ffe20ed2 Author: Jason Garrett-Glaser Date: Sat Jan 16 02:50:15 2010 -0500 Various bugfixes and tweaks in analysis Fix the oldest-ever bug in x264: b16x8 analysis used the wrong width for predict_mv. Fix cache_ref calls for slightly better MV prediction in bsub16x16 analysis. Make B-partition analysis consider reference frame costs. Various other minor changes. Overall very slightly improved mode decision and motion search in B-frames. encoder/analyse.c | 62 ++++++++++++++++++++++++++++------------------------ encoder/me.c | 2 +- 2 files changed, 34 insertions(+), 30 deletions(-) commit 6662db34e524a6ff1f935cce779473d3882d046c Author: Loren Merritt Date: Thu Jan 14 14:52:12 2010 -0500 More --me tesa optimizations encoder/me.c | 30 ++++++++++++++++++++---------- encoder/me.h | 2 +- 2 files changed, 21 insertions(+), 11 deletions(-) commit 7ff686756e042f625fae904d9e059cd489406ed8 Author: Jason Garrett-Glaser Date: Thu Jan 14 10:39:10 2010 -0500 Fix typo in configure configure | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 1d3ab22126c1369a75fc8d5b933159c4a53f35c9 Author: Jason Garrett-Glaser Date: Thu Jan 14 00:07:30 2010 -0500 Make --fps force CFR mode x264.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 3d0f1108f982867dde5079bbbf90553487de2ed0 Author: Jason Garrett-Glaser Date: Wed Jan 13 20:21:31 2010 -0500 Eliminate intentional array overflow in quant matrix handling While it probably never caused problems, it was incredibly ugly and evil. common/set.c | 38 +++++++++++++++++++++----------------- 1 files changed, 21 insertions(+), 17 deletions(-) commit 918ca1e55351446478d4dcee5936c5843bf79925 Author: Jason Garrett-Glaser Date: Wed Jan 13 20:16:13 2010 -0500 Faster --me tesa encoder/me.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) commit d26e79d982ec6d0aea40e6d0b21ee799994007ca Author: Anton Mitrofanov Date: Wed Jan 13 15:44:00 2010 -0500 Fix static pthreads + dynamically linked x264 on win32 Add the necessary static pthread initialization code to a new DLLmain function. Makefile | 17 +++++++++++++---- x264dll.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 4 deletions(-) commit eda7bf0d97786c04a8563606fd43eab4494490d6 Author: Steven Walters Date: Tue Jan 12 22:55:10 2010 -0500 Add getopt_long to the included getopt.c Fixes option handling on OSs that have a nonworking/missing getopt (e.g. Solaris). extras/getopt.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) commit ecca2f572b584f8f0e006a0f82048e30ada75b9c Author: Jason Garrett-Glaser Date: Tue Jan 12 20:14:35 2010 -0500 Faster psy-trellis init Remove some unncessary zigzags. encoder/analyse.c | 15 ++------------- encoder/rdo.c | 2 +- 2 files changed, 3 insertions(+), 14 deletions(-) commit f6d92e5180bc87747475946efdb888cde254b94f Author: Jason Garrett-Glaser Date: Tue Jan 12 19:19:07 2010 -0500 Simplfy intra mode availability handling Slightly faster, 1.5kb smaller binary size, less code. encoder/analyse.c | 298 +++++++++++++++++------------------------------------ 1 files changed, 97 insertions(+), 201 deletions(-) commit d260e6bf125e2a3b8541bf589c5d41094601fd21 Author: Jason Garrett-Glaser Date: Sun Jan 10 15:14:02 2010 -0500 Fix free callback, add x264_encoder_parameters function x264 would try to use the passed param struct after freeing if the param_free callback was set. Probably didn't cause any issues, as probably no programs used the callback in this location yet. A new x264_encoder_parameters function is now available in the API. This function lets the calling application grab the current state of the encoder's parameters. Use this in x264cli to ensure that the param struct used for set_param is updated with whatever changes x264_encoder_open has made to it. Patch partially by Anton Mitrofanov . encoder/encoder.c | 20 ++++++++++++++------ x264.c | 2 ++ x264.h | 10 +++++++++- 3 files changed, 25 insertions(+), 7 deletions(-) commit 846694224797ade9fe3dc8861d68b56a95af6148 Author: David Conrad Date: Sat Jan 9 01:52:33 2010 -0500 Fix x264 compilation on Apple GCC Apple's GCC stupidly ignores the ARM ABI and doesn't give any stack alignment beyond 4. common/arm/mc-c.c | 3 +++ common/macroblock.c | 2 +- common/osdep.h | 21 +++++++++++++++++---- encoder/analyse.c | 6 +++--- encoder/me.c | 4 ++-- encoder/slicetype.c | 6 +++--- 6 files changed, 29 insertions(+), 13 deletions(-) commit a48a48aea05315bb8944e7e8f92fa2a6e30006a4 Author: Jason Garrett-Glaser Date: Sat Jan 2 03:27:46 2010 -0500 Faster weightp motion search For blind-weight dupes, copy the motion vector from the main search and qpel-refine instead of doing a full search. Fix the p8x8 early termination, which had unexpected results when combined with blind weighting. Overall, marginally reduces compression but should potentially improve speed by over 5%. common/common.h | 1 + encoder/analyse.c | 75 ++++++++++++++++++++++++++++++++++++++++++---------- encoder/encoder.c | 11 ++++--- encoder/me.c | 5 +++ encoder/me.h | 1 + 5 files changed, 73 insertions(+), 20 deletions(-) commit e9f998b97db6e498faa62a60c6fddf3cabfea214 Author: Jason Garrett-Glaser Date: Thu Dec 31 13:45:27 2009 -0500 More correct padding constants for lowres planes Since lowres analysis isn't interlace-aware, we don't need to double the vertical padding for interlaced video. common/frame.c | 4 ++-- encoder/slicetype.c | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) commit 1b68cbd27b24759f64c72effdae42f184a20546e Author: Jason Garrett-Glaser Date: Thu Dec 31 02:57:45 2009 -0500 Fix some invalid reads caught by valgrind Temporal predictor calculation was misled by invalid reference counts for I-frames. encoder/encoder.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) commit 52a4fbe142926435571fbf2fb3d535e8873627d3 Author: Jason Garrett-Glaser Date: Tue Dec 22 18:59:29 2009 -0500 Periodic intra refresh Uses SEI recovery points, a moving vertical "bar" of intra blocks, and motion vector restrictions to eliminate keyframes. Attempt to hide the visual appearance of the intra bar when --no-psy isn't set. Enabled with --intra-refresh. The refresh interval is controlled using keyint, but won't exceed the number of macroblock columns in the frame. Greatly benefits low-latency streaming by making it possible to achieve constant framesize without intra-only encoding. Combined with slice-max size for one slice per packet, tests suggest effective resiliance against packet loss as high as 25%. x264 is now the best free software low-latency video encoder in the world. Accordingly, change the API to add b_keyframe to the parameters present in output pictures. Calling applications should check this to see if a frame is seekable, not the frame type. Also make x264's motion estimation strictly abide by horizontal MV range limits in order for PIR to work. Also fix a major bug in sliced-threads VBV handling. Also change "auto" threads for sliced threads to "cores" instead of "1.5*cores" after performance testing. Also simplify ratecontrol's checking of first pass options. Also some minor tweaks to row-based VBV that should improve VBV accuracy on small frames. common/bs.h | 5 ++ common/common.c | 6 ++- common/common.h | 5 +- common/frame.c | 1 + common/frame.h | 9 +++- encoder/analyse.c | 88 ++++++++++++++++++++++++++++++++---------- encoder/encoder.c | 103 ++++++++++++++++++++++++++++++++++++------------- encoder/lookahead.c | 2 +- encoder/me.c | 12 +++-- encoder/ratecontrol.c | 71 +++++++++++++-------------------- encoder/set.c | 17 ++++++++ encoder/set.h | 1 + encoder/slicetype.c | 52 +++++++++++++++++------- output/flv.c | 2 +- output/matroska.c | 2 +- output/mp4.c | 2 +- x264.c | 2 + x264.h | 7 +++- 18 files changed, 265 insertions(+), 122 deletions(-) commit 8b9dcd8d50be201f1bedc9b19331432969f37d98 Author: Kieran Kunhya Date: Mon Dec 28 10:42:17 2009 -0500 LAVF/FFMS input support, native VFR timestamp handling libx264 now takes three new API parameters. b_vfr_input tells x264 whether or not the input is VFR, and is 1 by default. i_timebase_num and i_timebase_den pass the timebase to x264. x264_picture_t now returns the DTS of each frame: the calling app need not calculate it anymore. Add libavformat and FFMS2 input support: requires libav* and ffms2 libraries respectively. FFMS2 is _STRONGLY_ preferred over libavformat: we encourage all distributions to compile with FFMS2 support if at all possible. FFMS2 can be found at http://code.google.com/p/ffmpegsource/. --index, a new x264cli option, allows the user to store (or load) an FFMS2 index file for future use, to avoid re-indexing in the future. Overhaul the muxers to pass through timestamps instead of assuming CFR. Also overhaul muxers to correctly use b_annexb and b_repeat_headers to simplify the code. Remove VFW input support, since it's now pretty much redundant with native AVS support and LAVF support. Finally, overhaul a large part of the x264cli internals. --force-cfr, a new x264cli option, allows the user to force the old method of timestamp handling. May be useful in case of a source with broken timestamps. Avisynth, YUV, and Y4M input are all still CFR. LAVF or FFMS2 must be used for VFR support. Do note that this patch does *not* add VFR ratecontrol yet. Support for telecined input is also somewhat dubious at the moment. Large parts of this patch by Mike Gurlitz , Steven Walters , and Yusuke Nakamura . Makefile | 16 +- common/common.c | 3 + common/common.h | 2 + common/frame.c | 2 +- common/frame.h | 3 +- configure | 97 ++++++++--- encoder/encoder.c | 18 ++- encoder/set.c | 8 +- encoder/slicetype.c | 11 +- input/avs.c | 28 ++-- input/ffms.c | 247 +++++++++++++++++++++++++++ input/input.h | 29 +++- input/lavf.c | 272 ++++++++++++++++++++++++++++++ input/thread.c | 4 +- input/vfw.c | 125 -------------- input/y4m.c | 31 ++-- input/yuv.c | 24 +++- output/flv.c | 273 +++++++++++++++++------------- output/flv_bytestream.c | 5 +- output/matroska.c | 202 +++++++++------------- output/matroska_ebml.c | 6 +- output/matroska_ebml.h | 2 +- output/mp4.c | 200 +++++++++++++--------- output/output.h | 6 +- output/raw.c | 19 ++- x264.c | 425 ++++++++++++++++++++++++++++++++++------------- x264.h | 8 +- 27 files changed, 1403 insertions(+), 663 deletions(-) commit 27355a2ba90516b0c280e026eb9c35fbf5f27a57 Author: Jason Garrett-Glaser Date: Tue Dec 15 16:59:00 2009 -0800 More help typo fixes x264.c | 15 +++++++-------- 1 files changed, 7 insertions(+), 8 deletions(-) commit b9823cafed9e0cbc887e5fbc27b78a892cb43de1 Author: Loren Merritt Date: Thu Jan 14 03:07:30 2010 +0000 Fix x264_clz on inputs > 1<<31 (though x264 never generates such inputs) common/osdep.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 3feaec244c11ad4496ac4f6a630200a89db2d308 Author: Jason Garrett-Glaser Date: Sun Dec 13 03:16:04 2009 -0800 Don't do sum/ssd analysis if weightp == 1 Typo fixes in comments and help. encoder/encoder.c | 2 +- x264.c | 2 +- x264.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit c9cafc75352f036bdcb90f2a26e7233920567b13 Author: Jason Garrett-Glaser Date: Fri Dec 11 17:22:18 2009 -0800 Fix two bugs in 2-pass ratecontrol last_qscale_for wasn't set during the 2pass init code. abr_buffer was way too small in the case of multiple threads, so accordingly increase its buffer size based on the number of threads. May significantly increase quality with many threads in 2-pass mode, especially in cases with extremely large I-frames, such as anime. encoder/ratecontrol.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) commit 85eb4007f2ed36477b7fdc04ed2d63fbb2b7a0fb Author: Steven Walters Date: Thu Dec 10 19:48:51 2009 -0800 Avisynth-MT and 2.6 compatibility fixes Explain to the user why YV12 conversion is forced with Avisynth 2.6. Fix encoding with Avisynth-MT scripts by inserting the necessary Distributor() call; speeds such scripts back up to expected levels. input/avs.c | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) commit 4322f630325dd8baf48fef45c19789a9d1614c16 Author: Steven Walters Date: Wed Dec 9 16:03:19 2009 -0800 Fix zone parsing on mingw Due to MinGW evidently being in the hands of a pack of phenomenal idiots, MinGW does not have strtok_r, a basic string function. As such, remove the dependency on strtok_r in zone parsing. Previously, using zones for anything other than ratecontrol failed. encoder/ratecontrol.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) commit 28c1d446bc0df176b99a150ca02d91ff7945410c Author: Jason Garrett-Glaser Date: Wed Dec 9 15:03:44 2009 -0800 More lookahead optimizations Under subme 1, don't do any qpel search at all and round temporal MVs accordingly. Drop internal subme with subme 1 to do fullpel predictor checks only. Other minor optimizations. encoder/slicetype.c | 41 +++++++++++++++++++++++++++++------------ 1 files changed, 29 insertions(+), 12 deletions(-) commit 385df7f0103d57198d09a1f76c7289cd0a902ae8 Author: Jason Garrett-Glaser Date: Wed Dec 9 05:56:35 2009 -0800 Various minor missing changes from previous commits Boolify sliced threads too Remove unused constants from dct-a.asm Fix a few typos/minor errors in preset documentation common/x86/dct-a.asm | 9 --------- encoder/encoder.c | 1 + x264.c | 9 +++++---- 3 files changed, 6 insertions(+), 13 deletions(-) commit 65b3d0fd9f8167a6d0772a29e8fcf1a66ee7f8af Author: Jason Garrett-Glaser Date: Thu Dec 10 16:52:39 2009 -0800 Fix regression in direct=auto/temporal in r1364 Bug caused rare race condition in frame reference handling. This resulted in invalid bitstreams in some B-frames and, very rarely, crashes. common/macroblock.c | 25 ++++++++++++++----------- common/macroblock.h | 1 + encoder/encoder.c | 4 +++- 3 files changed, 18 insertions(+), 12 deletions(-) commit ec8e58637b97edaea00f022e11d15ee8a81466ab Author: Jason Garrett-Glaser Date: Tue Dec 8 17:46:55 2009 -0800 Add fast pskip to x264 SEI info header common/common.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 11cfc44b338d914b5ec2337db37ba4d532295e43 Author: Steven Walters Date: Tue Dec 8 11:36:25 2009 -0800 Minor seeking fix with Avisynth input Seeking past the end of the input with --seek would result in the same frame being repeated over and over. input/avs.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) commit de5beaec2078967d08da8ae2483c9f982b0ab07e Author: Jason Garrett-Glaser Date: Tue Dec 8 03:08:17 2009 -0800 Add support for MB-tree + B-pyramid Modify B-adapt 2 to consider pyramid in its calculations. Generally results in many more B-frames being used when pyramid is on. Modify MB-tree statsfile reading to handle the reordering necessary. Make differing keyint or pyramid between passes into a fatal error. encoder/encoder.c | 5 -- encoder/ratecontrol.c | 113 +++++++++++++++++++++++++++++-------------------- encoder/slicetype.c | 65 +++++++++++++++++++++++----- 3 files changed, 120 insertions(+), 63 deletions(-) commit ca1112b373bd6c16a57350913a4a6cc4611b2d16 Author: Jason Garrett-Glaser Date: Mon Dec 7 18:34:05 2009 -0800 Use aliasing-avoidance macros in array_non_zero common/macroblock.h | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) commit 77fc51070b3c916b3b16888e8ead0f3cb3e09eaa Author: Cleo Saulnier Date: Mon Dec 7 12:40:14 2009 -0800 MMX version of 8x8 interlaced zigzag Just as fast as SSSE3 on Nehalem (and faster on Conroe/Penryn), so remove the SSSE3 version. common/dct.c | 4 +- common/x86/dct-a.asm | 126 ++++++++++++++++++++++++++++++-------------------- common/x86/dct.h | 2 +- 3 files changed, 80 insertions(+), 52 deletions(-) commit e8b73a9a4db4dd703528a1eee247b84ac335e395 Author: Jason Garrett-Glaser Date: Mon Dec 7 00:49:41 2009 -0800 Bring back slice-based threading support Enabled with --sliced-threads Unlike normal threading, adds no encoding latency. Less efficient than normal threading, both performance and compression-wise. Useful for low-latency encoding environments where performance is still important, such as HD videoconferencing. Add --tune zerolatency, which eliminates all x264 encoder-side latency (no delayed frames at all). Some tweaks to VBV ratecontrol and lookahead (in addition to those required by sliced threading). Commit sponsored by a media streaming company that wishes to remain anonymous. common/common.c | 3 + common/common.h | 2 + common/macroblock.c | 77 +++++++-------- encoder/analyse.c | 74 ++++++++------- encoder/analyse.h | 1 + encoder/encoder.c | 255 +++++++++++++++++++++++++++++++++++------------- encoder/lookahead.c | 1 + encoder/ratecontrol.c | 85 ++++++++++++++--- encoder/ratecontrol.h | 2 + x264.c | 28 ++++-- x264.h | 3 +- 11 files changed, 366 insertions(+), 165 deletions(-) commit a8f670b66ac89d75ef09ff87c940cfe3b328ad2d Author: Alex Jurkiewicz Date: Mon Dec 7 18:17:29 2009 -0800 Add more detailed help for presets/tunes/profiles Shows what options they represent. x264.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 74 insertions(+), 9 deletions(-) commit e5faf712fccefd1f29319b1547714f3d894e4dba Author: Jason Garrett-Glaser Date: Sat Dec 5 03:19:44 2009 -0800 qpel RD no longer needs mbcmp_unaligned encoder/me.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 733b660f44fa4e8982cb83447f1d2cd7e31b4386 Author: Loren Merritt Date: Wed Dec 9 00:37:09 2009 +0000 ensure that all boolean options are {0,1} so they print consistently in the options SEI encoder/encoder.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) commit 528c100957ae929ae466ec54309cbb1e6193f66e Author: Jason Garrett-Glaser Date: Sat Dec 5 02:27:30 2009 -0800 Actually do r1356 Somehow commit r1356 got lost in the ether. I'm not sure how, but now it's fixed. encoder/me.c | 59 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 41 insertions(+), 18 deletions(-) commit 495177138cdaf8360156f4d3cb45a14f1abf3266 Author: Steven Walters Date: Fri Dec 4 12:17:56 2009 -0800 Remove some unused code from x264.c x264.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) commit 77d0631c35b7e6928759eda0b3d7d229b18f27c9 Author: Jason Garrett-Glaser Date: Thu Dec 3 15:36:52 2009 -0800 SSSE3 version of zigzag_8x8_field Slightly faster interlaced encoding with 8x8dct. Helps most on Nehalem, somewhat disappointing on Conroe/Penryn. common/dct.c | 1 + common/x86/dct-a.asm | 88 ++++++++++++++++++++++++++++++++++++++++++++++++- common/x86/dct.h | 1 + 3 files changed, 88 insertions(+), 2 deletions(-) commit 225d1dcd4973cfb8e2be39dc40da26f869814a62 Author: Jason Garrett-Glaser Date: Wed Dec 2 19:55:45 2009 -0800 Fix crash in interlaced with >8 refs Crash introduced in weightp. common/common.h | 2 +- encoder/encoder.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 4bf27ffa3e5b40d49e201e4e39c4f3b57a84c737 Author: Jason Garrett-Glaser Date: Tue Dec 1 16:15:15 2009 -0800 Significantly faster qpel-RD Cache the results of MC, like in bidir-RD. Slightly changes output due to the necessary reordering of satd/RD calls. 5-10% faster qpel-RD. encoder/macroblock.c | 6 +----- encoder/me.c | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) commit 83bda2ea78c9aa145a8d6fc7cb122ca4439c822d Author: David Conrad Date: Tue Dec 1 12:23:09 2009 -0800 Add x264 prefix to functions with ffmpeg equivalents Not important now, but will be when we add libav* input support. output/flv.c | 114 +++++++++++++++++++++++----------------------- output/flv_bytestream.c | 44 +++++++++--------- output/flv_bytestream.h | 16 +++--- 3 files changed, 87 insertions(+), 87 deletions(-) commit 636f98f1b06cc51da8399e79ce08bab8c56b82b7 Author: Jason Garrett-Glaser Date: Mon Nov 30 01:41:24 2009 -0800 10L in r1353 Broke mp4 output. x264.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 380a201e8e8ba5a13022aeeeaf4b7501e1c79279 Author: Steven Walters Date: Thu Nov 26 22:37:18 2009 -0800 Enhanced Avisynth input support Requires avisynth_c.h from the Avisynth API headers. Reports errors properly from Avisynth script input. Automatically construct input scripts for almost any input file. Tries ffmpegsource2, DSS2, directshowsource, and many other sourcing methods, based on the input file extension. Automatically converts to YV12. Makefile | 8 +- configure | 46 +++-- encoder/encoder.c | 4 +- extras/avisynth_c.h | 661 +++++++++++++++++++++++++++++++++++++++++++++++++++ input/avis.c | 129 ---------- input/avs.c | 305 ++++++++++++++++++++++++ input/input.h | 5 +- input/thread.c | 16 +- input/vfw.c | 125 ++++++++++ input/y4m.c | 2 +- input/yuv.c | 2 +- muxers.h | 9 + x264.c | 51 +++-- x264.h | 4 +- 14 files changed, 1191 insertions(+), 176 deletions(-) commit d487de421807a0d384b29a0d9dc6c90f180f0e7b Author: Jason Garrett-Glaser Date: Wed Nov 25 10:40:08 2009 -0800 Much faster weightp Move sum/ssd calculation out of lookahead and do it only once per frame. Also various minor optimizations, cosmetics, and cleanups. common/frame.h | 2 + encoder/analyse.h | 2 +- encoder/encoder.c | 4 +++ encoder/slicetype.c | 65 +++++++++++++++++++++----------------------------- 4 files changed, 34 insertions(+), 39 deletions(-) commit f3cdc6a4878450850eb07ed0122b9836122bdbe0 Author: Kieran Kunhya Date: Wed Nov 25 01:26:02 2009 -0800 Fix bugs in fps/timestamp handling in FLV muxer output/flv.c | 17 ++++++++--------- 1 files changed, 8 insertions(+), 9 deletions(-) commit 626affea98f4db9208cbf0e3db78f23804defd0c Author: Jason Garrett-Glaser Date: Tue Nov 24 22:37:02 2009 -0800 Fix bug in weightp analysis Weights weren't reset upon early terminations, so old (wrong) weights could stick around. Small compression improvement. encoder/slicetype.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) commit a1705b68f5e88e083411d1d1d8fc77cb09304753 Author: Jason Garrett-Glaser Date: Tue Nov 24 20:24:14 2009 -0800 Minor deblocking optimization, update comments common/frame.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-) commit 1c2c5688b64fcd62f307b9e00fde228324a0162d Author: Jason Garrett-Glaser Date: Tue Nov 24 16:21:07 2009 -0800 Fix weightb with delta_poc_bottom Has no effect yet, but will be required once we add TFF/BFF signalling support in interlaced mode. Gives 0.5-0.7% better compression with proper TFF/BFF signalling. common/common.h | 3 +- common/macroblock.c | 95 ++++++++++++++++++++++++++++----------------------- encoder/encoder.c | 2 +- encoder/set.c | 2 +- 4 files changed, 56 insertions(+), 46 deletions(-) commit 5ddd61bbfecb6e782b096ddebef127ab73bee006 Author: Jason Garrett-Glaser Date: Fri Nov 20 23:27:51 2009 -0800 Give more meaningful error if 1st/2nd pass resolution differ encoder/ratecontrol.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) commit 0b0f4a3470c58061d09ee26037314c2f8a4d049b Author: Steven Walters Date: Fri Nov 20 12:04:13 2009 -0800 Fix extremely rare deadlock with sync-lookahead Patch partially by Anton Mitrofanov. encoder/encoder.c | 2 ++ encoder/lookahead.c | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-) commit ed0467756f5a842249d86fb9622006f3939c72a2 Author: Jason Garrett-Glaser Date: Fri Nov 20 08:04:28 2009 -0800 Only print weightp stats if there were P-frames encoder/encoder.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 4a31a47d88ca01b63d8a06be2592beaedc78b8f3 Author: Jason Garrett-Glaser Date: Wed Nov 18 13:47:04 2009 -0800 Faster lookahead with subme=1 If it hasn't been clear already, don't use subme=1 as a "fast first pass" option. Use subme=2 instead; 1 and below now enable a fast (lower quality) lookahead mode. encoder/slicetype.c | 39 ++++++++++++++++++++++++--------------- 1 files changed, 24 insertions(+), 15 deletions(-) commit c0215c8a83aa9b543dd6930185d589d0ed835816 Author: Jason Garrett-Glaser Date: Mon Nov 16 15:23:58 2009 -0800 Faster weightp analysis Modify pixel_var slightly to return the necessary information and use it for weight analysis instead of sad/ssd. Various minor cosmetics. common/arm/pixel-a.S | 5 ----- common/arm/pixel.h | 4 ++-- common/pixel.c | 13 ++++++------- common/pixel.h | 2 +- common/ppc/pixel.c | 10 ++++------ common/x86/pixel-a.asm | 21 +++++++++++---------- common/x86/pixel.h | 4 ++-- encoder/ratecontrol.c | 31 +++++++++++++++++++------------ encoder/slicetype.c | 41 +++++++++++++++++++---------------------- tools/checkasm.c | 14 ++++++++++---- 10 files changed, 74 insertions(+), 71 deletions(-) commit e8501efbd235b1b5321adda8926e7a859beafd3c Author: Dylan Yudaken Date: Sun Nov 15 16:14:50 2009 -0800 Fix two issues in weightp If analysis decided on an offset of -128, x264 would create non-compliant streams. Fix some cases with nearly all intra blocks where analysis could pick very weird weights. Also add some asserts to check compliancy. encoder/encoder.c | 14 ++++++++++---- encoder/slicetype.c | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) commit 4f0a545fa7528b4820141ac6d0b8bbe2e643d905 Author: Alexander Strange Date: Sat Nov 14 22:16:18 2009 -0800 Allow compilation with non-Apple GCC on OS X configure | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) commit 1d54b2c7f9110cb7c7af1059cf595db17ed96273 Author: Alexander Strange Date: Sat Nov 14 22:13:28 2009 -0800 Use __attribute__((may_alias)) for type-punning GCC thinks pointer casts to unions aren't valid with strict aliasing. See http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Optimize-Options.html#Type_002dpunning. Also use M32() in y4m.c. Enable -Wstrict-aliasing again since all such warnings are fixed. common/common.h | 8 ++++---- common/osdep.h | 2 ++ configure | 2 +- input/y4m.c | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) commit 82b80ef96b0ae74187f6f6a482bddb3f859df4f5 Author: Jason Garrett-Glaser Date: Sat Nov 14 19:58:46 2009 -0800 100l in deadlock fix encoder/analyse.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 6f5f8c02aa3d64e45d17e97d24a6593e8a13c2b2 Author: Kieran Kunhya Date: Sat Nov 14 19:01:09 2009 -0800 FLV muxing support Makefile | 3 +- common/osdep.h | 28 +++-- configure | 8 +- output/flv.c | 294 +++++++++++++++++++++++++++++++++++++++++++++++ output/flv_bytestream.c | 153 ++++++++++++++++++++++++ output/flv_bytestream.h | 135 ++++++++++++++++++++++ output/matroska.c | 2 +- output/mp4.c | 2 +- output/output.h | 3 +- output/raw.c | 2 +- x264.c | 20 ++- 11 files changed, 624 insertions(+), 26 deletions(-) commit e76a4adb1c8ee27748847656450c815f60d2fe6d Author: Jason Garrett-Glaser Date: Sat Nov 14 18:40:22 2009 -0800 Fix rare deadlock introduced in weightp encoder/analyse.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) commit 2a35a019c5e5710fddcee36976921347ef5ae7a7 Author: Jason Garrett-Glaser Date: Thu Nov 12 12:40:40 2009 -0800 Actually add -Wno-strict-aliasing to configure configure | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 0e706cc9f3814f817b6bdef25e35ad1060d369b1 Author: Dylan Yudaken Date: Thu Nov 12 07:03:46 2009 -0800 Various weightp fixes Make weightp results match in threaded vs non-threaded mode. Fix two-pass with slow-firstpass. common/macroblock.c | 2 +- encoder/analyse.h | 2 +- encoder/encoder.c | 5 +-- encoder/ratecontrol.c | 4 +- encoder/slicetype.c | 81 ++++++++++++++++++++++--------------------------- 5 files changed, 42 insertions(+), 52 deletions(-) commit cbd43d1e31fae533de121c7c0dfcc13ebf41aa24 Author: Jason Garrett-Glaser Date: Thu Nov 12 05:25:32 2009 -0800 Fix all aliasing violations New type-punning macros perform write/read-combining without aliasing violations per the second-to-last part of 6.5.7 in the C99 specification. GCC 4.4, however, doesn't seem to have read this part of the spec and still warns about the violations. Regardless, it seems to fix all known aliasing miscompilations, so perhaps the GCC warning generator is just broken. As such, add -Wno-strict-aliasing to CFLAGS. common/bs.h | 10 ++-- common/common.h | 15 ++++ common/dct.c | 32 ++++---- common/frame.c | 8 +- common/macroblock.c | 187 +++++++++++++++++++++++------------------------- common/macroblock.h | 35 +++++---- common/predict.c | 97 +++++++++++-------------- common/quant.c | 4 +- common/x86/predict-c.c | 8 +- common/x86/util.h | 8 +- encoder/analyse.c | 88 +++++++++++----------- encoder/macroblock.c | 47 ++++++------ encoder/me.c | 15 +++-- encoder/slicetype.c | 16 ++-- 14 files changed, 286 insertions(+), 284 deletions(-) commit b28d98bbc3174e6f38caea49a7c545204e3930d3 Author: David Conrad Date: Wed Nov 11 20:53:49 2009 -0800 Fix 10l in weightp on ARM encoder/slicetype.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 70f8869f1936558b33ee2ec58dbd85004aa6298b Author: Jason Garrett-Glaser Date: Mon Nov 9 21:22:41 2009 -0800 Fix one (of possibly many) miscompilations in weightp Use NOINLINE and some emms calls to fix emms reordering issues. This issue occurred with some GCC versions if threads > 1 and the phase of the moon was right. Also a cosmetic in x264.c. encoder/slicetype.c | 9 ++++++--- x264.c | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) commit c3e72f64021e535658f61e86dc3a21325e88ae11 Author: Jason Garrett-Glaser Date: Mon Nov 9 09:18:03 2009 -0800 Fix pixel_ssd on win64 Didn't preserve XMM registers, may or may not have caused problems. common/x86/pixel-a.asm | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit af612d79aaaddfaac486d602ce3303836c45bbc6 Author: Steven Walters Date: Sun Nov 8 22:18:35 2009 -0800 Fix weightp logfile parsing on MinGW encoder/ratecontrol.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit 03639d08bb4a1b93d2c4529a3bfec517dd905879 Author: Loren Merritt Date: Mon Nov 9 05:27:29 2009 +0000 cosmetics common/frame.c | 20 ++++++++++---------- common/frame.h | 2 +- common/mc.c | 4 ++-- common/x86/mc-a.asm | 2 +- common/x86/mc-c.c | 12 ++++++------ common/x86/x86inc.asm | 8 ++------ encoder/slicetype.c | 32 ++++++++++++++++---------------- tools/checkasm.c | 2 +- x264.c | 17 +++++++++-------- 9 files changed, 48 insertions(+), 51 deletions(-) commit 2bedf8945f921774714dacf5f0668e01c1810b46 Author: David Conrad Date: Sun Nov 8 20:12:54 2009 -0800 Fix weightp on ARM + PPC No ARM or PPC assembly yet though. Makefile | 8 +++----- common/arm/mc-c.c | 20 ++++++++++++++------ common/ppc/mc.c | 16 +++++++++++++--- configure | 5 ++--- 4 files changed, 32 insertions(+), 17 deletions(-) commit 87de2346225721e8ca68a1b59bc87133fc598a42 Author: Dylan Yudaken Date: Sun Nov 8 17:59:08 2009 -0800 Weighted P-frame prediction Merge Dylan's Google Summer of Code 2009 tree. Detect fades and use weighted prediction to improve compression and quality. "Blind" mode provides a small overall quality increase by using a -1 offset without doing any analysis, as described in JVT-AB033. "Smart", the default mode, also performs fade detection and decides weights accordingly. MB-tree takes into account the effects of "smart" analysis in lookahead, even further improving quality in fades. If psy is on, mbtree is on, interlaced is off, and weightp is off, fade detection will still be performed. However, it will be used to adjust quality instead of create actual weights. This will improve quality in fades when encoding in Baseline profile. Doesn't add support for interlaced encoding with weightp yet. Only adds support for luma weights, not chroma weights. Internal code for chroma weights is in, but there's no analysis yet. Baseline profile requires that weightp be off. All weightp modes may cause minor breakage in non-compliant decoders that take shortcuts in deblocking reference frame checks. "Smart" may cause serious breakage in non-compliant decoders that take shortcuts in handling of duplicate reference frames. Thanks to Google for sponsoring our most successful Summer of Code yet! common/common.c | 4 + common/common.h | 19 ++++ common/frame.c | 128 +++++++++++++++++------ common/frame.h | 13 ++- common/macroblock.c | 73 +++++++++++++- common/mc.c | 83 ++++++++++++++- common/mc.h | 35 ++++++- common/x86/mc-a.asm | 230 ++++++++++++++++++++++++++++++++++++++++- common/x86/mc-c.c | 123 +++++++++++++++++++++- encoder/analyse.c | 104 +++++++++++++------ encoder/analyse.h | 3 + encoder/encoder.c | 223 +++++++++++++++++++++++++++++++++++++++- encoder/macroblock.c | 22 ++++- encoder/me.c | 46 +++++---- encoder/me.h | 6 +- encoder/ratecontrol.c | 62 ++++++++++-- encoder/ratecontrol.h | 2 + encoder/set.c | 4 +- encoder/slicetype.c | 273 ++++++++++++++++++++++++++++++++++++++++++++++--- tools/checkasm.c | 84 ++++++++++++++- x264.c | 10 ++ x264.h | 6 +- 22 files changed, 1408 insertions(+), 145 deletions(-) commit 3daa02e9c79ec46fd980bcfcd317df45539c91f6 Author: Steven Walters Date: Sun Nov 8 11:53:48 2009 -0800 Fix assert failure in the case of forced i-frames Note that this applies to non-IDR i-frames, not IDR-frames. This fix is also required for future open-gop. encoder/slicetype.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) commit 02fe6a5fe20b71d712c14525b14f95f1e7927a91 Author: Steven Walters Date: Sat Nov 7 17:07:28 2009 -0800 Fix issues relating to input/output files being pipes/FIFOs common/common.h | 1 + common/osdep.h | 8 ++ encoder/encoder.c | 10 ++- encoder/ratecontrol.c | 7 +- input/avis.c | 10 +++ input/y4m.c | 46 ++++++++---- input/yuv.c | 30 ++++++-- output/matroska_ebml.c | 11 ++- output/mp4.c | 9 ++ output/raw.c | 4 +- x264.c | 194 ++++++++++++++++++++++++++++++------------------ 11 files changed, 224 insertions(+), 106 deletions(-) commit 3d1a1287721a3a8bfd85d0557e4fe8edbd138adc Author: David Conrad Date: Sat Nov 7 09:25:18 2009 -0800 Various ARM-related fixes Fix comment for mc_copy_neon. Fix memzero_aligned_neon prototype. Update NEON (i)dct_dc prototypes. Duplicate x86 behavior for global+hidden functions. Makefile | 1 + common/arm/asm.S | 17 ++++++++++----- common/arm/cpu-a.S | 4 +- common/arm/dct-a.S | 36 +++++++++++++++++----------------- common/arm/dct.h | 4 +- common/arm/deblock-a.S | 8 +++--- common/arm/mc-a.S | 50 ++++++++++++++++++++++++------------------------ common/arm/mc-c.c | 2 +- common/arm/pixel-a.S | 40 +++++++++++++++++++------------------- common/arm/predict-a.S | 22 ++++++++++---------- common/arm/quant-a.S | 18 ++++++++-------- 11 files changed, 104 insertions(+), 98 deletions(-) commit 820380f981da35ae4f8fc124cb8b5ee1c4cbad4b Author: Jason Garrett-Glaser Date: Wed Nov 4 00:03:14 2009 -0800 Fix miscompilation with gcc 4.3 on ARM Aliasing violation in spatial prediction caused nasty artifacts. Shut up two other GCC warnings while we're at it. common/macroblock.c | 10 ++++++++-- encoder/analyse.c | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) commit bea99fbf88cc0da3f85f6ae6cccaf483c5d1fc1b Author: Jason Garrett-Glaser Date: Tue Nov 3 23:15:35 2009 -0800 Fix extremely rare infinite loop in 2-pass VBV Implicit conversion from double->float lost enough precision to cause the loop termination condition to never trigger. Bug report by Tal Aloni. encoder/ratecontrol.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 028b3ffa9071042468f2cc51580fa6ef65d6ff95 Author: Anton Mitrofanov Date: Sat Oct 31 19:51:14 2009 -0700 Fix large file support, broken in r1302 common/common.h | 1 + encoder/encoder.c | 2 +- encoder/set.c | 1 - x264.c | 1 - 4 files changed, 2 insertions(+), 3 deletions(-) commit 96bad1a71c656f4f05632d685d4b91bd54d5ce58 Author: Jason Garrett-Glaser Date: Fri Oct 30 18:58:03 2009 -0700 Dramatically reduce size of pixel_ssd_* asm functions ~10k of code size eliminated. common/x86/pixel-a.asm | 114 ++++++++++++++++++++++++++++-------------------- common/x86/x86inc.asm | 14 +++--- 2 files changed, 74 insertions(+), 54 deletions(-) commit 678a703fd9528d2b508b542ce5e289b4f0bae3b7 Author: Loren Merritt Date: Sat Nov 7 06:09:47 2009 +0000 fix bottom-right pixel of lowres planes, which was uninitialized. weirdly, valgrind reported this only with --no-asm. common/mc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit fe83a906ee1bb5170b112de717818e278ff59ddb Author: Jason Garrett-Glaser Date: Thu Oct 29 12:28:37 2009 -0700 Further reduce code size in bime ~7-8 kilobytes saved, ~0.6% faster subme 9. encoder/me.c | 124 ++++++++++++++++++++++------------------------------------ encoder/me.h | 14 ++++++- 2 files changed, 59 insertions(+), 79 deletions(-) commit 5c7133b0607b220a02e37cf72612c97484384cd8 Author: Anton Mitrofanov Date: Wed Oct 28 12:57:11 2009 -0700 Fix case in which MB-tree didn't propagate all data correctly Should improve quality in all cases. Also some minor cosmetic improvements. encoder/slicetype.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit 7016c83611ade1f0d54d62eec3a03fccdb43700d Author: Jason Garrett-Glaser Date: Tue Oct 27 16:01:46 2009 -0700 Take into account chroma MV offset during interlaced motion search Small improvement in interlaced compression. encoder/analyse.c | 6 ++++-- encoder/me.c | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) commit d4b7db5c840661a5853369300e704b20c7c3ff53 Author: Jason Garrett-Glaser Date: Tue Oct 27 15:08:37 2009 -0700 Slightly faster ssse3 width4 chroma MC Cacheline-aware in the same fashion as width8, but not conditional. common/x86/mc-a.asm | 26 +++++++++++++++++--------- 1 files changed, 17 insertions(+), 9 deletions(-) commit 40a4708b9d869d7b13cb1f1afc65590d2fc90f9b Author: Jason Garrett-Glaser Date: Tue Oct 27 14:01:46 2009 -0700 Eliminate some rare cases where MB-tree gave incorrect results in B-frames Also get rid of some unnecessary memcpies. encoder/ratecontrol.c | 4 +++- encoder/slicetype.c | 34 +++++++++++++++------------------- 2 files changed, 18 insertions(+), 20 deletions(-) commit 35146ef7d37a04e1f43ddb425f0e43311e24c5fc Author: Anton Mitrofanov Date: Tue Oct 27 12:28:07 2009 -0700 Fix cases in which b-adapt 1 could result in AUTO-type frames. This didn't actually cause any issues, but it removes the need for the fixing-up code that prevented said issues. encoder/slicetype.c | 24 +++++++----------------- 1 files changed, 7 insertions(+), 17 deletions(-) commit 1f9c733dc27ae279943a3ddd7eaf8a50cbf4dc2d Author: Jason Garrett-Glaser Date: Mon Oct 26 12:53:07 2009 -0700 Motion compensation optimizations Turning off inlining saves a whole boatload of code size for near-zero speed cost. Simplify offset calculation. Various other optimizations. common/macroblock.c | 46 +++++++++++++++++++++++----------------------- encoder/analyse.c | 24 +++++++++++------------- 2 files changed, 34 insertions(+), 36 deletions(-) commit e361348b54d636d2bffd622c96d2255c0640c220 Author: Jason Garrett-Glaser Date: Sun Oct 25 19:41:10 2009 -0700 Minor CAVLC optimizations encoder/cavlc.c | 37 ++++++++++++++++++------------------- 1 files changed, 18 insertions(+), 19 deletions(-) commit ec46ace7eab97cbde6fd50ae18de5c6e063fe1de Author: Loren Merritt Date: Sun Oct 25 19:34:12 2009 +0000 cosmetics common/set.c | 2 +- common/x86/x86inc.asm | 14 +++++++------- common/x86/x86util.asm | 3 +++ encoder/ratecontrol.c | 2 +- 4 files changed, 12 insertions(+), 9 deletions(-) commit 6a4277ea792be0c51ccd195df61d92a12b60f02a Author: Jason Garrett-Glaser Date: Sun Oct 25 09:14:27 2009 -0700 ISC-license x86inc.asm As the assembly abstraction layer is very useful in non-x264 projects, it is now ISC (simplified BSD) so that others, even in commercial projects, can use it as well. common/x86/x86inc.asm | 35 +++++++++++++++++++++++------------ 1 files changed, 23 insertions(+), 12 deletions(-) commit c9d2c06872347b519f44262bb4ed85198c9ca1b1 Author: Jason Garrett-Glaser Date: Fri Oct 23 16:20:39 2009 -0700 Various minor CABAC optimizations encoder/cabac.c | 81 +++++++++++++++++++++++++++---------------------------- 1 files changed, 40 insertions(+), 41 deletions(-) commit ece74ca07cd4f7729bdf6ba5b8be06c30da3a1af Author: Lamont Alston Date: Fri Oct 23 11:01:13 2009 -0700 Fix bug in b-pyramid strict Bug caused invalid streams in some situations. encoder/encoder.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit b1ad8d06bcff3f14ddfc6e550d4d50f2d4847a96 Author: Jason Garrett-Glaser Date: Fri Oct 23 02:34:49 2009 -0700 Remove non-mod16 warning Compression only "suffers" by an extremely marginal amount and too many people misinterpret the warning. encoder/encoder.c | 11 ----------- 1 files changed, 0 insertions(+), 11 deletions(-) commit b89ca0413c5a7114111ba0c76bcd7e52eb0ede93 Author: Jason Garrett-Glaser Date: Thu Oct 22 22:38:32 2009 -0700 Fix two warnings + some minor optimizations common/common.h | 4 ++-- common/macroblock.c | 12 ++++++------ encoder/analyse.c | 16 ++++++++-------- 3 files changed, 16 insertions(+), 16 deletions(-) commit ec3b5bfa4f1e5e53ab962db4341b9f78b9e50c86 Author: Jason Garrett-Glaser Date: Mon Oct 19 22:38:01 2009 -0700 Fix a typo in b-pyramid help And an errant space in common/macroblock.c common/macroblock.c | 2 +- x264.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 3679792d621cc95222d0aef3097c6d16e72852b8 Author: Henrik Gramner Date: Mon Oct 19 12:57:47 2009 -0700 A bit more write-combining in macroblock_cache_load common/macroblock.c | 16 +++++----------- 1 files changed, 5 insertions(+), 11 deletions(-) commit 6169a3f6c01ca95ac5f17d65c76af6830954789d Author: Steven Walters Date: Sat Oct 24 00:23:50 2009 +0000 split muxers.c into one file per format simplify internal muxer API Makefile | 18 +- input/avis.c | 119 ++++++ input/input.h | 40 ++ input/thread.c | 126 ++++++ input/y4m.c | 232 +++++++++++ input/yuv.c | 96 +++++ matroska.c | 561 -------------------------- matroska.h | 41 -- muxers.c | 1048 ------------------------------------------------ muxers.h | 63 +-- output/matroska.c | 245 +++++++++++ output/matroska_ebml.c | 559 ++++++++++++++++++++++++++ output/matroska_ebml.h | 41 ++ output/mp4.c | 277 +++++++++++++ output/output.h | 40 ++ output/raw.c | 59 +++ x264.c | 91 ++--- 17 files changed, 1895 insertions(+), 1761 deletions(-) commit bcba15dbbc0d6be28129b85d541a0bc5050bab40 Author: Jason Garrett-Glaser Date: Mon Oct 19 02:43:48 2009 -0700 Update fprofile with the latest change to b-pyramid Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 909bdedba6077a90a361641232ba1840094f19fe Author: Steven Walters Date: Sat Oct 17 12:54:41 2009 -0700 Fix assertion fail and incorrect costs with pyramid+VBV Deal properly with QPfile'd B-refs. x264 should handle multiple B-refs per minigop now, though only via forced frametypes. encoder/lookahead.c | 53 +++++++----------------------------- encoder/ratecontrol.c | 11 +++++--- encoder/slicetype.c | 71 +++++++++++++++++++++++++++++++++++++----------- 3 files changed, 71 insertions(+), 64 deletions(-) commit 2eb0458ed6302e082ffe206d325d03d6c75d6d47 Author: Jason Garrett-Glaser Date: Sat Oct 17 03:04:56 2009 -0700 Improve CRF initial QP selection, fix get_qscale bug If qcomp=1 (as in mb-tree), we don't need ABR_INIT_QP. get_qscale could give slightly weird results with still images encoder/ratecontrol.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit 513abc7b0584b5ea6dcea4ebd731824ef74ef1a1 Author: Jason Garrett-Glaser Date: Wed Oct 14 11:32:27 2009 -0700 Print more accurate error message if dump_yuv fails encoder/encoder.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit cdf623f285073c084631263fd95a753bf25be3bd Author: Steven Walters Date: Tue Oct 13 09:56:04 2009 -0700 Reduce memory usage of b-adapt 2 trellis Also fix a minor bug where the algorithm ignored the last frame in the trellis. encoder/slicetype.c | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-) commit e2659dbdc0aed2d2cd4f6538faddf370e7740ada Author: Lamont Alston Date: Mon Oct 12 23:32:16 2009 -0700 Make B-pyramid spec-compliant The rules of the specification with regard to picture buffering for pyramid coding are widely ignored. x264's b-pyramid implementation, despite being practically identical to that proposed by the original paper, was technically not compliant. Now it is. Two modes are now available: 1) strict b-pyramid, while worse for compression, follows the rule mandated by Blu-ray (no P-frames can reference B-frames) 2) normal b-pyramid, which is like the old mode except fully compliant. This patch also adds MMCO support (necessary for compliant pyramid in some cases). MB-tree still doesn't support b-pyramid (but will soon). common/common.c | 6 +- common/common.h | 12 +++++- common/frame.h | 3 +- common/macroblock.c | 2 +- encoder/encoder.c | 121 +++++++++++++++++++++++++++++++++++++++--------- encoder/lookahead.c | 6 ++- encoder/ratecontrol.c | 6 ++- encoder/set.c | 10 +++-- encoder/slicetype.c | 7 +++ muxers.c | 2 +- x264.c | 8 +++- x264.h | 8 +++- 12 files changed, 150 insertions(+), 41 deletions(-) commit b826fd5475a5e883f85e26cbf9d2c0acf5efcbd6 Author: Jason Garrett-Glaser Date: Mon Oct 12 23:28:26 2009 -0700 Add missing free for nal_buffer Fixes a memory leak. encoder/encoder.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 813fe72062362a9ee7733fa160e14f5c27ae5fef Author: Loren Merritt Date: Sun Oct 18 21:47:18 2009 +0000 sync yasm macros to ffmpeg common/x86/x86inc.asm | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) commit 7ae3ed992b70d1f8e806b6eece0b8fc88f8c3fab Author: Loren Merritt Date: Sat Oct 17 14:54:49 2009 +0000 eliminate some divisions encoder/encoder.c | 17 ++++++++--------- 1 files changed, 8 insertions(+), 9 deletions(-)