v4l2 element stay in READY state

Russell danrenjian at gmail.com
Wed Feb 11 22:44:51 PST 2015


Hi,

Here is how I add and link decodebin and v4l2sink into pipeline:

   1. When a new src pad is created for rtspsrc
      1. add decodebin to pipeline
      2. set decodebin to PLAYING async
      3. link src pad of rtspsrc to sink pad of decodebin
   2. When a new src pad is created for decodebin
      1. add v4l2sink to pipeline
      2. set v4l2sink to PLAYING async
      3. link src pad of decodebin to sink pad of v4l2sink

Eventually, rtspsrc will be PLAYING, decodebin be PAUSED, and v4l2sink be
READY.

But if I detect state change for decodebin, so what when it move to PAUSED,
I set its state to PLAYING asyc again, then eventually decodebin would be
in PLAYING state.
v4l2sink would always be READY state even if I set its state several times
like decodebin.

And, If I only did 1 and no 2 as decribed above (that is, without adding
and linking for v4l2sink), then both rtspsrc and decodebin would be in
PLAYING state.


Is there anything else I can try??

Thanks,
Russell


On Thu, Feb 12, 2015 at 9:06 AM, Russell <danrenjian at gmail.com> wrote:

> Hi, Wonchul
>
> How can I confirm whether v4l2sink receives any buffer, are there any logs
> that I can inspect?
>
> Thanks,
> Russell
>
>
>
> On Wed, Feb 11, 2015 at 10:06 PM, Wonchul Lee <chul0812 at gmail.com> wrote:
>
>> Hi,
>>
>> I guess that v4l2sink didn't receive any buffer.
>> Sink element what inherited from basesink will change to PAUSED states
>> after receiving a buffer for preroll.
>>
>>
>> http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-states.txt#n41
>>
>>
>> 2015-02-11 18:23 GMT+09:00 Sérgio Agostinho <sergio.r.agostinho at gmail.com
>> >:
>> > Hi Russel,
>> >
>> > If you do
>> >
>> > gst-launch-1.0 videotestsrc ! v4l2sink
>> >
>> > do you see video on your v4l2device? Also, if you do
>> >
>> > gst-launch-1.0 rtspsrc location=rtspaddress ! decodebin ! autovideosink
>> >
>> > Do you see your rtsp video stream playing on a window?
>> >
>> > Cheers
>> >
>> >
>> > 2015-02-11 7:50 GMT+01:00 Russell <danrenjian at gmail.com>:
>> >>
>> >> Hi,
>> >>
>> >> I was trying this pipeline to feed rtsp stream into a v4l2 virtual
>> >> loopback device:
>> >> gst-launch-1.0 rtspsrc location=rtspaddress ! decodebin ! v4l2sink
>> >>
>> >> Terminal gave this output and stops, and there are no video in the v4l2
>> >> device:
>> >> Progress: (request) Sending PLAY request
>> >> Progress: (request) Sending PLAY request
>> >> Progress: (request) Sent PLAY request
>> >>
>> >>
>> >> So I am implementing the pipeline in c to see what happened. decodebin
>> and
>> >> v4l2sink are added and linked on on pad-added event. Eventually I
>> found the
>> >> v4l2sink element stay in READY state while the other two are PLAYING.
>> I have
>> >> set v4l2sink to PLAYING asynchronously but the state does not change.
>> >>
>> >> What is the matter here? and where I can find any detailed reason why
>> >> v4l2sink cannot go to PLAYING state?
>> >>
>> >> Thanks in advance.
>> >>
>> >> Sincerely,
>> >> Russell
>> >>
>> >> _______________________________________________
>> >> gstreamer-devel mailing list
>> >> gstreamer-devel at lists.freedesktop.org
>> >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >>
>> >
>> >
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > gstreamer-devel at lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150212/1c12acc9/attachment.html>


More information about the gstreamer-devel mailing list