summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes/esc-gst/esc-gst_5.bb33
-rw-r--r--recipes/esc-gst/files/README67
-rwxr-xr-xrecipes/esc-gst/files/a03
-rw-r--r--recipes/esc-gst/files/a_gst.c106
-rwxr-xr-xrecipes/esc-gst/files/c18
-rwxr-xr-xrecipes/esc-gst/files/n54
6 files changed, 221 insertions, 0 deletions
diff --git a/recipes/esc-gst/esc-gst_5.bb b/recipes/esc-gst/esc-gst_5.bb
new file mode 100644
index 0000000000..7c508e79b9
--- /dev/null
+++ b/recipes/esc-gst/esc-gst_5.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Gstreamer scripts for Embedded Systems Conference workshop"
+LICENSE = "Various"
+
+SRC_URI = "http://hivelocity.dl.sourceforge.net/project/showoff/esc_gst_scripts.tar.gz \
+ file://README \
+ file://a0 \
+ file://c1 \
+ file://n5 \
+ file://a_gst.c \
+"
+SRC_URI[md5sum] = "4af79d2967dca3c649d3a644ddd4c604"
+SRC_URI[sha256sum] = "d7b486520bf22a1e0bc9a808b1bf42f36a329d5a9f67ea6e0f3a25a9dfde2936"
+
+S = "${WORKDIR}/esc-gst"
+
+do_install() {
+ ESC_FILES="a1 a2 a3 a4 a5 a6 d1 d2 d3 d4 d5 d6 g1 g2 g3 g4 g5 g6 g7 g8 g9"
+ ESC_FILES="${ESC_FILES} n1 n2 n3 n4 p1 s v1 v2 v3 v4"
+ install -d ${D}${datadir}/esc-gst
+ for F in ${ESC_FILES} ; do
+ install -m 0755 ${S}/${F} ${D}${datadir}/esc-gst
+ done
+ install -m 0644 ${S}/README ${D}${datadir}/esc-gst
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${S}/GStreamer_Class.desktop ${D}${datadir}/applications/
+ install -m 0644 ${WORKDIR}/README ${D}${datadir}/esc-gst
+ install -m 0755 ${WORKDIR}/a0 ${D}${datadir}/esc-gst
+ install -m 0755 ${WORKDIR}/c1 ${D}${datadir}/esc-gst
+ install -m 0755 ${WORKDIR}/n5 ${D}${datadir}/esc-gst
+ install -m 0644 ${WORKDIR}/a_gst.c ${D}${datadir}/esc-gst
+}
+
+FILES_${PN} += "${datadir}/esc-gst"
diff --git a/recipes/esc-gst/files/README b/recipes/esc-gst/files/README
new file mode 100644
index 0000000000..acdddbab98
--- /dev/null
+++ b/recipes/esc-gst/files/README
@@ -0,0 +1,67 @@
+ Script | Description
+------------------------+-------------------------------------------
+
+Setup
+
+s Set PATH and DISPLAY
+
+
+Audio
+
+a0 ARM based MP3 audio decode
+a1 [wave] [duration] Audio test source plays out ALSA audio out
+a2 ARM based FLAC audio decode
+a3 ARM based MP3 audio decode
+a4 ARM based AAC audio decode
+a5 [duration] DSP based AAC audio decode
+a6 [duration] ALSA audio in to ALSA audio out
+
+
+Video
+
+v1 [pattern] Video test source displays on X windows using XVideo
+v2 [pattern] Warped video test source displays on X windows
+v3 [pattern] Edge detection video test source displays on
+ X windows
+v4 [pattern] Vertigo video test source displays on X windows
+
+
+Demultiplexing
+
+d1 [duration] Figure-it-out-yourself decodebin audio example
+ (verbose enabled)
+d2 [duration] Same as d1 with filter to just list element names
+d3 [duration] QuickTime audio with DSP based decode to audio out
+d4 [duration] AVI video MPEG2 and audio MP3 using ARM decode
+d5 YouTube FLV video VP and audio MP3 using ARM decode
+d6 [duration] QuickTime DSP video decode and ARM audio (AAC) decode
+
+Compiling source code
+
+c1 Compile and run audio example a_gst.c
+
+GStreamer Daemon
+
+g1 Start GStreamer Daemon
+g2 Create QuickTime (d4) pipeline
+g3 Change pipeline to pause state
+g4 Change pipeline to play state
+g5 Change pipeline to pause state
+g6 Change pipeline to play state
+g7 Set speed to 2x
+g8 Set speed to 1/2
+g9 Kill pipeline (set pipeline to NULL)
+
+
+Performance measurement
+
+p1 YouTube FLV (d5) with performance data
+
+
+Networking
+
+n1 Reminder text on how to start live555
+n2 [host IP address] RTSP stream MP3 audio from host
+n3 [host IP address] RTP stream send audio data
+n4 RTP stream receive audio data
+n5 Stream video from Leopard Board 365
diff --git a/recipes/esc-gst/files/a0 b/recipes/esc-gst/files/a0
new file mode 100755
index 0000000000..ae58377502
--- /dev/null
+++ b/recipes/esc-gst/files/a0
@@ -0,0 +1,3 @@
+#! /bin/sh
+set -x
+gst-launch filesrc location=/usr/share/esc-media/bbb.mp3 ! mad ! alsasink
diff --git a/recipes/esc-gst/files/a_gst.c b/recipes/esc-gst/files/a_gst.c
new file mode 100644
index 0000000000..4b2763a1c8
--- /dev/null
+++ b/recipes/esc-gst/files/a_gst.c
@@ -0,0 +1,106 @@
+/* Gstreamer Audio Player Example */
+
+#include <gst/gst.h>
+#include <glib.h>
+
+static gboolean
+bus_call (GstBus *bus,
+ GstMessage *msg,
+ gpointer data)
+{
+ GMainLoop *loop = (GMainLoop *) data;
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+
+ case GST_MESSAGE_EOS:
+ g_print ("End of stream\n");
+ g_main_loop_quit (loop);
+ break;
+
+ case GST_MESSAGE_ERROR: {
+ gchar *debug;
+ GError *error;
+
+ gst_message_parse_error (msg, &error, &debug);
+ g_free (debug);
+
+ g_printerr ("Error: %s\n", error->message);
+ g_error_free (error);
+
+ g_main_loop_quit (loop);
+ break;
+ }
+ default:
+ break;
+ }
+
+ return TRUE;
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ GMainLoop *loop;
+
+ GstElement *pipeline, *source, *decoder, *sink;
+ GstBus *bus;
+
+ /* Initialisation */
+ gst_init (&argc, &argv);
+
+ loop = g_main_loop_new (NULL, FALSE);
+
+ /* Check input arguments */
+ if (argc != 2) {
+ g_printerr ("Usage: %s <MP3 filename>\n", argv[0]);
+ return -1;
+ }
+
+ /* Create gstreamer elements */
+ pipeline = gst_pipeline_new ("audio-player");
+ source = gst_element_factory_make ("filesrc", "file-source");
+ decoder = gst_element_factory_make ("mad", "mp3-decoder");
+ sink = gst_element_factory_make ("alsasink", "audio-output");
+
+ if (!pipeline || !source || !decoder || !sink) {
+ g_printerr ("One element could not be created. Exiting.\n");
+ return -1;
+ }
+
+ /* Set up the pipeline */
+
+ /* we set the input filename to the source element */
+ g_object_set (G_OBJECT (source), "location", argv[1], NULL);
+
+ /* we add a message handler */
+ bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+ gst_bus_add_watch (bus, bus_call, loop);
+ gst_object_unref (bus);
+
+ /* we add all elements into the pipeline */
+ /* filesource | mad | alsasink */
+ gst_bin_add_many (GST_BIN (pipeline),
+ source, decoder, sink, NULL);
+
+ /* we link the elements together */
+ /* file-source -> mad -> alsasink */
+ gst_element_link_many (source,decoder, sink, NULL);
+
+ /* Set the pipeline to "playing" state*/
+ g_print ("Now playing: %s\n", argv[1]);
+ gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+ /* Iterate */
+ g_print ("Running...\n");
+ g_main_loop_run (loop);
+
+ /* Out of the main loop, clean up nicely */
+ g_print ("Returned, stopping playback\n");
+ gst_element_set_state (pipeline, GST_STATE_NULL);
+
+ g_print ("Deleting pipeline\n");
+ gst_object_unref (GST_OBJECT (pipeline));
+
+ return 0;
+}
diff --git a/recipes/esc-gst/files/c1 b/recipes/esc-gst/files/c1
new file mode 100755
index 0000000000..c851b89de2
--- /dev/null
+++ b/recipes/esc-gst/files/c1
@@ -0,0 +1,8 @@
+#! /bin/sh
+set -x
+
+export PKG_CONFIG_PATH=/usr/lib/pkgconfig
+
+gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) a_gst.c -o a_gst
+
+a_gst /usr/share/esc-media/bbb.mp3
diff --git a/recipes/esc-gst/files/n5 b/recipes/esc-gst/files/n5
new file mode 100755
index 0000000000..c5d7f3ea3d
--- /dev/null
+++ b/recipes/esc-gst/files/n5
@@ -0,0 +1,4 @@
+#! /bin/sh
+set -x
+gst-launch udpsrc port=5434 caps="application/x-rtp, payload=96, clock-rate=90000, encoding-name=MP4V-ES" ! rtpmp4vdepay ! video/mpeg, mpegversion=4, systemstream=false, framerate=\(fraction\)23/1, width=1280, height=720, codec_data=\(buffer\)000001010000012000845d4c294022d0a21f ! ffdec_mpeg4 ! dmaiperf print-arm-load=true ! omapdmaifbsink
+