ajasink: Make logging between ajasrc and ajasink more consistent

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6208>
This commit is contained in:
Sebastian Dröge 2024-02-28 15:51:31 +02:00 committed by GStreamer Marge Bot
parent 396aa55958
commit df00962cb8

View file

@ -2016,21 +2016,23 @@ restart:
self->device->device->AutoCirculateGetStatus(self->channel, status); self->device->device->AutoCirculateGetStatus(self->channel, status);
GST_TRACE_OBJECT(self, GST_TRACE_OBJECT(
"Start frame %d " self,
"end frame %d " "State %d "
"active frame %d " "start frame %d "
"start time %" G_GUINT64_FORMAT "end frame %d "
" " "active frame %d "
"current time %" G_GUINT64_FORMAT "start time %" GST_TIME_FORMAT
" " " "
"frames processed %u " "current time %" GST_TIME_FORMAT
"frames dropped %u " " "
"buffer level %u", "frames processed %u "
status.acStartFrame, status.acEndFrame, "frames dropped %u "
status.acActiveFrame, status.acRDTSCStartTime, "buffer level %u",
status.acRDTSCCurrentTime, status.acFramesProcessed, status.acState, status.acStartFrame, status.acEndFrame,
status.acFramesDropped, status.acBufferLevel); status.acActiveFrame, GST_TIME_ARGS(status.acRDTSCStartTime * 100),
GST_TIME_ARGS(status.acRDTSCCurrentTime * 100),
status.acFramesProcessed, status.acFramesDropped, status.acBufferLevel);
// Detect if we were too slow with providing frames and report if that was // Detect if we were too slow with providing frames and report if that was
// the case together with the amount of frames dropped // the case together with the amount of frames dropped
@ -2149,25 +2151,31 @@ restart:
gst_buffer_unref(item.anc_buffer2); gst_buffer_unref(item.anc_buffer2);
} }
GST_TRACE_OBJECT( const AUTOCIRCULATE_TRANSFER_STATUS &transfer_status =
self, transfer.GetTransferStatus();
"Transferred frame. " const FRAME_STAMP &frame_stamp = transfer_status.GetFrameStamp();
"frame time %" GST_TIME_FORMAT
" " GST_TRACE_OBJECT(self,
"current frame %u " "State %d "
"current frame time %" GST_TIME_FORMAT "transfer frame %d "
" " "current frame %u "
"frames processed %u " "frame time %" GST_TIME_FORMAT
"frames dropped %u " " "
"buffer level %u", "current frame time %" GST_TIME_FORMAT
GST_TIME_ARGS(transfer.acTransferStatus.acFrameStamp.acFrameTime * " "
100), "current time %" GST_TIME_FORMAT
transfer.acTransferStatus.acFrameStamp.acCurrentFrame, " "
GST_TIME_ARGS( "frames processed %u "
transfer.acTransferStatus.acFrameStamp.acCurrentFrameTime * 100), "frames dropped %u "
transfer.acTransferStatus.acFramesProcessed, "buffer level %u",
transfer.acTransferStatus.acFramesDropped, transfer_status.acState, transfer_status.acTransferFrame,
transfer.acTransferStatus.acBufferLevel); frame_stamp.acCurrentFrame,
GST_TIME_ARGS(frame_stamp.acFrameTime * 100),
GST_TIME_ARGS(frame_stamp.acCurrentFrameTime * 100),
GST_TIME_ARGS(frame_stamp.acCurrentTime * 100),
transfer_status.acFramesProcessed,
transfer_status.acFramesDropped,
transfer_status.acBufferLevel);
// Trivial drift calculation // Trivial drift calculation
// //
@ -2176,18 +2184,16 @@ restart:
// FIXME: Add some compensation by dropping/duplicating frames as needed // FIXME: Add some compensation by dropping/duplicating frames as needed
// but make this configurable // but make this configurable
if (frames_rendered_start_time == GST_CLOCK_TIME_NONE && if (frames_rendered_start_time == GST_CLOCK_TIME_NONE &&
transfer.acTransferStatus.acFrameStamp.acCurrentFrameTime != 0 && frame_stamp.acCurrentFrameTime != 0 &&
transfer.acTransferStatus.acFramesProcessed + transfer_status.acFramesProcessed + transfer_status.acFramesDropped >
transfer.acTransferStatus.acFramesDropped >
self->queue_size && self->queue_size &&
clock) { clock) {
frames_rendered_start = transfer.acTransferStatus.acFramesProcessed + frames_rendered_start =
transfer.acTransferStatus.acFramesDropped; transfer_status.acFramesProcessed + transfer_status.acFramesDropped;
GstClockTime now_gst = gst_clock_get_time(clock); GstClockTime now_gst = gst_clock_get_time(clock);
GstClockTime now_sys = g_get_real_time() * 1000; GstClockTime now_sys = g_get_real_time() * 1000;
GstClockTime render_time = GstClockTime render_time = frame_stamp.acCurrentFrameTime * 100;
transfer.acTransferStatus.acFrameStamp.acCurrentFrameTime * 100;
if (render_time < now_sys) { if (render_time < now_sys) {
frames_rendered_start_time = now_gst - (now_sys - render_time); frames_rendered_start_time = now_gst - (now_sys - render_time);
@ -2197,8 +2203,7 @@ restart:
if (clock && frames_rendered_start_time != GST_CLOCK_TIME_NONE) { if (clock && frames_rendered_start_time != GST_CLOCK_TIME_NONE) {
GstClockTime now_gst = gst_clock_get_time(clock); GstClockTime now_gst = gst_clock_get_time(clock);
GstClockTime now_sys = g_get_real_time() * 1000; GstClockTime now_sys = g_get_real_time() * 1000;
GstClockTime render_time = GstClockTime render_time = frame_stamp.acCurrentFrameTime * 100;
transfer.acTransferStatus.acFrameStamp.acCurrentFrameTime * 100;
GstClockTime sys_diff; GstClockTime sys_diff;
if (now_sys > render_time) { if (now_sys > render_time) {
@ -2210,8 +2215,8 @@ restart:
GstClockTime diff = now_gst - frames_rendered_start_time; GstClockTime diff = now_gst - frames_rendered_start_time;
if (sys_diff < diff) diff -= sys_diff; if (sys_diff < diff) diff -= sys_diff;
guint64 frames_rendered = (transfer.acTransferStatus.acFramesProcessed + guint64 frames_rendered = (transfer_status.acFramesProcessed +
transfer.acTransferStatus.acFramesDropped) - transfer_status.acFramesDropped) -
frames_rendered_start; frames_rendered_start;
guint64 frames_produced = guint64 frames_produced =
gst_util_uint64_scale(diff, self->configured_info.fps_n, gst_util_uint64_scale(diff, self->configured_info.fps_n,