summaryrefslogtreecommitdiff
path: root/libavformat/mxfdec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-03-06 23:44:29 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-03-06 23:45:05 +0100
commit618d2262d71e3eca9e01b2d03d0a7d5946737cf0 (patch)
tree31b071e41a76f12bde8a0236b2ec6ac1ddf2bc07 /libavformat/mxfdec.c
parent5a4852bc4d6446f1fc158b2e6c41cb0f3c8b98aa (diff)
parentf06f6daaf8538eb8ceeb690b761f1256771b6ba6 (diff)
Merge commit 'f06f6daaf8538eb8ceeb690b761f1256771b6ba6'
* commit 'f06f6daaf8538eb8ceeb690b761f1256771b6ba6': mxf: Parse random index pack Conflicts: libavformat/mxfdec.c See: f5ed83c3831fcaca0f87cd67ca743946a54023d0 Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/mxfdec.c')
-rw-r--r--libavformat/mxfdec.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 3fcee1aa31..c68387b5c6 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -1891,10 +1891,14 @@ static int mxf_parse_handle_essence(MXFContext *mxf)
if (mxf->parsing_backward) {
return mxf_seek_to_previous_partition(mxf);
- } else if (mxf->footer_partition || mxf->last_partition){
- uint64_t offset;
+ } else {
+ uint64_t offset = mxf->footer_partition ? mxf->footer_partition
+ : mxf->last_partition;
- offset = mxf->footer_partition ? mxf->footer_partition : mxf->last_partition;
+ if (!offset) {
+ av_dlog(mxf->fc, "no last partition\n");
+ return 0;
+ }
av_dlog(mxf->fc, "seeking to last partition\n");
@@ -1908,16 +1912,15 @@ static int mxf_parse_handle_essence(MXFContext *mxf)
/* seek to last partition and parse backward */
if ((ret = avio_seek(pb, mxf->run_in + offset, SEEK_SET)) < 0) {
- av_log(mxf->fc, AV_LOG_ERROR, "failed to seek to last partition @ 0x%"PRIx64" (%"PRId64") - partial file?\n",
+ av_log(mxf->fc, AV_LOG_ERROR,
+ "failed to seek to last partition @ 0x%" PRIx64
+ " (%"PRId64") - partial file?\n",
mxf->run_in + offset, ret);
return ret;
}
mxf->current_partition = NULL;
mxf->parsing_backward = 1;
- } else {
- av_dlog(mxf->fc, "can't find last partition\n");
- return 0;
}
return 1;