Commit 6f0fc1a9 authored by Stefano Sabatini's avatar Stefano Sabatini

lavf/ffmdec: return proper error code in ffm2_read_header()

Also log an error message in case of invalid packet size.
parent 39b517fa
...@@ -236,10 +236,16 @@ static int ffm2_read_header(AVFormatContext *s) ...@@ -236,10 +236,16 @@ static int ffm2_read_header(AVFormatContext *s)
AVStream *st; AVStream *st;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
AVCodecContext *codec; AVCodecContext *codec;
int ret;
ffm->packet_size = avio_rb32(pb); ffm->packet_size = avio_rb32(pb);
if (ffm->packet_size != FFM_PACKET_SIZE) if (ffm->packet_size != FFM_PACKET_SIZE) {
av_log(s, AV_LOG_ERROR, "Invalid packet size %d, expected size was %d\n",
ffm->packet_size, FFM_PACKET_SIZE);
ret = AVERROR_INVALIDDATA;
goto fail; goto fail;
}
ffm->write_index = avio_rb64(pb); ffm->write_index = avio_rb64(pb);
/* get also filesize */ /* get also filesize */
if (pb->seekable) { if (pb->seekable) {
...@@ -266,8 +272,10 @@ static int ffm2_read_header(AVFormatContext *s) ...@@ -266,8 +272,10 @@ static int ffm2_read_header(AVFormatContext *s)
break; break;
case MKBETAG('C', 'O', 'M', 'M'): case MKBETAG('C', 'O', 'M', 'M'):
st = avformat_new_stream(s, NULL); st = avformat_new_stream(s, NULL);
if (!st) if (!st) {
ret = AVERROR(ENOMEM);
goto fail; goto fail;
}
avpriv_set_pts_info(st, 64, 1, 1000000); avpriv_set_pts_info(st, 64, 1, 1000000);
...@@ -359,7 +367,7 @@ static int ffm2_read_header(AVFormatContext *s) ...@@ -359,7 +367,7 @@ static int ffm2_read_header(AVFormatContext *s)
return 0; return 0;
fail: fail:
ffm_close(s); ffm_close(s);
return -1; return ret;
} }
static int ffm_read_header(AVFormatContext *s) static int ffm_read_header(AVFormatContext *s)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment