Lines Matching full:app
50 typedef struct _App App; typedef
65 App s_app;
73 feed_data (GstElement * appsrc, guint size, App * app) in feed_data() argument
79 if (app->offset >= app->length) { in feed_data()
81 g_signal_emit_by_name (app->appsrc, "end-of-stream", &ret); in feed_data()
89 if (app->offset + len > app->length) in feed_data()
90 len = app->length - app->offset; in feed_data()
94 app->data, app->length, app->offset, len, NULL, NULL)); in feed_data()
97 app->offset, len); in feed_data()
98 g_signal_emit_by_name (app->appsrc, "push-buffer", buffer, &ret); in feed_data()
101 app->offset += len; in feed_data()
109 seek_data (GstElement * appsrc, guint64 position, App * app) in seek_data() argument
112 app->offset = position; in seek_data()
122 found_source (GObject * object, GObject * orig, GParamSpec * pspec, App * app) in found_source() argument
125 g_object_get (orig, pspec->name, &app->appsrc, NULL); in found_source()
127 GST_DEBUG ("got appsrc %p", app->appsrc); in found_source()
132 g_object_set (app->appsrc, "size", (gint64) app->length, NULL); in found_source()
136 gst_util_set_object_arg (G_OBJECT (app->appsrc), "stream-type", "seekable"); in found_source()
140 g_signal_connect (app->appsrc, "need-data", G_CALLBACK (feed_data), app); in found_source()
141 g_signal_connect (app->appsrc, "seek-data", G_CALLBACK (seek_data), app); in found_source()
145 bus_message (GstBus * bus, GstMessage * message, App * app) in bus_message() argument
153 g_main_loop_quit (app->loop); in bus_message()
156 g_main_loop_quit (app->loop); in bus_message()
167 App *app = &s_app; in main() local
182 app->file = g_mapped_file_new (argv[1], FALSE, &error); in main()
190 app->length = g_mapped_file_get_length (app->file); in main()
191 app->data = (guint8 *) g_mapped_file_get_contents (app->file); in main()
192 app->offset = 0; in main()
195 app->loop = g_main_loop_new (NULL, TRUE); in main()
197 app->playbin = gst_element_factory_make ("playbin", NULL); in main()
198 g_assert (app->playbin); in main()
200 bus = gst_pipeline_get_bus (GST_PIPELINE (app->playbin)); in main()
203 gst_bus_add_watch (bus, (GstBusFunc) bus_message, app); in main()
206 g_object_set (app->playbin, "uri", "appsrc://", NULL); in main()
210 g_signal_connect (app->playbin, "deep-notify::source", in main()
211 (GCallback) found_source, app); in main()
214 gst_element_set_state (app->playbin, GST_STATE_PLAYING); in main()
217 g_main_loop_run (app->loop); in main()
221 gst_element_set_state (app->playbin, GST_STATE_NULL); in main()
224 g_mapped_file_unref (app->file); in main()
227 g_main_loop_unref (app->loop); in main()