Managing the data flow from one pipeline to another

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

Managing the data flow from one pipeline to another

chintu2248
I have 2 pipelines
pipeline 1
==========
                          custom sink set through "video-sink" property of
playbin3
                        |------------------------------------------------|
 playbin3 ---->  | queue ----> x264enc ----> appsrc    |
                        |------------------------------------------------|


pipeline 2 is an RTSP pipeline using gst-rtsp-server and , it gets its data
from the above pipeline's appsink.
The pipeline in rtsp->set_launch is :
|----------------------------------------------------------------------------------------------|
| appsrc ---> h264parse ---> mpeg2tsmux ---->  rtpmp2tpay --> rtpbin     |
|----------------------------------------------------------------------------------------------|

The problem I am facing is that the playbin3 is decoding the data and
pushing it at a much faster rate than the rtsp pipeline is sending the data.
The reason why this is a concern because the video that we are streaming
contains multi-angle view stream and the video stream can be changed based
on the users preference. We are doing this using the playbin3 and decodebin3
, change-video property.

Now because the data is being sent so quickly, by the time the users change
track request comes most of the video is already decoded by the playbin and
sent .

Is there a better  way to handle this?
We were thinking that maybe perform a seek to the original time where the
user had sent the change-track request and start decoding and sending the
frames again.

Our current implementation is giving us a lot of problems.

We also tried using the "feed-data" and "enough-data" signals from appsrc,
but when we used this, I  gets a "feed-data" signal twice and then the
pipeline simply stop buffering anything.

Any help regarding this would be greatly appreciated.

Regards,



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Managing the data flow from one pipeline to another

Vinod Kesti
set sync=true in appsink to run playbin in real time.




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Managing the data flow from one pipeline to another

chintu2248
Yes Thank you that was very helpful. Previously , all the buffers were being
pushed as fast as possible and that was creating a lot of problem

Do you have any suggestions/architecture design for managing these two
pipelines.
I am fairly new to gstreamer and my current pipeline doesn't seem to be very
efficient. as it is first decoding and then again encoding aging.

Is it possible to make any changes to decodebin3 so that, no decoder is
added at the end and we can directly link them to the appsrc?


Thank you for your help.

Regards,




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel