[FFmpeg-cvslog] Merge commit '53ea595eec984e3109310e8bb7ff4b5786d91057'
James Almer
git at videolan.org
Thu Sep 28 02:47:20 EEST 2017
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Wed Sep 27 20:42:39 2017 -0300| [b35f6d3aa359567fa4572a1a982ec6d233929d35] | committer: James Almer
Merge commit '53ea595eec984e3109310e8bb7ff4b5786d91057'
* commit '53ea595eec984e3109310e8bb7ff4b5786d91057':
mov: Rework stsc index validation
See e26e6240b6700c5e8c16d0f092f1ad46805a723c.
Merged-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b35f6d3aa359567fa4572a1a982ec6d233929d35
---
libavformat/isom.h | 2 +-
libavformat/mov.c | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/libavformat/isom.h b/libavformat/isom.h
index fdd98c28f5..9aea629293 100644
--- a/libavformat/isom.h
+++ b/libavformat/isom.h
@@ -141,7 +141,7 @@ typedef struct MOVStreamContext {
MOVStts *ctts_data;
unsigned int stsc_count;
MOVStsc *stsc_data;
- int stsc_index;
+ unsigned int stsc_index;
int stsc_sample;
unsigned int stps_count;
unsigned *stps_data; ///< partial sync sample for mpeg-2 open gop
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 2de60b2159..19cda1424d 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2447,10 +2447,13 @@ static int mov_read_stsc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return 0;
}
-#define mov_stsc_index_valid(index, count) ((index) < (count) - 1)
+static inline int mov_stsc_index_valid(unsigned int index, unsigned int count)
+{
+ return index < count - 1;
+}
/* Compute the samples value for the stsc entry at the given index. */
-static inline int mov_get_stsc_samples(MOVStreamContext *sc, int index)
+static inline int mov_get_stsc_samples(MOVStreamContext *sc, unsigned int index)
{
int chunk_count;
@@ -6647,7 +6650,7 @@ static int mov_seek_stream(AVFormatContext *s, AVStream *st, int64_t timestamp,
{
MOVStreamContext *sc = st->priv_data;
int sample, time_sample;
- int i;
+ unsigned int i;
int ret = mov_seek_fragment(s, st, timestamp);
if (ret < 0)
======================================================================
diff --cc libavformat/mov.c
index 2de60b2159,11bcff035c..19cda1424d
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@@ -6647,12 -3982,8 +6650,12 @@@ static int mov_seek_stream(AVFormatCont
{
MOVStreamContext *sc = st->priv_data;
int sample, time_sample;
- int i;
+ unsigned int i;
+ int ret = mov_seek_fragment(s, st, timestamp);
+ if (ret < 0)
+ return ret;
+
sample = av_index_search_timestamp(st, timestamp, flags);
av_log(s, AV_LOG_TRACE, "stream %d, timestamp %"PRId64", sample %d\n", st->index, timestamp, sample);
if (sample < 0 && st->nb_index_entries && timestamp < st->index_entries[0].timestamp)
More information about the ffmpeg-cvslog
mailing list