mirror of https://git.ffmpeg.org/ffmpeg.git
lavf/mov: Allow reading very large files.
The Sample count in the time-to-sample table is defined as 32-bit unsigned integer by the QT specification. Fixes ticket #6700.
This commit is contained in:
parent
05dfa21d47
commit
1015982f45
|
@ -52,7 +52,7 @@ struct AVAESCTR;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct MOVStts {
|
typedef struct MOVStts {
|
||||||
int count;
|
unsigned int count;
|
||||||
int duration;
|
int duration;
|
||||||
} MOVStts;
|
} MOVStts;
|
||||||
|
|
||||||
|
|
|
@ -2663,15 +2663,11 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
||||||
|
|
||||||
for (i = 0; i < entries && !pb->eof_reached; i++) {
|
for (i = 0; i < entries && !pb->eof_reached; i++) {
|
||||||
int sample_duration;
|
int sample_duration;
|
||||||
int sample_count;
|
unsigned int sample_count;
|
||||||
|
|
||||||
sample_count=avio_rb32(pb);
|
sample_count=avio_rb32(pb);
|
||||||
sample_duration = avio_rb32(pb);
|
sample_duration = avio_rb32(pb);
|
||||||
|
|
||||||
if (sample_count < 0) {
|
|
||||||
av_log(c->fc, AV_LOG_ERROR, "Invalid sample_count=%d\n", sample_count);
|
|
||||||
return AVERROR_INVALIDDATA;
|
|
||||||
}
|
|
||||||
sc->stts_data[i].count= sample_count;
|
sc->stts_data[i].count= sample_count;
|
||||||
sc->stts_data[i].duration= sample_duration;
|
sc->stts_data[i].duration= sample_duration;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue