|
|
@ -994,11 +994,10 @@ static int decode_frame(NUTContext *nut, AVPacket *pkt, int frame_code) |
|
|
|
{ |
|
|
|
{ |
|
|
|
AVFormatContext *s = nut->avf; |
|
|
|
AVFormatContext *s = nut->avf; |
|
|
|
AVIOContext *bc = s->pb; |
|
|
|
AVIOContext *bc = s->pb; |
|
|
|
int size, stream_id, discard; |
|
|
|
int size, stream_id, discard, ret; |
|
|
|
int64_t pts, last_IP_pts; |
|
|
|
int64_t pts, last_IP_pts; |
|
|
|
StreamContext *stc; |
|
|
|
StreamContext *stc; |
|
|
|
uint8_t header_idx; |
|
|
|
uint8_t header_idx; |
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
size = decode_frame_header(nut, &pts, &stream_id, &header_idx, frame_code); |
|
|
|
size = decode_frame_header(nut, &pts, &stream_id, &header_idx, frame_code); |
|
|
|
if (size < 0) |
|
|
|
if (size < 0) |
|
|
@ -1020,8 +1019,9 @@ static int decode_frame(NUTContext *nut, AVPacket *pkt, int frame_code) |
|
|
|
return 1; |
|
|
|
return 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (av_new_packet(pkt, size + nut->header_len[header_idx]) < 0) |
|
|
|
ret = av_new_packet(pkt, size + nut->header_len[header_idx]); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
if (ret < 0) |
|
|
|
|
|
|
|
return ret; |
|
|
|
memcpy(pkt->data, nut->header[header_idx], nut->header_len[header_idx]); |
|
|
|
memcpy(pkt->data, nut->header[header_idx], nut->header_len[header_idx]); |
|
|
|
pkt->pos = avio_tell(bc); // FIXME
|
|
|
|
pkt->pos = avio_tell(bc); // FIXME
|
|
|
|
if (stc->last_flags & FLAG_SM_DATA) { |
|
|
|
if (stc->last_flags & FLAG_SM_DATA) { |
|
|
|