diff --git a/libavformat/bfi.c b/libavformat/bfi.c index 6c98e33ab4..0dad658f95 100644 --- a/libavformat/bfi.c +++ b/libavformat/bfi.c @@ -54,7 +54,7 @@ static int bfi_read_header(AVFormatContext * s) AVIOContext *pb = s->pb; AVStream *vstream; AVStream *astream; - int fps, chunk_header; + int ret, fps, chunk_header; /* Initialize the video codec... */ vstream = avformat_new_stream(s, NULL); @@ -80,12 +80,9 @@ static int bfi_read_header(AVFormatContext * s) /*Load the palette to extradata */ avio_skip(pb, 8); - vstream->codecpar->extradata = av_malloc(768); - if (!vstream->codecpar->extradata) - return AVERROR(ENOMEM); - vstream->codecpar->extradata_size = 768; - avio_read(pb, vstream->codecpar->extradata, - vstream->codecpar->extradata_size); + ret = ff_get_extradata(s, vstream->codecpar, pb, 768); + if (ret < 0) + return ret; astream->codecpar->sample_rate = avio_rl32(pb); if (astream->codecpar->sample_rate <= 0) {