gstreamer crashed when playig with uri=file:NULL using playbin
Sujith reddy
Sujithreddy6192 at gmail.com
Thu Jul 19 07:18:33 UTC 2018
Hi ALL,
This are the error snippets found .
*error snippets are:*
* GStreamer-CRITICAL **: gst_poll_get_read_gpollfd: assertion 'set != NULL'
failed
GStreamer-CRITICAL **: gst_bus_create_watch: assertion 'bus->priv->poll !=
NULL' failed
GStreamer-CRITICAL **: Creating bus watch failed
*
this is the sample code what i am using ,when playing with uri=file:NULL
please correct me if anything wrong.
#include <gstreamer-1.0/gst/gst.h>
#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <glib-object.h>
typedef struct _CustomData {
GstElement *pipeline;
GMainLoop *main_loop; /* GLib's Main Loop */
} CustomData;
CustomData data_prim;
static gboolean
bus_message (GstBus * bus, GstMessage * message, CustomData * app)
{
GstState state;
GstState pending;
switch (GST_MESSAGE_TYPE (message)) {
case GST_MESSAGE_ERROR:
printf("VA:GPRIM primary session got error\n");
g_main_loop_quit (app->main_loop);
break;
case GST_MESSAGE_EOS:
printf( "VA:GPRIM primary session got eos\n");
g_main_loop_quit (app->main_loop);
break;
case GST_MESSAGE_STATE_CHANGED:
/* We are only interested in state-changed messages from the pipeline */
if (GST_MESSAGE_SRC (message) == GST_OBJECT (app->pipeline))
{
GstState old_state, new_state, pending_state;
gst_message_parse_state_changed (message, &old_state, &new_state,
&pending_state);
g_print ("Pipeline state changed from %s to %s:\n",
gst_element_state_get_name (old_state), gst_element_state_get_name
(new_state));
printf("Pipeline state changed from %s to %s:",
gst_element_state_get_name (old_state), gst_element_state_get_name
(new_state));
printf( "VA:GPRIM GST_MESSAGE_STATE_CHANGED enter %s,%s",
gst_element_state_get_name
(old_state),gst_element_state_get_name(new_state));
/*if(new_state == GST_STATE_PLAYING)
{
syslog(fac|LOG_DEBUG, "VA:GPRIM play started");
}*/
}
break;
default:
break;
}
return TRUE;
}
void main()
{
CustomData *data_prim_ptr =&data_prim;
gst_init (NULL, NULL);
while(1)
{
char file[500];
GstStateChangeReturn ret;
GstBus *bus_prim;
memset (data_prim_ptr, 0, sizeof (CustomData));
strcpy(file, "playbin ");
strcat(file,"uri =file : NULL");
data_prim_ptr->pipeline = gst_parse_launch (file, NULL);
if(data_prim_ptr->pipeline == NULL)
{
g_printerr("primarysession pipeline_prim is not created \n");
exit(0);
}
bus_prim = gst_element_get_bus (data_prim_ptr->pipeline);
/* add watch for messages */
gst_bus_add_watch (bus_prim, (GstBusFunc) bus_message, data_prim_ptr);
gst_object_unref (bus_prim);
ret = gst_element_set_state (data_prim_ptr->pipeline, GST_STATE_PLAYING);
data_prim_ptr->main_loop= g_main_loop_new(NULL,FALSE);
g_main_loop_run (data_prim_ptr->main_loop);
g_main_loop_unref(data_prim_ptr->main_loop);
gst_element_set_state (data_prim_ptr->pipeline, GST_STATE_NULL);
gst_object_unref (data_prim_ptr->pipeline);
}
gst_deinit();
}
Thanks
Sujith
--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
More information about the gstreamer-devel
mailing list