Try to fix FATE after my time_base simplification change.

Originally committed as revision 14262 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2008-07-17 14:13:44 +00:00
parent 2ece2e9773
commit 2615800a27

View File

@ -180,6 +180,7 @@ typedef struct {
uint32_t vtag, atag; uint32_t vtag, atag;
uint16_t vwidth, vheight; uint16_t vwidth, vheight;
int16_t avsync; int16_t avsync;
AVRational framerate;
//DVDemuxContext* dv_demux; //DVDemuxContext* dv_demux;
} NSVContext; } NSVContext;
@ -428,6 +429,7 @@ static int nsv_parse_NSVs_header(AVFormatContext *s, AVFormatParameters *ap)
framerate= (AVRational){i, 1}; framerate= (AVRational){i, 1};
nsv->avsync = get_le16(pb); nsv->avsync = get_le16(pb);
nsv->framerate = framerate;
#ifdef DEBUG #ifdef DEBUG
print_tag("NSV NSVs vtag", vtag, 0); print_tag("NSV NSVs vtag", vtag, 0);
print_tag("NSV NSVs atag", atag, 0); print_tag("NSV NSVs atag", atag, 0);
@ -647,8 +649,8 @@ null_chunk_retry:
if( nsv->state == NSV_HAS_READ_NSVS && st[NSV_ST_VIDEO] ) { if( nsv->state == NSV_HAS_READ_NSVS && st[NSV_ST_VIDEO] ) {
/* on a nsvs frame we have new information on a/v sync */ /* on a nsvs frame we have new information on a/v sync */
pkt->dts = (((NSVStream*)st[NSV_ST_VIDEO]->priv_data)->frame_offset-1); pkt->dts = (((NSVStream*)st[NSV_ST_VIDEO]->priv_data)->frame_offset-1);
pkt->dts *= (int64_t)1000 * st[NSV_ST_VIDEO]->time_base.num; pkt->dts *= (int64_t)1000 * nsv->framerate.den;
pkt->dts += (int64_t)nsv->avsync * st[NSV_ST_VIDEO]->time_base.den; pkt->dts += (int64_t)nsv->avsync * nsv->framerate.num;
PRINT(("NSV AUDIO: sync:%d, dts:%"PRId64, nsv->avsync, pkt->dts)); PRINT(("NSV AUDIO: sync:%d, dts:%"PRId64, nsv->avsync, pkt->dts));
} }
nst->frame_offset++; nst->frame_offset++;