mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
omxvideo: check difference between frame and requested ts
This has proven to be very useful when debugging to detect bugs where we match the wrong gst frame with an output OMX buffer.
This commit is contained in:
parent
cfeeb15b1e
commit
50d50f47fb
1 changed files with 12 additions and 1 deletions
|
@ -213,9 +213,20 @@ gst_omx_video_find_nearest_frame (GstElement * element, GstOMXBuffer * buf,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (best)
|
if (best) {
|
||||||
gst_video_codec_frame_ref (best);
|
gst_video_codec_frame_ref (best);
|
||||||
|
|
||||||
|
/* OMX timestamps are in microseconds while gst ones are in nanoseconds.
|
||||||
|
* So if the difference between them is higher than 1 microsecond we likely
|
||||||
|
* picked the wrong frame. */
|
||||||
|
if (best_diff >= GST_USECOND)
|
||||||
|
GST_WARNING_OBJECT (element,
|
||||||
|
"Difference between ts (%" GST_TIME_FORMAT ") and frame %u (%"
|
||||||
|
GST_TIME_FORMAT ") seems too high (%" GST_TIME_FORMAT ")",
|
||||||
|
GST_TIME_ARGS (timestamp), best->system_frame_number,
|
||||||
|
GST_TIME_ARGS (best->pts), GST_TIME_ARGS (best_diff));
|
||||||
|
}
|
||||||
|
|
||||||
g_list_foreach (frames, (GFunc) gst_video_codec_frame_unref, NULL);
|
g_list_foreach (frames, (GFunc) gst_video_codec_frame_unref, NULL);
|
||||||
g_list_free (frames);
|
g_list_free (frames);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue