diff mbox

[FFmpeg-devel,1/3] lavf/mov: Allow reading very large files.

Message ID 20170929225829.2890-1-michael@niedermayer.cc
State New
Headers show

Commit Message

Michael Niedermayer Sept. 29, 2017, 10:58 p.m. UTC
From: Pablo Montilla <melkor@odyssey.com.uy>

The Sample count in the time-to-sample table is defined as
32-bit unsigned integer by the QT specification.

Fixes ticket #6700.
---
 libavformat/isom.h | 2 +-
 libavformat/mov.c  | 6 +-----
 2 files changed, 2 insertions(+), 6 deletions(-)

Comments

Michael Niedermayer Sept. 29, 2017, 10:58 p.m. UTC | #1
On Sat, Sep 30, 2017 at 12:58:27AM +0200, Michael Niedermayer wrote:
> From: Pablo Montilla <melkor@odyssey.com.uy>
> 
> The Sample count in the time-to-sample table is defined as
> 32-bit unsigned integer by the QT specification.
> 
> Fixes ticket #6700.
> ---
>  libavformat/isom.h | 2 +-
>  libavformat/mov.c  | 6 +-----
>  2 files changed, 2 insertions(+), 6 deletions(-)

please ignore this patch of the set ive mistakly send 3 instead of the
intended 2

[...]
diff mbox

Patch

diff --git a/libavformat/isom.h b/libavformat/isom.h
index 9aea629293..b9380e9dcc 100644
--- a/libavformat/isom.h
+++ b/libavformat/isom.h
@@ -52,7 +52,7 @@  struct AVAESCTR;
  */
 
 typedef struct MOVStts {
-    int count;
+    unsigned int count;
     int duration;
 } MOVStts;
 
diff --git a/libavformat/mov.c b/libavformat/mov.c
index ede9cda9d3..899690d920 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2663,15 +2663,11 @@  static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
     for (i = 0; i < entries && !pb->eof_reached; i++) {
         int sample_duration;
-        int sample_count;
+        unsigned int sample_count;
 
         sample_count=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].duration= sample_duration;