Anton Khirnov
d55fa6f9cb
lavc: factorize setting got_packet_ptr in avcodec_encode_video2()
2012-02-25 07:48:46 +01:00
Anton Khirnov
52953d61ca
lavc: signal no output when a NULL frame is passed to audio encoder without delay
2012-02-25 07:48:36 +01:00
Paul B Mahol
99cff417f3
xwdenc: fix monow encoding
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-25 07:45:06 +01:00
Paul B Mahol
904817cb9f
cdxl: fix ham6/8 on big endian
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 00:18:14 -05:00
Justin Ruggles
19adb0bc2d
vorbisdec: add a flush() function
...
clear MDCT overlap buffer and reset previous window mode when seeking
2012-02-24 17:37:25 -05:00
Ronald S. Bultje
830f70442a
fraps: release reference buffer on pix_fmt change.
...
Prevents crash when trying to copy from a non-existing plane in e.g.
a RGB32 reference image to a YUV420P target image
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
Ronald S. Bultje
87840eeb71
avcodec: disallow reget_buffer() if pix_fmt changed.
2012-02-24 14:28:15 -08:00
Ronald S. Bultje
33cd32b389
kgv1: use avctx->get/release_buffer().
...
Also fixes crashes on corrupt bitstreams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
Dale Curtis
b716542691
mpegaudiodec: Prevent premature clipping of mp3 input buffer.
...
Instead of clipping extrasize based on EXTRABYTES, clip based on the
amount of buffer actually left. Without this fix, there are warbles
and other distortions in the test case below.
http://kevincennis.com/mix/assets/sounds/1901_voxfx.mp3
2012-02-24 13:47:04 -05:00
Ronald S. Bultje
be129271ea
lcl: error out if uncompressed input buffer is smaller than framesize.
...
This prevents crashes when trying to read beyond the end of the buffer
while decoding frame data.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:57 -08:00
Ronald S. Bultje
ab492ca2ab
mjpeg: abort decoding if packet is too large.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:43 -08:00
Ronald S. Bultje
46b3fbc30b
golomb: use HAVE_BITS_REMAINING() macro to prevent infloop on EOF.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:33 -08:00
Ronald S. Bultje
b44b41633f
get_bits: add HAVE_BITS_REMAINING macro.
2012-02-24 07:28:14 -08:00
Alex Converse
447363870f
tiff: Prevent overreads in the type_sizes array.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 16:23:51 -08:00
Alex Converse
e32548d133
tiff: Make the TIFF_LONG and TIFF_SHORT types unsigned.
...
TIFF v6.0 (unimplemented) adds signed equivalents.
2012-02-23 16:23:51 -08:00
Christophe GISQUET
2784d18791
SBR DSP x86: implement SSE sbr_hf_g_filt
...
Unrolling the main loop to process, instead of 4 elements:
- 8: minor gain of 2 cycles (not worth the extra object size)
- 2: loss of 8 cycles.
Assigning STEP to a register is a loss. Output address (Y) is almost always
unaligned.
Timings:
- C (32/64 bits): 117/109 cycles
- SSE: 57 cycles
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:50:09 -08:00
Christophe GISQUET
34454c761f
SBR DSP x86: implement SSE sbr_sum_square_sse
...
The 32bits targets have been compiled with -mfpmath=sse for proper reference.
sbr_sum_square C /32bits: 82c (unrolled)/102c
C /64bits: 69c (unrolled)/82c
SSE/32bits: 42c
SSE/64bits: 31c
Use of SSE4.1 dpps to perform the final sum is slower.
Not unrolling to perform 8 operations in a loop yields 10 more cycles.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:50:06 -08:00
Christophe GISQUET
2e74a5abc2
SBR DSP: use intptr_t for the ixh parameter.
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:48:40 -08:00
Derek Buitenhuis
480b133e6f
wavpack: Don't shift minclip/maxclip
...
Since we are clipping before we shift the values to
16 or 32 bits, we should not shift the min/max clip
values to compensate.
Fixes 8 and 24 bit lossy decoding.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-23 20:43:39 +01:00
Anton Khirnov
ff311c0918
lavc: drop encode() support for video.
...
All video encoders have been converted to encode2(), all new encoders
should also use only encode2().
2012-02-23 20:26:26 +01:00
Anton Khirnov
171273fec8
snowenc: switch to encode2().
2012-02-23 20:26:14 +01:00
Anton Khirnov
8d3348c2c4
snowenc: don't abuse input picture for storing information.
2012-02-23 20:26:04 +01:00
Anton Khirnov
7340008f18
a64multienc: switch to encode2().
...
We have no decoder, so cannot test if the output is decodable.
2012-02-23 19:56:55 +01:00
Anton Khirnov
cfc6ab3199
a64multienc: don't write into output buffer when there's no output.
2012-02-23 19:56:45 +01:00
Anton Khirnov
4da6d194e5
libxvid: switch to encode2().
2012-02-23 19:55:23 +01:00
Anton Khirnov
760b004086
tiffenc: switch to encode2().
2012-02-23 19:53:20 +01:00
Anton Khirnov
62acb4937e
tiffenc: properly forward error codes in encode_frame().
2012-02-23 19:52:08 +01:00
Anton Khirnov
2257f66ec5
lavc: drop libdirac encoder.
...
Libschroedinger is the preferred way to encode dirac video now, it
produces better output and has a nicer API.
2012-02-23 19:50:46 +01:00
Anton Khirnov
577fed3b7c
gifenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Anton Khirnov
d8f3365fb0
libvpxenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Anton Khirnov
0ecf54f9dc
flashsvenc: switch to encode2().
2012-02-23 19:50:46 +01:00
Ronald S. Bultje
01cb62aba2
lcl: don't overwrite input memory.
...
If the PNG filter is enabled, a PNG-style filter will run over the
input buffer, writing into the buffer. Therefore, if no zlib compression
was used, ensure that we copy into a temporary buffer, otherwise we
overwrite user-provided input data.
2012-02-23 10:31:46 -08:00
Anton Khirnov
84db922bf9
libxavs: switch to encode2().
2012-02-23 19:25:50 +01:00
Anton Khirnov
d3b577f00d
libxavs: add an AVClass at the beginning of XavsContext.
2012-02-23 19:25:50 +01:00
Anton Khirnov
a5f848c86d
libxavs: split extradata writing out of encode_nals().
...
This is done in preparation for the following patch implementing
encode2().
This commit is analogous to 05d699222d
for
libx264.
2012-02-23 19:25:50 +01:00
Anton Khirnov
8e8124e173
ljpegenc: switch to encode2().
2012-02-23 19:25:50 +01:00
Ronald S. Bultje
2b83e8b700
truemotion2: error out if the huffman tree has no nodes.
...
This prevents crashers and errors further down when reading nodes in the
empty tree.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 07:46:25 -08:00
Anton Khirnov
3c0ed7d1a8
asv1enc: switch to encode2().
2012-02-23 14:11:08 +01:00
Anton Khirnov
df53a47317
libschroedingerenc: switch to encode2().
2012-02-23 13:54:34 +01:00
Anton Khirnov
278d88689b
ffv1enc: switch to encode2().
2012-02-23 13:51:29 +01:00
Anton Khirnov
f7fa73ac91
libtheoraenc: switch to encode2().
2012-02-23 13:48:34 +01:00
Anton Khirnov
6d9c27dc85
jpeglsenc: switch to encode2().
2012-02-23 11:12:39 +01:00
Anton Khirnov
148fc99506
lclenc: switch to encode2().
2012-02-23 11:11:42 +01:00
Anton Khirnov
21b46747ad
qtrleenc: switch to encode2().
2012-02-23 11:08:50 +01:00
Justin Ruggles
62d5f9e5ca
flacdec: set channel_layout based on channel count
...
Channel layouts are specified in the FLAC format description at
http://flac.sourceforge.net/format.html
fixes Bug 209
2012-02-22 20:14:00 -05:00
Justin Ruggles
3798205a77
mov: set channel layout for AC-3 streams based on the 'dac3' atom info
...
fixes Bug 225
2012-02-22 20:07:02 -05:00
Alex Converse
1cd9a6154b
aac: fix infinite loop on end-of-frame with sequence of 1-bits.
...
Based-on-work-by: Ronald S. Bultje <rsbultje@gmail.com>
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-22 11:23:43 -08:00
Tim Walker
6bbaf6e0dd
mlpdec_parser: fix a few channel layouts.
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-22 10:50:22 -05:00
Christophe GISQUET
b5696ff2b8
prores: use natural integer type for the codebook index
...
The operations that use it require it to be promoted to a larger (natural)
type and thus perform sign extension on it.
While an optimal compiler may account for this, gcc 4.6 (for x86 Windows)
fails. Using the natural integer type provides a 2% speedup for Win64
and 1% for Win32.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-22 09:21:39 +01:00
Anton Khirnov
5d42ac7ffb
mpegvideo_enc: only allocate output packet when we know there will be output
...
Fixes a memleak.
2012-02-21 22:47:01 +01:00
Aneesh Dogra
79c7064c5f
sunrast: Add a sample request for RMP_RAW colormap.
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-21 16:00:06 -05:00
Justin Ruggles
70749c483c
avcodec: do not override pts or duration from the audio encoder
...
This allows encoders to set pts and/or duration even if they do not use
CODEC_CAP_DELAY.
2012-02-21 15:18:51 -05:00
Alex Converse
b0f29db5c2
Mark mutable static data const where appropriate.
2012-02-21 09:47:07 -08:00
Janne Grunau
6a4cf065c7
dvbsubdec: avoid undefined signed left shift in RGBA macro
2012-02-21 16:01:31 +01:00
Paul B Mahol
ca085e667b
mlpdec: use av_log_ask_for_sample()
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-02-21 16:01:31 +01:00
Paul B Mahol
08630d25a2
png: make .long_name more descriptive
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-21 15:47:05 +01:00
Ronald S. Bultje
3ab9a2a557
rv34: change most "int stride" into "ptrdiff_t stride".
...
This prevents having to sign-extend on 64-bit systems with 32-bit ints,
such as x86-64. Also fixes crashes on systems where we don't do it and
arguments are not in registers, such as Win64 for all weight functions.
2012-02-20 14:58:25 -08:00
Justin Ruggles
770a5c6d02
adpcmenc: Use correct frame_size for Yamaha ADPCM.
...
Output packet size should match avctx->block_align. The target output packet
size is 1024 bytes.
Before:
mono - 1024 samples -> 512 bytes
stereo - 2048 samples -> 2048 bytes
After:
mono - 2048 samples -> 1024 bytes
stereo - 1024 samples -> 1024 bytes
2012-02-20 15:52:32 -05:00
Justin Ruggles
91a28b0e8e
avcodec: add ff_samples_to_time_base() convenience function to internal.h
2012-02-20 15:20:17 -05:00
Justin Ruggles
41ac9bb253
adx parser: set duration
2012-02-20 15:08:41 -05:00
Justin Ruggles
b3a4c7e0f1
mlp parser: set duration instead of frame_size
2012-02-20 15:08:41 -05:00
Justin Ruggles
2460b168b4
gsm parser: set duration
2012-02-20 15:08:41 -05:00
Justin Ruggles
7575ffac8a
mpegaudio parser: set duration instead of frame_size
2012-02-20 15:08:40 -05:00
Justin Ruggles
16e54ac725
(e)ac3 parser: set duration instead of frame_size
2012-02-20 15:08:40 -05:00
Justin Ruggles
c7f3f1c91e
flac parser: set duration instead of frame_size
2012-02-20 15:08:40 -05:00
Justin Ruggles
e9cda85351
avcodec: add duration field to AVCodecParserContext
...
This will allow parsers to export the duration of the current frame being
output, if known, instead of using AVCodecContext.frame_size.
2012-02-20 15:08:40 -05:00
Paul B Mahol
0996f406c4
pnmdec: remove useless .pix_fmts
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-20 13:46:57 -05:00
Justin Ruggles
e00959a9b1
libmp3lame: support float and s32 sample formats
2012-02-20 12:32:31 -05:00
Justin Ruggles
e232225276
libmp3lame: renaming, rearrangement, alignment, and comments
2012-02-20 12:32:30 -05:00
Justin Ruggles
232e16dd02
libmp3lame: use the LAME default bit rate
...
Also, only set bit rate for CBR.
2012-02-20 12:32:30 -05:00
Justin Ruggles
1f516c0451
libmp3lame: use avpriv_mpegaudio_decode_header() for output frame parsing
2012-02-20 12:32:30 -05:00
Justin Ruggles
e3d2c89e9d
libmp3lame: cosmetics: remove some pointless comments
2012-02-20 12:32:30 -05:00
Justin Ruggles
bf909fc456
libmp3lame: convert some debugging code to av_dlog()
...
also remove unneeded commented-out full frame data debugging
2012-02-20 12:32:30 -05:00
Justin Ruggles
469d2a8e8e
libmp3lame: remove outdated comment.
...
We now require at least libmp3lame 3.98.3.
lame_encode_buffer_interleaved() still doesn't work for mono, but it does not
"die"; it just expects a stereo interleaved buffer.
2012-02-20 12:32:30 -05:00
Justin Ruggles
35cfd7d09c
libmp3lame: do not set coded_frame->key_frame.
...
it is already set in avcodec_alloc_frame()
2012-02-20 12:32:30 -05:00
Justin Ruggles
8dad25ebf7
libmp3lame: improve error handling in MP3lame_encode_init()
2012-02-20 12:32:30 -05:00
Justin Ruggles
310c372e12
libmp3lame: remove unneeded 'stereo' field from Mp3AudioContext
2012-02-20 12:32:30 -05:00
Anton Khirnov
55fd7da107
pcxenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
fb11e22fda
sgienc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
61eaf45c99
targaenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
1e742ea3c8
targaenc: don't modify input frame.
...
Set the pict_type/key_frame properties on the coded picture.
2012-02-20 07:50:44 +01:00
Anton Khirnov
3227770092
roqvideoenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
4fd7cfef0b
roqvideoenc: add const qualifier to the input frame.
2012-02-20 07:50:44 +01:00
Anton Khirnov
1ea5755046
pnmenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
bc9c70e5a3
huffyuv: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
2abee9be82
v410enc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
11505f39e1
zmbvenc: switch to encode2().
2012-02-20 07:50:44 +01:00
Anton Khirnov
8c8c7b5e37
zmbvenc: move header writing to the end of encode_frame().
...
This makes switching to encode2() simpler, because it allows us to know
exactly how large should the output buffer be before we start writing
into it.
2012-02-20 07:50:44 +01:00
Ronald S. Bultje
8fb26950ed
h264: don't use redzone in loopfilter on win64.
...
Red zone usage is not allowed in the Win64 ABI.
2012-02-19 15:31:03 -08:00
Luca Barbato
aac63cef20
examples: unbreak compilation
...
Update api so it will compile again.
2012-02-19 19:10:28 +01:00
Paul B Mahol
e04ca1d4ce
ttadec: cosmetics: reindent
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-19 13:04:10 -05:00
Aneesh Dogra
566df2eea2
sunrast: use RLE trigger macro inplace of the hard coded value.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-19 15:55:57 +01:00
Aneesh Dogra
1a58daed0f
sunrastenc: set keyframe flag for the output packet.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-19 15:54:27 +01:00
Anton Khirnov
445a7d48b1
mpegvideo_enc: switch to encode2().
2012-02-19 08:26:30 +01:00
Anton Khirnov
5455384219
mpegvideo_enc: force encoding delay of at least 1 frame when low_delay=0
...
This allows the following commit to extrapolate better dts for the first
frame. Pts difference between the first two frames is reused as the
difference between pts and dts of the first frame.
2012-02-19 08:22:48 +01:00
Kostya Shishkov
6d702dc072
proresenc: force bitrate not to exceed given limit
...
Apple ProRes Format Specifications mentions target data size for every frame,
so make sure frame meets it. This also allows encoder to demand much smaller
packet sizes for output.
2012-02-18 18:34:01 +01:00
Ronald S. Bultje
c742ab4e81
vc1parse: call vc1_init_common().
...
The parser uses VLC tables initialized in vc1_common_init(), therefore
we should call this function on parser init also.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 09:16:39 -08:00
Ronald S. Bultje
9d3050d3e9
wma: don't return 0 on invalid packets.
...
Return 0 means "please return the same data again", i.e. it causes an
infinite loop. Instead, return an error.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 09:13:38 -08:00
Ronald S. Bultje
74699ac8c8
mjpegb: don't return 0 at the end of frame decoding.
...
Return 0 indicates "please return the same data again", i.e. it causes
an infinite loop. Instead, return that we consumed the buffer if we
finished decoding succesfully, or return an error if an error occurred.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-18 08:41:45 -08:00
Ronald S. Bultje
b1af4e9c27
vp8dsp: split long line.
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-18 02:32:09 +02:00