Commit 5ed27c12 authored by Sebastian Dröge's avatar Sebastian Dröge 🍵

zbar: Include running-time, stream-time and duration in the messages

The timestamp/PTS alone is meaningless without the segment and usually
applications care about the running-time or stream-time.

This also keeps the messages in sync with the spectrum and level
parent 7b8d1987
Pipeline #43584 passed with stages
in 40 minutes and 32 seconds
......@@ -291,12 +291,27 @@ gst_zbar_transform_frame_ip (GstVideoFilter * vfilter, GstVideoFrame * frame)
GstStructure *s;
GstSample *sample;
GstCaps *sample_caps;
GstClockTime timestamp, running_time, stream_time, duration;
timestamp = GST_BUFFER_TIMESTAMP (frame->buffer);
duration = GST_BUFFER_DURATION (frame->buffer);
running_time =
gst_segment_to_running_time (&GST_BASE_TRANSFORM (zbar)->segment,
GST_FORMAT_TIME, timestamp);
stream_time =
gst_segment_to_stream_time (&GST_BASE_TRANSFORM (zbar)->segment,
GST_FORMAT_TIME, timestamp);
s = gst_structure_new ("barcode",
"timestamp", G_TYPE_UINT64, GST_BUFFER_TIMESTAMP (frame->buffer),
"timestamp", G_TYPE_UINT64, timestamp,
"stream-time", G_TYPE_UINT64, stream_time,
"running-time", G_TYPE_UINT64, running_time,
"type", G_TYPE_STRING, zbar_get_symbol_name (typ),
"symbol", G_TYPE_STRING, data, "quality", G_TYPE_INT, quality, NULL);
if (GST_CLOCK_TIME_IS_VALID (duration))
gst_structure_set (s, "duration", G_TYPE_UINT64, duration, NULL);
if (zbar->attach_frame) {
/* create a sample from image */
sample_caps = gst_video_info_to_caps (&frame->info);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment