mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 04:36:20 +00:00
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:
parent
396aa55958
commit
df00962cb8
1 changed files with 50 additions and 45 deletions
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue