A given packet won't always come in contiguously; sometimes
they may be broken up on chunk boundaries by packets of another
channel.
This support primarily involves tracking information about the
data that's been read, so the reader can pick up where it left
off for a given channel.
As a side effect, we no longer over-report the bytes read if
(toread = MIN(size, chunk_size)) == size
Signed-off-by: Martin Storsjö <martin@martin.st>
Since the number of channels is multiplied by 36 and assigned to
to a uint16_t, make sure this calculation didn't overflow. (In
certain cases the calculation could overflow leaving the
truncated block_align at 0, leading to divisions by zero later.)
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
A change in framesize caused a perpetual loss of synchronization.
So read (and use) the frame size from the frame header instead of
setting it only once.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
It's not our responsibility to account for other projects'
terrible hacky usage.
Also, it is no longer needed by XMBC, since 78b71d4.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Previously this would have lead to a memcpy(a,a) which violates the
requirement of non overlapping src and dst.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b1db33159fdc2da4bdd8c75e4ff9a7dd0ef2f0c2':
ffv1: Make sure at least one slice context is initialized
Conflicts:
libavcodec/ffv1.c
This condition is not possible in ffmpegs ffv1 code and already
checked for by assert() for the case that some future changes make it possible.
Thus merge just for meta-data
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ea78a348d86a3a733f6c1e0a65cfdd8283d924b9':
eacmv: Make sure a reference frame exists before referencing it
Conflicts:
libavcodec/eacmv.c
See: 113d7be624
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c39f7eba01cd656e8f0eed592f93d11814736650':
truemotion2: Use av_freep properly in an error path
Conflicts:
libavcodec/truemotion2.c
See: c54aa2fb0f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'a92538b7c0defc86c55fb91f55dfa36aad192673':
ivi_common: Make sure color planes have been initialized
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7f8d41eb097e8d4223c9caf97dd332a2fdb29d52':
mov: Don't use a negative duration for setting other fields
Conflicts:
libavformat/mov.c
See: 87d073eacc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '19b9659f3174599e8685d329c4330b1ea8c4c6db':
oggparseogm: Convert to use bytestream2
Conflicts:
libavformat/oggparseogm.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '711c970168297683860422e95d6b7e37ee3c8367':
rv34: Check the return value from ff_rv34_decode_init
Conflicts:
libavcodec/rv30.c
libavcodec/rv40.c
See: b86651a208
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e1f3847f860a1094a46be4c5f10db8df616c3135':
mace: Make sure that the channel count is set to a valid value
Conflicts:
libavcodec/mace.c
See: 6df1cfa7e4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1115689d54ea95a084421f5a182b8dc56cbff978':
svq3: Check for any negative return value from ff_h264_check_intra_pred_mode
Conflicts:
libavcodec/svq3.c
See: 019eb2c77b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd4aef997809167832ecc64e89dda8cb445e5fe10':
rtmp: Follow Flash player numbering for channels.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '68b467742092364f9306283f40effde2c12efe08':
lavf: Make probe_codec return an error code
Conflicts:
libavformat/utils.c
A failure to reallocate should not free the array as it is used
to probe the codec. And failure to reallocate if the following
probe succeeds isnt a fatal error for probe_codec(). Thus this
is only partially merged to ensure probing still is attempted
with the data available.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '73084391588b0f150737990038829cac5013dd68':
lavf: Don't explicitly flush after each written packet in muxers
Conflicts:
libavformat/assenc.c
libavformat/yuv4mpeg.c
See: 8de9bb6e5e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '596e5d4783ca951258a7c580951fd161f1785ec1':
lavf: Add a flag to enable/disable per-packet flushing
Conflicts:
libavformat/avformat.h
libavformat/mux.c
libavformat/version.h
This adds a 2nd API to set per packet flushing
If the user application indicates through either a non default then this non default takes
precedence over the other still default value
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'fe0337e89bbbe84b7274fbb0d9d56ed992937931':
rtmp: Do not send the first field twice within the handshake
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '187105ff8a02bafc9c58d9d8363bb3f55a415635':
Fix references to deleted avcodec_encode_video() function
Merged-by: Michael Niedermayer <michaelni@gmx.at>