summaryrefslogtreecommitdiff
path: root/libavformat/mxfdec.c
diff options
context:
space:
mode:
authorMarton Balint <cus@passwd.hu>2019-04-07 02:06:35 +0200
committerMarton Balint <cus@passwd.hu>2019-04-28 21:55:28 +0200
commita5136426a73261e5b5a493f33944be82b6b659c6 (patch)
tree909eb856575861ed37c726d612599426dc0cd376 /libavformat/mxfdec.c
parentea80af659c609dca45eae7ec0fb1b4bfbbc620af (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.c9
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 */