After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 766310 - gstbasetransform: Error negotiating new framerate
gstbasetransform: Error negotiating new framerate
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
1.8.0
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-05-12 08:43 UTC by David Fernandez
Modified: 2016-11-11 17:20 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Test program (2.70 KB, text/x-c++src)
2016-05-12 08:43 UTC, David Fernandez
Details

Description David Fernandez 2016-05-12 08:43:14 UTC
Created attachment 327683 [details]
Test program

Hi,

I have the following pipeline (I really have a more complicated pipeline but I have reduced the complexity trying to understand the problem):

videotestsrc!videorate!videoconvert!capsfilter!videorate!videoconvert!capsfilter!autovideosink

I have detected that if I change dynamically the framerate in the second capsfilter I get a non negotiated error in the videoconvert. I have the following trace:

0:00:07.816591895 32762      0x1a0c940 WARN           basetransform gstbasetransform.c:1414:gst_base_transform_setcaps:<videoconvert1> transform could not transform video/x-raw, width=(int)320, height=(int)240, framerate=(fraction)16/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)YUY2 in anything we support

This problem breaks the pipeline if you use another source like the uridecodebin.

I have attached a test program to reproduce the error. That program creates the shown pipeline and it changes the caps of the second capsfilter each second. If you execute the program with GST_DEBUG=2 you could see the error traces.

Have you seen this error before? Am I doing something wrong?

Thanks for your time.
Regards.
Comment 1 Sebastian Dröge (slomo) 2016-05-12 09:03:07 UTC
I didn't look closely but this might be because upstream renegotiation is not instantanous and you might still get buffers in the old format.

Try the caps-change-mode property set to "delayed" in the capsfilter(s).
Comment 2 David Fernandez 2016-05-12 10:10:40 UTC
Hi Sebastian,

Thanks for your answer. 

That property fixes the test but I have tested it in my whole application and it still doesn't work. I will try to understand the difference between the application and the test.

Thanks for you time.
Regards.
Comment 3 Sebastian Dröge (slomo) 2016-05-12 10:21:52 UTC
Ok, let us know if you have a new testcase :)
Comment 4 Tim-Philipp Müller 2016-11-11 17:20:01 UTC
Closing this bug report as no further information has been provided. Please feel free to reopen this bug report if you can provide the information that was asked for in a previous comment.
Thanks!