[FFmpeg-devel] [PATCH] mxfenc: ensure mxf->body_partition_offset is not NULL before using it
Andreas Cadhalpun
andreas.cadhalpun at googlemail.com
Fri Mar 13 14:02:34 CET 2015
On 13.03.2015 11:59, Tomas Härdin wrote:
> On Thu, 2015-03-12 at 17:48 +0100, Andreas Cadhalpun wrote:
>> This fixes a crash, when trying to mux h264 into mxf_opatom.
>>
>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>> ---
>> libavformat/mxfenc.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
>> index 898951c..2891f5d 100644
>> --- a/libavformat/mxfenc.c
>> +++ b/libavformat/mxfenc.c
>> @@ -2358,7 +2358,7 @@ static int mxf_write_footer(AVFormatContext *s)
>> mxf_write_random_index_pack(s);
>>
>> if (s->pb->seekable) {
>> - if (s->oformat == &ff_mxf_opatom_muxer){
>> + if (s->oformat == &ff_mxf_opatom_muxer && mxf->body_partition_offset){
>> /* rewrite body partition to update lengths */
>> avio_seek(pb, mxf->body_partition_offset[0], SEEK_SET);
>> if ((err = mxf_write_opatom_body_partition(s)) < 0)
>
> Doesn't this need to happen for H.264 as well?
Maybe, but the seek can't work if mxf->body_partition_offset is NULL.
Would it be better to add the check only around the seek?
> A better solution would
> be to figure out why mxf->body_partition_offset becomes NULL so that
> index tables and such can be rewritten properly.
It can always happen that mxf->body_partition_offset is NULL, e.g. if
no memory is left, or if something else fails. Try e.g.:
ffmpeg -f lavfi -i testsrc -c:v libx264 -f mxf_opatom
Best regards,
Andreas
More information about the ffmpeg-devel
mailing list