From: Harm v. d. H. <hr...@us...> - 2001-12-12 22:53:11
|
Update of /cvsroot/xine/xine-lib/src/dxr3 In directory usw-pr-cvs1:/tmp/cvs-serv24415/src/dxr3 Modified Files: Tag: dvd dxr3_decoder.c Log Message: - some more stuff from the main branch to bring dxr3 in dvd branch up to date - fixed compilation of dxr3_decoder.c. I've added comments FIXME_DVD where I took a guess for new arguments of a function with a changed interface. Index: dxr3_decoder.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/dxr3/dxr3_decoder.c,v retrieving revision 1.41.2.1 retrieving revision 1.41.2.2 diff -u -r1.41.2.1 -r1.41.2.2 --- dxr3_decoder.c 2001/12/12 21:38:47 1.41.2.1 +++ dxr3_decoder.c 2001/12/12 22:53:08 1.41.2.2 @@ -501,9 +501,20 @@ If vpts is non-zero, we already called img->draw which in turn has called got_video_frame, so we have vpts already */ if (buf->PTS && vpts == 0) { + /* FIXME_DVD: dvd branch change: */ + /* new metronom got_video_frame wants vo_frame_t as arg. */ + img = this->video_out->get_frame (this->video_out, + this->width, + this->height, + this->aspect, + IMGFMT_YV12, + this->duration, + VO_BOTH_FIELDS); + img->PTS = buf->PTS; /* receive an updated pts value from metronom... */ vpts = this->video_decoder.metronom->got_video_frame( - this->video_decoder.metronom, buf->PTS, buf->SCR ); + this->video_decoder.metronom, img); + img->free(img); } /* Now that we have a PTS value from the stream, not a metronom interpolated one, it's a good time to make sure the dxr3 pts @@ -651,7 +662,7 @@ clut[i] = bswap_32(clut[i]); } -static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf, uint32_t scr) +static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) { spudec_decoder_t *this = (spudec_decoder_t *) this_gen; ssize_t written; @@ -681,8 +692,10 @@ if (buf->PTS) { int vpts; + /* FIXME_DVD: got_spu_packet has new parameter scr_offset. + * Using 0 for now */ vpts = this->spu_decoder.metronom->got_spu_packet - (this->spu_decoder.metronom, buf->PTS, 0, buf->SCR); + (this->spu_decoder.metronom, buf->PTS, 0, buf->SCR, 0); if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_SETPTS, &vpts)) printf("dxr3: spu setpts failed (%s)\n", strerror(errno)); |