Commit Graph

46 Commits

Author SHA1 Message Date
Michael Niedermayer
0a7bf34042 wmaenc: change some asserts to av_assert0.
This ensures they are always checked

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 19:00:22 +01:00
Michael Niedermayer
0d92e5a682 wmaenc: add assert to check encode_superframe() return.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 19:00:22 +01:00
Michael Niedermayer
c99bd29462 Revert "wmaenc: check final frame size against output packet size"
This condition cannot happen, if it can it is a bug that MUST be fixed.
And i very happily volunteer to fix it if someone reports a case to
me that fails.

This reverts commit 5d652e063b.
2012-03-05 19:00:22 +01:00
Michael Niedermayer
2af8f2cea6 Merge remote-tracking branch 'qatar/master'
* qatar/master: (27 commits)
  cmdutils: use new avcodec_is_decoder/encoder() functions.
  lavc: make codec_is_decoder/encoder() public.
  lavc: deprecate AVCodecContext.sub_id.
  libcdio: add a forgotten AVClass to the private context.
  swscale: remove "cpu flags" from -sws_flags description.
  proresenc: give user a possibility to alter some encoding parameters
  vorbisenc: add output buffer overwrite protection
  libopencore-amrnbenc: fix end-of-stream handling
  ra144enc: fix end-of-stream handling
  nellymoserenc: zero any leftover packet bytes
  nellymoserenc: use proper MDCT overlap delay
  qpeg: Use bytestream2 functions to prevent buffer overreads.
  swscale: make %rep unconditional.
  vp8: convert simple loopfilter x86 assembly to use named arguments.
  vp8: convert idct x86 assembly to use named arguments.
  vp8: convert mc x86 assembly to use named arguments.
  vp8: convert loopfilter x86 assembly to use cpuflags().
  vp8: convert idct/mc x86 assembly to use cpuflags().
  swscale: remove now unnecessary hack.
  x86inc: don't "bake" stack_offset in named arguments.
  ...

Conflicts:
	cmdutils.c
	doc/APIchanges
	libavcodec/mpeg12.c
	libavcodec/options.c
	libavcodec/qpeg.c
	libavcodec/utils.c
	libavcodec/version.h
	libavdevice/libcdio.c
	tests/lavf-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-05 00:15:55 +01:00
Justin Ruggles
51ddf35c90 wmaenc: fix m/s stereo encoding for the first frame
We need to set ms_stereo in encode_init() in order to avoid incorrectly
encoding the first frame as non-m/s while flagging it as m/s. Fixes an
uncomfortable pop in the left channel at the start of playback.

CC:libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Justin Ruggles
8ed7488ea3 wmaenc: return s->block_align instead of recalculating it 2012-03-03 18:20:10 -05:00
Justin Ruggles
5d652e063b wmaenc: check final frame size against output packet size
Currently we have an assert() that prevents the frame from being too large,
but it is more user-friendly to give an error message instead of aborting on
assert(). This condition is quite unlikely due to the minimum bit rate check
in encode_init(), but it is still worth having.
2012-03-03 18:20:10 -05:00
Justin Ruggles
dfc4fdedf8 wmaenc: require a large enough output buffer to prevent overwrites
The maximum theoretical frame size is around 17000 bytes. Although in
practice it will generally be much smaller, we require a larger buffer
just to be safe.

CC: libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Justin Ruggles
1ec075cfec wmaenc: limit allowed sample rate to 48kHz
ff_wma_init() allows up to 50kHz, but this generates an exponent band
size table that requires 65 bands. The code assumes 25 bands in many
places, and using sample rates higher than 48kHz will lead to buffer
overwrites.

CC:libav-stable@libav.org
2012-03-03 18:20:10 -05:00
Justin Ruggles
c2b8dea182 wmaenc: limit block_align to MAX_CODED_SUPERFRAME_SIZE
This is near the theoretical limit for wma frame size and is the most that
our decoder can handle. Allowing higher bit rates will just end up padding
each frame with empty bytes.

Fixes invalid writes for avconv when using very high bit rates.

CC:libav-stable@libav.org
2012-03-03 18:20:09 -05:00
Michael Niedermayer
dd8ffc1925 Merge remote-tracking branch 'qatar/master'
* qatar/master: (47 commits)
  lavc: hide private symbols.
  lavc: deprecate img_get_alpha_info().
  lavc: use avpriv_ prefix for ff_toupper4.
  lavc: use avpriv_ prefix for ff_copy_bits and align_put_bits.
  lavc: use avpriv_ prefix for ff_ac3_parse_header.
  lavc: use avpriv_ prefix for ff_frame_rate_tab.
  lavc: rename ff_find_start_code to avpriv_mpv_find_start_code
  lavc: use avpriv_ prefix for ff_split_xiph_headers.
  lavc: use avpriv_ prefix for ff_dirac_parse_sequence_header.
  lavc: use avpriv_ prefix for some dv symbols used in lavf.
  lavc: use avpriv_ prefix for some flac symbols used in lavf.
  lavc: use avpriv_ prefix for some mpeg4audio symbols used in lavf.
  lavc: use avpriv_ prefix for some mpegaudio symbols used in lavf.
  lavc: use avpriv_ prefix for ff_aac_parse_header().
  lavf: hide private symbols.
  lavf: use avpriv_ prefix for some dv functions.
  lavf: use avpriv_ prefix for ff_new_chapter().
  avcodec: add CODEC_CAP_DELAY note to avcodec_decode_audio3() documentation
  avcodec: clarify the CODEC_CAP_DELAY note in avcodec_decode_video2()
  avcodec: clarify documentation of CODEC_CAP_DELAY
  ...

Conflicts:
	configure
	doc/general.texi
	libavcodec/Makefile
	libavcodec/aacdec.c
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/dv.c
	libavcodec/dvdata.c
	libavcodec/dvdata.h
	libavcodec/libspeexenc.c
	libavcodec/mpegvideo.c
	libavcodec/version.h
	libavformat/avidec.c
	libavformat/dv.c
	libavformat/dv.h
	libavformat/flvenc.c
	libavformat/mov.c
	libavformat/mp3enc.c
	libavformat/oggparsespeex.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-21 02:01:26 +02:00
Anton Khirnov
9f51c682ee lavc: use avpriv_ prefix for ff_copy_bits and align_put_bits.
They are used in lavf.
2011-10-20 21:06:58 +02:00
Michael Niedermayer
eae3cf06a5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flvdec: Fix invalid pointer deferences when parsing index
  configure: disable hardware capabilities ELF section with suncc on Solaris x86
  Use explicit struct initializers for AVCodec declarations.
  Use explicit struct initializers for AVOutputFormat/AVInputFormat declarations.
  adpcmenc: Set bits_per_coded_sample
  adpcmenc: fix QT IMA ADPCM encoder
  adpcmdec: Fix QT IMA ADPCM decoder
  permit decoding of multichannel ADPCM_EA_XAS
  Fix input buffer size check in adpcm_ea decoder.
  fft: avoid a signed overflow
  mpegps: Handle buffer exhaustion when reading packets.

Conflicts:
	libavcodec/adpcm.c
	libavcodec/adpcmenc.c
	libavdevice/alsa-audio-enc.c
	libavformat/flvdec.c
	libavformat/mpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-24 22:39:52 +02:00
Diego Biurrun
8671488799 Use explicit struct initializers for AVCodec declarations. 2011-09-24 12:11:19 +02:00
Tomas Härdin
ee81e76db1 wmaenc: improve channel count and bitrate error handling in encode_init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-05-12 18:02:28 +02:00
Tomas Härdin
0cd138340e Improve channel count and bitrate error handling in wmav* encode_init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-03-24 15:00:28 +01:00
Michael Niedermayer
d4a50a2100 Merge remote-tracking branch 'newdev/master'
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-03-21 03:33:28 +01:00
Mans Rullgard
26f548bb59 fft: remove inline wrappers for function pointers
This removes the rather pointless wrappers (one not even inline)
for calling the fft_calc and related function pointers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 19:49:18 +00:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Diego Elio Pettenò
e7e2df27f8 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>
(cherry picked from commit d36beb3f69)
2011-01-28 03:15:34 +01: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
Stefano Sabatini
5d6e4c160a Replace deprecated symbols SAMPLE_FMT_* with AV_SAMPLE_FMT_*, and enum
SampleFormat with AVSampleFormat.

Originally committed as revision 25730 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-12 11:04:40 +00:00
Reimar Döffinger
edac49daf5 Use "const" qualifier for pointers that point to input data of
audio encoders.
This is purely for clarity/documentation purposes.

Originally committed as revision 24481 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-24 13:59:49 +00:00
Stefano Sabatini
72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Stefan Gehrer
3a201bd04f remove a Huffman table from WMA which also exists in AAC
Originally committed as revision 21902 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-19 20:42:55 +00:00
Reimar Döffinger
b5f09d31c2 Make sample_fmts and channel_layouts compound literals const to reduce size of
.data section.

Originally committed as revision 19787 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-06 09:15:07 +00:00
Sascha Sommer
9970c61b4b Introduce WMACoef typedef for decoded coefficients
and change default type to float so that the run level
decoding functionality can be shared with wmapro

Originally committed as revision 19231 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-20 09:05:28 +00:00
Siarhei Siamashka
7d485f165f Support for getting (i)MDCT output multiplied by a constant scaling factor.
Scaling (i)MDCT output has no runtime overhead and can be used to improve
performance of audio codecs. All the changes are only needed in
'ff_mdct_init' function and slow down initialization a bit.

Originally committed as revision 18855 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-16 14:17:08 +00:00
Stefano Sabatini
fb53b4a035 Rename pbBufPtr() to put_bits_ptr().
The new name is more readable and consistent with the FFmpeg naming
style.

Originally committed as revision 18497 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-13 16:59:38 +00:00
Michael Niedermayer
dc405cc1c0 A try to fix the regressions.
Originally committed as revision 17459 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-19 17:54:23 +00:00
Diego Pettenò
2d5174fc46 Intel C compiler warns on this assignment in this if(), probably
because it's being assigned as a constant. To avoid a spurious warning,
split it into two instructions, which should also make it more logical
once the FIXME is resolved.
patch by Diego 'Flameeyes' Pettenò %flameeyes A gmail P com%

Originally committed as revision 15525 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-02 19:20:11 +00:00
Loren Merritt
0a570e826d remove mdct tmp buffer
Originally committed as revision 14702 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-12 00:36:36 +00:00
Peter Ross
fd76c37fd9 Modify all codecs to report their supported input and output sample format(s).
Originally committed as revision 14482 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-07-31 10:47:31 +00:00
Stefano Sabatini
fe4bf37455 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
Originally committed as revision 13759 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-06-12 21:50:13 +00:00
Stefano Sabatini
d5202e4fda Add long names to many AVCodec declarations.
patch by Stefano Sabatini, stefano.sabatini-lala poste it

Originally committed as revision 13005 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-04-27 10:52:44 +00:00
Benjamin Larsson
ad40b15394 silence wmaenc.c:181: warning:suggestparentheses around assignment used as truth value
Originally committed as revision 11940 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-15 13:44:08 +00:00
Michael Niedermayer
5492209aa9 clarify FIXME
Originally committed as revision 11251 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-12-17 18:23:18 +00:00
Måns Rullgård
6785cae35c trivial warning fixes
Originally committed as revision 9551 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-08 23:15:08 +00:00
Ramiro Polla
2c124cb65c Use AV_xx throughout libavcodec
Originally committed as revision 9169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-06-02 01:41:07 +00:00
Ian Braithwaite
1890c2acf4 Optimize by building the mdct window and multipying/adding at the same time.
Patch by Ian Braithwaite ian .. braithwaite . dk

[Ffmpeg-devel] WMA decoder speedup 2007-03-22 22:56

Originally committed as revision 8526 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-26 10:03:57 +00:00
Michael Niedermayer
2ed76c08c3 bitrate sanity check (fixes assertion failure)
Originally committed as revision 8293 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-08 10:25:06 +00:00
Michel Bardiaux
911b9faf31 Rename WMADecodeContext to WMACodecContext
Originally committed as revision 8143 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-27 09:54:48 +00:00
Michel Bardiaux
a9c9a2400b Supply context to tprintf
Originally committed as revision 8142 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-27 09:39:04 +00:00
Michael Niedermayer
a1fd944f73 workaround sign bug
Originally committed as revision 7864 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-06 23:58:02 +00:00
Michael Niedermayer
21ac1d47d1 10l use of uninitalized var
Originally committed as revision 7863 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-06 22:20:55 +00:00
Michael Niedermayer
5968607304 wma encoder
Originally committed as revision 7855 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-06 20:19:04 +00:00