1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

13314 Commits

Author SHA1 Message Date
Nathan Caldwell
4afedfd8e5 aacenc: cosmetics, indentation, and comment clarification
Correct bad indentation in aaccoder
Clarify and correct comments in 3GPP psymodel, other cosmetics.
2011-03-16 23:35:39 -04:00
Nathan Caldwell
b7c96769c5 aacenc: Refactor the parts of the AAC psymodel.
3GPP:
Remove ffac from and move min_snr out of AacPsyBand.
Rearrange AacPsyCoeffs to make it easier to implement energy spreading.
Rename the band[] array to bands[]
Copy energies and thresholds at the end of analysis.

LAME:
Use a loop instead of an if chain in LAME windowing.
2011-03-16 23:34:12 -04:00
Young Han Lee
f578854efc aaccoder: Change FFMAX for allzero flag to OR bit operation
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-16 23:12:43 -04:00
Ramiro Polla
cbf5d22d24 Remove occurrences of my old email address
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-16 23:19:40 +00:00
Mans Rullgard
381d37fda9 dsputil: add bswap16_buf()
There are several places where a buffer is byte-swapped in 16-bit units.
This allows them to share code which can be optimised for various
architectures.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-16 23:19:40 +00:00
Janne Grunau
a03be6e1ba use LIBAV_LICENSE and LIBAV_VERSION instead of FFMPEG_* 2011-03-16 21:54:39 +01:00
Janne Grunau
29ba091136 replace FFMPEG with LIBAV in FFMPEG_CONFIGURATION
also update the multiple inclusion guards in config.h|mak
2011-03-16 21:54:39 +01:00
Justin Ruggles
79414257e2 mathops: fix MULL() when the compiler does not inline the function.
If the function is not inlined, an immmediate cannot be used for the
shift parameter, so the %cl register must be used instead in that case.

This fixes compilation for x86-32 using gcc with --disable-optimizations.
2011-03-15 20:49:37 -04:00
Justin Ruggles
aaff3b312e mathops: change "g" constraint to "rm" in x86-32 version of MUL64().
The 1-arg imul instruction cannot take an immediate argument, only a register
or memory argument.
2011-03-15 13:43:47 -04:00
Justin Ruggles
b181b8fb96 mathops: convert MULL/MULH/MUL64 to inline functions rather than macros.
This fixes unexpected name collisions that were occurring with variables
declared within the macros.
It also fixes the fate-acodec-ac3_fixed regression test on x86-32.
2011-03-15 13:43:47 -04:00
Philip Langdale
025225d7ee h264_mp4toannexb_bsf: Fix spurious warning when stream has SPS and PPS units.
Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-15 07:20:44 -04:00
Justin Ruggles
f1efbca5e9 ac3enc: add SIMD-optimized shifting functions for use with the fixed-point AC3 encoder. 2011-03-14 08:45:31 -04:00
Justin
323e6fead0 ac3enc: do not right-shift fixed-point coefficients in the final MDCT stage.
This increases the accuracy of coefficients, leading to improved quality.
Rescaling of the coefficients to full 25-bit accuracy is done rather than
offsetting the exponent values. This requires coefficient scaling to be done
before determining the rematrixing strategy. Also, the rematrixing strategy
calculation must use 64-bit math to prevent overflow due to the higher
precision coefficients.
2011-03-14 08:45:26 -04:00
Peter Ross
6e7cf13b6b mm decoder: move buffer allocation from decode_init() to decode_frame()
This permits playback in ffplay when libavfilter is enabled.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-14 08:07:29 -04:00
Peter Ross
0697440c1e Bitmap Brothers JV video decoder
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-14 08:05:01 -04:00
Johan Andersson
21de920472 Update the url to the site website and change ffmpeg-devel to libav-devel
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-13 18:45:29 -04:00
Jason Garrett-Glaser
81a131312d VP8: fix other function declaration
Was missed in 3efbe137.
2011-03-12 15:36:15 -08:00
Hendrik Leppkes
0215006ab7 VC1: Export profile/level
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-12 14:08:27 +00:00
Jason Garrett-Glaser
1eeca88691 VP8: optimize VP8Context struct ordering
Shaves at least 3KB off code size on x86, should improve cache utilization.
This would probably be useful to do for other decoders/encoders as well.
2011-03-12 03:43:42 -08:00
Jason Garrett-Glaser
3efbe13739 VP8: fix function declaration 2011-03-12 03:41:39 -08:00
Jason Garrett-Glaser
b1d2f812c9 VP8: token probs doesn't need padding
prob[0] is the only prob array ever accessed, so prob[1] can serve as padding
for prob[0].
2011-03-12 03:41:36 -08:00
Jason Garrett-Glaser
628b48db85 VP8: use a goto to break out of two loops
A break statement was supposed to break out of two loops, but only broke out of one.
Didn't affect output, just could have been marginally slower.
2011-03-12 03:41:33 -08:00
Mans Rullgard
a5444fee06 Add CONFIG_AC3DSP symbol to simplify makefiles
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-12 11:35:26 +00:00
Benjamin Larsson
aecd0a4496 Export profiles from the mpeg2 video decoder
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-10 18:05:35 -05:00
Nathan Caldwell
31ff9bd7b8 aacenc: Fix a segfault in search_for_quantizers
This reverts the removal of scoefs from AACEncContext.
It resulted in scoefs being a NULL pointer when
search_for_quantizers() is called.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-08 17:45:08 -05:00
Ronald S. Bultje
4e84f994d3 reindent. 2011-03-07 13:18:57 -05:00
Young Han Lee
2790d7a9ff aacenc: remove the data arrays
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-07 12:25:36 -05:00
Thadeu Lima de Souza Cascardo
36864ac354 aac_latm_dec: use aac context and aac m4ac
When decoding latm config, use the corresponding aac context and its
m4ac instead of using NULL and a local variable. This fixes decoding of
audio in MPEG TS from SBTVD (the Brazillian Digital TV Sytem), when
there is no extradata. This is the case when using the decoder with
gst-ffmpeg and a GStreamer mpegts demuxer.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-07 12:25:36 -05:00
Justin Ruggles
2d9a101a1f ac3enc: add some assertions 2011-03-07 11:18:59 -05:00
Justin Ruggles
7100d63ca5 ac3enc: use av_assert2() instead of assert() to make debugging easier. 2011-03-07 11:18:51 -05:00
Justin Ruggles
d21be5f15b cosmetics: rename ff_fmt_convert_init_ppc() to ff_fmt_convert_init_altivec().
It only has Altivec functions and is not compiled if Altivec is disabled.
2011-03-07 11:15:29 -05:00
Carl Eugen Hoyos
159683ddec Fix compilation on powerpc with --disable-altivec. 2011-03-07 11:15:25 -05:00
Sean McGovern
02dd3666c2 h264_mp3toannexb_bsg: don't crash, but warn, if PPS/SPS not found.
Should an AVC-1 in MP4 stream not contain SPS or PPS NAL units,
this BSF is then unable to allocate an output buffer for the
modified stream. Warn that the resulting stream may be unplayable.

Fix roundup issue #2386.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-07 10:19:46 -05:00
Justin Ruggles
53e35fd340 ac3enc: add num_rematrixing_bands to AC3EncodeContext and use it instead of the hardcoded value.
Currently it is always 4, but this change will allow it to be adjusted when
bandwidth-related features are added such as channel coupling, enhanced
channel coupling, and spectral extension.
2011-03-04 17:40:24 -05:00
Justin Ruggles
b35743ffb4 ac3: define AC3_MAX_CPL_BANDS and use it in ac3dec.h 2011-03-04 16:48:09 -05:00
Ronald S. Bultje
8cf9a09d40 vp3-mt: fix deadlock when first frame is not a keyframe. 2011-03-02 12:15:07 -05:00
Mans Rullgard
ff1efc524c threads: allow thread count of zero
This moves setting the thread count to a minimum of 1 to
frame_thread_init(), allowing a value of zero to propagate
through to the codec if frame threading is not used.  This
makes auto-threads work in libx264.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-02 14:06:48 +00:00
Baptiste Coudurier
fb98507126 vc1: fix decoding when end sequence is present
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-02 13:32:58 +00:00
Baptiste Coudurier
99bbc781e9 dnxhd: allow encoding with Avid Nitris compatibility.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-01 23:55:55 +00:00
Alexander Strange
76d8846c4e huffyuv: Add multithreading support
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-01 11:39:25 -05:00
Alexander Strange
ad9791e12b pthreads: Fix bug introduced with thread_safe_callbacks
For intra codecs, ff_thread_finish_setup() is called before decoding starts
automatically. However, get_buffer can only be used before it's called, so
adding this requirement broke frame threading for them. Fixed by moving the
call until after get_buffer is finished.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-01 11:39:12 -05:00
Mans Rullgard
0b32da90f8 ARM: VP8: fix build on systems with global symbol prefix
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-27 13:53:26 +00:00
Mans Rullgard
8b454c352f ARM: fix vp8 neon with pic enabled
The assembler emits literal pools too far from the load instructions,
so we must do it explicitly at a suitable location.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-27 13:53:21 +00:00
Peter Ross
e211e255aa bink: prevent overflows within binkidct by using int-sized intermediate array
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 15:24:35 -05:00
Peter Ross
ccfcddb3f2 Bink version 'b' audio decoder
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 15:24:35 -05:00
Peter Ross
8a8c283edd binkaudio: simplify frame_len_bits and frame_len calculation
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 15:24:35 -05:00
Peter Ross
a304def1dc binkaudio: remove unnecessary loop
decode_init sets bands[0] == 2, so this loop always sets the band table
index (k) to zero.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 15:24:35 -05:00
Peter Ross
582ac86d19 binkaudio: perform band table scaling in decode_init
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-25 15:24:35 -05:00
Mans Rullgard
8997bb8807 bink: use LOCAL_ALIGNED for aligned stack data
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-25 19:50:14 +00:00
Kyle
04973f8082 dxva2: define required feature selection macros
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-25 19:48:20 +00:00
Anssi Hannula
7e06e0ede3 dca: use EXT_AUDIO_ID field to determine core extensions
This avoids the core substream extensions scan when the EXT_AUDIO_ID
field indicates no extensions or only unsupported extensions. The scan
is done only if the value of EXT_AUDIO_ID is unknown or indicates a
present XCh extension which we can decode.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-24 21:22:37 +00:00
Justin Ruggles
1108f8998c vmdaudio: output 8-bit audio as AV_SAMPLE_FMT_U8.
There is no need to expand to 16-bits. Just use memcpy() to copy the raw data.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:52:51 -05:00
Justin Ruggles
2ec7862db8 vmdaudio: remove unnecessary fields from VmdAudioContext and use the corresponding AVCodecContext fields instead.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:52:12 -05:00
Justin Ruggles
1e86d685e0 vmdaudio: add out_bps to VmdAudioContext and use it to replace hard-coded sample size.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:51:44 -05:00
Justin Ruggles
1574eff3d2 vmdaudio: simplify vmdaudio_decode_frame() by handling block_type first, then making a single call to vmdaudio_loadsound().
This also adds output buffer size checks for AUDIO and SILENCE block types.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:51:12 -05:00
Justin Ruggles
ba9516cca8 cosmetics: reindent after previous commit
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:49:59 -05:00
Justin Ruggles
762b386e4a vmdaudio: move all silence chunk handling to vmdaudio_loadsound().
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:49:58 -05:00
Justin Ruggles
8e9027d266 cosmetics: remove debugging cruft
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:49:56 -05:00
Justin Ruggles
868f2f4d90 cosmetics: reindent after previous commit
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:48:04 -05:00
Justin Ruggles
2d213695fc vmdaudio: simplify buffer pointer and header size handling.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:12:39 -05:00
Justin Ruggles
7a4fb3fd93 vmdaudio: set *data_size to zero when skipping small packets and add a warning log message.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:11:36 -05:00
Justin Ruggles
22f893e1c9 vmdaudio: validate block type
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:10:12 -05:00
Justin Ruggles
dd1af5136f vmdaudio: use macros and a local variable for block type.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:08:31 -05:00
Justin Ruggles
6989cb2dae vmdaudio: correct the silent chunk count in the first block.
This fixes A/V sync with several samples, notably:
http://samples.mplayerhq.hu/game-formats/sierra-vmd/swat_*.vmd

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:06:33 -05:00
Justin Ruggles
9b73f78600 vmdaudio: output audio samples for standalone silent blocks.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:04:51 -05:00
Justin Ruggles
1328d43313 vmdaudio: remove duplicated code by merging mono and stereo decoding.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 21:02:19 -05:00
Justin Ruggles
a58bcb40b1 vmdaudio: fix raw_block_size calculation.
The size should depend on the output sample size, not the internal bit depth.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 20:58:56 -05:00
Young Han Lee
e22910b21a aacdec: Reduce the size of buf_mdct.
It was doubled in size for the LTP implementation. This brings it back
down to its original size.
2011-02-21 16:35:22 -08:00
Mans Rullgard
e0e46cae37 vp8: ppc: fix invalid reads in altivec epel mc
The 4-tap filters should only access one row/column before the
reference block.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-21 20:28:41 +00:00
Mans Rullgard
381efba0ec ppc: fix vc1 inverse transform, unbreak build
GCC 4.3 and later are more particular about signedness matching
in vector operations.  The operations under if(rangered) were
missing assignments and thus had no effect.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-21 20:28:37 +00:00
Ronald S. Bultje
78e2380a6d targa: prevent integer overflow in bufsize check. 2011-02-21 13:44:37 -05:00
Ronald S. Bultje
f8bed30d8b VC1: merge idct8x8, coeff adjustments and put_pixels.
Merging these functions allows merging some loops, which makes the
results (particularly after SIMD optimizations) much faster.
2011-02-21 10:23:44 -05:00
Ronald S. Bultje
484a337cd7 dsputil: make {add/put/put_signed}_pixels_clamped() non-static. 2011-02-21 10:23:44 -05:00
Ronald S. Bultje
bbfd2e7ab4 VC1: inline vc1_put_block() in vc1_decode_i_blocks().
Advantage is that it allows us to combine several loops into a single
one, and these can eventually be merged into the IDCT itself. Also, it
allows us to remove vc1_put_block(), and makes CODEC_FLAG_GRAY faster.
2011-02-21 10:23:44 -05:00
Mans Rullgard
1efa772e20 amrnb: use correct size when copying lsf_r array
lsf_r is an array of int16_t, not float.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-20 17:31:48 +00:00
Ronald S. Bultje
70aa916e46 VC1: don't use vc1_put_block() in vc1_decode_i_blocks_adv().
Advanced profile never uses "range reduction", so vc1_put_block() quite
literally just calls put_pixels_clamped() from vc1_decode_i_blocks_adv().
By inlining the function, we can prevent calling IDCT8x8 if
CODEC_FLAG_GRAY is set, and we don't have to scale the coeffs in the
[0,256] range, but can instead use put_signed_pixels_clamped().
2011-02-20 08:31:14 -05:00
Ronald S. Bultje
bf6fa73245 dsputil_mmx.c: remove ff_vector128.
Remove ff_vector128, it is identical to ff_pb_80.
2011-02-19 10:51:15 -05:00
Reimar Döffinger
2bbec1eda4 Fix invalid reads in VC1 decoder
Patch discussed and taken from https://roundup.ffmpeg.org/issue2584
2011-02-19 11:33:01 +01:00
David Conrad
a89f4ca005 Fix VP3 edge emulation
With negative stride, the start of the edge_emu buffer should be pointing to
the last line, not the end of the buffer.
With positive stride, pointing to the end of the buffer was completely wrong.
2011-02-19 01:42:12 -08:00
Young Han Lee
9707f84fa7 aacdec: dsputilize the scalar multiplication in intensity stereo 2011-02-19 00:57:09 -08:00
Jason Garrett-Glaser
902685b8ab VP3: fix decoding of videos with stride > 2048
Also remove qscale_table code; this didn't make sense anyways as VP3 doesn't
use an MPEG-like quantizer scale.
2011-02-18 14:40:57 -08:00
Jean-Daniel Dupas
351423ae1f targa: fix potential buffer overreads
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-18 15:04:47 +00:00
Ronald S. Bultje
ed040f35f2 Fix PPC build. 2011-02-17 20:22:39 -05:00
Jason Garrett-Glaser
891b1f15a7 VP8: init one less near_mv
This one didn't actually need to be initialized.
2011-02-17 15:25:28 -08:00
Jason Garrett-Glaser
bcf4568f18 VP8: split out declarations to new header 2011-02-17 15:25:16 -08:00
Jason Garrett-Glaser
7634771e70 VP8: faster MV clipping 2011-02-17 15:23:53 -08:00
Ronald S. Bultje
12802ec060 dsputil: move VC1-specific stuff into VC1DSPContext. 2011-02-17 17:35:35 -05:00
Ronald S. Bultje
0b16cdc3fa VC1: simplify a calculation in a loop. 2011-02-17 17:35:35 -05:00
Ronald S. Bultje
1da6ea3954 VC1: transpose IDCT 8x8 coeffs while reading. 2011-02-17 17:35:35 -05:00
Young Han Lee
979395bbbb mdct: remove unnecessary multiplication
3*n4 was already calculated in n3.
2011-02-17 11:59:28 +00:00
Justin Ruggles
5b54d4b376 ac3enc: fix bug in stereo rematrixing decision.
The rematrixing strategy reuse flags are not reset between frames, so they
need to be initialized for all blocks, not just block 0.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-16 23:39:57 +00:00
Michael Niedermayer
50a82c2c75 vbv_delay AVOption for ABI compatibility
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-16 23:05:46 +01:00
Carl Eugen Hoyos
2e3c56a29f Set maximum lowres value for the MJPEG decoder to 3.
While 4 works for some samples, 3 is the correct value since 8x8
DCT is used by (m)jpeg.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-16 23:05:46 +01:00
Justin Ruggles
1f004fc512 ac3dsp: Change punpckhqdq to movhlps in ac3_max_msb_abs_int16().
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-16 14:08:34 -05:00
Stefano Sabatini
938b62538a Document audio_resample_close().
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-16 10:34:09 +01:00
Stefano Sabatini
5495528365 Apply minor cosmetics fixes to the av_audio_resample_init() doxy.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-16 10:33:54 +01:00
Justin Ruggles
50d7140441 ac3enc: change default floor code to 7.
This is to match the value in every (E-)AC-3 file from commercial sources.
It has a negligible effect on audio quality.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-15 21:40:42 +00:00
Reinhard Tartler
737eb5976f Merge libavcore into libavutil
It is pretty hopeless that other considerable projects will adopt
libavutil alone in other projects. Projects that need small footprint
are better off with more specialized libraries such as gnulib or rather
just copy the necessary parts that they need. With this in mind, nobody
is helped by having libavutil and libavcore split. In order to ease
maintenance inside and around FFmpeg and to reduce confusion where to
put common code, avcore's functionality is merged (back) to avutil.

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2011-02-15 16:18:21 +01:00
Christophe Massiot
55bad0c602 Pass VBV delay to the calling application via ctx
VBV delay is useful for T-STD compliance in some TS muxers. It is
certainly possible to retrieve it by parsing the output of FFmpeg, but
getting it from the context makes it simpler and less error-prone.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-15 14:20:19 +00:00
Peter Ross
71f88b1f38 binkaudio: remove unused copy of AVCodecContext*
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-15 14:20:19 +00:00
Peter Ross
9806fbd535 binkaudio: fix channel count check
Perform validity check on AVFormatContext.channels instead of
uninitialised field.

This fixes issue 2001.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-15 14:20:19 +00:00
Young Han Lee
ead15f1dc1 aacdec: Implement LTP support.
Ported from gsoc svn.
2011-02-14 21:43:42 -08:00
Alex Converse
916dee9f45 aac: remove dead SBR input scaling
It has been unused since 9d06d7bce3

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-14 09:46:29 +00:00
Justin Ruggles
fbb6b49dab ac3enc: Add x86-optimized function to speed up log2_tab().
AC3DSPContext.ac3_max_msb_abs_int16() finds the maximum MSB of the absolute
value of each element in an array of int16_t.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-13 16:49:39 -05:00
Anatoly Nenashev
7a4abe5912 mpeg4video: ignore broken GOP headers
Some MPEG4 cameras produce files with empty GOP headers.
This patch makes the decoder ignore such broken headers and proceed
with the following I-frame.  Without this change, the following
start code is missed resulting in the entire I-frame being skipped.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-13 16:22:14 +00:00
Loren Merritt
e6b1ed693a FFT: factor a shuffle out of the inner loop and merge it into fft_permute.
6% faster SSE FFT on Conroe, 2.5% on Penryn.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-13 15:36:39 +01:00
Peter Ross
2315392174 bink: permute Bink version 'b' quant matrices by inverse scan order
This fixes visual glitches in Bink version 'b' files, as the quantization
tables were not being permuted.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-13 13:39:07 +00:00
Peter Ross
cb62510cab bink: simplify how quantization matrices are passed to read_dct_coeffs()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-13 12:34:01 +00:00
Vitor Sessak
47d62c965b Make tables generation insensitive to floating-point implementation
Using doubles make the double -> int cast well defined for all the values
used, with the exception of when s[i]==1.0, which is special-cased.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-12 15:47:46 +00:00
Ronald S. Bultje
2a03e87330 Add missing terminating backslash 2011-02-11 16:58:18 -05:00
Mans Rullgard
a7878c9f73 VP8: ARM optimised decode_block_coeffs_internal
Approximately 5% faster on Cortex-A8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-11 15:48:11 +00:00
Mans Rullgard
7da48fd011 ARM optimised vp56_rac_get_prob()
Approximately 3% faster on Cortex-A8.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-11 15:48:10 +00:00
Peter Ross
adb1ad0d80 bink: reindent after last commit
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-11 13:47:52 +01:00
Peter Ross
e00f41d574 Bink version 'b' video decoder
Based on original patch by Kostya Shishkov

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-11 13:47:23 +01:00
Alexander Strasser
0605cb4332 vorbis dec: Remove obsolete comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-10 21:34:29 -05:00
Alexander Strasser
4f03c5d793 vorbis dec: cosmetics: Indent consistently
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-10 21:34:29 -05:00
Alexander Strasser
97f5f97108 vorbis dec: cosmetics: Indent CPP cond properly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-10 21:34:29 -05:00
Alexander Strasser
07f06540f6 vorbis dec: Delete useless scopes, and reindent after scope deletion
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-10 21:34:29 -05:00
Jason Garrett-Glaser
f3d09d44b7 VP8: optimized mv prediction and decoding
Merge find_near_mvs and mv bitstream decoding: don't do prediction steps
until absolutely necessary.
2011-02-10 16:18:16 -08:00
Justin Ruggles
626264b11b ac3enc: Remove unneeded clipping of shift amount.
s->windowed_samples will always have a range of [-32767,32767] due to the
window function, so the return value from log2_tab() will always be in the
range [0,14].

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-10 23:16:23 +00:00
Justin Ruggles
d4582889ee ac3enc: remove right shifting from lshift_tab() and make lshift unsigned.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-10 23:16:22 +00:00
Mans Rullgard
44adbebe17 Remove final semicolon from some macros
This avoids double semicolons after macro expansion.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-10 21:45:17 +00:00
Ronen Mizrahi
df211c3ab7 dvbsubenc: Fix placement of the object version
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-10 21:45:17 +00:00
Janne Grunau
493aa30adf dvbsubdec: check against buffer overreads
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-10 21:37:31 +01:00
Reimar Döffinger
4a72765a1c Do not fail DVB sub decoding because of a few padding bytes
Instead of returning an error when bytes are left over, just return
the number of actually used bytes as other decoders do.
Instead add a special case so an error will be returned when none
of the data looks valid to avoid making debugging a pain.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-10 21:37:31 +01:00
Justin Ruggles
dda3f0ef48 Add x86-optimized versions of exponent_min().
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-10 15:32:47 -05:00
Mans Rullgard
b4668274b9 Remove incorrect return statement from avcodec_thread_free()
The function return type is void, so a return statement with an
expression is forbidden (and pointless).

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-10 14:17:24 +00:00
Mans Rullgard
dbb09ec23f ivi_dsp: remove semicolons after function definitions
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-10 14:17:24 +00:00
Mans Rullgard
9a77a92c2b Fix build with threading disabled
The avcodec_thread_free() compatibility wrapper calls ff_thread_free(),
which is not defined when threading is disabled.  Make this call
conditional.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-09 20:52:28 +00:00
Mans Rullgard
aef669cdfd w32thread: add missing #include thread.h
This should fix building with win32 threads.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-09 20:52:28 +00:00
Reimar Döffinger
2cfa2d9258 check sample_fmt in avcodec_open
check AVCodecContext->sample_fmt against AVCodec->sample_fmts[] to ensure
that the encoder supports the specified sample format. Error out if it doesn't.
Previously, it would continue and output garbage. Fixes issue 2587.
2011-02-09 15:30:53 -05:00
Alexander Strange
d23845f311 vp3: Frame-based multithreading support
Decode times for big_buck_bunny_720p_stereo:

1 thread:
real    1m14.227s
user    1m13.104s
sys     0m1.108s

2 threads: (33% faster)
real    0m49.329s
user    1m33.735s
sys     0m1.834s

3 threads: (44% faster)
real    0m41.593s
user    1m44.884s
sys     0m1.967s
2011-02-09 09:17:29 -05:00
Alexander Strange
c0b102ca03 Deprecate avcodec_thread_init()
As a side effect of the last commit, avcodec_open() now calls it automatically,
so there is no longer any need for clients to call it.
Instead they should set AVCodecContext.thread_count.

avcodec_thread_free() is deprecated, and will be removed from avcodec.h at the
next MAJOR libavcodec bump.

Rename the functions to ff_thread_init/free, since they are now internal.
Wrappers are provided to maintain API compatibility.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-09 09:17:28 -05:00
Alexander Strange
37b00b47cb Frame-based multithreading framework using pthreads
See doc/multithreading.txt for details on use in codecs.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-09 09:17:28 -05:00
Jason Garrett-Glaser
c7ac200d15 Update qmin/qmax values for libx264 presets
Also allow qmin/qmax to go up to 69 (the current max value for libx264).  This
will have to increase when we add 9/10-bit support.
2011-02-08 15:59:30 -08:00
Jason Garrett-Glaser
f7f8120fb9 Fix broken vbv_buffer_init handling in libx264.c
Due to being pants-on-head retarded, libavcodec defaults this to zero, which
results in broken output.  This didn't affect ffmpeg.c, which sets it itself,
but caused problems for other calling apps using VBV.
2011-02-08 15:59:27 -08:00
Jason Garrett-Glaser
62457f9052 VP8: idct_mb optimizations
Currently uses AV_RL32 instead of AV_RL32A, as the latter doesn't exist yet.
2011-02-08 15:59:24 -08:00
Ronald S. Bultje
17cf7c68ed Fix ff_emu_edge_core_sse() on Win64.
Fix emu_edge_v_extend_15 to be <128 bytes on Win64, by being more strict
on the size of registers and which registers are being used for operations
where multiple are available. This fixes segfaults in emulated_edge()
function calls on Win64.
2011-02-08 18:25:12 -05:00
Stefan Kost
ae2104791f logging: downgrade recoverable errors to warnings
In all 3 cases, the decoding continues and thus a warning would be sufficient.
Helps application that catch them with own log handers to handle them
accordingly.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-08 17:49:35 +00:00
Janne Grunau
440b61691d h264: define FF_PROFILE_H264_HIGH_444 to the correct value
It was removed in fe9a3fb since it had the wrong value. Add profile name
for it.
2011-02-08 13:20:56 +01:00
Mans Rullgard
a1c1d3c003 VP8: ARM NEON optimisations for dsp functions
This adds NEON optimised versions of all functions in VP8DSPContext.
Based on initial work by Rob Clark.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-07 16:08:23 +00:00
Jindrich Makovicka
5bea615dc3 dvbsubdec: pass correct input buffer size
In some places, dvbsubdec passes improper input buffer size to
bitstream reading functions, not accounting for reading pointer
updates.

Fixed by using buffer_end - buffer pointer instead of fixed buffer length.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-07 14:21:36 +00:00
Kostya
90e8a9c34f Remove Xan WC4 cruft from xan.c
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-07 08:06:16 -05:00
Kostya Shishkov
44ddfd47d6 Xan4 decoder
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-07 08:03:22 -05:00
Sascha Sommer
ed19fafd48 pass QDMC extradata to the decoder
Makes playing QDMC files in MPlayer work when using the libavformat demuxer.
Problem was that the extradata was not passed from demuxer to decoder.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-06 16:05:55 -05:00
Diego Elio Pettenò
84ae8936f6 Make inter_rvlc and intra_rvlc static tables.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-06 09:53:33 -05:00
Anton Khirnov
c2fcd0a7a4 Replace remaining occurrences of deprecated CH_* with AV_CH_*
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-06 08:26:12 -05:00
Kieran Kunhya
f4a86bc981 Set channel_layout for mpegaudio
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-05 20:25:02 -05:00
Alexander Strange
edbb0c0708 vp3: Move table allocation code into a new function
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-05 20:00:57 -05:00
Alexander Strange
e8dcd73058 vp3: Factor out expression
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-05 19:57:01 -05:00
Jason Garrett-Glaser
8a2c99b486 VP8: slightly faster loopfilter sharpness logic 2011-02-04 04:51:22 -08:00
Jason Garrett-Glaser
79dec1541b VP8: faster deblock strength calculation
Convert hev_thresh logic to a LUT, simplify mbedge_lim calculation.
2011-02-04 04:51:18 -08:00
Clément Bœsch
523d9407d5 Remove a few if (p) av_freep(&p) forms
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-04 10:00:49 +00:00
Jason Garrett-Glaser
a1b227bb53 VP8: faster filter_level clip 2011-02-03 19:55:06 -08:00
Jason Garrett-Glaser
dd18c9a050 VP8: simplify lf_delta mb mode logic 2011-02-03 19:55:02 -08:00
Anton Khirnov
151595fe2e Rename remaining occurrences of SAMPLE_FMT_* to AV_SAMPLE_FMT_*
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-03 13:38:10 +00:00
Anton Khirnov
b2ed95ec48 Replace remaining occurrences of CODEC_TYPE_* with AVMEDIA_TYPE*
Tested to compile with lavc major bump.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-03 13:37:09 +00:00
Tomas Härdin
f5b82f45dc Add CODEC_ID_PRORES and bump lavc minor version
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-03 11:38:09 +00:00
Clément Bœsch
437fb1c87d Remove a few if (p) av_free(p) forms
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-03 01:37:55 +00:00
Nicolas George
62ecd3635a Set pkt_pts in avcodec_default_reget_buffer()
This was missed when pkt_pts was first added.

Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-03 00:25:35 +00:00
Justin Ruggles
c3beafa0f1 ac3enc: Change EXP_DIFF_THRESHOLD to 500.
This patch changes the exponent difference threshold in the exponent
strategy decision function of the AC-3 encoder.  I tested lowering in
increments of 100.  From 1000 down to 500 generally increased in quality
with each step, but 400 was generally much worse.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-02 20:00:43 +00:00
Mans Rullgard
b9a639ddd6 ARM: add helper macro for declaring constant data
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-02 11:35:51 +00:00
Justin Ruggles
c73d99e672 Separate format conversion DSP functions from DSPContext.
This will be beneficial for use with the audio conversion API without
requiring it to depend on all of dsputil.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-02 02:44:53 +00:00
Alex Converse
770c410fbb Fix ff_imdct_calc_sse() on gcc-4.6
Gcc 4.6 only preserves the first value when using an array with an "m"
constraint.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-02 02:40:05 +00:00
Anssi Hannula
71e0bee9ea h264: add profile names for the existing defines
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-01 20:37:02 +01:00
Janne Grunau
fe9a3fbe42 h264: Add Intra and Constrained Baseline profiles to avctx.profile 2011-02-01 20:37:02 +01:00
Gianluigi Tiesi
e86e858111 dca: avoid C99 declaration in for() expression
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-01 12:38:30 +00:00
Jason Garrett-Glaser
64233e702a VP8: merge chroma MC calls
Adds some duplicated code, but avoids duplicate edge checks and similar.
~0.5% faster overall on Parkjoy test sample.
2011-01-31 20:46:54 -08:00
Ronald S. Bultje
81f2a3f4ff Implement a SIMD version of emulated_edge_mc() for x86.
From ~550 cycles (C version) to 170 (SSE/x86-64), 206 (MMX/x86-32)
and 196 (SSE2/x86-32) cycles.
2011-01-31 20:55:56 -05:00
Justin Ruggles
d19b744a36 cosmetics: indentation
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-31 20:30:15 +00:00
Justin Ruggles
80ba1ddb58 Remove unneeded add bias from 3 functions.
DSPContext.vector_fmul_window()
DCADSPContext.lfe_fir()
SynthFilterContext.synth_filter_float()

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-31 20:28:42 +00:00
Jason Garrett-Glaser
73be29b0c4 Slightly simplify VP8 inter_predict
Merge an if and a switch.
2011-01-30 12:12:02 -08:00
Luca Barbato
dfd2a005eb Replace dprintf with av_dlog
dprintf clashes with POSIX.1-2008
2011-01-29 23:55:37 +01:00
Justin Ruggles
243f8241db Flush final frames in libfaac encoder.
Gives decoded output identical in length to faac commandline encoder.
Fixes Issue 670.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-29 18:58:27 +00:00
Vitor Sessak
e0eb963aaa Fix memory leak in ALS decoder in big endian systems
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-29 18:09:42 +00:00
Mans Rullgard
d461a47317 Rearrange MpegEncContext to simplify access from asm
This moves the fields needed by asm near the top, before any
structs or other members which complicate the offset calculation.
Modifying other structs will no longer require updating the offsets,
and the asm code is slightly simpler due to the smaller offsets.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-29 17:14:29 +00:00
Vitor Sessak
3af1fe829e Fix overread in altivec DSP function sad16
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-29 15:32:14 +00:00
Mans Rullgard
0745116c10 ARM: update MpegEncContext offsets 2011-01-29 04:39:39 +00:00
Ronald S. Bultje
2e27959879 Move ff_emulated_edge_mc() into DSPContext. 2011-01-28 22:13:26 -05:00
Ronald S. Bultje
e5262ec44a Optimize C version of ff_emulated_edge_mc().
From ~780 cycles to 551 cycles, mostly just by using libc memcpy()
instead of manually shuffling individual bytes around.
2011-01-28 22:13:26 -05:00
Alex Converse
e5c82df80e aacdec: Convert some loop copies into memcpy()s.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-28 17:00:36 +00:00
Stefano Sabatini
3c802cabba In the rawvideo decoder, set pkt_pts in the output frame.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-28 17:27:54 +01:00
Ronald S. Bultje
9d4bdcb714 Fix VP8 aliasing problems.
Replace * (uint32_t *) buf accesses with AV_WN32A/AV_COPY32.
2011-01-28 10:20:00 -05:00
Alex Converse
5ce5dbc5f3 Make ff_float_to_int16*_c() static.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-28 11:35:11 +00:00
Diego Elio Pettenò
ac28ce5fac Hide the now-prefixed decoders, encoders, parsers, bsf, hwaccel objects.
This significantly reduces the size of the symbol table in the generated ELF
shared object (as well as the other linked tables).

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-28 01:37:21 +00:00
Justin Ruggles
b5ec638343 cosmetics: indentation and spacing 2011-01-28 00:21:46 +00:00
Justin Ruggles
9d06d7bce3 Remove the add bias hack for the C version of DSPContext.float_to_int16_*(). 2011-01-28 00:07:35 +00:00
Justin Ruggles
37cb3eb534 Add special case for 2nd-order IIR filter.
40% faster in ff_iir_filter_flt() when c->order == 2.
2011-01-28 00:04:02 +00:00
Luca Barbato
d1b6f33bf2 Add ff_ to AVHWAccel decoders
That unbreaks compilation of vaapi and dxva2

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-27 10:03:14 +01:00
Ronald S. Bultje
22893e10ae VP8: don't overread edges on fourtap MC.
Fix C VP8 H+V MC functions which do two-dimensional 4/6-tap filters to
not overread beyond their edges if the second filter is 4-tap, since
the outer pixels aren't there anymore since
44002d8323.
2011-01-26 15:37:11 -05:00
Diego Elio Pettenò
d36beb3f69 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:45 +00:00
Diego Elio Pettenò
2d162e3825 Make ff_cmap_read_palette static to libavcodec/iff.c. Delete iff.h.
The iff.h header only declared one function that is now static, the
libavformat/iff.c source file wasn't using it before. Drop the file
entirely.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:04 +00:00
Justin Ruggles
4c57cde942 Add ff_ prefix to ac3_common_init().
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 15:35:27 +00:00
Justin Ruggles
24e3ad3031 ac3: Remove ff_ac3_critical_band_size_tab.
It is only used to generate band_start_tab, which about the same size, at
runtime, so it's simpler just to always hardcode band_start_tab.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 15:35:13 +00:00
Diego Elio Pettenò
7767d8d361 Mark C base versions of FFT functions static to fft.c
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 15:32:08 +00:00
Marco Gittler
b09f548285 Pass field order flag to libx264
Signed-off-by: Jason Garrett-Glaser <jason@x264.com>
2011-01-25 18:07:34 -08:00
Diego Elio Pettenò
1a88674862 Make ff_add_wav static to ra144.c
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-25 22:11:54 +01:00
Diego Elio Pettenò
13eb6b9097 Make ff_h264_find_frame_end static to h264.c; delete h264_parser.h
The header is empty after making the function static, so delete it and
drop its usage.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-25 22:07:29 +01:00
Diego Elio Pettenò
cf1d794a49 Make ff_ass_subtitle_header static to ass.c
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-25 22:05:12 +01:00
Diego Elio Pettenò
d625a32d6b Make ff_sin_tabs constant to rdft.c
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-25 21:48:03 +01:00