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){