gstclock and absolute time

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

gstclock and absolute time

Pazzo Da Legare
Dear all,

How can I convert gst_clock_get_time() value in an absolute time (with
year, month, day, ....). I'm playing with an rtsp camera, using
rtspsrc, and I would like to retrieve absolute time (ntp stream time)
across my pipeline. Is there an easy way to do that?

from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
something like:

6112256969101111

and it contains a bunch of thousands of seconds....

I'm a little bit puzzled.

BR,

pz
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstclock and absolute time

Richard
Tried using ! clockoverlay !  ?  Or do you need the time that the
image is encoded ?

Richard

On 26 June 2012 11:06, Pazzo Da Legare <[hidden email]> wrote:

> Dear all,
>
> How can I convert gst_clock_get_time() value in an absolute time (with
> year, month, day, ....). I'm playing with an rtsp camera, using
> rtspsrc, and I would like to retrieve absolute time (ntp stream time)
> across my pipeline. Is there an easy way to do that?
>
> from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
> something like:
>
> 6112256969101111
>
> and it contains a bunch of thousands of seconds....
>
> I'm a little bit puzzled.
>
> BR,
>
> pz
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstclock and absolute time

Pazzo Da Legare
Hi Richard,

Yes I need the source time (encoded time) :-)

Regards,

pz

2012/6/26 Richard <[hidden email]>:

> Tried using ! clockoverlay !  ?  Or do you need the time that the
> image is encoded ?
>
> Richard
>
> On 26 June 2012 11:06, Pazzo Da Legare <[hidden email]> wrote:
>> Dear all,
>>
>> How can I convert gst_clock_get_time() value in an absolute time (with
>> year, month, day, ....). I'm playing with an rtsp camera, using
>> rtspsrc, and I would like to retrieve absolute time (ntp stream time)
>> across my pipeline. Is there an easy way to do that?
>>
>> from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
>> something like:
>>
>> 6112256969101111
>>
>> and it contains a bunch of thousands of seconds....
>>
>> I'm a little bit puzzled.
>>
>> BR,
>>
>> pz
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstclock and absolute time

Josh Doe
In reply to this post by Pazzo Da Legare
On Tue, Jun 26, 2012 at 6:06 AM, Pazzo Da Legare
<[hidden email]> wrote:

> Dear all,
>
> How can I convert gst_clock_get_time() value in an absolute time (with
> year, month, day, ....). I'm playing with an rtsp camera, using
> rtspsrc, and I would like to retrieve absolute time (ntp stream time)
> across my pipeline. Is there an easy way to do that?
>
> from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
> something like:
>
> 6112256969101111
>
> and it contains a bunch of thousands of seconds....
>
> I'm a little bit puzzled.

gst_clock_get_time() will just give you a monotonically increasing
integer. Subtracting the base time from that will give you the stream
time:
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-clocks.html

If you're talking about the ISO 8601 timestamps that indicate the
absolute UTC time, this doesn't appear to be implemented currently:
http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/rtsp/gstrtsprange.c#n249
http://tools.ietf.org/html/rfc2326#page-18

A few issues. Not all servers support absolute time ranges. You can
only get an absolute time if you requested the range in the same
format, so rtspsrc would need to be given this information. Or you
could extract a time range from SDP. Either way, you'd need a way to
get the time to the application.

This last part is what I'm interested. For now I'm sending a
GST_TAG_DATE_TIME event to indicate the start time of the stream, so a
buffer absolute time can be calculated from this absolute time and the
stream time. If there's a better way (GstMeta?) then I'd like to hear
it.

-Josh
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstclock and absolute time

Pazzo Da Legare
Dear Josh,

Thank you very much for your links.

I thought I couldn't find the right parameter to instruct rtspsrc to
propagate the time downstream (or better to say to use the rtsp source
time as clock reference) I was more than sure that it would have been
possible, but now you confirm that a "crazy" idea to manage sr-message
is the only (known) way to extract source reference: I'm trying to
follow exactly the same approach trying to extract absolute time from
rtspsrc and send a metadata event (GST_EVENT_TAG) through my pipeline.
The point is how to correlate internal absolute time (what you can get
with gst_clock_get_time()) and ntptime of RTCP protocol without
_error_ (i.e. taking into account source->rtspsrc transmission time)?

I can intercept RtpSession information but I have no way to relate
(sr-ntptime, sr-rtptime) with the time (internal absolute time) of the
frame they are referring to. Any clue?

BR,
pz




2012/6/26 Josh Doe <[hidden email]>:

> On Tue, Jun 26, 2012 at 6:06 AM, Pazzo Da Legare
> <[hidden email]> wrote:
>> Dear all,
>>
>> How can I convert gst_clock_get_time() value in an absolute time (with
>> year, month, day, ....). I'm playing with an rtsp camera, using
>> rtspsrc, and I would like to retrieve absolute time (ntp stream time)
>> across my pipeline. Is there an easy way to do that?
>>
>> from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
>> something like:
>>
>> 6112256969101111
>>
>> and it contains a bunch of thousands of seconds....
>>
>> I'm a little bit puzzled.
>
> gst_clock_get_time() will just give you a monotonically increasing
> integer. Subtracting the base time from that will give you the stream
> time:
> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-clocks.html
>
> If you're talking about the ISO 8601 timestamps that indicate the
> absolute UTC time, this doesn't appear to be implemented currently:
> http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/rtsp/gstrtsprange.c#n249
> http://tools.ietf.org/html/rfc2326#page-18
>
> A few issues. Not all servers support absolute time ranges. You can
> only get an absolute time if you requested the range in the same
> format, so rtspsrc would need to be given this information. Or you
> could extract a time range from SDP. Either way, you'd need a way to
> get the time to the application.
>
> This last part is what I'm interested. For now I'm sending a
> GST_TAG_DATE_TIME event to indicate the start time of the stream, so a
> buffer absolute time can be calculated from this absolute time and the
> stream time. If there's a better way (GstMeta?) then I'd like to hear
> it.
>
> -Josh
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstclock and absolute time

Pazzo Da Legare
Dear Josh,

I want just to add a bit of info. I'm trying to understand how to
correlate data from signal "handle-sync"
(http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-gstrtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync)
 of GstRtpJitterBuffer and "stats" of rtpsession but I really don't
understand what base-time is....

This is what I get from GstRtpJitterBuffer "handle-sync" signal:

application/x-rtp-sync, base-rtptime=(guint64)2490599386,
base-time=(guint64)137714729, clock-rate=(uint)90000,
sr-ext-rtptime=(guint64)2491725922,
sr-buffer=(buffer)80c800069af6cadbd39457a5e959817b9484b862000003ed0010b1da81ca000c9af6cadb0116726f6f7440616f63632d617869732d646f6d656f6c640204726f6f7406094753747265616d6572000000;

and at the same time from rtpsource "stats":

application/x-rtp-source-stats, ssrc=(uint)2599865051,
internal=(boolean)false, validated=(boolean)true,
received-bye=(boolean)false, is-csrc=(boolean)false,
is-sender=(boolean)true, seqnum-base=(int)-1, clock-rate=(int)90000,
rtp-from=(string)192.168.3.27:50088,
rtcp-from=(string)192.168.3.27:50089, octets-sent=(guint64)0,
packets-sent=(guint64)0, octets-received=(guint64)1155650,
packets-received=(guint64)1060, bitrate=(guint64)703428,
packets-lost=(int)0, jitter=(uint)83, have-sr=(boolean)true,
sr-ntptime=(guint64)15245907008652149115, sr-rtptime=(uint)2491725922,
sr-octet-count=(uint)1094106, sr-packet-count=(uint)1005,
sent-rb=(boolean)true, sent-rb-fractionlost=(uint)0,
sent-rb-packetslost=(int)0, sent-rb-exthighestseq=(uint)18120,
sent-rb-jitter=(uint)97, sent-rb-lsr=(uint)1470108312,
sent-rb-dlsr=(uint)337017, have-rb=(boolean)false,
rb-fractionlost=(uint)0, rb-packetslost=(int)0,
rb-exthighestseq=(uint)0, rb-jitter=(uint)0, rb-lsr=(uint)0,
rb-dlsr=(uint)0, rb-round-trip=(uint)0;

Does anybody know how to obtain the damn time reference  from
sr-rtptime/sr-ntptime to pipeline "absolute time" (aka the  one
defined here http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-synchronisation.txt)?

TIA,

pz




2012/6/26 Pazzo Da Legare <[hidden email]>:

> Dear Josh,
>
> Thank you very much for your links.
>
> I thought I couldn't find the right parameter to instruct rtspsrc to
> propagate the time downstream (or better to say to use the rtsp source
> time as clock reference) I was more than sure that it would have been
> possible, but now you confirm that a "crazy" idea to manage sr-message
> is the only (known) way to extract source reference: I'm trying to
> follow exactly the same approach trying to extract absolute time from
> rtspsrc and send a metadata event (GST_EVENT_TAG) through my pipeline.
> The point is how to correlate internal absolute time (what you can get
> with gst_clock_get_time()) and ntptime of RTCP protocol without
> _error_ (i.e. taking into account source->rtspsrc transmission time)?
>
> I can intercept RtpSession information but I have no way to relate
> (sr-ntptime, sr-rtptime) with the time (internal absolute time) of the
> frame they are referring to. Any clue?
>
> BR,
> pz
>
>
>
>
> 2012/6/26 Josh Doe <[hidden email]>:
>> On Tue, Jun 26, 2012 at 6:06 AM, Pazzo Da Legare
>> <[hidden email]> wrote:
>>> Dear all,
>>>
>>> How can I convert gst_clock_get_time() value in an absolute time (with
>>> year, month, day, ....). I'm playing with an rtsp camera, using
>>> rtspsrc, and I would like to retrieve absolute time (ntp stream time)
>>> across my pipeline. Is there an easy way to do that?
>>>
>>> from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
>>> something like:
>>>
>>> 6112256969101111
>>>
>>> and it contains a bunch of thousands of seconds....
>>>
>>> I'm a little bit puzzled.
>>
>> gst_clock_get_time() will just give you a monotonically increasing
>> integer. Subtracting the base time from that will give you the stream
>> time:
>> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-clocks.html
>>
>> If you're talking about the ISO 8601 timestamps that indicate the
>> absolute UTC time, this doesn't appear to be implemented currently:
>> http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/rtsp/gstrtsprange.c#n249
>> http://tools.ietf.org/html/rfc2326#page-18
>>
>> A few issues. Not all servers support absolute time ranges. You can
>> only get an absolute time if you requested the range in the same
>> format, so rtspsrc would need to be given this information. Or you
>> could extract a time range from SDP. Either way, you'd need a way to
>> get the time to the application.
>>
>> This last part is what I'm interested. For now I'm sending a
>> GST_TAG_DATE_TIME event to indicate the start time of the stream, so a
>> buffer absolute time can be calculated from this absolute time and the
>> stream time. If there's a better way (GstMeta?) then I'd like to hear
>> it.
>>
>> -Josh
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstclock and absolute time

Pazzo Da Legare
Hi all again,

Probably I found something interesting activating log for "rtpbin":

GST_DEBUG=rtpbin:5 gst-launch --gst-debug-no-color rtspsrc
location=rtsp://192.168.3.27/axis-media/media.amp?audio=0 latency=200
! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! shmframeserver
latency=200 ! ffmpegcolorspace ! fakesink


http://pastebin.com/ZqaN09MQ

it seems that rtpbin cannot read localtime....any clue? Is it a bug?

BR,

pz

2012/6/26 Pazzo Da Legare <[hidden email]>:

> Dear Josh,
>
> I want just to add a bit of info. I'm trying to understand how to
> correlate data from signal "handle-sync"
> (http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-gstrtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync)
>  of GstRtpJitterBuffer and "stats" of rtpsession but I really don't
> understand what base-time is....
>
> This is what I get from GstRtpJitterBuffer "handle-sync" signal:
>
> application/x-rtp-sync, base-rtptime=(guint64)2490599386,
> base-time=(guint64)137714729, clock-rate=(uint)90000,
> sr-ext-rtptime=(guint64)2491725922,
> sr-buffer=(buffer)80c800069af6cadbd39457a5e959817b9484b862000003ed0010b1da81ca000c9af6cadb0116726f6f7440616f63632d617869732d646f6d656f6c640204726f6f7406094753747265616d6572000000;
>
> and at the same time from rtpsource "stats":
>
> application/x-rtp-source-stats, ssrc=(uint)2599865051,
> internal=(boolean)false, validated=(boolean)true,
> received-bye=(boolean)false, is-csrc=(boolean)false,
> is-sender=(boolean)true, seqnum-base=(int)-1, clock-rate=(int)90000,
> rtp-from=(string)192.168.3.27:50088,
> rtcp-from=(string)192.168.3.27:50089, octets-sent=(guint64)0,
> packets-sent=(guint64)0, octets-received=(guint64)1155650,
> packets-received=(guint64)1060, bitrate=(guint64)703428,
> packets-lost=(int)0, jitter=(uint)83, have-sr=(boolean)true,
> sr-ntptime=(guint64)15245907008652149115, sr-rtptime=(uint)2491725922,
> sr-octet-count=(uint)1094106, sr-packet-count=(uint)1005,
> sent-rb=(boolean)true, sent-rb-fractionlost=(uint)0,
> sent-rb-packetslost=(int)0, sent-rb-exthighestseq=(uint)18120,
> sent-rb-jitter=(uint)97, sent-rb-lsr=(uint)1470108312,
> sent-rb-dlsr=(uint)337017, have-rb=(boolean)false,
> rb-fractionlost=(uint)0, rb-packetslost=(int)0,
> rb-exthighestseq=(uint)0, rb-jitter=(uint)0, rb-lsr=(uint)0,
> rb-dlsr=(uint)0, rb-round-trip=(uint)0;
>
> Does anybody know how to obtain the damn time reference  from
> sr-rtptime/sr-ntptime to pipeline "absolute time" (aka the  one
> defined here http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-synchronisation.txt)?
>
> TIA,
>
> pz
>
>
>
>
> 2012/6/26 Pazzo Da Legare <[hidden email]>:
>> Dear Josh,
>>
>> Thank you very much for your links.
>>
>> I thought I couldn't find the right parameter to instruct rtspsrc to
>> propagate the time downstream (or better to say to use the rtsp source
>> time as clock reference) I was more than sure that it would have been
>> possible, but now you confirm that a "crazy" idea to manage sr-message
>> is the only (known) way to extract source reference: I'm trying to
>> follow exactly the same approach trying to extract absolute time from
>> rtspsrc and send a metadata event (GST_EVENT_TAG) through my pipeline.
>> The point is how to correlate internal absolute time (what you can get
>> with gst_clock_get_time()) and ntptime of RTCP protocol without
>> _error_ (i.e. taking into account source->rtspsrc transmission time)?
>>
>> I can intercept RtpSession information but I have no way to relate
>> (sr-ntptime, sr-rtptime) with the time (internal absolute time) of the
>> frame they are referring to. Any clue?
>>
>> BR,
>> pz
>>
>>
>>
>>
>> 2012/6/26 Josh Doe <[hidden email]>:
>>> On Tue, Jun 26, 2012 at 6:06 AM, Pazzo Da Legare
>>> <[hidden email]> wrote:
>>>> Dear all,
>>>>
>>>> How can I convert gst_clock_get_time() value in an absolute time (with
>>>> year, month, day, ....). I'm playing with an rtsp camera, using
>>>> rtspsrc, and I would like to retrieve absolute time (ntp stream time)
>>>> across my pipeline. Is there an easy way to do that?
>>>>
>>>> from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
>>>> something like:
>>>>
>>>> 6112256969101111
>>>>
>>>> and it contains a bunch of thousands of seconds....
>>>>
>>>> I'm a little bit puzzled.
>>>
>>> gst_clock_get_time() will just give you a monotonically increasing
>>> integer. Subtracting the base time from that will give you the stream
>>> time:
>>> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-clocks.html
>>>
>>> If you're talking about the ISO 8601 timestamps that indicate the
>>> absolute UTC time, this doesn't appear to be implemented currently:
>>> http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/rtsp/gstrtsprange.c#n249
>>> http://tools.ietf.org/html/rfc2326#page-18
>>>
>>> A few issues. Not all servers support absolute time ranges. You can
>>> only get an absolute time if you requested the range in the same
>>> format, so rtspsrc would need to be given this information. Or you
>>> could extract a time range from SDP. Either way, you'd need a way to
>>> get the time to the application.
>>>
>>> This last part is what I'm interested. For now I'm sending a
>>> GST_TAG_DATE_TIME event to indicate the start time of the stream, so a
>>> buffer absolute time can be calculated from this absolute time and the
>>> stream time. If there's a better way (GstMeta?) then I'd like to hear
>>> it.
>>>
>>> -Josh
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstclock and absolute time

Pazzo Da Legare
Hi all,

Another update.

Using this pipeline

GST_DEBUG=rtpbin:5 gst-launch --gst-debug-no-color rtspsrc
location=rtsp://192.168.3.27/axis-media/media.amp?audio=0 latency=200
! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! fakesink

(the log is http://pastebin.com/iYUpyCZR)

I have no more asserts. Anyone can figure out why? Why my UNIX local
time from 0? Is there a way to propagate across the pipeline the
_remote time_, with events or using buffer timestamp?

TIA,

pz-



2012/6/26 Pazzo Da Legare <[hidden email]>:

> Hi all again,
>
> Probably I found something interesting activating log for "rtpbin":
>
> GST_DEBUG=rtpbin:5 gst-launch --gst-debug-no-color rtspsrc
> location=rtsp://192.168.3.27/axis-media/media.amp?audio=0 latency=200
> ! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! shmframeserver
> latency=200 ! ffmpegcolorspace ! fakesink
>
>
> http://pastebin.com/ZqaN09MQ
>
> it seems that rtpbin cannot read localtime....any clue? Is it a bug?
>
> BR,
>
> pz
>
> 2012/6/26 Pazzo Da Legare <[hidden email]>:
>> Dear Josh,
>>
>> I want just to add a bit of info. I'm trying to understand how to
>> correlate data from signal "handle-sync"
>> (http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-gstrtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync)
>>  of GstRtpJitterBuffer and "stats" of rtpsession but I really don't
>> understand what base-time is....
>>
>> This is what I get from GstRtpJitterBuffer "handle-sync" signal:
>>
>> application/x-rtp-sync, base-rtptime=(guint64)2490599386,
>> base-time=(guint64)137714729, clock-rate=(uint)90000,
>> sr-ext-rtptime=(guint64)2491725922,
>> sr-buffer=(buffer)80c800069af6cadbd39457a5e959817b9484b862000003ed0010b1da81ca000c9af6cadb0116726f6f7440616f63632d617869732d646f6d656f6c640204726f6f7406094753747265616d6572000000;
>>
>> and at the same time from rtpsource "stats":
>>
>> application/x-rtp-source-stats, ssrc=(uint)2599865051,
>> internal=(boolean)false, validated=(boolean)true,
>> received-bye=(boolean)false, is-csrc=(boolean)false,
>> is-sender=(boolean)true, seqnum-base=(int)-1, clock-rate=(int)90000,
>> rtp-from=(string)192.168.3.27:50088,
>> rtcp-from=(string)192.168.3.27:50089, octets-sent=(guint64)0,
>> packets-sent=(guint64)0, octets-received=(guint64)1155650,
>> packets-received=(guint64)1060, bitrate=(guint64)703428,
>> packets-lost=(int)0, jitter=(uint)83, have-sr=(boolean)true,
>> sr-ntptime=(guint64)15245907008652149115, sr-rtptime=(uint)2491725922,
>> sr-octet-count=(uint)1094106, sr-packet-count=(uint)1005,
>> sent-rb=(boolean)true, sent-rb-fractionlost=(uint)0,
>> sent-rb-packetslost=(int)0, sent-rb-exthighestseq=(uint)18120,
>> sent-rb-jitter=(uint)97, sent-rb-lsr=(uint)1470108312,
>> sent-rb-dlsr=(uint)337017, have-rb=(boolean)false,
>> rb-fractionlost=(uint)0, rb-packetslost=(int)0,
>> rb-exthighestseq=(uint)0, rb-jitter=(uint)0, rb-lsr=(uint)0,
>> rb-dlsr=(uint)0, rb-round-trip=(uint)0;
>>
>> Does anybody know how to obtain the damn time reference  from
>> sr-rtptime/sr-ntptime to pipeline "absolute time" (aka the  one
>> defined here http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-synchronisation.txt)?
>>
>> TIA,
>>
>> pz
>>
>>
>>
>>
>> 2012/6/26 Pazzo Da Legare <[hidden email]>:
>>> Dear Josh,
>>>
>>> Thank you very much for your links.
>>>
>>> I thought I couldn't find the right parameter to instruct rtspsrc to
>>> propagate the time downstream (or better to say to use the rtsp source
>>> time as clock reference) I was more than sure that it would have been
>>> possible, but now you confirm that a "crazy" idea to manage sr-message
>>> is the only (known) way to extract source reference: I'm trying to
>>> follow exactly the same approach trying to extract absolute time from
>>> rtspsrc and send a metadata event (GST_EVENT_TAG) through my pipeline.
>>> The point is how to correlate internal absolute time (what you can get
>>> with gst_clock_get_time()) and ntptime of RTCP protocol without
>>> _error_ (i.e. taking into account source->rtspsrc transmission time)?
>>>
>>> I can intercept RtpSession information but I have no way to relate
>>> (sr-ntptime, sr-rtptime) with the time (internal absolute time) of the
>>> frame they are referring to. Any clue?
>>>
>>> BR,
>>> pz
>>>
>>>
>>>
>>>
>>> 2012/6/26 Josh Doe <[hidden email]>:
>>>> On Tue, Jun 26, 2012 at 6:06 AM, Pazzo Da Legare
>>>> <[hidden email]> wrote:
>>>>> Dear all,
>>>>>
>>>>> How can I convert gst_clock_get_time() value in an absolute time (with
>>>>> year, month, day, ....). I'm playing with an rtsp camera, using
>>>>> rtspsrc, and I would like to retrieve absolute time (ntp stream time)
>>>>> across my pipeline. Is there an easy way to do that?
>>>>>
>>>>> from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
>>>>> something like:
>>>>>
>>>>> 6112256969101111
>>>>>
>>>>> and it contains a bunch of thousands of seconds....
>>>>>
>>>>> I'm a little bit puzzled.
>>>>
>>>> gst_clock_get_time() will just give you a monotonically increasing
>>>> integer. Subtracting the base time from that will give you the stream
>>>> time:
>>>> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-clocks.html
>>>>
>>>> If you're talking about the ISO 8601 timestamps that indicate the
>>>> absolute UTC time, this doesn't appear to be implemented currently:
>>>> http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/rtsp/gstrtsprange.c#n249
>>>> http://tools.ietf.org/html/rfc2326#page-18
>>>>
>>>> A few issues. Not all servers support absolute time ranges. You can
>>>> only get an absolute time if you requested the range in the same
>>>> format, so rtspsrc would need to be given this information. Or you
>>>> could extract a time range from SDP. Either way, you'd need a way to
>>>> get the time to the application.
>>>>
>>>> This last part is what I'm interested. For now I'm sending a
>>>> GST_TAG_DATE_TIME event to indicate the start time of the stream, so a
>>>> buffer absolute time can be calculated from this absolute time and the
>>>> stream time. If there's a better way (GstMeta?) then I'd like to hear
>>>> it.
>>>>
>>>> -Josh
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> [hidden email]
>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstclock and absolute time

Pazzo Da Legare
In reply to this post by Josh Doe
Dear Josh,

wtay_  of #gstreamer IRC , author of rtpbin, confirm me that the only
way to get reference between pipeline time and rtsp source rtp time is
to modify rtpbin plugin to add a property, a signal or an event....

pz

2012/6/26 Josh Doe <[hidden email]>:

> On Tue, Jun 26, 2012 at 6:06 AM, Pazzo Da Legare
> <[hidden email]> wrote:
>> Dear all,
>>
>> How can I convert gst_clock_get_time() value in an absolute time (with
>> year, month, day, ....). I'm playing with an rtsp camera, using
>> rtspsrc, and I would like to retrieve absolute time (ntp stream time)
>> across my pipeline. Is there an easy way to do that?
>>
>> from element's clock time now  (=Tue Jun 26 12:03:34 CEST 2012) I get
>> something like:
>>
>> 6112256969101111
>>
>> and it contains a bunch of thousands of seconds....
>>
>> I'm a little bit puzzled.
>
> gst_clock_get_time() will just give you a monotonically increasing
> integer. Subtracting the base time from that will give you the stream
> time:
> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-clocks.html
>
> If you're talking about the ISO 8601 timestamps that indicate the
> absolute UTC time, this doesn't appear to be implemented currently:
> http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst-libs/gst/rtsp/gstrtsprange.c#n249
> http://tools.ietf.org/html/rfc2326#page-18
>
> A few issues. Not all servers support absolute time ranges. You can
> only get an absolute time if you requested the range in the same
> format, so rtspsrc would need to be given this information. Or you
> could extract a time range from SDP. Either way, you'd need a way to
> get the time to the application.
>
> This last part is what I'm interested. For now I'm sending a
> GST_TAG_DATE_TIME event to indicate the start time of the stream, so a
> buffer absolute time can be calculated from this absolute time and the
> stream time. If there's a better way (GstMeta?) then I'd like to hear
> it.
>
> -Josh
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel