Error "streaming task paused, reason not-negotiated (-4)" happened

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

Error "streaming task paused, reason not-negotiated (-4)" happened

Benson
Hi, My v4l2 device (analog camera) will generate frames with size 720x480, format UYVY and frame rate 30/1. I want to do some transformation on the video frames so my plugin "splitframe" chooses to inherit the GstBaseTransform and GstVideoFilter class. For test purpose, I use videotestsrc to simulate the behavior. My pipeline is gst-launch-1.0 -v videotestsrc ! video/x-raw,format=UYVY,width=720,height=480,framerate=30/1 ! splitframe . After running the pipeline, I will receive the error "streaming task paused, reason not-negotiated (-4)". From the previous discussion, someone had the same problem and the issue can be solved by adding videoconvert to do color space transformation. In my case, it seems that the color space doesn't need to be changed. Please help to give my some hint. Thanks!! PS: Attach the plugin source code and the error log (GST_DEBUG=5) test.log gstsplitframe.c

Sent from the GStreamer-devel mailing list archive at 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: Error "streaming task paused, reason not-negotiated (-4)" happened

Gst-Geek
Have you implemented "set_info" of GstVideoFilterClass in  splitframe
element. Pipeline negotiation fails if set_info is wrongly implementation or
not doing negotiation properly.

https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/GstVideoFilter.html#GstVideoFilterClass

Refer videoconvert code for "set_info" implimentation



--
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: Error "streaming task paused, reason not-negotiated (-4)" happened

Benson
Thanks for your information.
I will try to implement set_info and see if the issue will still happen :)
Besides this, I have another question.
Because my plugin inherits GstBaseTransform and GstVideoFilter at the same time, I have already implemented GstBaseTransform's transform_caps function.
Is this regarded as negotiation or not?
Or only the way to implement set_info is correct to do negotiation?
Thanks!!

Sent from the GStreamer-devel mailing list archive at 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: Error "streaming task paused, reason not-negotiated (-4)" happened

Gst-Geek
Hi Bason,

I am not very sure what will be behavior if you skip the implementation in
the sub module. Try moving code from transform_caps  to set_info  and see if
it solves to problem.


Go through GstBaseTransform implementation and check if set_info
implementation is mandatory.  



--
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: Error "streaming task paused, reason not-negotiated (-4)" happened

Benson
Hi ShilVin,

I have tried to implement set_info but doesn't have any effect.
Finally I found the error is due to that I set wrong fps_n and wrong fps_d in transform_caps function.
It will cause the CAPs between capsfilter and my plugin are not compatible. In gstreamer, the meanings of fps_n and fps_d are different with V4L2 driver.
For example, if fps value is 30, fps_n will be 30 and fps_d will be 1 in gstreamer.
But in V4L2 driver, timeperframe.denominator will be 30 and timeperframe.numerator will be 1.

After I fix this issue, I meet another issue "streaming task paused, reason not-linked (-1)".
Do you know how to solve it?

Thanks!!

Attach the error log test.log and the source code gstsplitframe.c

Sent from the GStreamer-devel mailing list archive at 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: Error "streaming task paused, reason not-negotiated (-4)" happened

Gst-Geek
Enable debug log. It may give some hint.



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