Anton Khirnov
5e83d9aced
h264: fully support cropping.
...
Based on a patch by Vittorio Giovara <vittorio.giovara@gmail.com>
Fixes Bug 378.
2013-04-19 09:28:08 +02:00
Anton Khirnov
a7f46586bf
ff_get_buffer(): allocate the frame for max(coded,display) dimensions
...
Needed e.g. for h264 cropping to work properly.
2013-04-19 09:26:53 +02:00
Anton Khirnov
a0a872d073
indeo3: check motion vectors.
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-04-17 12:10:42 +02:00
Anton Khirnov
34e6af9e20
indeo3: fix data size check
...
The data offsets are relative to the bistream header, which is 16 bytes
after the start of the data.
Fixes invalid reads with corrupted files.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-04-17 12:09:36 +02:00
Anton Khirnov
66531d634e
indeo3: switch parsing the header to bytestream2
...
Also add an additional sanity check to the alt_quant table.
Fixes invalid reads with corrupted files.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-04-17 12:08:49 +02:00
Anton Khirnov
01d376f598
rv10: check that extradata is large enough
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-04-17 11:01:52 +02:00
Anton Khirnov
bac8d38c0a
rv10: return meaningful error codes.
...
Also improve some error messages.
2013-04-17 11:01:17 +02:00
Anton Khirnov
69f6f03cd1
rv10: cosmetics, reformat
2013-04-17 10:58:29 +02:00
Anton Khirnov
34f87a5853
qdm2: check that the FFT size is a power of 2
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-04-17 10:56:11 +02:00
Anton Khirnov
ecff5acb5a
svq1dec: clip motion vectors to the frame size.
...
Fixes invalid reads for corrupted files.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-04-17 10:55:51 +02:00
Anton Khirnov
b1bb8fb860
svq1dec: check that the reference frame has the same dimensions as the current one
...
They can be different if the last keyframe failed to decode correctly.
Fixes possible invalid reads in such a case.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-04-17 10:55:30 +02:00
Ronald S. Bultje
015821229f
vp3: Use full transpose for all IDCTs
...
This way, the special IDCT permutations are no longer needed. This
is similar to how H264 does it, and removes the dsputil dependency
imposed by the scantable code.
Also remove the unused type == 0 cases from the plain C version
of the idct.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-15 12:32:05 +03:00
Martin Storsjö
5941978e71
vp3: bfin: Transpose the IDCTs
...
While this change isn't bitexact, the IDCTs weren't bitexact to
start with either.
This simplifies decoupling vp3 from dsputil.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-15 12:31:52 +03:00
Ronald S. Bultje
c46819f229
x86: Move constants to the only place where they are used
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-15 12:17:39 +03:00
Martin Storsjö
c0dcf89887
bfin: Match DEFUN_END macros to the right functions
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-15 12:13:26 +03:00
Diego Biurrun
a3cb865310
x86: dsputil: Move some ifdefs to avoid unused variable warnings
2013-04-12 09:36:47 +02:00
Diego Biurrun
2004c7c8f7
x86: dsputil: cosmetics: Remove two pointless variable indirections
2013-04-12 09:36:47 +02:00
Diego Biurrun
c51a3a5bd9
x86: dsputil: Refactor some ff_{avg|put}_pixels function declarations
2013-04-12 09:36:46 +02:00
Diego Biurrun
e027032fc6
x86: dsputil: ff_h263_*_loop_filter declarations to a more suitable place
2013-04-12 09:36:46 +02:00
Diego Biurrun
a89c05500f
x86: h264qpel: int --> ptrdiff_t for some line_size parameters
2013-04-12 09:30:12 +02:00
Diego Biurrun
ac9362c5d9
Move misplaced file author information where it belongs
2013-04-11 02:42:11 +02:00
Anton Khirnov
9de9b828ef
lavc: don't overwrite display dimensions with coded dimensions.
2013-04-10 20:54:27 +02:00
Anton Khirnov
2d6edb2b7e
lavc: extend / update the [coded_]{width,height} doxy
2013-04-10 20:54:22 +02:00
Diego Biurrun
20429ba96e
h261: Move encoder/decoder shared table init to common code
2013-04-10 13:32:04 +02:00
Diego Biurrun
8a776ad90e
h261: Move shared data tables from a header to a proper C file
2013-04-10 13:32:04 +02:00
Ronald S. Bultje
b93b27edb0
dsputil: Make dsputil selectable
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:04:05 +03:00
Ronald S. Bultje
85deb51a01
h264: Only initialize dsputil if error resilience is enabled
...
It is only used for error resilience. This allows building the
h264 decoder without dsputil, if error resilience is disabled.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:03:53 +03:00
Ronald S. Bultje
62844c3fd6
h264: Integrate clear_blocks calls with IDCT
...
The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700
to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb
(in the decode_slice loop) goes from 1759 to 1733 cycles on the clip
tested (cathedral), i.e. almost 30 cycles per mb faster.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:03:06 +03:00
Martin Storsjö
e8cafd2773
h264: Clear the mb members via memset instead of using dsputil
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:01:21 +03:00
Ronald S. Bultje
6d25c9db11
dsputil: Make square put/avg_pixels functions local to h264qpel
...
Put a copy of the 8bit functions only in dsputil, where they are
used for some other things (e.g. mpeg4qpel, mspel, cavsqpel).
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 10:59:14 +03:00
Kostya Shishkov
56c1b92576
dfa: implement missing TDLT coding method
2013-04-09 18:32:00 +02:00
Martin Storsjö
bc0522dffa
h264pred: Add a few missing const declarations for ff_cropTbl derived pointers
...
The pointers that get assigned ff_cropTbl were made const in
9e0f14f1
, but other variables that transitively are assigned
based on these variables were missed.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 21:39:15 +03:00
Ronald S. Bultje
d2ec6ea6c6
lavc: Move ff_cropTbl and ff_zigzag_direct from dsputil to mathtables
...
These are widely used throughout libavcodec, nothing dsputil-specific.
Change ff_cropTbl to a statically initialized table, to avoid
initializing it with a function call.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:38:33 +03:00
Martin Storsjö
9e0f14f16c
lavc: Make pointers to ff_cropTbl const
...
There's no point in these pointers not being const.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:38:33 +03:00
Ronald S. Bultje
18df366a18
vp3: Embed idct_permutation array directly in VP3DecoderContext
...
This makes the vp3 decoder less dependent on dsputil, and will aid
in making it (eventually) dsputil-independent.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:38:33 +03:00
Ronald S. Bultje
610b18e2e3
x86: qpel: Move fullpel and l2 functions to a separate file
...
This way, they can be shared between mpeg4qpel and h264qpel without
requiring either one to be compiled unconditionally.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:38:33 +03:00
Martin Storsjö
0f59845708
bfin: Make vp3 functions static
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:29:40 +03:00
Martin Storsjö
aa8d89536d
bfin: Don't use the vp3 idct functions if bitexact behaviour is expected
...
In the non-bitexact mode, vp3 currently decodes to the same
frame crcs as before 28f9ab702
(and the output visually looks
correct).
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:28:52 +03:00
Christophe Gisquet
f4b0d12f5b
x86: sbrdsp: Implement SSE neg_odd_64
...
Timing on Arrandale:
C SSE
Win32: 57 44
Win64: 47 38
Unrolling and not storing mask both save some cycles.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-04-05 22:47:04 +02:00
Diego Biurrun
52cd84d4d4
h261: Move mvmap table to the only place it is used
2013-04-05 12:25:12 +02:00
Diego Biurrun
0404ec619d
h261: cosmetics: Move functions to avoid forward declarations
2013-04-05 12:25:12 +02:00
Diego Biurrun
b78f81c803
h261: K&R formatting and prettyprinting cosmetics
2013-04-05 12:25:12 +02:00
Diego Biurrun
66ac3dbf1e
h261: Move function declarations to h261.h
2013-04-05 12:25:12 +02:00
Diego Biurrun
ed16c2dbf4
h261: Remove H.261 loop filter from dsputil
...
There is no arch-optimized version of the H.261 loop filter and there
likely will never be, so the dsputil overhead does not give any benefit.
2013-04-05 12:24:28 +02:00
Diego Biurrun
ae35d91d44
h261: Move ff_h261_rl_table_store declaration to header file
2013-04-05 12:24:28 +02:00
Nicolas Bertrand
28a807e28b
libopenjpeg: Add support for XYZ colorspace, found in DCINEMA frames
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-04-04 19:53:07 +02:00
Anton Khirnov
b88f902125
bmv: check for len being valid in bmv_decode_frame().
...
It can be 0 or -1 for invalid files, which may result in invalid memory
access.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-04-04 07:54:27 +02:00
Anton Khirnov
3623589edc
dfa: check for invalid access in decode_wdlt().
...
This can happen when the number of skipped lines is not consistent with
the number of coded lines.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-04-04 07:54:07 +02:00
Peter Meerwald
dfcbe8cbd7
doc: Fix best_nb_channells typo
...
Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-04-04 07:51:28 +02:00
Matt Wolenetz
1d6e618939
vp8: Fix pthread_cond and pthread_mutex leaks
...
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-30 16:08:50 +01:00
Alexandra Khirnova
0afcf97e1e
vmdav: convert to bytestream2
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-28 08:30:38 +01:00
Martin Storsjö
3891a270f5
msmpeg4: Split decoding related functions to a separate file
...
This fixes standalone compilation of the msmpeg4v2, msmpeg4v3
and wmv2 encoders, that previously failed to link due to the
decoder codepaths requiring error_resilience.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-27 15:45:56 +02:00
Diego Biurrun
e557584aa7
mpeg12: Move Mpeg1Context declaration to the only place it is used
2013-03-27 14:26:11 +01:00
Diego Biurrun
1b6d66745a
Split MPEG-1/2 decoder code off from MPEG-1/2 common code
2013-03-27 14:26:11 +01:00
Diego Biurrun
eee2000b41
mpeg12: Move some ff_mpeg1_* function declarations to a more suitable place
2013-03-27 14:21:45 +01:00
Diego Biurrun
b6649ab503
cosmetics: Remove unnecessary extern keywords from function declarations
2013-03-27 14:21:45 +01:00
Diego Biurrun
1db6a080bd
dca: Move ff_dca_convert_bitstream() to the DCA common code
...
This makes the DCA parser and decoder independent.
2013-03-27 14:21:45 +01:00
Janne Grunau
b247253929
vdpau: wrap codec specific functions in appropiate #ifs
...
Fixes linking when only a subset of the deprecated vdpau decoders is
enabled.
2013-03-27 13:20:13 +01:00
Janne Grunau
757d85868b
vdpau: fix obsolete mpeg1 vdpau decoder when mpeg2 is disabled
2013-03-26 22:53:29 +01:00
Janne Grunau
05fa79b844
hwaccel: fix use with frame based multithreading
...
Allows use of AVHWAccel based decoders with frame based multithreading.
The decoders will be forced into an non-concurrent mode by delaying
ff_thread_finish_setup() calls after decoding of the current frame
is finished.
This wastes memory by unnecessarily using multiple threads and thus
copies of the decoder context but allows seamless switching between
hardware accelerated and frame threaded software decoding when the
hardware decoder does not support the stream.
2013-03-26 19:44:50 +01:00
Janne Grunau
c24469e812
utils: add workaround for AVHWAccel in ff_get_buffer compat code
...
Since c977039e58
plane count for
PIX_FMT_HWACCEL pixel formats is 0 instead of 1. The created dummy
AVBuffers are still bogus since AVFrame does not hold frame data when
AVHWAccels are used.
2013-03-26 19:44:50 +01:00
Martin Storsjö
a2acadd058
x86: vc1dsp: Fix indentation
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-26 15:49:42 +02:00
Ronald S. Bultje
0b499c9b06
h264: Make it possible to compile without error_resilience
...
Error resilience is enabled by the h264 decoder, unless explicitly
disabled. --disable-everything --enable-decoder=h264 will produce
a h264 decoder with error resilience enabled, while
--disable-everything --enable-decoder=h264 --disable-error-resilience
will produce a h264 decoder with error resilience disabled.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-26 09:55:05 +02:00
Martin Storsjö
f1e9398621
lavc: Rename avpriv_mpv_find_start_code after moving out from mpegvideo
...
Also move the declaration to internal.h, and add restrict qualifiers
to the declaration (as in the implementation).
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-26 09:50:02 +02:00
Martin Storsjö
75644335b9
lavc: Move start code finding to utils.c
...
This allows dropping the mpegvideo dependency from a number of
components.
This also fixes standalone building of the h264 parser, which
was broken in 64e438697
.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-26 09:48:12 +02:00
Kostya Shishkov
613a37eca4
ape: 3.80-3.92 decoding support
2013-03-25 18:40:56 +01:00
Martin Storsjö
ccd349e555
h264: Remove an unused variable
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-25 15:00:05 +02:00
Janne Grunau
e5c2794a71
x86: consistently use unaligned movs in the unaligned bswap
...
Fixes fate errors in asv1, ffvhuff and huffyuv on x86_32.
2013-03-25 12:11:11 +01:00
Martin Storsjö
285ff14413
x86: Change a missed occurrance of int to ptrdiff_t for strides
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-24 12:06:53 +02:00
Martin Storsjö
352dbdb96c
x86: Remove win64 xmm clobbering wrappers for the now removed avcodec_encode_video function
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-23 23:37:27 +02:00
Anton Khirnov
4e33582a0b
tscc2: allocate AVFrame properly.
2013-03-22 20:10:48 +01:00
Anton Khirnov
fcf75022d7
h264: remove redundant freeing of DPB in h264_decode_end
...
free_tables() frees it already.
2013-03-21 10:21:11 +01:00
Anton Khirnov
23e85be58f
h264: add a parameter to the CHROMA444 macro.
...
This way it does not look like a constant.
2013-03-21 10:21:02 +01:00
Anton Khirnov
e962bd08ee
h264: add a parameter to the CHROMA422 macro.
...
This way it does not look like a constant.
2013-03-21 10:20:58 +01:00
Anton Khirnov
6d2b6f21eb
h264: add a parameter to the CABAC macro.
...
This way it does not look like a constant.
2013-03-21 10:20:52 +01:00
Anton Khirnov
a6931d8ece
h264: add a parameter to the FIELD_OR_MBAFF_PICTURE macro.
...
This way it does not look like a constant.
2013-03-21 10:20:48 +01:00
Anton Khirnov
7fa00653a5
h264: add a parameter to the FIELD_PICTURE macro.
...
This way it does not look like a constant.
2013-03-21 10:20:44 +01:00
Anton Khirnov
7bece9b22f
h264: add a parameter to the FRAME_MBAFF macro.
...
This way it does not look like a constant.
2013-03-21 10:20:39 +01:00
Anton Khirnov
da6be8fcec
h264: add a parameter to the MB_FIELD macro.
...
This way it does not look like a constant.
2013-03-21 10:20:35 +01:00
Anton Khirnov
82313eaa34
h264: add a parameter to the MB_MBAFF macro.
...
This way it does not look like a constant.
2013-03-21 10:20:30 +01:00
Anton Khirnov
48d0fd2d62
h264: merge common_init() into ff_h264_decode_init.
...
There is no point in keeping those separate.
2013-03-21 10:20:10 +01:00
Anton Khirnov
25408b2a06
h264: make ff_h264_frame_start static.
...
It is not called from outside h264.c
2013-03-21 10:19:54 +01:00
Janne Grunau
a157c7f2b8
h264: fix bit depth changes with frame threading
...
AVCodecContext.bits_per_raw_sample is updated from the previous thread
in the generic update function before the codec specific update_thread
function is called. The check for reinitialization of dsp functions uses
bits_per_raw_sample. When called from update_thread_context it will be
already at the current value and the dsp functions aren't updated if
only the bit depth changes.
2013-03-20 13:12:10 +01:00
Hendrik Leppkes
c3ebfcd6e1
mpegvideo: allocate hwaccel privdata after the frame buffer
...
This ensures the hwaccel privdata does not leak when a frame buffer could
not be allocated (and toggle the assert when the frame is re-used).
Having no frame buffer available is quite common when using the DXVA2
hwaccel in situations where the DXVA2 renderer is being re-allocated, for
example when moving between displays.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-19 11:20:22 +01:00
Hendrik Leppkes
9c9ede44f3
h264: allocate hwaccel privdata after the frame buffer
...
This ensures the hwaccel privdata does not leak when a frame buffer could
not be allocated (and toggle the assert when the frame is re-used).
Having no frame buffer available is quite common when using the DXVA2
hwaccel in situations where the DXVA2 renderer is being re-allocated, for
example when moving between displays.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-19 11:20:00 +01:00
Hendrik Leppkes
c71c80f53b
pthread: unref already decoded frames when flushing the decoder
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-19 11:19:08 +01:00
Hendrik Leppkes
4e70d66ded
mpegvideo: fix allocation of the hwaccel_picture_private data
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-19 11:18:42 +01:00
Anton Khirnov
1516bf7af1
lavc: update the doxy for avcodec_decode_{video,audio} wtih refcounting.
2013-03-19 11:12:17 +01:00
Anton Khirnov
c977039e58
lavc, lavfi: fix counting number of planes in AVBufferRef wrappers
...
Number of planes is not always equal to the number of components even
for formats marked with PIX_FMT_PLANAR -- e.g. NV12 has three components
in two planes.
2013-03-19 11:12:17 +01:00
Anton Khirnov
ce0124acac
mpeg12: do not fail on zero dimensions in the sequence header.
...
The total frame size is a combination of the 12 bits in the sequence
header and 2 more bits in the the sequence extension. While the
specification explicitly forbids the dimensions from the sequence header
from being 0 (thus ruling out multiples of 4096), such videos
apparrently exist in the wild so we should attempt to decode them.
Based on a patch by Michael Niedermayer <michaelni@gmx.at>
Fixes Bug 416.
2013-03-18 15:36:10 +01:00
Anton Khirnov
6552808014
lavc,lavfi: fix calculating the plane size in the AVBufferRef wrappers
...
It is supposed to be height * linesize, not width * linesize.
Thanks to Hendrik Leppkes for pointing out the bug.
2013-03-17 09:10:04 +01:00
Xi Wang
eba1ff3130
atrac3: avoid oversized shifting in decode_bytes()
...
When `off' is 0, `0x537F6103 << 32' in the following expression invokes
undefined behavior, the result of which is not necessarily 0.
(0x537F6103 >> (off * 8)) | (0x537F6103 << (32 - (off * 8)))
Avoid oversized shifting.
CC: libav-stable@libav.org
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-15 12:51:10 +01:00
Kostya Shishkov
c42e262513
add support for Monkey's Audio versions from 3.93
2013-03-15 09:50:42 +01:00
Kostya Shishkov
9652d4fcfc
ape: provide two additional bytes in buffer for old MAC versions
...
Range coder in 3.90-3.95 overread two bytes in the final normalize.
2013-03-15 09:50:42 +01:00
Kostya Shishkov
b164d66e35
ape: make version-dependent decoding functions called via pointers
...
This will help in supporting old versions, e.g. version 3.93 uses the same
range coder but different predictor and version 3.82 uses different range
coder and predictor. Also this should not make decoding newer versions slower
by introducing additional checks on versions.
2013-03-15 09:50:42 +01:00
Janne Grunau
b066d90211
vaapi: fix argument for ff_vaapi_common_end_frame call
2013-03-14 15:16:08 +01:00
Diego Biurrun
12e25ed284
avcodec: av_log_missing_feature(1) ---> avpriv_request_sample()
2013-03-13 21:20:12 +01:00
Diego Biurrun
6d97484d72
avcodec: av_log_ask_for_sample() ---> avpriv_request_sample()
2013-03-13 21:20:12 +01:00
Diego Biurrun
63d744e2be
av_log_missing_feature() ---> avpriv_report_missing_feature()
2013-03-13 20:42:21 +01:00
Diego Biurrun
f099d3d1d5
Add av_log_{ask_for_sample|missing_feature} replacements to libavutil
...
This allows reporting missing features and requesting samples from
all libraries in a standard way; with a simplified API.
2013-03-13 20:42:06 +01:00
Janne Grunau
91d4823f70
avpacket: copy side data type and size in av_dup_packet
2013-03-13 11:34:47 +01:00
Michael Niedermayer
0fe4b48540
cabac: remove unused argument of ff_init_cabac_states()
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-13 09:14:05 +01:00
Nicolas George
be40d6cc2b
rawdec: fix a typo -- || instead of |
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-13 09:13:54 +01:00
Luca Barbato
a8b6015823
dsputil: convert remaining functions to use ptrdiff_t strides
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-12 18:26:42 +01:00
Diego Biurrun
a4472ac01e
Add informative messages to av_log_ask_for_sample calls lacking them
2013-03-12 11:09:45 +01:00
Luca Barbato
202c2acc40
vda: remove async decoder leftovers
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-12 01:05:48 +01:00
Janne Grunau
a2816230c5
avframe: call release_buffer only if it is set
...
AVCodecContext release_buffer() shall be NULL for audio codecs using
get_buffer. The backward compatibility code hence have to check before
calling it.
2013-03-11 18:58:47 +01:00
Anton Khirnov
fce68c9355
pthread: unref the decoded but not returned frames on close.
...
Fixes memleaks when frame mt is used and the decoder is not flushed at
the end.
2013-03-11 18:30:35 +01:00
Anton Khirnov
555000c7d5
h264: check that DPB is allocated before accessing it in flush_dpb()
2013-03-11 18:30:31 +01:00
Anton Khirnov
c2597c5a0a
h264_refs: cosmetics, reformat
2013-03-11 18:24:56 +01:00
Anton Khirnov
f08fefc4d0
h264: remove a useless svq3 condition
...
The svq3 decoder does not call ff_h264_frame_start() anymore.
2013-03-11 18:24:36 +01:00
Anton Khirnov
07054015cf
mpegvideo: remove FMT_H264
2013-03-11 18:24:25 +01:00
Anton Khirnov
ee8704916d
mpegvideo: reindent
2013-03-11 18:24:16 +01:00
Anton Khirnov
19cac8e301
mpegvideo: remove useless references to h264 and svq3
...
The h264 decoder does not use mpegvideo anymore. The svq3 decoder only
uses ff_draw_horiz_band().
2013-03-11 18:24:06 +01:00
Anton Khirnov
d6ed604cf4
lavc: remove disabled FF_API_IDCT cruft
2013-03-11 18:22:37 +01:00
Anton Khirnov
3bcdf8dcb9
lavc: remove disabled FF_API_SNOW cruft
2013-03-11 18:22:26 +01:00
Anton Khirnov
fcb07e8b33
lavc: remove disabled FF_API_MMI cruft
2013-03-11 18:22:18 +01:00
Anton Khirnov
de27d2b92f
lavc: remove disabled FF_API_LIBMPEG2 cruft
2013-03-11 18:21:54 +01:00
Anton Khirnov
0517c9e098
lavc: remove disabled FF_API_AVCODEC_RESAMPLE cruft
2013-03-11 18:21:32 +01:00
Janne Grunau
684e3d2e1c
ra144: check buffer size before requesting a buffer
...
Return an error on incomplete frames.
2013-03-10 22:34:43 +01:00
Janne Grunau
08149b2b39
wmapro: unref skipped frames
2013-03-10 22:34:43 +01:00
Janne Grunau
e3232f3431
svq1: use av_frame_free to free refcounted frame
...
Fixes a memleak due to avcodec_free_frame not freeing the frame data.
2013-03-10 22:28:18 +01:00
Anton Khirnov
669cc0f364
lavc: fix get_buffer() compatibility layer for audio.
...
planes - FF_ARRAY_ELEMS would be evaluated as unsigned and underflow
instead of being negative as was intended.
2013-03-10 22:19:52 +01:00
Anton Khirnov
98cec5c84f
ratecontrol: remove an unused variable
2013-03-10 22:19:52 +01:00
Anton Khirnov
e2c2974120
vorbisdec: do not leak the first frame.
2013-03-10 22:16:26 +01:00
Anton Khirnov
adfa53d67c
lavc: remove disabled FF_API_VDA_ASYNC cruft
2013-03-09 08:37:11 +01:00
Anton Khirnov
bdd1567c35
lavc: remove disabled FF_API_CODEC_ID cruft
2013-03-09 08:37:08 +01:00
Anton Khirnov
7d42fd6bb9
lavc: remove disabled FF_API_FIND_BEST_PIX_FMT cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
845017105f
lavc: remove disabled FF_API_DSP_MASK cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
d03a94e2b7
lavc: remove disabled FF_API_SUB_ID cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
2a11369523
lavc: remove disabled FF_API_INTER_THRESHOLD cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
9d6cf81f02
lavc: remove disabled FF_API_COLOR_TABLE_ID cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
3b0f586f07
lavc: remove disabled FF_API_MPV_GLOBAL_OPTS cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
0f24a3ca99
lavc: remove disabled FF_API_OLD_ENCODE_VIDEO cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
f073b1500e
lavc: remove disabled FF_API_OLD_ENCODE_AUDIO cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
5d606863c3
lavc: remove disabled FF_API_OLD_DECODE_AUDIO cruft
2013-03-09 08:36:40 +01:00
Justin Ruggles
486f0b0cfc
png: use av_mallocz_array() for the zlib zalloc function
...
Fixes valgrind uninitialized memory errors when decoding png.
CC:libav-stable@libav.org
2013-03-08 14:52:21 -05:00
Justin Ruggles
e984f47873
libmp3lame: use the correct remaining buffer size when flushing
...
CC:libav-stable@libav.org
2013-03-08 14:52:05 -05:00
Anton Khirnov
7c45087b84
lavc: update the fallback versions of ff_thread_*
...
Fixes build without threads after
759001c534
.
2013-03-08 10:22:10 +01:00
Yusuke Nakamura
19dd4017ab
libopencore-amr: Add the missing 3rd argument of ff_get_buffer()
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-08 11:09:31 +02:00
Anton Khirnov
f86d66bcfa
vmdaudio: fix invalid reads when packet size is not a multiple of chunk size
...
CC:libav-stable@libav.org
2013-03-08 08:12:41 +01:00
Anton Khirnov
4c0080b7e7
wmaprodec: return an error, not 0, when the input is too small.
...
Returning 0 may result in an infinite loop in valid calling programs. A
decoder should never return 0 without producing any output.
CC:libav-stable@libav.org
2013-03-08 08:12:26 +01:00
Anton Khirnov
cacad1c058
wmaprodec: require block_align to be set.
...
Avoids an infinite loop in the calling programs with decoder not
consuming any input and not returning output.
CC:libav-stable@libav.org
2013-03-08 08:12:16 +01:00
Anton Khirnov
ea1136baaf
wmadec: require block_align to be set.
...
Avoids an infinite loop in the calling programs with decoder not
consuming any input and not returning output.
CC:libav-stable@libav.org
2013-03-08 08:12:03 +01:00
Anton Khirnov
3ba40ebb6c
ivi_common: do not call MC for intra frames when dc_transform is unset
...
CC:libav-stable@libav.org
2013-03-08 08:11:46 +01:00
Anton Khirnov
3e2f200237
roqvideodec: fix a potential infinite loop in roqvideo_decode_frame().
...
When there is just 1 byte remanining in the buffer, nothing will be read
and the loop will continue forever. Check that there are at least 8
bytes, which are always read at the beginning.
CC:libav-stable@libav.org
2013-03-08 08:11:35 +01:00
Anton Khirnov
8a49d2bcbe
xxan: fix invalid memory access in xan_decode_frame_type0()
...
The loop a few lines below the xan_unpack() call accesses up to
dec_size * 2 bytes into y_buffer, so dec_size must be limited to
buffer_size / 2.
CC:libav-stable@libav.org
2013-03-08 08:11:22 +01:00
Anton Khirnov
d243896987
ffv1: fix calculating slice dimensions for version 2
...
It got broken in 0f13cd3187
.
CC:libav-stable@libav.org
2013-03-08 08:10:02 +01:00
Anton Khirnov
7b89cd20d8
eamad: allocate a dummy reference frame when the real one is missing
...
CC:libav-stable@libav.org
2013-03-08 08:09:51 +01:00
Anton Khirnov
542b83fc90
Replace some forgotten instances of PIX_FMT_* with AV_PIX_FMT_*.
2013-03-08 07:42:09 +01:00
Anton Khirnov
d8b31be6ca
Add the bumps and APIchanges entries for reference counted buffers changes.
2013-03-08 07:41:49 +01:00
Anton Khirnov
8df23e938b
lavc: postpone the removal of request_channels API.
...
Its replacement is still not ready.
2013-03-08 07:41:42 +01:00
Anton Khirnov
ddcca4ba07
lavc: stop setting AVFrame.motion_subsample_log2
...
It is not used inside lavc anywhere and now it makes no sense to export
it.
2013-03-08 07:41:14 +01:00
Anton Khirnov
37045e4229
mpegvideo: drop vismv code
...
It has been broken for over a year without anyone complaining or
noticing, thus proving that nobody ever uses it.
2013-03-08 07:40:41 +01:00
Anton Khirnov
2eba9087f3
lavc: make up a fake frame channel layout when there is no real one.
...
This should ensure that a valid channel layout is always set on a frame,
until a better solution is implemented.
2013-03-08 07:40:06 +01:00
Anton Khirnov
192f1984b1
lavc: limit maximum number of channels to 63
...
This is the most that can be represented with the current channel layout
system. This limit should be raised/removed when a better system is
implemented.
2013-03-08 07:39:53 +01:00
Anton Khirnov
15ec0450b4
lavc: allow decoders to override frame parameters.
2013-03-08 07:39:44 +01:00
Anton Khirnov
3b199d29cd
lavc decoders: properly initialize AVFrame.
2013-03-08 07:39:37 +01:00
Anton Khirnov
759001c534
lavc decoders: work with refcounted frames.
2013-03-08 07:38:30 +01:00
Anton Khirnov
6e7b50b427
mpegvideo_enc: drop support for reusing the input motion vectors.
...
This misfeature is most likely completely useless and conflicts with
removing the mpegvideo-specific fields from AVFrame. In the improbable
case it is actually useful, it should be reimplemented in a better way.
2013-03-08 07:37:45 +01:00
Anton Khirnov
7ecc2d403c
Move AVFrame from lavc to lavu.
...
Add AVBuffer-based reference counting API to it.
2013-03-08 07:36:15 +01:00
Anton Khirnov
ad0c9f2d5d
lavc: move AVFrame.hwaccel_picture_private to Picture.
...
This field is private and should not be present in a public struct. It
is only used in DXVA with mpegvideo-based decoders currently.
2013-03-08 07:36:01 +01:00
Anton Khirnov
1a5e913016
pthread: avoid copying input packets when possible.
2013-03-08 07:35:14 +01:00
Anton Khirnov
1afddbe59e
avpacket: use AVBuffer to allow refcounting the packets.
...
This will allow us to avoid copying the packets in many cases.
This breaks ABI.
2013-03-08 07:33:45 +01:00
Alexander Kojevnikov
eae0879d96
mp3dec: Fix VBR bit rate parsing
...
When parsing the Xing/Info tag, don't set the bit rate if it's an Info tag.
When parsing the stream, don't override the bit rate if it's already set,
otherwise calculate the mean bit rate from parsed frames. This way, the bit
rate will be set correctly both for CBR and VBR streams.
CC:libav-stable@libav.org
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-08 07:32:11 +01:00
Diego Biurrun
dbd2a34ba5
build: cosmetics: Group hw accelerator Makefile entries together
2013-03-07 15:36:21 +01:00
Diego Biurrun
5f401b7b71
Add missing error_resilience includes to files that use ER
2013-03-07 15:04:49 +01:00
Martin Storsjö
d88738e403
mpegvideo: Conditionally build error_resilience bits
...
This breaks the dependency of mpegvideo on error_resilience allowing
compilation of components that depend on the former w/o the latter.
2013-03-07 15:04:49 +01:00
Reimar Döffinger
efa7f42020
Use the avstring.h locale-independent character type functions
...
Make sure the behavior does not change with the locale.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 15:16:36 +02:00
Ronald S. Bultje
54b298fe56
lavc: Deprecate the deinterlace functions in libavcodec
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 09:35:24 +02:00
Ronald S. Bultje
64e4386974
h264: Integrate draw_horiz_band into ff_h264_draw_horiz_band
...
This makes the decoder independent of mpegvideo.
This copy of the draw_horiz_band code is simplified compared to
the "generic" mpegvideo one which still has a number of special
cases for different codecs.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 09:31:44 +02:00
Stefano Sabatini
70762508ec
lavc: Prettify printing of codec tags containing non alphanumeric characters
...
Make av_get_codec_tag_string() show codec tag string characters in a more
intelligible ways. For example the ascii char "@" is used as a number, so
should be displayed like "[64]" rather than as a printable character.
Apart alphanumeric chars, only the characters ' ' and '.' are used
literally in codec tags, all the other characters represent numbers.
This also avoids relying on locale-dependent character class functions.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 08:50:29 +02:00
Martin Storsjö
d65522e826
h264: Rename the jpeg_420 pixfmt list to match the common naming structure
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 08:40:04 +02:00
Ronald S. Bultje
8d061989dd
lavc: Split out ff_hwaccel_pixfmt_list_420[] over individual codecs
...
Not all hwaccels implement all codecs, so using one single list for
multiple such codecs means some codecs will be represented in the list,
even though they don't actually handle that codec. Copying specific
lists in each codec fixes that.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-06 21:18:50 +02:00
Diego Biurrun
5a4e9fe855
avcodec/internal: Fix #if DECODE_AUDIO / ENCODE_AUDIO name mismatch
2013-03-06 16:48:03 +01:00
Luca Barbato
5cf7c72757
shorten: use the unsigned type where needed
...
get_uint returns an unsigned value, use an unsigned to store
blocksize to make sure the comparison logic is correct and report
correctly the error for the channel count not supported.
2013-03-06 01:04:02 +01:00
Luca Barbato
4c364eb2b8
shorten: report meaningful errors
2013-03-06 01:04:02 +01:00
Luca Barbato
a2ad554def
shorten: K&R formatting cosmetics
2013-03-06 01:04:02 +01:00
Michael Niedermayer
c10da30d84
shorten: set invalid channels count to 0
...
Prevent the loop shorten_decode_close from writing and freeing out of
the array boundary.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-06 01:04:01 +01:00
Luca Barbato
02055b6d40
vorbisdec: check memory allocations
2013-03-06 01:04:01 +01:00
Luca Barbato
4987faee78
h264: check for luma and chroma bit dept being equal
...
The decoder assumes a single bit depth for all the planes
while the specification allows different bit depths for luma
and chroma.
Avoid the possible problems described in CVE-2013-2277
CC: libav-stable@libav.org
2013-03-05 22:18:02 +01:00
Diego Biurrun
c57a593670
hwaccel: consistent name prefixes for start_frame/end_frame/decode_slice
...
Some hwaccels use name prefixes, some do not, others only use them for
some codecs. Add prefixes everywhere for consistency.
2013-03-05 11:22:45 +01:00
Anton Khirnov
437211ae73
h264: set ref_count to 0 for intra slices.
...
CC:libav-stable@libav.org
2013-03-02 10:27:13 +01:00
Anton Khirnov
668e16a0dd
h264: on reference overflow, reset the reference count to 0, not 1.
...
Since decode_slice_header() returns before the reference lists are
constructed, there are zero valid references.
CC:libav-stable@libav.org
2013-03-02 10:27:03 +01:00
Anton Khirnov
e671d3ad6c
h264: do not copy ref count/ref2frm when updating per-frame context
...
They are filled in decode_slice_header() anyway.
2013-03-02 10:26:50 +01:00
Diego Biurrun
e8c52271c4
Revert "Move H264/QPEL specific asm from dsputil.asm to h264_qpel_*.asm."
...
This reverts commit f90ff772e7
.
The code should be put back in h264_qpel_8bit.asm, but unfortunately
it is unconditionally used from dsputil_mmx.c since 71155d7
.
2013-02-28 21:50:02 +01:00
Luca Barbato
9d4da474f5
lls: move to the private namespace
...
The functions are private.
2013-02-28 17:39:24 +01:00
Martin Storsjö
86611ff123
pnm: Use av_pix_fmt_desc_get instead of accessing the array directly
...
This fixes boken fate tests with MSVC with DLLs, broken since
b5f536d24
.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-28 18:29:03 +02:00
Diego Biurrun
ebc701993f
x86: dsputil: Drop some unused function #defines
2013-02-26 23:36:24 +01:00
Diego Biurrun
845cfc92f9
x86: dsputil: Drop aliasing of ff_put_pixels8_mmx to ff_put_pixels8_mmxext
...
The external assembly function uses mmxext instructions and should not be
masqueraded as an mmx-only function. Instead, use the mmx-only inline
assembly function.
2013-02-26 23:36:24 +01:00
Diego Biurrun
096cc11ec1
x86: vc1dsp: Move ff_avg_vc1_mspel_mc00_mmxext out of dsputil_mmx.c
2013-02-26 23:36:24 +01:00
Martin Storsjö
31a23a0dc6
x86: dsputil_mmx: Remove leftover inline assembly fragments
...
These became unused in 71155d7b
.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-27 00:17:05 +02:00
Diego Biurrun
c242bbd8b6
Remove unnecessary dsputil.h #includes
2013-02-26 00:51:34 +01:00
Diego Biurrun
76b19a3984
Fix a number of incorrect intmath.h #includes.
2013-02-26 00:51:34 +01:00
Justin Ruggles
699d02b839
libschroedinger: cosmetics: rename variable avccontext to avctx
...
This is consistent with the rest of libavcodec.
2013-02-25 15:15:21 -05:00
Justin Ruggles
09031b4639
vorbisenc: cosmetics: rename variable avccontext to avctx
...
This is consistent with the rest of libavcodec.
2013-02-25 15:15:21 -05:00
Justin Ruggles
e951b6d94c
vorbisdec: cosmetics: rename variable avccontext to avctx
...
This is consistent with the rest of libavcodec.
2013-02-25 15:15:21 -05:00
Luca Barbato
23bd9ef4b2
vorbisdec: Accept 0 amplitude_bits
...
The specification does not prevent an encoder to write the amplitude 0
as 0 amplitude_bits.
Our get_bits() implementation might not support a zero sized read
properly, thus the additional branch.
2013-02-25 07:34:00 +01:00
Luca Barbato
5b47c19bfd
vorbisdec: Add missing checks
...
Rate and order must not be 0 even if the specification does not say that
explicitly.
2013-02-25 07:34:00 +01:00
Luca Barbato
fc386f2eea
vorbisdec: cosmetics
...
Use the commonly used "if (!var)" instead of "if (var == 0)".
2013-02-25 07:34:00 +01:00
Michael Niedermayer
11dcecfcca
vorbisdec: Error on bark_map_size equal to 0.
...
The value is used to calculate output LSP curve and a division by zero
and out of array accesses would occur.
CVE-2013-0894
CC: libav-stable@libav.org
Reported-by: Dale Curtis <dalecurtis@chromium.org>
Found-by: inferno@chromium.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-25 07:33:59 +01:00
Diego Biurrun
3d035d5a6a
dsputil_alpha.h: Add missing stddef.h header to fix standalone compilation
2013-02-24 18:51:40 +01:00
Justin Ruggles
d7c450436f
ac3dec: validate channel output mode against channel count
...
Damaged frames can lead to a mismatch, which can cause a segfault
due to using an incorrect channel mapping.
CC:libav-stable@libav.org
2013-02-23 16:59:39 -05:00
Diego Biurrun
94ee7da08d
Remove pointless av_cold attributes in header files
...
The init functions marked as av_cold have to be executed in any case,
so there is no gain from trying to mark paths leading to such functions
as unlikely.
2013-02-23 20:13:47 +01:00
Kostya Shishkov
b5f536d24b
pnm: add high-bitdepth PGMYUV support for both encoder and decoder
2013-02-23 16:49:22 +01:00
John Van Sickle
2f325a6fd4
libx264: change i_qfactor to use x264cli's default
...
This also allows libx264 to modify its i_qfactor value
when using the "-tune" setting. Previously it had a static
value of 1.25
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-23 13:34:52 +01:00
Anton Khirnov
d8a74d1d95
qtrle: use AV_LOG_ERROR in an error message.
2013-02-23 13:06:12 +01:00
Anton Khirnov
7b4f91155b
qtrle: cosmetics, reformat CHECK_PIXEL_PTR() macro
2013-02-23 13:06:08 +01:00
Anton Khirnov
e106592447
qtrle: add more checks against pixel_ptr being negative.
...
CC:libav-stable@libav.org
2013-02-23 13:05:54 +01:00
Anton Khirnov
4f3b058c84
cavs: initialize various context tables to 0
...
Avoids crashes with corrupted files.
CC:libav-stable@libav.org
2013-02-23 13:05:43 +01:00
Anton Khirnov
0dff40bfb9
mlpdec: do not try to allocate a zero-sized output buffer.
...
CC:libav-stable@libav.org
2013-02-23 13:05:31 +01:00
Anton Khirnov
ddfe1246d9
flicvideo: avoid an infinite loop in byte run compression
...
When byte_run is 0, pixel_countdown is not touched and the loop will run
forever.
CC:libav-stable@libav.org
2013-02-23 09:22:30 +01:00
Anton Khirnov
067432c1c9
loco: check that there is data left after decoding a plane.
...
CC:libav-stable@libav.org
2013-02-23 09:20:42 +01:00
Anton Khirnov
de6dfa2bb8
lagarith: avoid infinite loop in lag_rac_refill()
...
range == 0 happens with corrupted files
CC:libav-stable@libav.org
2013-02-23 09:16:32 +01:00
Anton Khirnov
8097fc9a2d
4xm: check the return value of read_huffman_tables().
...
CC:libav-stable@libav.org
2013-02-23 09:13:08 +01:00
Matt Wolenetz
311443f6c7
x86: h264: Don't use redzone in AVX h264_deblock on Win64
...
This fixes crashes in chromium on win64 on machines with AVX
(crashes that apparently aren't triggered by fate).
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-21 15:02:16 +02:00
Diego Biurrun
a0a1ac0f09
dxva2: Add missing #define to make header compile standalone
2013-02-20 14:24:07 +01:00
Diego Biurrun
3e85b46ecf
arm: vp8: Add missing #includes for header to compile standalone
2013-02-20 14:24:07 +01:00
Martin Storsjö
26ee5ca03d
h264: Get rid of unnecessary casts
...
This gets rid of a number of warnings about casts discarding
qualifiers from the pointer target, present since 7ebfb466a
.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-20 00:25:29 +02:00
Ronald S. Bultje
fae6fd5b87
h264/svq3: Stop using draw_edges
...
Instead, only extend edges on-demand when the motion vector actually
crosses the visible decoded area using ff_emulated_edge_mc(). This
changes decoding time for cathedral from 8.722sec to 8.706sec, i.e.
0.2% faster overall. More generally (VP8 uses this also), low-motion
content gets significant speed improvements, whereas high-motion content
tends to decode in approximately the same time.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:34:33 +02:00
Ronald S. Bultje
7ebfb466ae
h264: Don't store intra pcm samples in h->mb
...
Instead, keep them in the bitstream buffer until we read them verbatim,
this saves a memcpy() and a subsequent clearing of the target buffer.
decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from
6121.4 to 6095.5 cycles, i.e. 26 cycles faster.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:34:14 +02:00
Ronald S. Bultje
9918f57dcf
get_bits: Return pointer to buffer that is the result of the alignment
...
This allows more transparent mixing of get_bits and whole-byte access
without having to touch get_bits internals.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:52 +02:00
Ronald S. Bultje
2ed008204d
h264: Add add_pixels4/8() to h264dsp, and remove add_pixels4 from dsputil
...
These functions are mostly H264-specific (the only other user I can
spot is bink), and this allows us to special-case some functionality
for H264. Also remove the 16-bit-coeff with >8bpp versions (unused)
and merge the duplicate 32-bit-coeff for >8bpp (identical).
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:29 +02:00
Ronald S. Bultje
e5ffffe48d
h264chroma: Remove duplicate 9/10 bit functions
...
These functions do the same thing in 16 bit space and don't need
any depth specific clipping.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:19 +02:00
Ronald S. Bultje
f859678f3f
vp56: Remove clear_blocks call, and clear alpha plane U/V DC only
...
The non-alpha and alpha-Y planes are cleared in the idct_put/add()
calls. For the alpha U/V planes, we only care about the DC for entropy
context prediction purposes, the rest of the data is unused.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:33:11 +02:00
Daniel Kang
9acd23d655
x86: dsputil: Fix h263 loop filter link error in some configurations
...
This was caused by unconditionally referencing a conditionally compiled
table. Now the code is also compiled conditionally.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-18 17:09:00 +01:00
Daniel Kang
7a03145ed7
x86: dsputil: int --> ptrdiff_t for ff_put_pixels16_mmxext line_size param
...
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-18 15:23:03 +01:00
Matti Hamalainen
7f3624dc81
svq3: unbreak decoding
...
a7d2861d36
removed necessary braces.
2013-02-18 02:55:07 +01:00
Luca Barbato
aa11cb7931
build: make audio_frame_queue a stand-alone component
...
Encoders requiring it have the dependency expressed in the
configure.
2013-02-17 22:05:18 +01:00
Diego Biurrun
870a0c669e
build: The libopencore-amrnb encoder depends on audio_frame_queue
...
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-17 12:03:25 +01:00
Diego Biurrun
8837f4396a
libopencore-amrwb: Make AMR-WB ifdeffery more precise
...
The library might provide an encoder in the future, so it's better to
check for the presence of the decoder rather than just the library.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-17 12:03:25 +01:00
Diego Biurrun
e6bda9a9fd
libopencore-amr: Conditionally compile decoder and encoder bits
...
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-17 12:03:25 +01:00
Diego Biurrun
56632fef65
libopencore-amrnb: cosmetics: Group all encoder-related code together
...
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-17 12:03:24 +01:00
Luca Barbato
0b70fb1d51
dsputil: convert remaining op_pixels_func
...
Convert to diffptr_t the line_size parameters still int.
Remove all the warnings in dsputil.c
2013-02-17 12:03:24 +01:00
Michael Niedermayer
488f87be87
roqvideodec: check dimensions validity
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3ae6104511
)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fee26d352a
)
CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2013-02-17 11:31:20 +01:00
Michael Niedermayer
f7d18deb73
vqavideo: check chunk sizes before reading chunks
...
Fixes out of array writes
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ab6c9332bf
)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 13093f9767
)
CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2013-02-17 11:31:20 +01:00
Michael Niedermayer
39bec05ed4
qdm2: check array index before use, fix out of array accesses
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a7ee6281f7
)
CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2013-02-17 11:31:20 +01:00
Anton Khirnov
1f8f43a5b5
error_resilience: add required headers.
2013-02-17 06:46:43 +01:00
Anton Khirnov
2c54155407
h264: deMpegEncContextize
...
Most of the changes are just trivial are just trivial replacements of
fields from MpegEncContext with equivalent fields in H264Context.
Everything in h264* other than h264.c are those trivial changes.
The nontrivial parts are:
1) extracting a simplified version of the frame management code from
mpegvideo.c. We don't need last/next_picture anymore, since h264 uses
its own more complex system already and those were set only to appease
the mpegvideo parts.
2) some tables that need to be allocated/freed in appropriate places.
3) hwaccels -- mostly trivial replacements.
for dxva, the draw_horiz_band() call is moved from
ff_dxva2_common_end_frame() to per-codec end_frame() callbacks,
because it's now different for h264 and MpegEncContext-based
decoders.
4) svq3 -- it does not use h264 complex reference system, so I just
added some very simplistic frame management instead and dropped the
use of ff_h264_frame_start(). Because of this I also had to move some
initialization code to svq3.
Additional fixes for chroma format and bit depth changes by
Janne Grunau <janne-libav@jannau.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-15 16:35:16 +01:00
Anton Khirnov
1d0feb5d1a
mpegvideo: split ff_draw_horiz_band().
...
Split out dependency on MpegEncContext.
2013-02-15 16:10:19 +01:00
Anton Khirnov
54974c6298
error_resilience: decouple ER from MpegEncContext
2013-02-15 16:10:11 +01:00
Anton Khirnov
d9ebb00dcb
svq3: remove a pointless if()
...
The H264 context is always uninitialized at this point.
2013-02-15 16:09:52 +01:00
Anton Khirnov
2491f9ee29
h264: remove a pointless if()
...
!encoding is always true, we do not have a H.264 encoder
2013-02-15 16:09:45 +01:00
Anton Khirnov
68f930d218
h264: simplify calls to ff_er_add_slice().
...
partitioned_frame is never set for h264 (as easily seen from git grep).
2013-02-15 16:09:37 +01:00
Anton Khirnov
d2a25c4032
get_buffer(): do not initialize the data.
...
There may be more decoders that rely on this. Those should be found and
fixed.
2013-02-15 16:08:44 +01:00
Diego Biurrun
3594554a06
sparc: dsputil: Simplify high_bit_depth checks
2013-02-15 02:13:42 +01:00
Diego Biurrun
49fe280753
h264idct: Replace duplicate scan8 table by appropriate #include
2013-02-15 00:14:15 +01:00
Diego Biurrun
c6507946d4
dsputil: Move STRIDE_ALIGN macro to the only place it is used
2013-02-13 20:23:39 +01:00
Justin Ruggles
8ae50d87e7
ws-snd1: decode directly to the user-provided AVFrame
2013-02-12 12:22:40 -05:00
Justin Ruggles
5a7288822f
wmavoice: decode directly to the user-provided AVFrame
2013-02-12 12:22:40 -05:00
Justin Ruggles
205a95f7b5
wmaenc: alloc/free coded_frame instead of keeping it in the WMACodecContext
2013-02-12 12:22:40 -05:00
Justin Ruggles
c815ca3641
wma: decode directly to the user-provided AVFrame
2013-02-12 12:22:40 -05:00
Justin Ruggles
f4a283eec4
wmapro: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
9873d71f31
wavpack: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
ee6ca11b65
vorbis: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
f80f8dd4c2
vmdaudio: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
3b7d43383f
twinvq: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
ad2104ba44
tta: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
3997fef952
truespeech: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
4a2b26fc1b
tak: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
903b62cc0b
smackaud: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
09d6831f49
sipr: decode directly to the user-provided AVFrame
2013-02-12 12:22:39 -05:00
Justin Ruggles
fed74c0ae4
shorten: decode directly to the user-provided AVFrame
2013-02-12 12:22:38 -05:00
Justin Ruggles
5d5c248c3d
s302m: decode directly to the user-provided AVFrame
2013-02-12 12:22:38 -05:00
Justin Ruggles
79fb2a1f17
ra288: decode directly to the user-provided AVFrame
2013-02-12 12:22:38 -05:00
Justin Ruggles
f7e8c87c02
ra144: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
cbeb3ed38d
ralf: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
e01e1a4673
qdm2: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
1b9b6d6e5e
qcelp: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
0905c96390
pcm-bluray: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
0fe4056f95
nellymoser: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
3a23752c5a
mpc7/8: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
2c785e250a
mpegaudio: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
dc33fbbfd0
mlp/truehd: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
86bfcfcf23
mace: decode directly to the user-provided AVFrame
2013-02-12 12:21:23 -05:00
Justin Ruggles
bed957bb11
libspeex: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
19b2cb268f
libopus: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
0cd08367dd
libopencore-amr: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
4f69612d3e
libgsm: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
a8ea936a0a
libilbc: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
b878867128
dpcm: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
9b28e58357
imc/iac: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
6fdfdb23d3
gsm: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
cb7b47a61d
g726: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
7e52fd6bca
g723.1: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
036e9b045f
g722: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
b8e9c99ef1
flac: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
97c7bdc6d4
cinaudio: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
182821cff4
dca: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
7b78321597
cook: decode directly to the user-provided AVFrame
2013-02-12 12:21:22 -05:00
Justin Ruggles
cddf8998f1
comfortnoise: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
e42e5a89d6
bmvaudio: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
a6bb39add2
pcm: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
5cc0bd2cb4
binkaudio: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
9a75ace2b2
atrac3: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
0ded61b57a
atrac1: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
5932e2d7d2
ape: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
da28bb3f4a
amrwb: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
e3db34291f
amrnb: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
9b0b355e97
als: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
5cd597f22f
alac: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
bae4f47938
adxenc: alloc/free coded_frame instead of keeping it in the ADXContext
2013-02-12 12:21:21 -05:00
Justin Ruggles
0588935e64
adx: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
e57daa876b
adpcm: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
55d2e12aef
ac3: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
ffd2123095
aac: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Justin Ruggles
a3de4010c2
8svx: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Daniel Kang
b3f2a3fe3f
x86: mpeg4qpel: Make movsxifnidn do the right thing
...
Fixes an instruction that does nothing by changing the
source to dword.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-02-11 20:17:15 +01:00
Martin Storsjö
4c51fe48ba
h264: Copy h264chroma dsp context to slice thread copies
...
This fixes slice threading which seems to have been broken since
79dad2a93
.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-11 21:12:21 +02:00
Diego Biurrun
6fb296e97e
avcodec/rectangle: Remove nonsense assert
2013-02-11 16:23:09 +01:00
Derek Buitenhuis
375ef6528c
libfdk-aacenc: Actually check for upper bounds of cutoff
...
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-02-11 10:15:42 -05:00
Diego Biurrun
d46d87d1d3
sparc: dsputil_vis: Fix silly variable name search and replace typo
2013-02-10 22:23:43 +01:00
Diego Biurrun
8658e1c682
mss4, ra288: Remove unused DSPContext local codec context members
2013-02-09 14:32:06 +01:00
Diego Biurrun
5d3d39c72e
dsputil: Move fdct function declarations to dct.h
2013-02-09 00:08:28 +01:00
Diego Biurrun
218aefce44
dsputil: Move LOCAL_ALIGNED macros to libavutil
2013-02-08 23:13:37 +01:00
Diego Biurrun
059866eb17
dsputil: Move WRAPPER8_16_SQ macro to the only place it is used
2013-02-08 23:10:17 +01:00
Diego Biurrun
bf6b3ec924
dsputil: Move rnd_avg inline functions to a separate header
2013-02-08 23:10:17 +01:00
Diego Biurrun
b9c2408b19
dsputil: Remove commented-out, unused function declarations
2013-02-08 23:10:16 +01:00
Diego Biurrun
35685a3c2a
dsputil: Move ff_shrink* function declarations to separate header
2013-02-07 22:08:19 +01:00
Diego Biurrun
75d5156ac1
dsputil: Move ff_svq3 function declarations to a separate header
2013-02-07 22:08:19 +01:00
Diego Biurrun
6a44304074
dsputil: Move ff_h264_idct function declarations to a separate header
2013-02-07 22:08:19 +01:00
Diego Biurrun
b9ba5253dd
dsputil: Move copy_block functions to a separate header
2013-02-07 22:08:19 +01:00
Diego Biurrun
9e31729d69
dsputil: Drop unused functions copy_block{2|4|16}
2013-02-07 22:08:19 +01:00
Mans Rullgard
b9ee5f2cab
indeo3: replace use of copy_block4 with put_pixels
...
The destination is sufficiently aligned for put_pixels here.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-07 22:08:19 +01:00
Mans Rullgard
ed62e6e3c3
mjpegdec: use put_pixels instead of copy_block8
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2013-02-07 22:08:19 +01:00
Diego Biurrun
b5b7b75e91
dsputil: Move get_penalty_factor() to the only place it is used.
2013-02-07 22:05:25 +01:00
Diego Biurrun
0b016eb99d
dsputil: Move ff_block_permute to mpegvideo_enc
2013-02-07 22:05:25 +01:00
Daniel Kang
a1d3673034
dsputil: x86: Fix compile error
...
Accidentally prefixed ff_ with cextern.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-07 11:06:16 +02:00
Daniel Kang
659d4ba5af
dsputil: x86: Convert h263 loop filter to yasm
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-02-06 15:38:27 -08:00
Anton Khirnov
12b54a1f39
mpegvideo: remove an unused function parameter
2013-02-06 21:48:48 +01:00
Anton Khirnov
605b047bcc
rv10: improve buffer size check.
...
Check slice count and input buffer size before constructing a possibly
invalid pointer, not after.
2013-02-06 21:47:57 +01:00
Anton Khirnov
c5fcdb4402
error_resilience: remove a useless if() and FIXME
...
pp_time is never set for h264
2013-02-06 21:46:55 +01:00
Anton Khirnov
9782c778a2
h264: remove silly macros
...
They serve no useful purpose and wreak all kind of havoc when h264.h is
included elsewhere.
2013-02-06 21:45:02 +01:00
Anton Khirnov
ca1fe6c0e6
h263: remove an unused parameter from ff_h263_decode_init_vlc
2013-02-06 21:44:38 +01:00
Tim Walker
9d083d6417
flac: add channel layout masks for streams with 7 or 8 channels.
...
They were added to the latest FLAC specification:
https://git.xiph.org/?p=flac-website.git;a=commit;h=65c199a2
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-06 21:44:06 +01:00
Tim Walker
41244e13d5
flac: don't check the number of channels before setting the channel layout.
...
This is unnecessary, as ff_flac_set_channel_layout can handle any number of channels.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-06 21:43:05 +01:00
Martin Storsjö
a846dccb29
h264chroma: x86: Fix building with yasm disabled
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-06 17:05:33 +02:00
Diego Biurrun
82bd04b170
rv34: Drop now unnecessary dsputil dependencies
2013-02-06 11:30:54 +01:00
Diego Biurrun
79dad2a932
dsputil: Separate h264chroma
2013-02-06 11:30:53 +01:00
Anton Khirnov
293065bdb5
mpegvideo: initialize dummy reference frames.
...
Do not rely on get_buffer initializing them.
Changes yadif tests (off by one in one border pixel), because yadif
reads from those uninitialized lines.
2013-02-06 10:21:52 +01:00
Anton Khirnov
dff6197dfb
nuv: do not rely on get_buffer() initializing the frame.
2013-02-06 10:21:52 +01:00
Anton Khirnov
39a9fdd00f
yop: initialize palette to 0
...
The FATE sample contains some pixels with value 0, but the palette
stored in the file contains only values from 16 up. Because the default
and cmdutils get_buffer() initialize the data to 0x80, they appear as
gray dots.
After this commit they change to black dots, which is probably still
incorrect but less visible and doesn't rely on get_buffer() initializing
the data.
2013-02-06 10:21:52 +01:00
Anton Khirnov
8136f23444
yop: check for input overreads.
...
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
06cf597c35
yop: check that extradata is large enough.
...
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Kostya Shishkov
89f11f498b
qtrle: fix the topmost line for 1bit
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Kostya Shishkov
685e6f2e39
xxan: properly handle odd heights.
...
Duplicate the last one or two chroma lines.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
2cd4068071
fraps: fix off-by one bug for version 1.
...
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
da7baaaae7
aasc: fix output for msrle compression.
...
The bottom line was invalid before.
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
9bd6375d5f
msrledec: check bounds before constructing a possibly invalid pointer,
...
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
238614de67
cdgraphics: do not rely on get_buffer() initializing the frame.
...
Setting it to zero (instead of 128, as the default get_buffer() does)
also produces more correctly-looking output.
2013-02-06 10:21:52 +01:00