docs: Change C example code license.
[profile/ivi/rygel.git] / examples / standalone-renderer-gst.c
1 /* Copyright (C) 2012 Intel Corporation
2  *
3  * Permission to use, copy, modify, distribute, and sell this example
4  * for any purpose is hereby granted without fee.
5  * It is provided "as is" without express or implied warranty.
6  */
7
8 /*
9  * Demo application for librygel-renderer-gst.
10  *
11  * Creates a simple stand-alone UPnP renderer that renders any visual content
12  * in ASCII-art using GStreamer's cacasink element.
13  *
14  * Usage:
15  *   standalone-renderer [<network device>]
16  *
17  * If no network device is given on the commandline, the program falls back to
18  * eth0.
19  *
20  * To do anything useful, another UPnP server + UPnP controller is necessary
21  * to tell it which media file to show.
22  */
23
24 #include "rygel-renderer-gst.h"
25 #include "rygel-core.h"
26
27 int main(int argc, char *argv[])
28 {
29     GstElement *playbin, *sink, *asink;
30     RygelPlaybinRenderer *renderer;
31     GError *error = NULL;
32     GMainLoop *loop;
33
34     g_type_init ();
35     gst_init (&argc, &argv);
36
37     g_set_application_name ("Standalone-Renderer");
38
39     renderer = rygel_playbin_renderer_new ("LibRygel renderer demo");
40     playbin = rygel_playbin_renderer_get_playbin (renderer);
41     sink = gst_element_factory_make ("cacasink", NULL);
42     g_object_set (G_OBJECT (sink),
43                   "dither", 53,
44                   "anti-aliasing", TRUE,
45                   NULL);
46
47     asink = gst_element_factory_make ("pulsesink", NULL);
48
49     g_object_set (G_OBJECT (playbin),
50                   "video-sink", sink,
51                   "audio-sink", asink,
52                   NULL);
53
54     if (argc >= 2) {
55         rygel_media_device_add_interface (RYGEL_MEDIA_DEVICE (renderer), argv[1]);
56     } else {
57         rygel_media_device_add_interface (RYGEL_MEDIA_DEVICE (renderer), "eth0");
58     }
59
60     loop = g_main_loop_new (NULL, FALSE);
61     g_main_loop_run (loop);
62
63     return 0;
64 }