Commit Graph
100 Commits
Author SHA1 Message Date
Jason Garrett-Glaser 10bf2eebbe VP8: simplify token_prob handling
~1.5% faster decode_block_coeffs

Originally committed as revision 24659 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-02 05:20:38 +00:00
Jason Garrett-Glaser e25dee602f VP8: Much faster SSE2 MC
5-10% faster or more on Phenom, Athlon 64, and some others.
Helps some on pre-SSSE3 Intel chips as well, but not as much.

Originally committed as revision 24513 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-26 19:34:00 +00:00
Jason Garrett-Glaser fca05ea8a0 VP8: add missing free
Fixes a tiny memory leak.

Originally committed as revision 24504 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-26 07:10:30 +00:00
Jason Garrett-Glaser 13a1304bb3 Add myself to VP8 copyright and maintainers.
Also add Ronald to maintainers.

Originally committed as revision 24464 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 21:42:35 +00:00
Jason Garrett-Glaser 414ac27d8f VP8: always_inline some things to force gcc to do the right thing
Mostly seems to help in the MC code, which gets a hundred cycles faster.

Originally committed as revision 24463 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 21:36:21 +00:00
Jason Garrett-Glaser 06d50ca804 VP8: use AV_RL24 instead of defining a new RL24.
Originally committed as revision 24462 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 21:17:18 +00:00
Jason Garrett-Glaser 9fddd14a8e VP8: Slightly faster MV selection
Don't clamp best mv unless it's actually used.

Originally committed as revision 24461 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 19:06:22 +00:00
Jason Garrett-Glaser 14767f35ed VP8: use AV_ZERO32 instead of AV_WN32A where relevant
Originally committed as revision 24460 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 10:42:19 +00:00
Jason Garrett-Glaser 09959ec46e VP8: eliminate redundant code in r24458
Originally committed as revision 24459 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 10:34:21 +00:00
Jason Garrett-Glaser a71abb714e VP8: shave a few clocks off check_intra_pred_mode
Originally committed as revision 24458 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 10:24:38 +00:00
Jason Garrett-Glaser 0087aa47d0 VP8: fix broken sign bias code in MV pred
Apparently the official conformance test vectors don't test this feature,
even though libvpx uses it.

Originally committed as revision 24456 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 06:41:35 +00:00
Jason Garrett-Glaser 3ae079a3c8 VP8: optimize DC-only chroma case in the same way as luma.
Add MMX idct_dc_add4uv function for this case.
~40% faster chroma idct.

Originally committed as revision 24455 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 06:02:52 +00:00
Jason Garrett-Glaser 3df56f4118 VP8: Clean up some variable shadowing.
Originally committed as revision 24454 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 03:44:37 +00:00
Jason Garrett-Glaser 51c9156438 VP8 asm: cosmetics (spacing)
Originally committed as revision 24453 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 03:02:56 +00:00
Jason Garrett-Glaser 8a467b2d44 VP8: 30% faster idct_mb
Take shortcuts based on statistically common situations.
Add 4-at-a-time idct_dc function (mmx and sse2) since rows of 4 DC-only DCT
blocks are common.
TODO: tie this more directly into the MB mode, since the DC-level transform is
only used for non-splitmv blocks?

Originally committed as revision 24452 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 02:58:27 +00:00
Jason Garrett-Glaser ef38842f0b VP8: smarter prefetching
Don't prefetch reference frames that were used less than 1/32th of the time so
far in the frame.
This helps speed up to ~2% on videos that, in many frames, make near-zero
(but not entirely zero) use of golden and/or alt-refs.
This is a very common property of videos encoded by libvpx.

Originally committed as revision 24451 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 01:59:56 +00:00
Jason Garrett-Glaser c25c776708 VP8: clear DCT blocks in iDCT instead of using clear_blocks.
~0.3% faster overall.

Originally committed as revision 24448 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 00:07:16 +00:00
Jason Garrett-Glaser b74f70d646 VP8: avoid a memset for non-i4x4 blocks with no coefficients
Originally committed as revision 24447 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 00:05:44 +00:00
Jason Garrett-Glaser 145d31865d Get rid of more unnecessary dereferences in VP8 deblocking
Originally committed as revision 24446 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 23:11:40 +00:00
Jason Garrett-Glaser 867215336d Shut up an uninitialized variable GCC warning in VP8.
Originally committed as revision 24445 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 23:04:51 +00:00
Jason Garrett-Glaser c4211046d2 Smarter VP8 prefetching
Prefetch all refs (including altref), but only if they've been used so far this
frame.
~2.5% faster overall.

TODO: Do something even smarter, like using how often each ref has been used
so far, so that a couple blocks of a rarely-used ref don't force us to prefetch
it.

Originally committed as revision 24444 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 23:03:08 +00:00
Jason Garrett-Glaser 8cfae560ad Fix stupid bug in VP8 prefetching code
Originally committed as revision 24443 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 22:15:43 +00:00
Jason Garrett-Glaser 2a38c2e99a Eliminate a LUT in escape decoding in VP8 decode_block_coeffs
Originally committed as revision 24441 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 22:08:09 +00:00
Jason Garrett-Glaser d292c3455e Eliminate some repeated dereferences in VP8 inter_predict
Originally committed as revision 24438 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 21:05:30 +00:00
Jason Garrett-Glaser b946111fde Eliminate a pointless memset for intra blocks in P-frames in VP8
Originally committed as revision 24429 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 12:15:29 +00:00
Jason Garrett-Glaser b9a7186bf4 VP8: Don't store segment in macroblock struct anymore.
Not necessary with the previous patch.

Originally committed as revision 24427 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 11:55:55 +00:00
Jason Garrett-Glaser c55e0d34ba Convert VP8 macroblock structures to a ring buffer.
Uses a slightly nonintuitive ring buffer size of (width+height*2) to simplify
addressing logic.
Also split out the segmentation map to a separate structure, necessary to
implement the ring buffer.

Originally committed as revision 24426 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 11:45:18 +00:00
Jason Garrett-Glaser 968570d65f Calculate deblock strength per-MB instead of per-row
Gives better cache locality, since the VP8Macroblock structs are still in cache.
Inspired by the way x264 does it.

Originally committed as revision 24417 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 07:24:22 +00:00
Jason Garrett-Glaser d1c58fce20 Avoid tracking i4x4 modes in P-frames in VP8
As in the previous commit, they aren't used for context selection, so it saves
memory this way.

Originally committed as revision 24416 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 07:04:45 +00:00
Jason Garrett-Glaser 158e062c95 Avoid useless fill_rectangle in P-frames in VP8
In VP8, i4x4 only uses contexts based on neighbors in I-frames.

Originally committed as revision 24415 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 06:39:54 +00:00
Jason Garrett-Glaser 7bf254c41d Optimize partition mv decoding in VP8
Originally committed as revision 24414 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 06:29:26 +00:00
Jason Garrett-Glaser c0498b3031 Take shortcuts for mv0 case in VP8 MC
Avoid edge emulation -- it isn't needed if there isn't any subpel.

Originally committed as revision 24413 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 05:49:09 +00:00
Jason Garrett-Glaser 702e8d3376 Much faster VP8 mv and mode prediction
Originally committed as revision 24412 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 04:26:41 +00:00
Jason Garrett-Glaser d229ae2b62 Convert vp56_mv to 16-bit.
Saves nothing except a bit of memory/cache now, but will allow future
optimizations.

Originally committed as revision 24411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 03:33:29 +00:00
Jason Garrett-Glaser d864dee8ab Add prefetching to VP8 decoder
~5% faster overall, probably depends on CPU and resolution.

Originally committed as revision 24410 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 03:09:10 +00:00
Jason Garrett-Glaser 8731dbd890 Eliminate one instruction in VP8 dc_add_sse4
Originally committed as revision 24405 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 22:41:37 +00:00
Jason Garrett-Glaser 7dd224a42d Various VP8 x86 deblocking speedups
SSSE3 versions, improve SSE2 versions a bit.
SSE2/SSSE3 mbedge h functions are currently broken, so explicitly disable them.

Originally committed as revision 24403 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 22:11:03 +00:00
Jason Garrett-Glaser b8b231b5dc Make mmx VP8 WHT faster
Avoid pextrw, since it's slow on many older CPUs.
Now it doesn't require mmxext either.

Originally committed as revision 24397 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 20:51:01 +00:00
Jason Garrett-Glaser a6f8f11b9b Change qmax/qmin limits to 63 instead of 51.
VP8 supports quantizers up to 63.

Originally committed as revision 24157 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-10 06:34:57 +00:00
Jason Garrett-Glaser b06855f18a SSSE3 versions of vp8 width4 bilinear MC functions
Originally committed as revision 24013 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-03 00:48:12 +00:00
Jason Garrett-Glaser dcc602d802 SSSE3 versions of width4 VP8 6-tap MC functions
Also make some small changes to saturation order of 4-tap SSSE3 MC to fix a
non-bitexactness bug.

Patch mostly by Eli Friedman <eli.friedman AT gmail DOT com>.

Originally committed as revision 23965 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-02 05:27:41 +00:00
Jason Garrett-Glaser 8434fc26eb Fix 100L in vp8dsp asm init
Originally committed as revision 23946 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-01 22:09:22 +00:00
Jason Garrett-Glaser 17dc7c7a60 Fix h264/vp8 intra pred on Athlon XP
Whose idea was it to have a CPU that didn't SIGILL on an invalid instruction?

Originally committed as revision 23927 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-01 10:29:47 +00:00
Jason Garrett-Glaser 4148855ee4 Eliminate another redundant instruction in vp56/8 arithcoder
Necessary because of this GCC bug:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44474
To do this, convert some, but not all (!) of the variables in VP56RangeCoder
into local variables.
If we convert c->high into a local variable, gcc gets the stupids and refuses
to use a conditional move for the unpredictable main branch.

TODO: dispense with this bullshit and write an asm version.

Originally committed as revision 23924 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 23:59:27 +00:00
Jason Garrett-Glaser 36d6b545a1 CMOV-ify vp56 arithcoder
This incantation causes gcc 4.3 to generate cmov on x86, a vastly better option
than a completely unpredictable branch.
Hopefully this carries over to newer versions and other CPUs with conditionals.
~5 cycles saved per call on a Core i7.

Originally committed as revision 23921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 23:18:47 +00:00
Jason Garrett-Glaser 2e6ed48d6e Optimize vp56 arithmetic decoder
Negate "bits" to eliminate a negate in cache refilling.

Originally committed as revision 23920 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 23:15:25 +00:00
Jason Garrett-Glaser 82a8d0f114 Use add instead of lshift in mmxext vp8 idct
Originally committed as revision 23891 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-29 17:23:17 +00:00
Jason Garrett-Glaser 29e719377f Add missing mm_support call toff_h264_pred_init_x86.
I'm not sure if this is supposed to be here, but it can't hurt.

Originally committed as revision 23885 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-29 12:28:06 +00:00
Jason Garrett-Glaser 95275094a5 Faster C VP8 normal inner loop filter
Originally committed as revision 23881 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-29 04:34:04 +00:00
Jason Garrett-Glaser 9942b6a1b0 Use crop table in C implementations of VP8 DSP functions.
Much faster VP8 C DSP functions; ~5-10% faster overall with asm off.

Originally committed as revision 23880 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-29 03:34:24 +00:00
Jason Garrett-Glaser 004cda8e79 Add mmxext version of VP8 DC Hadamard transform
Originally committed as revision 23878 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-29 01:41:59 +00:00
Jason Garrett-Glaser 37355fe823 Make x86util.asm LGPL so we can use it in LGPL asm
Strip out most x264-specific stuff (not used anywhere in ffmpeg).

Originally committed as revision 23877 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-29 00:40:12 +00:00
Jason Garrett-Glaser bc14f04b2f MMXEXT version of vp8 4x4 vertical pred
Originally committed as revision 23876 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-29 00:23:52 +00:00
Jason Garrett-Glaser fb9927ad7d Add mmx/mmxext/ssse3 4x4 TM intra pred functions for vp8
Originally committed as revision 23875 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-28 23:53:07 +00:00
Jason Garrett-Glaser 8b746bb473 Add missing comment header for predict_4x4_dc_mmxext
Originally committed as revision 23874 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-28 23:37:24 +00:00
Jason Garrett-Glaser 270a85d259 Fix some intra pred MMX functions that used MMXEXT instructions
Also add predict_4x4_dc MMXEXT function for vp8/h264.

Originally committed as revision 23873 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-28 23:35:17 +00:00
Jason Garrett-Glaser a912da761d Fix VP8 bilinear mc on x86_64
Originally committed as revision 23872 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-28 22:13:14 +00:00
Jason Garrett-Glaser 0fecad09fe Add x86 asm functions for VP8 put_pixels
Originally committed as revision 23858 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-28 19:14:40 +00:00
Jason Garrett-Glaser a173aa8940 Add MMX, SSE2, SSSE3 asm for VP8 bilinear MC
Originally committed as revision 23857 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-28 18:56:24 +00:00
Jason Garrett-Glaser 0178d14fe5 First shot at VP8 optimizations:
- MMXEXT, SSE2 and SSSE3 MC functions
- MMX and SSE4 IDCT dc_add functions

Patch by Jason Garrett-Glaser <darkshikari gmail com> and myself.

Originally committed as revision 23815 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-27 02:01:45 +00:00
Jason Garrett-Glaser 15d31aa1e1 Really fix r23782
Originally committed as revision 23788 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 19:03:03 +00:00
Jason Garrett-Glaser cd29c2b5a1 Fix c99ism in r23782
Originally committed as revision 23786 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 18:48:45 +00:00
Jason Garrett-Glaser 4af8cdfc3f 16x16 and 8x8c x86 SIMD intra pred functions for VP8 and H.264
Originally committed as revision 23783 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 18:25:49 +00:00
Jason Garrett-Glaser d6f8476be4 Make VP8 DSP functions take two strides
This isn't useful for the C functions, but will allow re-using H and V functions
for HV functions without adding separate H and V wrappers.

Originally committed as revision 23782 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 18:14:07 +00:00
Jason Garrett-Glaser 03ac56e7f1 fix typo in vp8 decoder error message
Originally committed as revision 23765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 04:23:45 +00:00
Jason Garrett-Glaser 2966cc1849 Update x264asm header files to latest versions.
Modify the asm accordingly.
GLOBAL is now no longoer necessary for PIC-compliant loads.

Originally committed as revision 23739 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-23 19:20:46 +00:00
Jason Garrett-Glaser c31a25e79c Use right-shift instead of division by two.
Patch by Dark Shikari

Originally committed as revision 23723 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-22 21:12:42 +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
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
Jason Garrett-Glaser 73f3f30de5 Fix libx264 configure check to use pkg-config if available.
Originally committed as revision 22913 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-19 19:34:37 +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
Jason Garrett-Glaser 099f772e83 Minor version bump for mbtree addition.
Originally committed as revision 20782 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-09 00:24:33 +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
Jason Garrett-Glaser bfb5a8cec6 Simplified deblocking checks.
Patch by Dark Shikari

Originally committed as revision 20751 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 15:38:05 +00:00
Jason Garrett-Glaser 50ba3fd713 Faster checks in reverse_dc_prediction.
Patch by Dark Shikari

Originally committed as revision 20750 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 15:33:48 +00:00
Jason Garrett-Glaser c11cb37520 Check transform==15 first, since it's more common than 13.
Patch by Dark Shikari

Originally committed as revision 20749 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 15:31:58 +00:00
Jason Garrett-Glaser 63c0b3d920 Various VP3 optimizations.
Faster checks in reverse_dc_prediction.
Simplified deblocking checks.
Check transform==15 first, since it's more common than 13.

Originally committed as revision 20747 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 12:48:09 +00:00
Jason Garrett-Glaser d2b34efe22 Update ffserver to include all basic x264 parameters in .ffm files.
Originally committed as revision 20601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-24 15:54:17 +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
Jason Garrett-Glaser 8ea08becfa Fix indentation in avcodec.h
Originally committed as revision 20082 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-29 17:34:36 +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
Jason Garrett-Glaser 03354862cb Update preset files to jive somewhat better with more recent x264 API.
Originally committed as revision 19837 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-14 09:59:32 +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
Jason Garrett-Glaser 01a3c821a2 Handle variable input stream pixfmts using the same framework introduced
by the variable frame size patch.  Fixes at least issue 1165.

Originally committed as revision 19279 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-26 01:08:26 +00:00
Jason Garrett-Glaser bc7ea1e5cf Add fourcc 0x10000004, seems to actually be MPEG4. Fixes a problematic AVI file.
Originally committed as revision 19219 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-18 19:31:12 +00:00
Jason Garrett-Glaser 351653a51e VC-1/WMV: Remove redundant ff_init_block_index() calls.
These are only supposed to be called once per row, not once per macroblock.
~1.5% faster according to oprofile.

Originally committed as revision 19213 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-17 05:54:42 +00:00
Jason Garrett-Glaser b46f18e5d2 Add ".mp2" as a fourcc for mp2 audio in MOV. Fixes a problematic MOV file.
Originally committed as revision 19211 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-16 23:50:02 +00:00
Jason Garrett-Glaser 73b02e2460 SSE version of clear_blocks
Originally committed as revision 19206 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-16 17:33:57 +00:00
Jason Garrett-Glaser 010f98f96a VC-1/WMV3 decoding: don't clear blocks unless they're actually used.
~8% faster VC-1 decoding.
Possible future optimization: clear blocks after use instead of before, and for
DC-only blocks, only clear the DC coefficient.

Originally committed as revision 19205 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-16 09:09:03 +00:00
Jason Garrett-Glaser 4f717c69ed idct_dc for VC-1/WMV3 decoder; ~11% faster decoding overall.
Includes mmx2 asm for the various functions.
Note that the actual idct still does not have an x86 SIMD implemtation.
For wmv3 files using regular idct, the decoder just falls back to simple_idct,
since simple_idct_dc doesn't exist (yet).

Originally committed as revision 19204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-16 09:00:55 +00:00
Jason Garrett-Glaser 41faa87886 Fix typo in vc1.c, make capitalization in warning/error messages more consistent.
Originally committed as revision 19203 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-16 00:48:07 +00:00
Jason Garrett-Glaser 67fe508916 Analysis of logs show that there are in fact some files with m1v1 too (not just m2v2),
which is documented to be MPEG-1 video.  Adding fourcc to isom.c.

Originally committed as revision 19180 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-13 03:02:16 +00:00
Jason Garrett-Glaser 761cb87173 Add "0x11005354" as a fourcc for MOV audio; fixes audio detection in a problematic MOV file.
The audio is actually adpcm_ima_wav.

Originally committed as revision 19176 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-13 00:16:39 +00:00
Jason Garrett-Glaser fc3fc0293d Add new FOURCC (0x0003) for raw DIB video, set flip flag accordingly.
Fixes a few AVI files from what is probably a mobile phone video camera.

Originally committed as revision 19172 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-12 17:39:56 +00:00
Jason Garrett-Glaser 14ed2d9983 Add "m2v1" to fourccs for MPEG-2 video; fixes some MOV files.
Originally committed as revision 19161 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-12 02:20:26 +00:00
Jason Garrett-Glaser be43ae6651 Add alternate fourcc for QCELP audio (qclq). Fixes a problematic MOV file.
Originally committed as revision 19159 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-12 01:09:49 +00:00
Jason Garrett-Glaser d869a460db LGPL version of ac3_decode_transform_coeffs_ch, ~12.4% faster.
Originally committed as revision 18875 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-19 21:29:21 +00:00
Jason Garrett-Glaser e27ad11840 Convert x264 asm files to proper unix line breaks
Originally committed as revision 17524 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-22 11:35:32 +00:00