AVStream *st= s->streams[stream_index];
AVPacketList *pktl= s->packet_buffer;
- if(st->first_dts != AV_NOPTS_VALUE || dts == AV_NOPTS_VALUE)
+ if(st->first_dts != AV_NOPTS_VALUE || dts == AV_NOPTS_VALUE || st->cur_dts == AV_NOPTS_VALUE)
return;
st->first_dts= dts - st->cur_dts;
of the frame we are displaying, i.e. the last I- or P-frame */
if (st->last_IP_duration == 0)
st->last_IP_duration = pkt->duration;
+ if(pkt->dts != AV_NOPTS_VALUE)
st->cur_dts = pkt->dts + st->last_IP_duration;
st->last_IP_duration = pkt->duration;
st->last_IP_pts= pkt->pts;
if(pkt->pts == AV_NOPTS_VALUE)
pkt->pts = st->cur_dts;
pkt->dts = pkt->pts;
+ if(pkt->pts != AV_NOPTS_VALUE)
st->cur_dts = pkt->pts + pkt->duration;
}
}
./tests/data/b-libav.mpg CRC=0x2b71a386
447b005e527cf495ec13092e788f028d *./tests/data/b-libav.ts
471692 ./tests/data/b-libav.ts
-./tests/data/b-libav.ts CRC=0xd14320e2
+./tests/data/b-libav.ts CRC=0xcc4948e1
d6fdeb9f7083cc827f9510c6c4517dc0 *./tests/data/b-libav.swf
335771 ./tests/data/b-libav.swf
./tests/data/b-libav.swf CRC=0xe14e8847