Commit 8076609a authored by David Conrad's avatar David Conrad Committed by Diego Biurrun

The NSV demuxer assumes that a video frame's timestamp increases by one on each

frame, but some low-bitrate NSV files omit video frames for some NSV frames,
and expect the timestamp to increase by one every NSV frame. This is noticeable
in 64vp3.nsv where the video runs several times faster than the audio. Fix this
by unconditionally incrementing the video's timestamp with each NSV frame.
patch by David Conrad, umovimus gmail com

Originally committed as revision 8466 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent df7625ed
......@@ -602,13 +602,15 @@ null_chunk_retry:
pkt = &nsv->ahead[NSV_ST_VIDEO];
av_get_packet(pb, pkt, vsize);
pkt->stream_index = st[NSV_ST_VIDEO]->index;//NSV_ST_VIDEO;
pkt->dts = nst->frame_offset++;
pkt->dts = nst->frame_offset;
pkt->flags |= nsv->state == NSV_HAS_READ_NSVS ? PKT_FLAG_KEY : 0; /* keyframe only likely on a sync frame */
/*
for (i = 0; i < MIN(8, vsize); i++)
PRINT(("NSV video: [%d] = %02x\n", i, pkt->data[i]));
*/
}
((NSVStream*)st[NSV_ST_VIDEO]->priv_data)->frame_offset++;
if (asize/*st[NSV_ST_AUDIO]*/) {
nst = st[NSV_ST_AUDIO]->priv_data;
pkt = &nsv->ahead[NSV_ST_AUDIO];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment