[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[180] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2012-10-20 08:01:39
|
Revision: 180 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=180&view=rev Author: nickols_k Date: 2012-10-20 08:01:33 +0000 (Sat, 20 Oct 2012) Log Message: ----------- more re-enter calls Modified Paths: -------------- mplayerxp/libmpcodecs/dec_video.c mplayerxp/libmpdemux/demuxer_r.c mplayerxp/libmpdemux/demuxer_r.h mplayerxp/mplayer.c Modified: mplayerxp/libmpcodecs/dec_video.c =================================================================== --- mplayerxp/libmpcodecs/dec_video.c 2012-10-20 07:53:37 UTC (rev 179) +++ mplayerxp/libmpcodecs/dec_video.c 2012-10-20 08:01:33 UTC (rev 180) @@ -316,7 +316,7 @@ static vo_mpegpes_t *pkg=&packet; packet.timestamp=sh_video->timer*90000.0; packet.id=0x20; /* Subpic */ - while((packet.size=ds_get_packet_sub(d_dvdsub,&packet.data))>0){ + while((packet.size=ds_get_packet_sub_r(d_dvdsub,&packet.data))>0){ MSG_V("\rDVD sub: len=%d v_pts=%5.3f s_pts=%5.3f \n",packet.size,v_pts,d_dvdsub->pts); vo_draw_frame(&pkg); } @@ -340,7 +340,7 @@ } } } else { - while((len=ds_get_packet_sub(d_dvdsub,&packet))>0){ + while((len=ds_get_packet_sub_r(d_dvdsub,&packet))>0){ MSG_V("\rDVD sub: len=%d v_pts=%5.3f s_pts=%5.3f \n",len,v_pts,d_dvdsub->pts); spudec_assemble(vo.spudec,packet,len,90000*d_dvdsub->pts); } Modified: mplayerxp/libmpdemux/demuxer_r.c =================================================================== --- mplayerxp/libmpdemux/demuxer_r.c 2012-10-20 07:53:37 UTC (rev 179) +++ mplayerxp/libmpdemux/demuxer_r.c 2012-10-20 08:01:33 UTC (rev 180) @@ -148,6 +148,13 @@ return retval; } +int ds_get_packet_sub_r(demux_stream_t *ds,unsigned char **start) { + int rc; + LOCK_DEMUXER(); + rc=ds_get_packet_sub(ds,start); + UNLOCK_DEMUXER(); + return rc; +} /* TODO : FIXME we need to redesign blocking of mutexes before enabling this function*/ int demux_seek_r(demuxer_t *demuxer,const seek_args_t* seeka) Modified: mplayerxp/libmpdemux/demuxer_r.h =================================================================== --- mplayerxp/libmpdemux/demuxer_r.h 2012-10-20 07:53:37 UTC (rev 179) +++ mplayerxp/libmpdemux/demuxer_r.h 2012-10-20 08:01:33 UTC (rev 180) @@ -17,6 +17,7 @@ extern int video_read_frame_r(sh_video_t* sh_video,float* frame_time_ptr,float *v_pts,unsigned char** start,int force_fps); extern int demux_read_data_r(demux_stream_t *ds,unsigned char* mem,int len,float *pts); extern int ds_get_packet_r(demux_stream_t *ds,unsigned char **start,float *pts); +extern int ds_get_packet_sub_r(demux_stream_t *ds,unsigned char **start); extern int demux_seek_r(demuxer_t *demuxer,const seek_args_t* seeka); extern void vobsub_seek_r(any_t* vobhandle, float pts); Modified: mplayerxp/mplayer.c =================================================================== --- mplayerxp/mplayer.c 2012-10-20 07:53:37 UTC (rev 179) +++ mplayerxp/mplayer.c 2012-10-20 08:01:33 UTC (rev 180) @@ -1527,7 +1527,7 @@ } if(vo.spudec) { unsigned char* packet=NULL; - while(ds_get_packet_sub(d_dvdsub,&packet)>0) ; // Empty stream + while(ds_get_packet_sub_r(d_dvdsub,&packet)>0) ; // Empty stream spudec_reset(vo.spudec); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |