|
|
|
@ -520,6 +520,7 @@ static int nsv_read_chunk(AVFormatContext *s, int fill_header) |
|
|
|
|
uint32_t vsize; |
|
|
|
|
uint16_t asize; |
|
|
|
|
uint16_t auxsize; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
if (nsv->ahead[0].data || nsv->ahead[1].data) |
|
|
|
|
return 0; //-1; /* hey! eat what you've in your plate first! */
|
|
|
|
@ -571,7 +572,8 @@ null_chunk_retry: |
|
|
|
|
if (vsize && st[NSV_ST_VIDEO]) { |
|
|
|
|
nst = st[NSV_ST_VIDEO]->priv_data; |
|
|
|
|
pkt = &nsv->ahead[NSV_ST_VIDEO]; |
|
|
|
|
av_get_packet(pb, pkt, vsize); |
|
|
|
|
if ((ret = av_get_packet(pb, pkt, vsize)) < 0) |
|
|
|
|
return ret; |
|
|
|
|
pkt->stream_index = st[NSV_ST_VIDEO]->index;//NSV_ST_VIDEO;
|
|
|
|
|
pkt->dts = nst->frame_offset; |
|
|
|
|
pkt->flags |= nsv->state == NSV_HAS_READ_NSVS ? AV_PKT_FLAG_KEY : 0; /* keyframe only likely on a sync frame */ |
|
|
|
@ -615,7 +617,8 @@ null_chunk_retry: |
|
|
|
|
bps, channels, samplerate); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
av_get_packet(pb, pkt, asize); |
|
|
|
|
if ((ret = av_get_packet(pb, pkt, asize)) < 0) |
|
|
|
|
return ret; |
|
|
|
|
pkt->stream_index = st[NSV_ST_AUDIO]->index;//NSV_ST_AUDIO;
|
|
|
|
|
pkt->flags |= nsv->state == NSV_HAS_READ_NSVS ? AV_PKT_FLAG_KEY : 0; /* keyframe only likely on a sync frame */ |
|
|
|
|
if( nsv->state == NSV_HAS_READ_NSVS && st[NSV_ST_VIDEO] ) { |
|
|
|
|