Alexandra Hájková
4795e4f61f
alac: Convert to the new bitstream reader
8 years ago
Alexandra Hájková
fa64aea12e
unary: Convert to the new bitstream reader
8 years ago
Diego Biurrun
67deba8a41
Use avpriv_report_missing_feature() where appropriate
8 years ago
Anton Khirnov
796dca027b
alac: do not return success if nothing was decoded
...
If we encounter an END element before anything is decoded, we would
return success even though the output frame has not been allocated,
which is invalid.
CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
8 years ago
Vittorio Giovara
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
9 years ago
Vittorio Giovara
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
10 years ago
Andreas Cadhalpun
243e8443cd
alac: Reject rice_limit 0 if compression is used
...
If in compression mode rice_limit = 0 leads to call
`show_bits(gb, k)` in `decode_scalar` with k = 0.
Request a sample in case it is valid and it should be accepted.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
CC: libav-stable@libav.org
10 years ago
Diego Biurrun
7f9f771eac
avcodec: Don't anonymously typedef structs
10 years ago
Diego Biurrun
cc8163e1a3
avcodec: more correct printf specifiers
11 years ago
Diego Biurrun
b2bed9325d
cosmetics: Group .name and .long_name together in codec/format declarations
11 years ago
Martin Storsjö
59480abce7
alac: Do bounds checking of lpc_order read from the bitstream
...
In lpc_prediction(), we write up to array element 'lpc_order' in
an array allocated to hold 'max_samples_per_frame' elements.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
11 years ago
Martin Storsjö
35cbc98b72
alac: Check that the channels fit at the given offset
...
The code tries to decode a number of channels at the
offset given by the ff_alac_channel_layout_offsets table.
Even if the number of channels decoded so far doesn't
exceed the total number of channels, we need to check that
we actually can decode that number of channels at this offset
as well.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
11 years ago
Martin Storsjö
f7c5883126
alac: Limit max_samples_per_frame
...
Otherwise buffer size calculations in allocate_buffers could
overflow later, making the code think a large enough buffer
actually was allocated.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
11 years ago
Diego Biurrun
6d97484d72
avcodec: av_log_ask_for_sample() ---> avpriv_request_sample()
12 years ago
Anton Khirnov
759001c534
lavc decoders: work with refcounted frames.
12 years ago
Justin Ruggles
5cd597f22f
alac: decode directly to the user-provided AVFrame
12 years ago
Justin Ruggles
68a04b0cce
alacdec: do not be too strict about the extradata size
...
Sometimes the extradata has duplicate atoms, but that shouldn't prevent
decoding. Just ensure that it is at least 36 bytes as a sanity check.
CC: libav-stable@libav.org
12 years ago
Justin Ruggles
5e1bbb8c7e
alacenc: add support for multi-channel encoding
12 years ago
Anton Khirnov
594d4d5df3
lavc: add a wrapper for AVCodecContext.get_buffer().
...
It will be useful in the upcoming transition to refcounted AVFrames.
12 years ago
Justin Ruggles
a903f8f087
Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
...
Also reorder some other #include when applicable.
12 years ago
Justin Ruggles
46a86c6194
alacdec: set bits_per_raw_sample
12 years ago
Anton Khirnov
36ef5369ee
Replace all CODEC_ID_* with AV_CODEC_ID_*
13 years ago
Justin Ruggles
81f548de57
alac: check for truncated packets
...
This will give a clearer error message when the error is caused by a
truncated packet.
13 years ago
Justin Ruggles
fb57e913e1
alac: reverse lpc coeff order, simplify filter
...
Reversing the lpc coefficient order simplifies indexing in the filter.
13 years ago
Justin Ruggles
4cd22b7738
alac: fix channel pointer assignment for 24 and 32-bit
...
Needs to be done separately for each element.
13 years ago
Justin Ruggles
eeb55f5f2f
alac: cosmetics: general pretty-printing and comment clean up
13 years ago
Justin Ruggles
f3e5a7844b
alac: calculate buffer size outside the loop in allocate_buffers()
13 years ago
Justin Ruggles
bae83f2c74
alac: change some data types to plain int
13 years ago
Justin Ruggles
2aebac6918
alac: cosmetics: rename some variables and function names
13 years ago
Andrew D'Addesio
1b3ef155d7
alac: multi-channel decoding support
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
13 years ago
Justin Ruggles
81c9e2e6d0
alac: split element parsing into a separate function
...
This will make multi-channel implementation simpler.
Based partially on a patch by Andrew D'Addesio <modchipv12@gmail.com>.
13 years ago
Justin Ruggles
cd632619d9
alac: support a read sample size of up to 32
...
Use get_bits_long() in decode_scalar().
Use unsigned int for decoded value.
13 years ago
Justin Ruggles
73dc0db486
alac: output in planar sample format
...
Avoids unneeded interleaving and allows for reusing the AVFrame output buffer
as the internal buffer for 24-bit and 32-bit sample size.
13 years ago
Justin Ruggles
6482bd8831
alac: add 32-bit decoding support
13 years ago
Andrew D'Addesio
6cda74c155
alac: simplify channel interleaving
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
13 years ago
Justin Ruggles
5138ff143f
alac: use AVPacket fields directly in alac_decode_frame()
13 years ago
Justin Ruggles
7a206eb32f
alac: fix check for valid max_samples_per_frame
13 years ago
Justin Ruggles
1193d3fedd
alac: use get_sbits() to read LPC coefficients instead of casting
13 years ago
Justin Ruggles
7a50ec6799
alac: move the current samples per frame to the ALACContext
...
This will simplify the multi-channel implementation.
13 years ago
Justin Ruggles
46043962ea
alac: avoid using a double-negative when checking if the frame is compressed
13 years ago
Justin Ruggles
9a6c528e08
alac: factor out output_size check in predictor_decompress_fir_adapt()
13 years ago
Justin Ruggles
ebd4c3add1
alac: factor out loading of next decoded sample in LPC prediction
13 years ago
Justin Ruggles
a4ecd41442
alac: use index into buffer_out instead of incrementing the pointer
13 years ago
Justin Ruggles
f2515cd629
alac: simplify lpc coefficient adaptation
13 years ago
Justin Ruggles
abc4376b31
alac: reduce the number of local variables needed in lpc prediction
13 years ago
Justin Ruggles
01880d287b
alac: simplify 1st order prediction and reading of warm-up samples
13 years ago
Justin Ruggles
d0c0bf0d3e
alac: cosmetics: reindent after last commit
13 years ago
Justin Ruggles
79def4c523
alac: remove unneeded conditionals in predictor_decompress_fir_adapt()
13 years ago
Justin Ruggles
4bcd637dcb
alac: use sizeof() instead of hardcoded data sizes
13 years ago
Justin Ruggles
91620a04f1
alac: make block_size signed
...
It does not need to be unsigned.
13 years ago