|
|
|
@ -190,7 +190,7 @@ static int ffm_write_header(AVFormatContext *s) |
|
|
|
|
put_le16(pb, codec->frame_size); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
av_abort(); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
/* hack to have real time */ |
|
|
|
|
if (ffm_nopts) |
|
|
|
@ -208,8 +208,7 @@ static int ffm_write_header(AVFormatContext *s) |
|
|
|
|
/* init packet mux */ |
|
|
|
|
ffm->packet_ptr = ffm->packet; |
|
|
|
|
ffm->packet_end = ffm->packet + ffm->packet_size - FFM_HEADER_SIZE; |
|
|
|
|
if (ffm->packet_end < ffm->packet) |
|
|
|
|
av_abort(); |
|
|
|
|
assert(ffm->packet_end >= ffm->packet); |
|
|
|
|
ffm->frame_offset = 0; |
|
|
|
|
ffm->pts = 0; |
|
|
|
|
ffm->first_packet = 1; |
|
|
|
@ -340,7 +339,7 @@ static int ffm_read_data(AVFormatContext *s, |
|
|
|
|
get_buffer(pb, ffm->packet, ffm->packet_size - FFM_HEADER_SIZE); |
|
|
|
|
ffm->packet_end = ffm->packet + (ffm->packet_size - FFM_HEADER_SIZE - fill_size); |
|
|
|
|
if (ffm->packet_end < ffm->packet) |
|
|
|
|
av_abort(); |
|
|
|
|
return -1; |
|
|
|
|
/* if first packet or resynchronization packet, we must
|
|
|
|
|
handle it specifically */ |
|
|
|
|
if (ffm->first_packet || (frame_offset & 0x8000)) { |
|
|
|
@ -355,7 +354,7 @@ static int ffm_read_data(AVFormatContext *s, |
|
|
|
|
} |
|
|
|
|
ffm->first_packet = 0; |
|
|
|
|
if ((frame_offset & 0x7ffff) < FFM_HEADER_SIZE) |
|
|
|
|
av_abort(); |
|
|
|
|
return -1; |
|
|
|
|
ffm->packet_ptr = ffm->packet + (frame_offset & 0x7fff) - FFM_HEADER_SIZE; |
|
|
|
|
if (!first) |
|
|
|
|
break; |
|
|
|
|