diff options
author | Marton Balint | 2019-04-07 02:06:35 +0200 |
---|---|---|
committer | Marton Balint | 2019-04-28 21:55:28 +0200 |
commit | a5136426a73261e5b5a493f33944be82b6b659c6 (patch) | |
tree | 909eb856575861ed37c726d612599426dc0cd376 /libavformat/mxfdec.c | |
parent | ea80af659c609dca45eae7ec0fb1b4bfbbc620af (diff) |
avformat/mxfdec: rework mxf_essence_container_end
We find the last essence container much faster if we go through the partitions
backwards...
Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavformat/mxfdec.c')
-rw-r--r-- | libavformat/mxfdec.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index 3ea8de1666..2c44852062 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -1545,10 +1545,7 @@ static int mxf_absolute_bodysid_offset(MXFContext *mxf, int body_sid, int64_t of */ static int64_t mxf_essence_container_end(MXFContext *mxf, int body_sid) { - int x; - int64_t ret = 0; - - for (x = 0; x < mxf->partitions_count; x++) { + for (int x = mxf->partitions_count - 1; x >= 0; x--) { MXFPartition *p = &mxf->partitions[x]; if (p->body_sid != body_sid) @@ -1557,10 +1554,10 @@ static int64_t mxf_essence_container_end(MXFContext *mxf, int body_sid) if (!p->essence_length) return 0; - ret = p->essence_offset + p->essence_length; + return p->essence_offset + p->essence_length; } - return ret; + return 0; } /* EditUnit -> absolute offset */ |