Hi I am developing one application on Apalis T30, which support Gstreamer 0.10 .
In my application, I am doing buffer probe using the API : gst_pad_add_buffer_probe (); After doing probe, I need to add header extension using the API : gst_rtp_buffer_add_extension_onebyte_header But when I am using this API it was giving error gst_rtp_buffer_add_extension_onebyte_header: assertion 'gst_buffer_is_writable (buffer)' faile I used the API "gst_buffer_make_writable" to make the buffer writable. After using this API I am getting this warning : GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'GST_IS_MINI_OBJECT (mini_object)' failed please suggest API which I can used to add header extension without and error. Find the code here : static gboolean cb_have_data (GstPad * pad, GstBuffer * buffer, gpointer data) { GstBuffer *buff; guint8 payload_type; guint header_len; guint packet_len; guint16 seq_no; gpointer pointer; guint size; guint8 csrc_count; guint8 misc_data[4] = {1,2,3,4}; buffer = gst_buffer_make_writable (buffer); /* Makes a writable buffer from the given buffer */ if ((gst_rtp_buffer_validate (buffer)) == TRUE) { g_print("Buffer have Valid RTP Packet\n"); } else { g_print("Buffer do'nt have Valid RTP Packet\n"); goto out; } payload_type = gst_rtp_buffer_get_payload_type (buffer); /* check payload_type */ g_print ("payload type is :%u\n", payload_type); header_len = gst_rtp_buffer_get_header_len (buffer); /* total length of the header in buffer */ g_print("header length is :%u\n", header_len); packet_len = gst_rtp_buffer_get_packet_len (buffer); /* total length of the packet in buffer */ g_print("packet length is :%u\n", packet_len); seq_no = gst_rtp_buffer_get_seq (buffer); g_print("sequence number of RTP Packet :%u\n", seq_no); csrc_count = gst_rtp_buffer_get_csrc_count(buffer); g_print("csrc count value is: %u\n",csrc_count); if (gst_rtp_buffer_add_extension_onebyte_header (buffer, 4, misc_data, 4) == TRUE) { g_print ("Header Extension is Added\n"); } else { g_print ("Header Extension is not added\n"); goto out; Best Regards, Ashok Kumar Tiwari Mobile : +91-8127222468 _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le mardi 11 mai 2021 à 21:37 +0530, Ashok Tiwari via gstreamer-devel a écrit :
> Hi > I am developing one application on Apalis T30, which support Gstreamer 0.10 . I'm sorry to say, we no longer support GStreamer 0.10. We don't have the resource to do so. > > In my application, I am doing buffer probe using the API > : gst_pad_add_buffer_probe (); > After doing probe, I need to add header extension using the API : > gst_rtp_buffer_add_extension_onebyte_header > > But when I am using this API it was giving > error gst_rtp_buffer_add_extension_onebyte_header: assertion > 'gst_buffer_is_writable (buffer)' faile > > I used the API "gst_buffer_make_writable" to make the buffer writable. > After using this API I am getting this warning : > GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'GST_IS_MINI_OBJECT > (mini_object)' failed is_writable() likely failed because is_mini_object() failed. You might be handling null pointers or have reached the last ref. > > please suggest API which I can used to add header extension without and error. > Find the code here : > > static gboolean > cb_have_data (GstPad * pad, GstBuffer * buffer, gpointer data) > { > GstBuffer *buff; > > guint8 payload_type; > > guint header_len; > > guint packet_len; > > guint16 seq_no; > > gpointer pointer; > > guint size; > > guint8 csrc_count; > > guint8 misc_data[4] = {1,2,3,4}; > > > buffer = gst_buffer_make_writable (buffer); /* Makes a writable buffer > from the given buffer */ > > if ((gst_rtp_buffer_validate (buffer)) == TRUE) { > g_print("Buffer have Valid RTP Packet\n"); > } > > else { > g_print("Buffer do'nt have Valid RTP Packet\n"); > goto out; > } > > payload_type = gst_rtp_buffer_get_payload_type (buffer); /* check > payload_type */ > g_print ("payload type is :%u\n", payload_type); > > header_len = gst_rtp_buffer_get_header_len (buffer); /* total length of > the header in buffer */ > g_print("header length is :%u\n", header_len); > > packet_len = gst_rtp_buffer_get_packet_len (buffer); /* total length of the > packet in buffer */ > g_print("packet length is :%u\n", packet_len); > > seq_no = gst_rtp_buffer_get_seq (buffer); > g_print("sequence number of RTP Packet :%u\n", seq_no); > > csrc_count = gst_rtp_buffer_get_csrc_count(buffer); > g_print("csrc count value is: %u\n",csrc_count); > > > if (gst_rtp_buffer_add_extension_onebyte_header (buffer, 4, misc_data, > 4) == TRUE) { > g_print ("Header Extension is Added\n"); > } > > else { > g_print ("Header Extension is not added\n"); > goto out; > > Best Regards, > Ashok Kumar Tiwari > Mobile : +91-8127222468 > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |