mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-23 12:30:11 +00:00
decklink2sink: Add buffered audio and video time to ouptput-stats
This commit is contained in:
parent
e6fecabe8e
commit
8f1855118f
3 changed files with 22 additions and 11 deletions
|
@ -1558,7 +1558,7 @@ gst_decklink2_output_schedule_video_internal (GstDeckLink2Output * self,
|
|||
HRESULT
|
||||
gst_decklink2_output_schedule_stream (GstDeckLink2Output * output,
|
||||
IDeckLinkVideoFrame * frame, guint8 * audio_buf, gsize audio_buf_size,
|
||||
GstDecklink2OutputStats *stats)
|
||||
GstDecklink2OutputStats * stats)
|
||||
{
|
||||
GstDeckLink2OutputPrivate *priv = output->priv;
|
||||
HRESULT hr;
|
||||
|
@ -1597,6 +1597,13 @@ gst_decklink2_output_schedule_stream (GstDeckLink2Output * output,
|
|||
stats->buffered_audio = buffered_audio;
|
||||
stats->video_running_time = video_running_time;
|
||||
stats->audio_running_time = audio_running_time;
|
||||
stats->buffered_video_time = gst_util_uint64_scale (buffered_video,
|
||||
output->selected_mode.fps_d * GST_SECOND, output->selected_mode.fps_n);
|
||||
stats->buffered_audio_time = 0;
|
||||
if (GST_AUDIO_INFO_IS_VALID (&output->audio_info)) {
|
||||
stats->buffered_audio_time = gst_util_uint64_scale (buffered_audio,
|
||||
GST_SECOND, output->audio_info.rate);
|
||||
}
|
||||
stats->hw_time = hw_time_gst;
|
||||
stats->scheduled_video_frames = output->n_frames;
|
||||
stats->scheduled_audio_samples = output->n_samples;
|
||||
|
|
|
@ -36,6 +36,8 @@ typedef struct
|
|||
GstClockTime video_running_time;
|
||||
GstClockTime audio_running_time;
|
||||
GstClockTime hw_time;
|
||||
GstClockTime buffered_video_time;
|
||||
GstClockTime buffered_audio_time;
|
||||
guint64 scheduled_video_frames;
|
||||
guint64 scheduled_audio_samples;
|
||||
guint64 late_count;
|
||||
|
|
|
@ -470,19 +470,21 @@ gst_decklink2_sink_get_property (GObject * object, guint prop_id,
|
|||
s = gst_structure_new ("output-stats",
|
||||
"buffered-video", G_TYPE_UINT, stats->buffered_video,
|
||||
"buffered-audio", G_TYPE_UINT, stats->buffered_audio,
|
||||
"buffered-video-time", G_TYPE_UINT64, stats->buffered_video_time,
|
||||
"buffered-audio-time", G_TYPE_UINT64, stats->buffered_audio_time,
|
||||
"video-running-time", G_TYPE_UINT64, stats->video_running_time,
|
||||
"audio-running-time", G_TYPE_UINT64, stats->audio_running_time,
|
||||
"hardware-time", G_TYPE_UINT64, stats->hw_time,
|
||||
"scheduled-video-frames", G_TYPE_UINT64, stats->scheduled_video_frames,
|
||||
"scheduled-audio-samples", G_TYPE_UINT64, stats->scheduled_audio_samples,
|
||||
"dropped-frames", G_TYPE_UINT64, stats->drop_count,
|
||||
"dropped-samples", G_TYPE_UINT64, stats->dropped_sample_count,
|
||||
"late-count", G_TYPE_UINT64, stats->late_count,
|
||||
"overrun-count", G_TYPE_UINT64, stats->overrun_count,
|
||||
"underrun-count", G_TYPE_UINT64, stats->underrun_count,
|
||||
"duplicated-frames", G_TYPE_UINT64, stats->duplicate_count,
|
||||
"silent-samples", G_TYPE_UINT64, stats->silent_sample_count,
|
||||
NULL);
|
||||
"scheduled-video-frames", G_TYPE_UINT64,
|
||||
stats->scheduled_video_frames, "scheduled-audio-samples",
|
||||
G_TYPE_UINT64, stats->scheduled_audio_samples, "dropped-frames",
|
||||
G_TYPE_UINT64, stats->drop_count, "dropped-samples", G_TYPE_UINT64,
|
||||
stats->dropped_sample_count, "late-count", G_TYPE_UINT64,
|
||||
stats->late_count, "overrun-count", G_TYPE_UINT64,
|
||||
stats->overrun_count, "underrun-count", G_TYPE_UINT64,
|
||||
stats->underrun_count, "duplicated-frames", G_TYPE_UINT64,
|
||||
stats->duplicate_count, "silent-samples", G_TYPE_UINT64,
|
||||
stats->silent_sample_count, NULL);
|
||||
g_value_take_boxed (value, s);
|
||||
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue