fix some AVIs skipping frames

This commit is contained in:
Glenn Maynard
2004-10-07 04:55:31 +00:00
parent f7d151c9b4
commit fd34d08ae0
@@ -148,7 +148,7 @@ public:
float LastFrameDelay;
float pts, last_IP_pts;
float pts;
avcodec::AVPacket pkt;
int current_packet_offset;
@@ -195,7 +195,7 @@ void FFMpeg_Helper::Init()
GetNextTimestamp = true;
CurrentTimestamp = 0, Last_IP_Timestamp = 0;
LastFrameDelay = 0;
pts = last_IP_pts = -1;
pts = -1;
FrameNumber = -1; /* decode one frame and you're on the 0th */
TimestampOffset = 0;
@@ -306,8 +306,8 @@ int FFMpeg_Helper::DecodePacket()
{
if ( GetNextTimestamp )
{
if (pkt.pts != int64_t(AV_NOPTS_VALUE))
pts = (float)pkt.pts / AV_TIME_BASE;
if (pkt.dts != int64_t(AV_NOPTS_VALUE))
pts = (float)pkt.dts / AV_TIME_BASE;
else
pts = -1;
GetNextTimestamp = false;
@@ -345,12 +345,6 @@ int FFMpeg_Helper::DecodePacket()
GetNextTimestamp = true;
if ( m_stream->codec.has_b_frames &&
frame.pict_type != FF_B_TYPE )
{
swap( pts, last_IP_pts );
}
if (pts != -1)
{
CurrentTimestamp = pts;