From: James S. <jst...@us...> - 2004-07-01 20:16:33
|
Update of /cvsroot/xine/xine-lib/src/libffmpeg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9165 Modified Files: video_decoder.c Log Message: Fix av sync for RV10 and RV20 streams Index: video_decoder.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/libffmpeg/video_decoder.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- video_decoder.c 28 Jun 2004 22:44:57 -0000 1.19 +++ video_decoder.c 1 Jul 2004 20:16:24 -0000 1.20 @@ -72,6 +72,7 @@ ff_video_class_t *class; xine_stream_t *stream; + int64_t pts; int video_step; int decoder_ok; @@ -915,13 +916,6 @@ this->bih.biWidth = BE_16(&buf->content[12]); this->bih.biHeight = BE_16(&buf->content[14]); - this->video_step = - 90000.0 / ((double) BE_16(&buf->content[22]) + - ((double) BE_16(&buf->content[24]) / 65536.0)); - - _x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION, - this->video_step); - this->context->sub_id = BE_32(&buf->content[30]); this->context->slice_offset = xine_xmalloc(sizeof(int)*SLICE_OFFSET_SIZE); @@ -1010,6 +1004,9 @@ this->aspect_ratio*10000); } + if (buf->decoder_flags & BUF_FLAG_FRAME_START) + this->pts = buf->pts; + if (this->decoder_ok && this->size) { if ( (buf->decoder_flags & BUF_FLAG_FRAME_END) || this->is_continous ) { @@ -1162,8 +1159,8 @@ } } - img->pts = buf->pts; - buf->pts = 0; + img->pts = this->pts; + this->pts = 0; img->duration = this->video_step; this->skipframes = img->draw(img, this->stream); |