|
|
|
@ -236,10 +236,16 @@ static int ffm2_read_header(AVFormatContext *s) |
|
|
|
|
AVStream *st; |
|
|
|
|
AVIOContext *pb = s->pb; |
|
|
|
|
AVCodecContext *codec; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
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; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ffm->write_index = avio_rb64(pb); |
|
|
|
|
/* get also filesize */ |
|
|
|
|
if (pb->seekable) { |
|
|
|
@ -266,8 +272,10 @@ static int ffm2_read_header(AVFormatContext *s) |
|
|
|
|
break; |
|
|
|
|
case MKBETAG('C', 'O', 'M', 'M'): |
|
|
|
|
st = avformat_new_stream(s, NULL); |
|
|
|
|
if (!st) |
|
|
|
|
if (!st) { |
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
goto fail; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
avpriv_set_pts_info(st, 64, 1, 1000000); |
|
|
|
|
|
|
|
|
@ -359,7 +367,7 @@ static int ffm2_read_header(AVFormatContext *s) |
|
|
|
|
return 0; |
|
|
|
|
fail: |
|
|
|
|
ffm_close(s); |
|
|
|
|
return -1; |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int ffm_read_header(AVFormatContext *s) |
|
|
|
|