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
|
HRESULT
|
||||||
gst_decklink2_output_schedule_stream (GstDeckLink2Output * output,
|
gst_decklink2_output_schedule_stream (GstDeckLink2Output * output,
|
||||||
IDeckLinkVideoFrame * frame, guint8 * audio_buf, gsize audio_buf_size,
|
IDeckLinkVideoFrame * frame, guint8 * audio_buf, gsize audio_buf_size,
|
||||||
GstDecklink2OutputStats *stats)
|
GstDecklink2OutputStats * stats)
|
||||||
{
|
{
|
||||||
GstDeckLink2OutputPrivate *priv = output->priv;
|
GstDeckLink2OutputPrivate *priv = output->priv;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
@ -1597,6 +1597,13 @@ gst_decklink2_output_schedule_stream (GstDeckLink2Output * output,
|
||||||
stats->buffered_audio = buffered_audio;
|
stats->buffered_audio = buffered_audio;
|
||||||
stats->video_running_time = video_running_time;
|
stats->video_running_time = video_running_time;
|
||||||
stats->audio_running_time = audio_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->hw_time = hw_time_gst;
|
||||||
stats->scheduled_video_frames = output->n_frames;
|
stats->scheduled_video_frames = output->n_frames;
|
||||||
stats->scheduled_audio_samples = output->n_samples;
|
stats->scheduled_audio_samples = output->n_samples;
|
||||||
|
|
|
@ -36,6 +36,8 @@ typedef struct
|
||||||
GstClockTime video_running_time;
|
GstClockTime video_running_time;
|
||||||
GstClockTime audio_running_time;
|
GstClockTime audio_running_time;
|
||||||
GstClockTime hw_time;
|
GstClockTime hw_time;
|
||||||
|
GstClockTime buffered_video_time;
|
||||||
|
GstClockTime buffered_audio_time;
|
||||||
guint64 scheduled_video_frames;
|
guint64 scheduled_video_frames;
|
||||||
guint64 scheduled_audio_samples;
|
guint64 scheduled_audio_samples;
|
||||||
guint64 late_count;
|
guint64 late_count;
|
||||||
|
|
|
@ -470,19 +470,21 @@ gst_decklink2_sink_get_property (GObject * object, guint prop_id,
|
||||||
s = gst_structure_new ("output-stats",
|
s = gst_structure_new ("output-stats",
|
||||||
"buffered-video", G_TYPE_UINT, stats->buffered_video,
|
"buffered-video", G_TYPE_UINT, stats->buffered_video,
|
||||||
"buffered-audio", G_TYPE_UINT, stats->buffered_audio,
|
"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,
|
"video-running-time", G_TYPE_UINT64, stats->video_running_time,
|
||||||
"audio-running-time", G_TYPE_UINT64, stats->audio_running_time,
|
"audio-running-time", G_TYPE_UINT64, stats->audio_running_time,
|
||||||
"hardware-time", G_TYPE_UINT64, stats->hw_time,
|
"hardware-time", G_TYPE_UINT64, stats->hw_time,
|
||||||
"scheduled-video-frames", G_TYPE_UINT64, stats->scheduled_video_frames,
|
"scheduled-video-frames", G_TYPE_UINT64,
|
||||||
"scheduled-audio-samples", G_TYPE_UINT64, stats->scheduled_audio_samples,
|
stats->scheduled_video_frames, "scheduled-audio-samples",
|
||||||
"dropped-frames", G_TYPE_UINT64, stats->drop_count,
|
G_TYPE_UINT64, stats->scheduled_audio_samples, "dropped-frames",
|
||||||
"dropped-samples", G_TYPE_UINT64, stats->dropped_sample_count,
|
G_TYPE_UINT64, stats->drop_count, "dropped-samples", G_TYPE_UINT64,
|
||||||
"late-count", G_TYPE_UINT64, stats->late_count,
|
stats->dropped_sample_count, "late-count", G_TYPE_UINT64,
|
||||||
"overrun-count", G_TYPE_UINT64, stats->overrun_count,
|
stats->late_count, "overrun-count", G_TYPE_UINT64,
|
||||||
"underrun-count", G_TYPE_UINT64, stats->underrun_count,
|
stats->overrun_count, "underrun-count", G_TYPE_UINT64,
|
||||||
"duplicated-frames", G_TYPE_UINT64, stats->duplicate_count,
|
stats->underrun_count, "duplicated-frames", G_TYPE_UINT64,
|
||||||
"silent-samples", G_TYPE_UINT64, stats->silent_sample_count,
|
stats->duplicate_count, "silent-samples", G_TYPE_UINT64,
|
||||||
NULL);
|
stats->silent_sample_count, NULL);
|
||||||
g_value_take_boxed (value, s);
|
g_value_take_boxed (value, s);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue