Gst audioparser plugin aborts when setting pipeline to NULL state

Shyamjith K V Sasidharan (RBEI/ETW3) Sasidharan.ShyamjithKV at in.bosch.com
Wed Feb 24 13:25:06 UTC 2021


Hi,

Version : Gstreamer1.0-plugin-good-1.14.4

I have a Bluetooth playback application. The application intermittently receive signal abort after hitting below assertion from gstsbcparser plugin while transitioning from PLAYING (4) state  to NULL (0) state.

gst_sbc_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
    gint * skipsize)
{
[…]
  gst_buffer_map (frame->buffer, &map, GST_MAP_READ);

 g_assert (map.size >= 6);   < -- Issue here !!

  frame_len = gst_sbc_parse_header (map.data, &rate, &n_blocks, &ch_mode,
      &alloc_method, &n_subbands, &bitpool);

[…]

}

Here somehow the plugin considesr map.size < 6 as a reason to sig ABRT. I do not see other similar parser plugins send an abort in such a case. Any special reason for this implementation?

In my application,  “gst_event_new_eos” was sent to the pipeline right before calling  “gst_element_set_state” to change  state to NULL.  I expected that sbcparser will stop handling frames after  receiving  EOS event.
But, I don’t see any event handler registered for EOS in any of gstbaseparse subclasses including sbcparse!


  1.  Is there something wrong in the above sequence? How can we avoid this error of parsing a broken/wrong frame in this case?
  2.  It would be great to know how audioparser plugins handle EOS signal from application.


Thanks in advance 😊

Best Regards,
Shyam
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210224/213ac57b/attachment-0001.htm>


More information about the gstreamer-devel mailing list