diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-03-06 23:44:29 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-03-06 23:45:05 +0100 |
commit | 618d2262d71e3eca9e01b2d03d0a7d5946737cf0 (patch) | |
tree | 31b071e41a76f12bde8a0236b2ec6ac1ddf2bc07 /libavformat/mxfdec.c | |
parent | 5a4852bc4d6446f1fc158b2e6c41cb0f3c8b98aa (diff) | |
parent | f06f6daaf8538eb8ceeb690b761f1256771b6ba6 (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.c | 17 |
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; |