SMALLname
SMALLname

Reputation: 81

Gstreamer - error in the example 1

When I run the example 1:

#include <gst/gst.h>
int main(int argc, char *argv[]) {
GstElement *pipeline;
GstBus *bus;
GstMessage *msg;

/* Initialize GStreamer */
gst_init (&argc, &argv);

/* Build the pipeline */
pipeline = gst_parse_launch ("playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm", NULL);

/* Start playing */
gst_element_set_state (pipeline, GST_STATE_PLAYING);

/* Wait until error or EOS */
bus = gst_element_get_bus (pipeline);
msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);

/* Free resources */
if (msg != NULL)
  gst_message_unref (msg);
gst_object_unref (bus);
gst_element_set_state (pipeline, GST_STATE_NULL);
gst_object_unref (pipeline);
return 0;
}

I get two errors:
1)argument of type "int" is incompatible with parameter of type "GstMessageType"

2)'GstMessage *gst_bus_timed_pop_filtered(GstBus *,GstClockTime,GstMessageType)': cannot convert argument 3 from 'int' to 'GstMessageType'

What's wrong?I've linked Visual studio and gstreamer this way:

-property manager > right click on the project > add existing property sheet > link the file gstreamer-1.0 props (share\vs\2010\libs\gstreamer-1.0.props)

Upvotes: 2

Views: 3906

Answers (2)

Avtar Sohi
Avtar Sohi

Reputation: 325

Try replacing GST_MESSAGE_ERROR | GST_MESSAGE_EOS with (GstMessageType)(GST_MESSAGE_ERROR | GST_MESSAGE_EOS)

Upvotes: 5

SMALLname
SMALLname

Reputation: 81

I've fixed the problem thanks to this post (solution 1), I still had to mess around with paths and linking, I'm not sure what I did but it's probably linking debug with bin directory (for some reason this didn't work before). Another thing to watch out for is that programs need to have .c extension (not .cpp).

Upvotes: 0

Related Questions