Daniel Kang [Tue, 4 Jan 2011 19:33:05 +0000 (14:33 -0500)]
Fix overflow in SSIM calculation in 10-bit
Anton Mitrofanov [Fri, 24 Dec 2010 19:52:57 +0000 (14:52 -0500)]
Fix some possible overflows in VFR ratecontrol with extreme timebases
Steven Walters [Sun, 9 Jan 2011 21:01:04 +0000 (16:01 -0500)]
Fix memory leak in lavf demuxer.
Leak only occurred with input files that have more than one video stream.
Fiona Glaser [Fri, 24 Dec 2010 22:28:42 +0000 (17:28 -0500)]
Fix satd predictors with high bit depth
Resulted in odd CRF-mode results with --no-mbtree, as well as suboptimal VBV handling.
Daniel Kang [Sat, 8 Jan 2011 04:05:50 +0000 (23:05 -0500)]
Fix compile error with high bit depth and disable-asm
Fiona Glaser [Sat, 18 Dec 2010 16:22:34 +0000 (08:22 -0800)]
Really fix gcc win32 misalignment crash
gcc's -fno-zero-initialized-in-bss only works if an explicit initializer (e.g. = {0}) is used.
Steven Walters [Sun, 12 Dec 2010 01:30:29 +0000 (20:30 -0500)]
Support for native Windows threads
Patch originally by Pegasys Inc.
Daniel Kang [Mon, 13 Dec 2010 22:15:12 +0000 (17:15 -0500)]
MMX/SSE2 high bit depth weight_cache/offset(sub|add) functions
Patch from Google Code-In.
Daniel Kang [Wed, 8 Dec 2010 22:56:22 +0000 (17:56 -0500)]
SSE2 high bit depth dequant functions
Patch from Google Code-In.
Daniel Kang [Wed, 8 Dec 2010 03:48:15 +0000 (22:48 -0500)]
SSE2 high bit depth zigzag functions
Patch from Google Code-In.
Daniel Alexandru Morie [Tue, 7 Dec 2010 14:11:02 +0000 (06:11 -0800)]
MMX/SSE2 versions of high bit depth store_interleave
Patch from Google Code-In.
Vittorio Giovara [Sat, 11 Dec 2010 04:43:00 +0000 (20:43 -0800)]
Add frame-packing SEI support for signalling 3D video
Fiona Glaser [Sat, 11 Dec 2010 11:48:59 +0000 (03:48 -0800)]
Allow 8x8dct+cavlc+lossless with subme>=6
Yasuhiro Ikeda [Thu, 9 Dec 2010 03:00:24 +0000 (12:00 +0900)]
Add interlaced/no-interlaced case to regression test script
Yasuhiro Ikeda [Thu, 9 Dec 2010 02:59:49 +0000 (11:59 +0900)]
Save more memory with weightp in >8-bit
Yasuhiro Ikeda [Thu, 9 Dec 2010 02:57:38 +0000 (11:57 +0900)]
.gitignore more untracked file types
Anton Mitrofanov [Tue, 7 Dec 2010 14:49:21 +0000 (17:49 +0300)]
Work around gcc/ld alignment bug on win32
Fixes problems due to misalignment of static zero arrays (win32 ld can't align .bss properly).
Daniel Kang [Tue, 7 Dec 2010 20:19:46 +0000 (15:19 -0500)]
Fix high bit depth intra pred functions
And re-enable them accordingly.
Patch from Google Code-In.
Fiona Glaser [Sat, 11 Dec 2010 21:37:09 +0000 (13:37 -0800)]
Fix weightp analysis with high bit depth
Oskar Arvidsson [Thu, 9 Dec 2010 11:19:57 +0000 (12:19 +0100)]
Fix build error in high depth
Caused by multiple definitions of x264_add8x8_idct_sse2.
Fiona Glaser [Tue, 7 Dec 2010 11:15:46 +0000 (03:15 -0800)]
Hotfix for high bit depth
Temporary fix for some unaligned access crashes.
Anton Mitrofanov [Tue, 7 Dec 2010 10:44:55 +0000 (13:44 +0300)]
Delete x264_config.h on distclean
Daniel Kang [Fri, 26 Nov 2010 00:44:56 +0000 (19:44 -0500)]
Tons of high bit depth intra predict asm
Patch from Google Code-In.
David Czech [Sun, 28 Nov 2010 01:34:32 +0000 (17:34 -0800)]
SSE2 high bit depth 8x8/16x16 idct/idct_dc
Patch from Google Code-In.
Ramiro Polla [Tue, 30 Nov 2010 04:17:23 +0000 (02:17 -0200)]
Create and install x264_config.h
This header can be used to determine the bit-depth and license of libx264.
Steven Walters [Thu, 14 Oct 2010 01:53:50 +0000 (21:53 -0400)]
Detect Avisynth initialization failures
Detect if there is a critical Avisynth initialization failure and print the associated error.
This, however, requires a feature present in the latest version of Avisynth alpha (2.6).
Previous versions are unaffected.
Fiona Glaser [Fri, 26 Nov 2010 06:12:07 +0000 (22:12 -0800)]
Automatically restrict QPs to avoid quantization (under|over)flow
--cqm jvt and similar should now work "out of the box" instead of requiring futzing with --qpmin.
Anton Mitrofanov [Sat, 4 Dec 2010 20:29:08 +0000 (23:29 +0300)]
Don't try to get timecodes if reading frame failed
This fixes "input timecode file missing data for frame" warning with piped input where we don't know total number of frames.
Oskar Arvidsson [Thu, 25 Nov 2010 22:05:21 +0000 (23:05 +0100)]
Fix possible overflow in sub4x4_dct in 10-bit builds
Fiona Glaser [Mon, 6 Dec 2010 22:19:09 +0000 (14:19 -0800)]
Fix bug in intra-refresh + threads
Intra refresh bar quality increase wasn't correctly applied.
Fiona Glaser [Mon, 6 Dec 2010 20:00:13 +0000 (12:00 -0800)]
Fix file handle leak in libx264 on error
Steven Walters [Sun, 10 Oct 2010 22:17:35 +0000 (18:17 -0400)]
Fix incompatible csp format issue
Problem occurred with unknown pixel formats and non mod2 resolutions in the resize filter.
Anton Mitrofanov [Sat, 27 Nov 2010 23:54:39 +0000 (15:54 -0800)]
Really fix fittobox resize rounding code
Yusuke Nakamura [Sun, 5 Dec 2010 00:31:01 +0000 (09:31 +0900)]
Fix regression in rev1549
Skip auto timebase denominator generation when generated timebase denominator exceeds UINT32_MAX.
Also fix double free.
Anton Mitrofanov [Sat, 27 Nov 2010 22:05:02 +0000 (01:05 +0300)]
Fix --tcfile-in if timecode v2 file starts from nonzero pts
Sean McGovern [Sat, 4 Dec 2010 06:30:51 +0000 (22:30 -0800)]
SPARC/Solaris build fixes
Fiona Glaser [Fri, 26 Nov 2010 00:47:29 +0000 (16:47 -0800)]
Fix typo in r1797
Tony Young [Thu, 25 Nov 2010 00:58:38 +0000 (16:58 -0800)]
Add Python regression test script
Patch from Google Code-In.
Alex Wright [Wed, 24 Nov 2010 10:19:51 +0000 (02:19 -0800)]
Make --weightp 1 a better speed tradeoff
Since fade analysis is now so fast, weightp 1 now does fade analysis but no reference duplication.
This is the opposite of what it used to do (reference duplication but no fade analysis).
This also gives weightp's better fade quality to faster presets (up to superfast).
Daniel Kang [Wed, 24 Nov 2010 01:29:37 +0000 (20:29 -0500)]
SSE versions of some high-bit-depth DCT functions
Our first Google Code-In patch!
Anton Mitrofanov [Tue, 23 Nov 2010 20:06:51 +0000 (23:06 +0300)]
Clean up weightp analysis function
Fiona Glaser [Sat, 20 Nov 2010 00:58:38 +0000 (16:58 -0800)]
Add API function to return max number of delayed frames
Fiona Glaser [Thu, 25 Nov 2010 21:01:33 +0000 (13:01 -0800)]
Copy field order flag in encoder_reconfig
Yasuhiro Ikeda [Wed, 24 Nov 2010 14:09:54 +0000 (23:09 +0900)]
Cosmetics in configure
Yasuhiro Ikeda [Mon, 22 Nov 2010 02:01:57 +0000 (11:01 +0900)]
Add some more info to `x264 --version`
Fiona Glaser [Sun, 21 Nov 2010 07:30:42 +0000 (23:30 -0800)]
Change qpmin default to 0
There's probably no real reason to keep it at 10 anymore, and lowering it allows AQ to pick lower quantizers in really flat areas.
Might help on gradients at high quality levels.
The previous value of 10 was arbitrary anyways.
Fiona Glaser [Thu, 25 Nov 2010 21:01:16 +0000 (13:01 -0800)]
Fix ticks_per_frame check for VFR input
Steven Walters [Mon, 22 Nov 2010 01:31:05 +0000 (10:31 +0900)]
Fix configure so that boolean configuration options are 1/0
There are many cases of 1/undef, not 1/0.
Sean McGovern [Sun, 21 Nov 2010 06:59:33 +0000 (01:59 -0500)]
Only build SPARC VIS asm if high bit-depth is disabled
Sean McGovern [Sun, 10 Oct 2010 23:34:18 +0000 (19:34 -0400)]
Fix build on SPARC Solaris 10
James Darnley [Sun, 21 Nov 2010 09:50:48 +0000 (10:50 +0100)]
Fix resize filter rounding code
Anton Mitrofanov [Mon, 22 Nov 2010 14:17:36 +0000 (17:17 +0300)]
Fix regression in chroma weightp
Missing cache calls could cause artifacts, encoder/decoder desync.
Fiona Glaser [Fri, 19 Nov 2010 23:40:23 +0000 (15:40 -0800)]
Fix some crashes with high bit depth
Not all arrays were sufficiently aligned.
Fiona Glaser [Sun, 14 Nov 2010 11:34:26 +0000 (03:34 -0800)]
Chroma weighted prediction
Like luma weighted prediction, dramatically improves compression in fades.
Up to 4-8db chroma PSNR gain in extreme cases (short, perfect fade-outs).
On actual videos, helps up to ~1% overall.
One example video with a decent number of fades (ef OP): 0.8% bitrate reduction overall, 7% bitrate reduction just counting chroma.
Fixes a lot of artifacts in fades at lower bitrates.
Original patch by Dylan Yudaken <dyudaken@gmail.com>.
Fiona Glaser [Thu, 18 Nov 2010 16:51:27 +0000 (08:51 -0800)]
Support custom cropping rectangles
Supposedly useful for 3D television applications.
Oskar Arvidsson [Sun, 14 Nov 2010 15:46:01 +0000 (16:46 +0100)]
Convert X264_HIGH_BIT_DEPTH to HIGH_BIT_DEPTH
Less verbose.
Oskar Arvidsson [Sat, 30 Oct 2010 18:16:33 +0000 (20:16 +0200)]
x86 asm for high-bit-depth pixel metrics
Overall speed change from these 6 asm patches: ~4.4x.
But there's still tons more asm to do -- patches welcome!
Breakdown from this patch:
~13x faster SAD than C.
~11.5x faster SATD than C (only MMX done).
~18.5x faster SA8D than C.
~19.2x faster hadamard_ac than C.
~8.3x faster SSD than C.
~12.4x faster VAR than C.
~3-4.2x faster intra SAD than C.
~7.9x faster intra SATD than C.
Fiona Glaser [Sun, 31 Oct 2010 02:13:05 +0000 (19:13 -0700)]
x86 asm for some high-bit-depth coefficient functions
~7.9x faster denoise than C.
~2.3x faster coeff_level_run than C.
~6.6x faster coeff_last than C.
~4.3x faster decimate_score than C.
Also improve checkasm's decimate_score test.
Oskar Arvidsson [Sun, 14 Nov 2010 02:33:30 +0000 (03:33 +0100)]
x86 asm for high-bit-depth motion compensation
~8x faster qpel MC than C.
~10x faster hpel than C.
Oskar Arvidsson [Thu, 4 Nov 2010 01:13:43 +0000 (02:13 +0100)]
x86 asm for high-bit-depth quant
~3.1-4.2x faster than C.
Oskar Arvidsson [Sat, 30 Oct 2010 14:55:48 +0000 (16:55 +0200)]
x86 asm for high-bit-depth DCT
Only MMX and DCT done so far; iDCT still needs asm as well.
~4.4x faster than C.
Oskar Arvidsson [Sat, 30 Oct 2010 09:42:52 +0000 (11:42 +0200)]
x86 asm for high-bit-depth deblocking
~3.3x faster than C.
Oskar Arvidsson [Sat, 13 Nov 2010 13:42:54 +0000 (14:42 +0100)]
Use a 16-bit buffer in hpel_filter regardless of bit depth
This only works up to and including 10-bit (but we don't support anything higher yet).
Henrik Gramner [Tue, 16 Nov 2010 20:23:12 +0000 (21:23 +0100)]
Use enums instead of magic numbers in x264_mb_partition_pixel_table
Karl Blomster [Sun, 14 Nov 2010 11:41:03 +0000 (03:41 -0800)]
Improve configure script logging
Now prints the test program that failed in addition to error messages.
Anton Mitrofanov [Wed, 17 Nov 2010 15:27:09 +0000 (07:27 -0800)]
Fix constrained intra pred mode selection
Anton Mitrofanov [Tue, 16 Nov 2010 23:46:30 +0000 (02:46 +0300)]
Various high-bit-depth ratecontrol fixes
Loren Merritt [Sun, 14 Nov 2010 10:54:02 +0000 (02:54 -0800)]
Fix a crash in --dump-yuv for odd resolutions
Anton Mitrofanov [Wed, 10 Nov 2010 22:40:52 +0000 (01:40 +0300)]
Improve flash detection algorithm change in r1765
Now only disables scenecuts only near real end of video, not just prior to forced keyframes.
Steven Walters [Wed, 10 Nov 2010 12:21:41 +0000 (07:21 -0500)]
Update ffms2 support for its latest API break.
Fiona Glaser [Fri, 12 Nov 2010 02:19:22 +0000 (18:19 -0800)]
Modify the x264 header accordingly if --disable-gpl is used
Fiona Glaser [Fri, 12 Nov 2010 06:25:31 +0000 (22:25 -0800)]
Save a bit of memory with weightp + high bit depth
Fiona Glaser [Sat, 13 Nov 2010 12:38:44 +0000 (04:38 -0800)]
Fix bugs in qpfile parsing with omitted QPs
Kieran Kunhya [Fri, 12 Nov 2010 21:53:28 +0000 (21:53 +0000)]
Fix HRD with intra-refresh
x264 was incorrectly calculating cpb_removal_delay with respect to the first keyframe.
It should have been calculating cpb_removal_delay with respect to the last keyframe.
Anton Mitrofanov [Wed, 10 Nov 2010 15:34:40 +0000 (07:34 -0800)]
Fix bug in r1753
Overflow compensation fix broke CRF with --no-mbtree.
Fiona Glaser [Sun, 7 Nov 2010 00:47:27 +0000 (17:47 -0700)]
Improve flash detection's behavior near the end of the video
Flash detection catches situations like
AAAABBCCDDDD, where A,B,C,D are frames in different scenes.
x264 would place a keyframe on the first "D".
However, if the video ended on the last "C", x264 would place a keyframe on the first "C", even though C classifies as a flash.
This change fixes this issue.
Fiona Glaser [Sun, 31 Oct 2010 22:51:48 +0000 (15:51 -0700)]
Improve quantizer handling
The default value for i_qpplus1 in x264_picture_t is now X264_QP_AUTO. This is currently 0, but may change in the future.
qpfiles no longer use -1 to indicate "auto"; QP is just omitted. The old method should still work though.
CRF values now make sense in high bit depth mode.
--qp should be used for lossless mode, not --crf.
--crf 0 will still work as expected in 8-bit mode, but won't be lossless with higher bit depths.
Add bit depth to statsfiles.
These changes are required to make the QP interface sensible in combination with high bit depth.
Fiona Glaser [Thu, 4 Nov 2010 06:17:08 +0000 (23:17 -0700)]
VFR-aware PSNR/SSIM measurement
First step to VFR-aware MB-tree and bit allocation.
Fiona Glaser [Mon, 1 Nov 2010 22:08:03 +0000 (15:08 -0700)]
Disable weightp offset=-1 dupes with high bit depth
They're a hack to compensate for crappy rounding, and thus not worth doing at high bit depth, which fixes most of the rounding issues.
Fiona Glaser [Mon, 8 Nov 2010 01:27:38 +0000 (17:27 -0800)]
Make the ffmpeg -vpre error message more descriptive
Loren Merritt [Sat, 30 Oct 2010 21:39:50 +0000 (14:39 -0700)]
Add numeric names for the presets (0==ultrafast ... 9==placebo)
This mapping will of course change if new presets are added in between, but will always be ordered from fastest to slowest.
Fiona Glaser [Wed, 13 Oct 2010 13:07:14 +0000 (06:07 -0700)]
Update benchmarks in doc/threads.txt
Loren Merritt [Thu, 28 Oct 2010 20:29:42 +0000 (13:29 -0700)]
Make the #if'd out naive ESA actually match the real implementation
Fiona Glaser [Tue, 2 Nov 2010 02:19:23 +0000 (19:19 -0700)]
Move mv/ref prefetch code to the correct location
Prefetching of top blocks should be done under if(top), not if(left).
Reinhard Tartler [Wed, 10 Nov 2010 07:57:12 +0000 (23:57 -0800)]
Link x264cli explicitly against lavf
Fixes some problems with crappy linkers.
Fiona Glaser [Tue, 9 Nov 2010 06:14:58 +0000 (22:14 -0800)]
Fix CBR ratecontrol bug with extremely high qscales
Caused CBR ratecontrol to take a very long time to recover from extreme situations (e.g. /dev/urandom).
Fiona Glaser [Tue, 9 Nov 2010 05:03:01 +0000 (21:03 -0800)]
Disable overflow compensation in CRF mode
Wasn't designed with CRF in mind, and acts really weird with CRF+VBV.
Fiona Glaser [Tue, 9 Nov 2010 03:56:29 +0000 (19:56 -0800)]
Fix stupid bug in B-frame VBV size prediction
Oskar Arvidsson [Fri, 29 Oct 2010 11:13:25 +0000 (13:13 +0200)]
Fix regression in checkasm in r1666
Buffer is uint16_t* regardless of whether x264 was compiled with high bit depth or not.
Oskar Arvidsson [Fri, 29 Oct 2010 11:11:09 +0000 (13:11 +0200)]
Fix overflows in satd, sa8d and hadamard_ac with high bit depth
Oskar Arvidsson [Fri, 29 Oct 2010 10:34:42 +0000 (12:34 +0200)]
Fix potential problem with overflows in ssd_nv12
The risk of overflows increases exponentially with the bit depth.
The 8-bit asm versions may still overflow with image widths >= 11008 (or 6604 if interlaced).
Fiona Glaser [Sat, 30 Oct 2010 21:36:01 +0000 (14:36 -0700)]
Fix syntax for some parameterless functions
Technically, such functions should be declared with (void), not ().
Steven Walters [Sat, 30 Oct 2010 20:51:01 +0000 (16:51 -0400)]
Fix fps reporting on mingw64
_ftime on mingw64 uses __timeb32 which is broken.
Use ftime instead.
Manuel Rommel [Sun, 31 Oct 2010 18:19:10 +0000 (19:19 +0100)]
Fix compilation on PPC with some recent GCCs
Manuel Rommel [Mon, 11 Oct 2010 20:50:09 +0000 (13:50 -0700)]
Fix Altivec SATD with small strides
Fixes chroma ME and some of lookahead on PPC.
Holger Lubitz [Sun, 3 Oct 2010 17:07:00 +0000 (19:07 +0200)]
Address remaining cacheline split issues in avg2
Slightly improved performance on core 2.
Also fix profiling misattribution of w8/16/20 mmxext cacheline loops.
Fiona Glaser [Thu, 30 Sep 2010 00:56:27 +0000 (18:56 -0600)]
Trim a few bytes off some x86 intra pred functions
Yusuke Nakamura [Thu, 30 Sep 2010 15:37:39 +0000 (00:37 +0900)]
Move DTS compression from libx264 to x264cli
DTS compression is an ugly stupid hack and starting to encroach on unrelated areas like VBV.
Some people want it in the mp4 muxer for devices and/or splitters that don't support Edit Boxes.
We just say "throw these broken devices out the window".
DTS compression will remain as a muxer option, --dts-compress, at the user's own risk.
This option is disabled by default.
Fiona Glaser [Fri, 1 Oct 2010 05:24:51 +0000 (22:24 -0700)]
Use a larger pic_init_qp with high bit depth
Modify pic_init_qs for consistency.
Fiona Glaser [Sun, 3 Oct 2010 06:56:52 +0000 (23:56 -0700)]
Update some of the information in doc/