Mercurial > mplayer.hg
comparison mencoder.c @ 33910:645a13a163a6
Try using sh_video->pts instead of v_muxer_time for filter timestamp.
This works with -ss and is consistent with update_subtitles.
We will see what if any issues this solution has.
author | reimar |
---|---|
date | Thu, 18 Aug 2011 18:37:07 +0000 |
parents | c52940fe54dd |
children | 552f50c89163 |
comparison
equal
deleted
inserted
replaced
33909:50489783444d | 33910:645a13a163a6 |
---|---|
1454 int drop_frame = skip_flag > 0 && | 1454 int drop_frame = skip_flag > 0 && |
1455 (!sh_video->vfilter || | 1455 (!sh_video->vfilter || |
1456 ((vf_instance_t *)sh_video->vfilter)->control(sh_video->vfilter, VFCTRL_SKIP_NEXT_FRAME, 0) != CONTROL_TRUE); | 1456 ((vf_instance_t *)sh_video->vfilter)->control(sh_video->vfilter, VFCTRL_SKIP_NEXT_FRAME, 0) != CONTROL_TRUE); |
1457 void *decoded_frame = decode_video(sh_video,frame_data.start,frame_data.in_size, | 1457 void *decoded_frame = decode_video(sh_video,frame_data.start,frame_data.in_size, |
1458 drop_frame, MP_NOPTS_VALUE, NULL); | 1458 drop_frame, MP_NOPTS_VALUE, NULL); |
1459 // NOTE: v_muxer_time is not really correct, but it allows -ass to work mostly | 1459 // NOTE: sh_video->pts is not really correct, but it allows -ass to work mostly |
1460 blit_frame = decoded_frame && filter_video(sh_video, decoded_frame, v_muxer_time);} | 1460 // v_muxer_time was tried before, but it is completely off when -ss is used |
1461 // (see bug #1960). | |
1462 // If you change this please not the reason here! | |
1463 blit_frame = decoded_frame && filter_video(sh_video, decoded_frame, sh_video->pts);} | |
1461 v_muxer_time = adjusted_muxer_time(mux_v); // update after muxing | 1464 v_muxer_time = adjusted_muxer_time(mux_v); // update after muxing |
1462 | 1465 |
1463 if (sh_video->vf_initialized < 0) mencoder_exit(1, NULL); | 1466 if (sh_video->vf_initialized < 0) mencoder_exit(1, NULL); |
1464 | 1467 |
1465 if(!blit_frame){ | 1468 if(!blit_frame){ |