Merge commit '0b6adcf76bda8994902f5b6d8e694b0b916ea210' into release/1.1
* commit '0b6adcf76bda8994902f5b6d8e694b0b916ea210': oma: refactor seek function xl: Make sure the width is valid 8bps: Bound-check the input buffer 4xm: Reject not a multiple of 16 dimension alsdec: Clean up error paths alsdec: Fix the clipping range dsicinav: Clip the source size to the expected maximum dsicinav: Bound-check the source buffer when needed dsicinav: K&R formatting cosmetics lavf: Make sure avg_frame_rate can be calculated without integer overflow mov: Do not allow updating the time scale after it has been set mov: Seek back if overreading an individual atom ac3dec: Don't consume more data than the actual input packet size indeo: Reject impossible FRAMETYPE_NULL indeo: Do not reference mismatched tiles Conflicts: libavcodec/4xm.c libavcodec/8bps.c libavcodec/alsdec.c libavcodec/dsicinav.c libavcodec/ivi_common.c libavcodec/xl.c libavformat/mov.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -432,23 +432,26 @@ static int oma_read_probe(AVProbeData *p)
|
||||
static int oma_read_seek(struct AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
|
||||
{
|
||||
OMAContext *oc = s->priv_data;
|
||||
int err = ff_pcm_read_seek(s, stream_index, timestamp, flags);
|
||||
|
||||
ff_pcm_read_seek(s, stream_index, timestamp, flags);
|
||||
if (!oc->encrypted)
|
||||
return err;
|
||||
|
||||
if (oc->encrypted) {
|
||||
/* readjust IV for CBC */
|
||||
int64_t pos = avio_tell(s->pb);
|
||||
if (pos < oc->content_start)
|
||||
memset(oc->iv, 0, 8);
|
||||
else {
|
||||
if (avio_seek(s->pb, -8, SEEK_CUR) < 0 || avio_read(s->pb, oc->iv, 8) < 8) {
|
||||
memset(oc->iv, 0, 8);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
/* readjust IV for CBC */
|
||||
if (err || avio_tell(s->pb) < oc->content_start)
|
||||
goto wipe;
|
||||
if ((err = avio_seek(s->pb, -8, SEEK_CUR)) < 0)
|
||||
goto wipe;
|
||||
if ((err = avio_read(s->pb, oc->iv, 8)) < 8) {
|
||||
if (err >= 0)
|
||||
err = AVERROR_EOF;
|
||||
goto wipe;
|
||||
}
|
||||
|
||||
return 0;
|
||||
wipe:
|
||||
memset(oc->iv, 0, 8);
|
||||
return err;
|
||||
}
|
||||
|
||||
AVInputFormat ff_oma_demuxer = {
|
||||
|
Reference in New Issue
Block a user