Package: gnomeradio Version: 1.8-2ubuntu1 Severity: important Tags: patch I can't record in gnomeradio either, just an empty sound-file is what I get. (see screenshot)
When start gnomeradio from terminal and try to record this error show up:
(gnomeradio:2084): gnomeradio-WARNING **: GStreamer runtime error: Could not
open audio device for recording.
TEST CASE:
1. Try to use gnomeradio built-in record function:
OUTPUT THIS ERROR:
(gnomeradio:22694): gnomeradio-WARNING **: GStreamer runtime error: Could not
open audio device for recording.
2. Try to record with gnomeradio started and gstreamer record commandline:
2.1 "osssrc" source
$ gst-launch-0.10 osssrc ! audioconvert ! wavenc ! filesink location=record.wav
OUTPUT THIS ERROR:
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstOssSrc:osssrc0: Could not open
audio device for recording.
Additional debug info:
gstosssrc.c(380): gst_oss_src_open ():
/GstPipeline:pipeline0/GstOssSrc:osssrc0:
Unable to open device /dev/dsp for recording: No such file or directory
Setting pipeline to NULL ...
Freeing pipeline ...
2.2 "autoaudiosrc" source
$ gst-launch-0.10 autoaudiosrc ! audioconvert ! wavenc ! filesink
location=record.wav
OUTPUT THIS SUCCES:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock
Conclusion:
Solution is to use "autoaudiosrc" plugin which can decide for us what audio
source to use, whether it is a linux/unix solution (PA, OSS, Alsa) or other.
-- System Information:
Debian Release: wheezy/sid
APT prefers precise-updates
APT policy: (500, 'precise-updates'), (500, 'precise-security'), (500,
'precise')
Architecture: i386 (i686)
Kernel: Linux 3.2.0-23-generic-pae (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages gnomeradio depends on:
ii gconf-service 3.2.5-0ubuntu2
ii gconf2 3.2.5-0ubuntu2
ii libc6 2.15-0ubuntu10
ii libcairo2 1.10.2-6.1ubuntu2
ii libdbus-glib-1-2 0.98-1ubuntu1
ii libgconf-2-4 3.2.5-0ubuntu2
ii libgdk-pixbuf2.0-0 2.26.1-1
ii libglib2.0-0 2.32.1-0ubuntu2
ii libgnome-media-profiles-3.0-0 3.0.0-1
ii libgstreamer0.10-0 0.10.36-1ubuntu1
ii libgtk-3-0 3.4.1-0ubuntu1
ii liblircclient0 0.9.0-0ubuntu1
gnomeradio recommends no packages.
Versions of packages gnomeradio suggests:
pn lirc-x <none>
-- no debconf information
<<attachment: gnomeradio_record.png>>
diff -Nru gnomeradio-1.8/debian/patches/gnomeradio-record.patch gnomeradio-1.8/debian/patches/gnomeradio-record.patch
--- gnomeradio-1.8/debian/patches/gnomeradio-record.patch 1970-01-01 00:00:00.000000000 +0000
+++ gnomeradio-1.8/debian/patches/gnomeradio-record.patch 2012-05-29 11:02:27.000000000 +0000
@@ -0,0 +1,57 @@
+## Description: Changed audio source from osssrc to autoaudiosrc that automatically detects an appropriate audio source to use.
+Index: gnomeradio-1.8/src/rec_tech.c
+===================================================================
+--- gnomeradio-1.8.orig/src/rec_tech.c 2012-05-29 10:56:56.052742786 +0000
++++ gnomeradio-1.8/src/rec_tech.c 2012-05-29 11:01:14.180735114 +0000
+@@ -42,8 +42,8 @@
+ recording_start(const char* filename)
+ {
+ GMAudioProfile *profile;
+- GstElement *pipeline, *oss_src, *encoder, *filesink;
+- pipeline = oss_src = encoder = filesink = NULL;
++ GstElement *pipeline, *source, *encoder, *filesink;
++ pipeline = source = encoder = filesink = NULL;
+
+ profile = gm_audio_profile_lookup(rec_settings.profile);
+ g_assert(profile);
+@@ -54,9 +54,9 @@
+ goto error;
+ }
+
+- oss_src = gst_element_factory_make("osssrc", "oss-source");
+- if (!oss_src) {
+- g_warning(_("Could not open Gstreamer OSS Source. Verify your Gstreamer OSS subsystem installation!\n"));
++ source = gst_element_factory_make("autoaudiosrc", "audio_source");
++ if (!source) {
++ g_warning(_("Could not open Gstreamer AUDIO Source. Verify your Gstreamer AUDIO subsystem installation!\n"));
+ goto error;
+ }
+
+@@ -82,10 +82,10 @@
+ }
+
+ /* Add the elements to the pipeline */
+- gst_bin_add_many(GST_BIN(pipeline), oss_src, encoder, filesink, NULL);
++ gst_bin_add_many(GST_BIN(pipeline), source, encoder, filesink, NULL);
+
+ /* Link it all together */
+- if (!gst_element_link_many(oss_src, encoder, filesink, NULL)) {
++ if (!gst_element_link_many(source, encoder, filesink, NULL)) {
+ g_warning("Could not link elements. This is bad!\n");
+ goto error;
+ }
+@@ -103,8 +103,8 @@
+ error:
+ if (pipeline)
+ gst_object_unref(GST_OBJECT(pipeline));
+- if (oss_src)
+- gst_object_unref(GST_OBJECT(oss_src));
++ if (source)
++ gst_object_unref(GST_OBJECT(source));
+ if (encoder)
+ gst_object_unref(GST_OBJECT(encoder));
+ if (filesink)

