I am running a GESTimeline inside of a GstPipeline. I am attaching an SVG file which illustrates the pipeline when it enters it's READY state.
Soon after the the pipeline begins PLAYING, the muxers receive a request to re-negotiate the caps. My first question is: Is it normal to re-negotiate caps after a pipeline is already playing? (This doesn't seem right to me.) My second question is: How can I determine which element is trying to renegotiate the caps after the pipeline is already PLAYING? BTW: Here are the logs I see as it relates to the caps re-negotation error. 19-07-24T15:44:36.530562 INFO pan CompositionJob.cpp:123 Pipeline state changed from PAUSED to PLAYING in 0.000 seconds. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel pipeline_ready.svg (128K) Download Attachment |
For more context, I am attaching some dot files which illustrate the pipeline in these two states.
You can view these *.dot files at http://www.webgraphviz.com/ (paste the file contents into the web page). My version of graphviz (2.40.1) does not render these files properly. I am also attaching a more complete log file (*.txt). On Wed, Jul 24, 2019 at 8:56 AM David Ing <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel logs_2019-07-24_08-44-33.txt (12K) Download Attachment graph_000002_PipelinePausedToPlaying.dot (138K) Download Attachment graph_000001_PipelineReadyToPaused.dot (138K) Download Attachment |
In reply to this post by David Ing
Regarding your first question, yes it is fortunately completely
acceptable for caps to be
(re)negotiated in a PLAYING pipeline, if it was not then you could not dynamically update pipelines, which is a feature GES obviously heavily relies on. Regarding your second question, it looks like there might be some memory corruption going on, as the expected format for the log message is: if (!gst_qtmux_caps_is_subset_full (qtmux, current_caps, caps)) { gst_caps_unref (current_caps); GST_WARNING_OBJECT (qtmux, "pad %s refused renegotiation to %" GST_PTR_FORMAT, GST_PAD_NAME (pad), caps); gst_object_unref (qtmux); return FALSE; } Caps here are supposed to be displayed as a string, if they're not that means GST_IS_CAPS (caps) failed, which is odd. More generally, qtmux only seems to support renegotiating the caps for an input stream if the new caps are not a subset of the older ones, however I can't tell if the check genuinely fails here because the new caps don't fulfill that condition, or because of the apparent memory corruption. On 7/24/19 5:56 PM, David Ing wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Can anyone recommend some techniques for diagnosing heap corruption issues on Linux (Fedora 30)? If I were on Windows I would use gflags (to set up guard pages) and windbg (for kernel-level debugging) but I don't know what is available on Linux. On Wed, Jul 24, 2019 at 9:35 AM Mathieu Duponchelle <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
valgrind comes to mind, though you'll need to use the appropriate
suppression files to get
a sensible result, see the commands used for example by gst-validate-launcher when running a test with the -vg switch. On 7/24/19 6:55 PM, David Ing wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
It turns out that I had no heap corruption, but at least I learned how to use valgrind and google sanitizers. I messed up the way Gstreamer logs were grafted into my logging system. (I failed to realized that Gstreamer has a custom sprintf function.) But the core issue remains. I am going to start a new email thread to re-describe the issue from scratch. On Wed, Jul 24, 2019 at 9:58 AM Mathieu Duponchelle <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |