Exemplo n.º 1
0
//			<name>Play</name>
void
play_cb (GUPnPService *service,
         GUPnPServiceAction *action,
         gpointer user_data)
{
    g_debug ("play_cb");
    if (!check_instance_id(action))
    {
        return;
    }

    gstreamer_play();

    GString *last_change = last_change_new ();
    set_transport_state (last_change, PLAYING);
    avtransport_notify_last_change(service, last_change);

    gupnp_service_action_return (action);    
}
Exemplo n.º 2
0
void gstreamer_previous_frame() {
	gboolean error;
	gint64 pos = gstreamer_get_position(&error);
	if (!error) {
		double rate;
		if (!get_framerate(&rate))
			return;
		printf("Position = %ld, Rate = %lf\n", pos, rate);
		pos -= ((gint64)GST_SECOND / rate) * 5;
		if (pos < 0)
			pos = 0;
		printf("Position = %ld\n", pos);
		if (gst_element_seek_simple(pipeline, GST_FORMAT_TIME,
		GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE,
		pos)) {
			printf("gstplay: Seek succeeded\n");
			pause_on_state_change_to_playing = TRUE;
			gstreamer_play();
		}
		else {
			printf("gstplay: Seek failed!.n");
		}
	}
}