Internal data flow problem for tcpserversink and sync-method=2 failing

Tim-Philipp Müller t.i.m at zen.co.uk
Sun Aug 25 08:42:31 PDT 2013


On Thu, 2013-08-22 at 21:33 +0200, Peter Maersk-Moller wrote:

Hi Peter,

couple of drive-by comments:

> Repeated the test with gstreamer 1.0.9. The warning about internal
> data flow problem has gone, but the rest stays the same indicating
> that it does not honour the sync-method=2 parameter.

I believe the problem is actually with the mpeg-ts muxer, it doesn't
flag key frames properly. If you insert an

  identity silent=false

before the sink and pass -v to gst-launch you will notice how in 0.10
only the first packet of a keyframe was marked, while in 1.0 it's
clearly all very confused and wrong. Without that, the sink has no
chance of working right.

It shouldn't be too hard to fix hopefully. Could you file a bug in
bugzilla about this, against mpegtsmux (gst-plugins-bad)? 

  http://gstreamer.freedesktop.org/bugs/

I don't know if/why you need the tsparse. I would remove it if not
needed. It's more likely to mess things up than help with anything.


>         (gst-launch-1.0:7266): GStreamer-CRITICAL **:
>         gst_mini_object_ref: assertion `mini_object != NULL' failed
>         
>         (gst-launch-1.0:7266): GStreamer-CRITICAL **:
>         gst_caps_get_structure: assertion `GST_IS_CAPS (caps)' failed
>         
>         (gst-launch-1.0:7266): GStreamer-CRITICAL **:
>         gst_structure_has_field: assertion `structure != NULL' failed

These are pretty bad. Likely a refcount bug somewhere. Criticals like
this usually mean that in other circumstances the code will just crash,
but you got lucky this time.

>         I tried to enable debug, but did not see anything extra (which
>         is probably due to my lack of experience here)

Run gst-launch-1.0 in gdb with

  G_DEBUG=fatal_warnings gdb --args /usr/bin/gst-launch-1.0 ....

and reproduce it. It should then break at the first warning, and you can
get a stack trace to see what buffer/caps/structure it complains about,
and where in the code. You'll need debugging symbols in the binaries for
that (there might be -dbg packages if you don't build from source).

Please file a bug about this, ideally with way to reproduce and/or a
stack trace).

Cheers
 -Tim




More information about the gstreamer-devel mailing list