WSEvents: use frame count for streaming timecode

This commit is contained in:
Stéphane Lepin 2019-09-03 21:04:45 +02:00
parent fc08add504
commit 5342b39640

View File

@ -367,25 +367,26 @@ void WSEvents::unhookTransitionBeginEvent() {
obs_frontend_source_list_free(&transitions); obs_frontend_source_list_free(&transitions);
} }
uint64_t WSEvents::getStreamingTime() { uint64_t getOutputRunningTime(obs_output_t* output) {
if (!obs_frontend_streaming_active()) { if (!output || !obs_output_active(output)) {
return 0; return 0;
} }
return (os_gettime_ns() - _streamStarttime); video_t* video = obs_output_video(output);
uint64_t frameTimeNs = video_output_get_frame_time(video);
int totalFrames = obs_output_get_total_frames(output);
return (((uint64_t)totalFrames) * frameTimeNs);
}
uint64_t WSEvents::getStreamingTime() {
OBSOutputAutoRelease streamingOutput = obs_frontend_get_streaming_output();
return getOutputRunningTime(streamingOutput);
} }
uint64_t WSEvents::getRecordingTime() { uint64_t WSEvents::getRecordingTime() {
OBSOutputAutoRelease recordingOutput = obs_frontend_get_recording_output(); OBSOutputAutoRelease recordingOutput = obs_frontend_get_recording_output();
if (!recordingOutput || !obs_output_active(recordingOutput)) { return getOutputRunningTime(recordingOutput);
return 0;
}
video_t* video = obs_output_video(recordingOutput);
uint64_t frameTimeNs = video_output_get_frame_time(video);
int totalFrames = obs_output_get_total_frames(recordingOutput);
return ( ((uint64_t)totalFrames) * frameTimeNs );
} }
QString WSEvents::getStreamingTimecode() { QString WSEvents::getStreamingTimecode() {