#include <gst/app/gstappsink.h>
#include <gst/audio/audio.h>
-/* The only application we have for `attribute' is declaring function
+/* The only applications we have for `attribute' is declaring function
* arguments as being unused, because we have a lot of callback functions
- * which are meant to comply with an externally defined interface.
+ * which are meant to comply with an externally defined interface; and
+ * marking `help' as not returning.
*/
#ifdef __GNUC__
+# define NORETURN __attribute__((noreturn))
# define UNUSED __attribute__((unused))
#endif
disorder_error(0, "failed to link GStreamer elements `%s' and `%s'",
GST_OBJECT_NAME(left), GST_OBJECT_NAME(right));
report_element_pads("source", left, gst_element_iterate_src_pads(left));
- report_element_pads("source", right, gst_element_iterate_sink_pads(right));
+ report_element_pads("dest", right, gst_element_iterate_sink_pads(right));
disorder_fatal(0, "can't decode `%s'", file);
}
gst_app_sink_set_callbacks(appsink, &callbacks, 0, 0);
/* Set the ball rolling. */
- gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING);
+ gst_element_set_state(pipeline, GST_STATE_PLAYING);
/* And wait for the miracle to come. */
g_main_loop_run(loop);
/* Shut down the pipeline. This isn't strictly necessary, since we're
* about to exit very soon, but it's kind of polite.
*/
- gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL);
+ gst_element_set_state(pipeline, GST_STATE_NULL);
}
static int getenum(const char *what, const char *s, const char *const *tags)
{ 0, 0, 0, 0 }
};
-static void help(void)
+static void NORETURN help(void)
{
xprintf("Usage:\n"
" disorder-gstdecode [OPTIONS] PATH\n"
if(optind >= argc) disorder_fatal(0, "missing filename");
file = argv[optind++];
if(optind < argc) disorder_fatal(0, "excess arguments");
+ config_per_user = 0;
if(config_read(1, 0)) disorder_fatal(0, "cannot read configuration");
/* Set up the GStreamer machinery. */