dynamically adding element and setting clock time to zero

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

dynamically adding element and setting clock time to zero

vanderhoffer
Hi All,

I am adding a rtmpsink element that is pulling a vod file from a media server.
I note that when I add it to the pipeline this element is requesting the start time of the file as the current run time of the pipeline clock.

pipeline clock = 45 secs
-> add rtmpsink -> set location ->   gst_pad_activate_mode ( pad, GST_PAD_MODE_PUSH, TRUE);
-> file plays from 45 secs

pipeline clock = 70 secs
-> add rtmpsink -> set location ->   gst_pad_activate_mode ( pad, GST_PAD_MODE_PUSH, TRUE);
-> file plays from 70 secs

What is the clock or g_object parameter to request a custom start time, such as 10 seconds
pipeline clock = 30 secs
-> add rtmpsink -> set location ->   gst_pad_activate_mode ( pad, GST_PAD_MODE_PUSH, TRUE);
-> file plays from 10 secs


thx
Art
Reply | Threaded
Open this post in threaded view
|

Re: dynamically adding element and setting clock time to zero

Nicolas Dufresne-5
Le mardi 17 janvier 2017 à 10:43 -0800, vanderhoffer a écrit :

> I am adding a rtmpsink element that is pulling a vod file from a
> media
> server.
> I note that when I add it to the pipeline this element is requesting
> the
> start time of the file as the current run time of the pipeline clock.
>
> pipeline clock = 45 secs
> -> add rtmpsink -> set location ->   gst_pad_activate_mode ( pad,
> GST_PAD_MODE_PUSH, TRUE);
> -> file plays from 45 secs
>
> pipeline clock = 70 secs
> -> add rtmpsink -> set location ->   gst_pad_activate_mode ( pad,
> GST_PAD_MODE_PUSH, TRUE);
> -> file plays from 70 secs
>
> *What is the clock or g_object parameter to request a custom start
> time,
> such as 10 seconds *
> pipeline clock = 30 secs
> -> add rtmpsink -> set location ->   gst_pad_activate_mode ( pad,
> GST_PAD_MODE_PUSH, TRUE);
I am not sure if I can understand your question. Can you clarify what
pipeline, and what you are adding removing.

Nicolas

p.s. for time adjustment, there is gst_pad_set_offset() which may or
may not be what you are looking for,
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (188 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: dynamically adding element and setting clock time to zero

vanderhoffer
Hi Nicolas,

the main pipeline looks like this (shortened)
filesrc : jpeg -> videomixer (sink_0) -> rtmpsink
@45seconds dynamically add
rtmpsrc : mp4 vod file [start time = 45, should be 0] ->  videomixer (sink_1) -> rtmpsink

The issue is when I add the rtmpsrc, what ever the current timestamp is from the main pipeline, ie 45secods, that is the requested start time offset of the rtmpsrc vod file.

I would like to set the start offset time to zero or a custom value.

Does that make more sense?

I have tried the following,
1. set rtmpsrc src pad to push with -> gst_element_set_state (myrtmpsrc, GST_STATE_PLAYING);
2. set rtmpsrc src pad -> gst_element_set_start_time (myrtmpsrc,0);
2a. confirm with  
     printf("start time value: %" G_GUINT64_FORMAT "\n",gst_element_get_start_time(myrtmpsrc)); // returns start time value: 0
3. set rtmpsrc src pad ->  gst_pad_set_offset (myrtmpsrc_srcPad, 0);

But none of these seem to effect the vod start offset. The clock time I add the element at is the offset value requested.


thx
Art