From a5136426a73261e5b5a493f33944be82b6b659c6 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sun, 7 Apr 2019 02:06:35 +0200 Subject: [PATCH] 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 --- libavformat/mxfdec.c | 9 +++------ 1 file 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 */