Posts by fairbird
-
-
-
-
-
-
-
-
-
-
-
Display More
Subject: Technical Debugging Report - Audio Sink Conflict on DreamOS (AIO/Gemini)
Hi,
I have completed extensive debugging on my Dreambox (DreamOS 2.6 / Gemini AIO) regarding the audio output issue in your plugin. Here is the technical breakdown of the findings:
1. The Conflict (ALSA Exclusive Access)
The plugin currently attempts to use
alsasink(specificallydevice=dreamhdmi). On modern DreamOS images, the Enigma2 process maintains exclusive control over the ALSA driver.- Observation: When running
gst-launch-1.0withalsasink, the system returns:Error: Device 'dreamhdmi' is busy. - Verification: The audio only works if I manually stop Enigma2 via
init 4. This is not a viable solution for a plugin.
2. Missing Sinks
The standard workaround of using
dvbaudiosinkis not applicable here, as the elementdvbaudiosinkis not present in the GStreamer environment of these newer images.3. Installed Dependencies
I have verified that all necessary GStreamer codecs and parsers are installed and working:
gstreamer1.0-plugins-good-audioparsersgstreamer1.0-plugins-bad-faadgstreamer1.0-libavThe pipeline is technically sound, but the Sink is the bottleneck.
4. Recommended Solution
To ensure compatibility with DreamOS and allow audio to play alongside Enigma2, the plugin should avoid direct GStreamer sink calls and instead utilize the native eServiceReference (4097). This allows Enigma2 to manage the audio routing and hardware arbitration.
Suggested implementation change: Instead of a manual GStreamer pipeline with
alsasink, please use:PythonPythonfrom enigma import eServiceReference # Use Service 4097 to let Enigma2 handle the GStreamer output ref = eServiceReference(4097, 0, "/tmp/your_audio_file.mp4") self.session.nav.playService(ref)By using the native service handler, the audio will play correctly without requiring the user to kill the Enigma2 process.Did you test it by your self ?!!
- Observation: When running
-
-
1-try to install new image
2-instal plugin + alsa-utils.deb
3- test all these commandCode
Display Moreaudio_file="/tmp/a.mp4" && gst-launch-1.0 playbin uri=file://$audio_file audio_file="/tmp/a.mp4" && gst-launch-1.0 playbin uri=file://$audio_file flags=0x51 audio_file="/tmp/a.mp4" && gst-launch-1.0 playbin uri=file://$audio_file audio-sink="alsasink" flags=0x32 gst-launch-1.0 filesrc location=/tmp/a.mp4 ! qtdemux ! aacparse ! avdec_aac ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,channels=2,rate=48000" ! alsasink device=plug:dmix gst-launch-1.0 filesrc location=/tmp/a.mp4 ! qtdemux ! aacparse ! avdec_aac ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,channels=2,rate=48000" ! alsasink device=plughw:0,0 gst-launch-1.0 filesrc location=/tmp/a.mp4 ! qtdemux ! aacparse ! avdec_aac ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,channels=2,rate=48000" ! alsasink device=plughw:0,1 gst-launch-1.0 filesrc location=/tmp/a.mp4 ! qtdemux ! aacparse ! avdec_aac ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,channels=2,rate=48000" ! alsasink device=dreamhdmiand important things .. after test any code before test the next code just change the channel to refresh the audio again
-
-
-
Exactly that what I said this is not good ide
You need try to find command only with (gst-launch-1.0 playbin) or (gst-launch-1.0 filesrc)
lik
-
I know about this I tested before on Dm920 does not work with plugin smoothly .. But you can test it ... file in attach
Also do restart e2 after test plugin and Test this in telnet and send the output ...
-
The problem is you found these command to run audio only with stop E2 .. and this does not correctly wen need command run audio with E2 working
Codegst-launch-1.0 playbin uri=file:///tmp/a.mp4 video-sink="dreamvideosink" audio-sink="alsasink" gst-launch-1.0 filesrc location=/tmp/a.mp4 ! qtdemux ! aacparse ! avdec_aac ! audioconvert ! alsasink
Anyway try this from attach ..if does not work send the log and also try to find correct command work with E2 working not stop
-
Perfect ..
The sound plays with these commands, but only if the system is stopped (init 4) - thanks to Gemini and you of course:
Test ..
Which one work with you .. if does not send the log for each file -
no test this
Codeamixer -c 0 sset 'Audio hdmi-out mute' off amixer -c 0 sset 'Audio spdif mute' off amixer -c 0 sset 'Master' 25
if sound of dvb channel back to work then run thisCodegst-launch-1.0 filesrc location=/tmp/a.mp4 ! qtdemux ! aacparse ! avdec_aac ! audioconvert ! audioresample ! "audio/x-raw,format=S16LE,channels=2,rate=48000" ! alsasink device=dreamhdmiand send the feedback ...
