diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-04-14 21:49:01 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-04-14 22:37:43 +0200 |
commit | 7432bcfe5a36331502c49fe03aefe39b9936247a (patch) | |
tree | 398b1874abbd4bcf7c103738ac4548e830af0a43 /libavcodec/wmalosslessdec.c | |
parent | 01bf2ad7351fdaa2e21b6bdf963d22d6ffccb920 (diff) | |
parent | 7bf9e3391fa21d90ff283fc03a12287fe73db9e8 (diff) |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
vsrc_buffer: fix check from 7ae7c41.
libxvid: Reorder functions to avoid forward declarations; make functions static.
libxvid: drop some pointless dead code
wmal: vertical alignment cosmetics
wmal: Warn about missing bitstream splicing feature and ask for sample.
wmal: Skip seekable_frame_in_packet.
wmal: Drop unused variable num_possible_block_size.
avfiltergraph: make the AVFilterInOut alloc/free API public
graphparser: allow specifying sws flags in the graph description.
graphparser: fix the order of connecting unlabeled links.
graphparser: add avfilter_graph_parse2().
vsrc_buffer: allow using a NULL buffer to signal EOF.
swscale: handle last pixel if lines have an odd width.
qdm2: fix a dubious pointer cast
WMAL: Do not try to read rawpcm coefficients if bits is invalid
mov: Fix detecting there is no sync sample.
tiffdec: K&R cosmetics
avf: has_duration does not check the global one
dsputil: fix optimized emu_edge function on Win64.
Conflicts:
doc/APIchanges
libavcodec/libxvid_rc.c
libavcodec/libxvidff.c
libavcodec/tiff.c
libavcodec/wmalosslessdec.c
libavfilter/avfiltergraph.h
libavfilter/graphparser.c
libavfilter/version.h
libavfilter/vsrc_buffer.c
libswscale/output.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/wmalosslessdec.c')
-rw-r--r-- | libavcodec/wmalosslessdec.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c index 50c4725045..021ce496ff 100644 --- a/libavcodec/wmalosslessdec.c +++ b/libavcodec/wmalosslessdec.c @@ -229,7 +229,6 @@ static av_cold int decode_init(AVCodecContext *avctx) s->max_subframe_len_bit = 0; s->subframe_len_bits = av_log2(log2_max_num_subframes) + 1; - num_possible_block_sizes = log2_max_num_subframes + 1; s->min_samples_per_subframe = s->samples_per_frame / s->max_num_subframes; s->dynamic_range_compression = s->decode_flags & 0x80; s->bV3RTM = s->decode_flags & 0x100; @@ -940,9 +939,10 @@ static int decode_subframe(WmallDecodeCtx *s) if (rawpcm_tile) { int bits = s->bits_per_sample - padding_zeroes; - if (bits <= 0 ) { - av_log(s->avctx, AV_LOG_ERROR, "rawpcm_tile bits invalid\n"); - return -1; + if (bits <= 0) { + av_log(s->avctx, AV_LOG_ERROR, + "Invalid number of padding bits in raw PCM tile\n"); + return AVERROR_INVALIDDATA; } av_dlog(s->avctx, "RAWPCM %d bits per sample. " "total %d bits, remain=%d\n", bits, @@ -1169,8 +1169,7 @@ static int decode_packet(AVCodecContext *avctx, void *data, int *got_frame_ptr, GetBitContext* gb = &s->pgb; const uint8_t* buf = avpkt->data; int buf_size = avpkt->size; - int num_bits_prev_frame, packet_sequence_number, - seekable_frame_in_packet, spliced_packet; + int num_bits_prev_frame, packet_sequence_number, spliced_packet; if (s->packet_done || s->packet_loss) { s->packet_done = 0; @@ -1185,9 +1184,11 @@ static int decode_packet(AVCodecContext *avctx, void *data, int *got_frame_ptr, /* parse packet header */ init_get_bits(gb, buf, s->buf_bit_size); - packet_sequence_number = get_bits(gb, 4); - seekable_frame_in_packet = get_bits1(gb); - spliced_packet = get_bits1(gb); + packet_sequence_number = get_bits(gb, 4); + skip_bits(gb, 1); // Skip seekable_frame_in_packet, currently ununused + spliced_packet = get_bits1(gb); + if (spliced_packet) + av_log_missing_feature(avctx, "Bitstream splicing", 1); /* get number of bits that need to be added to the previous frame */ num_bits_prev_frame = get_bits(gb, s->log2_frame_size); |