Mercurial > mplayer.hg
changeset 17910:5ae29dc47c17
feed something (hopefully correct timestamps) into the video filter chain
author | michael |
---|---|
date | Tue, 21 Mar 2006 23:09:52 +0000 |
parents | f7048eaffa85 |
children | 52f95509cd05 |
files | libmpcodecs/dec_video.c libmpcodecs/dec_video.h mencoder.c mplayer.c |
diffstat | 4 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/dec_video.c Tue Mar 21 23:06:09 2006 +0000 +++ b/libmpcodecs/dec_video.c Tue Mar 21 23:09:52 2006 +0000 @@ -304,7 +304,7 @@ extern int vo_directrendering; -int decode_video(sh_video_t *sh_video,unsigned char *start,int in_size,int drop_frame){ +int decode_video(sh_video_t *sh_video,unsigned char *start,int in_size,int drop_frame, double pts){ vf_instance_t* vf; mp_image_t *mpi=NULL; unsigned int t=GetTimer(); @@ -336,7 +336,7 @@ //vo_draw_image(video_out,mpi); vf=sh_video->vfilter; -ret = vf->put_image(vf,mpi, MP_NOPTS_VALUE); // apply video filters and call the leaf vo/ve +ret = vf->put_image(vf,mpi, pts); // apply video filters and call the leaf vo/ve if(ret>0) vf->control(vf,VFCTRL_DRAW_OSD,NULL); t2=GetTimer()-t2;
--- a/libmpcodecs/dec_video.h Tue Mar 21 23:06:09 2006 +0000 +++ b/libmpcodecs/dec_video.h Tue Mar 21 23:09:52 2006 +0000 @@ -10,7 +10,7 @@ extern int init_video(sh_video_t *sh_video,char* codecname,char* vfm,int status); extern void uninit_video(sh_video_t *sh_video); -extern int decode_video(sh_video_t *sh_video,unsigned char *start,int in_size,int drop_frame); +extern int decode_video(sh_video_t *sh_video,unsigned char *start,int in_size,int drop_frame, double pts); extern int get_video_quality_max(sh_video_t *sh_video); extern void set_video_quality(sh_video_t *sh_video,int quality);
--- a/mencoder.c Tue Mar 21 23:06:09 2006 +0000 +++ b/mencoder.c Tue Mar 21 23:09:52 2006 +0000 @@ -1321,7 +1321,7 @@ default: // decode_video will callback down to ve_*.c encoders, through the video filters blit_frame=decode_video(sh_video,frame_data.start,frame_data.in_size, - skip_flag>0 && (!sh_video->vfilter || ((vf_instance_t *)sh_video->vfilter)->control(sh_video->vfilter, VFCTRL_SKIP_NEXT_FRAME, 0) != CONTROL_TRUE)); + skip_flag>0 && (!sh_video->vfilter || ((vf_instance_t *)sh_video->vfilter)->control(sh_video->vfilter, VFCTRL_SKIP_NEXT_FRAME, 0) != CONTROL_TRUE), mux_v->timer); if (sh_video->vf_inited < 0) mencoder_exit(1, NULL); @@ -1739,7 +1739,7 @@ if (vfilter) { int softskip = (vfilter->control(vfilter, VFCTRL_SKIP_NEXT_FRAME, 0) == CONTROL_TRUE); - decode_video(sh_video, frame_data->start, frame_data->in_size, !softskip); + decode_video(sh_video, frame_data->start, frame_data->in_size, !softskip, MP_NOPTS_VALUE); } #ifdef USE_EDL
--- a/mplayer.c Tue Mar 21 23:06:09 2006 +0000 +++ b/mplayer.c Tue Mar 21 23:09:52 2006 +0000 @@ -2693,7 +2693,7 @@ // decode: current_module="decode_video"; // printf("Decode! %p %d \n",start,in_size); - blit_frame=decode_video(sh_video,start,in_size,drop_frame); + blit_frame=decode_video(sh_video,start,in_size,drop_frame, MP_NOPTS_VALUE); break; } vdecode_time=video_time_usage-vdecode_time;