04-11-2020, 01:48 AM | #31 |
Wizard
Posts: 2,735
Karma: 6987557
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD
|
I've extracted it from the latest update package. Also, gst-launch is present.
Code:
$ find update_kindle_all_new_paperwhite_v2_5.12.4 | grep -e gst-launch -e mixer update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/share/alsa/smixer.conf update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/bin/gst-launch-0.10 update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/bin/alsamixer update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/bin/amixer update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/bin/gst-launch update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/gstreamer-0.10/libgstmixersink.so update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/gstreamer-0.10/libgstmixersink.so.1.0 update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/gstreamer-0.10/libgstmixersink.so.1 update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/libmixerCommon.so.1 update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/libmixerCommon.so.1.0 update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/alsa-lib/smixer update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/alsa-lib/smixer/smixer-ac97.so update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/alsa-lib/smixer/smixer-hda.so update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/alsa-lib/smixer/smixer-sbase.so update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/libmixerAPI.so.1 update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/libmixerCommon.so update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/libmixerAPI.so.1.0 update_kindle_all_new_paperwhite_v2_5.12.4/fwo_rootfs/usr/lib/libmixerAPI.so The easiest way to use it would probably to write an output adapter for miniaudio (a single-file C audio lib) or to use it through gstreamer (with gst-launch or directly). Some random notes: - It's thread-safe. - The C interface is just a wrapper for the C++ one. - /var/run/mixer - */mstream Try something like: cat raw_audio_s16le_4800.bin | /usr/bin/gst-launch filesrc location=/dev/stdin ! rawaudioparse use-sink-caps=false format=pcm pcm-format=s16le sample-rate=48000 ! audioconvert ! audioresample ! mixersink where raw_audio_s16le_4800.bin is raw audio from something like: ffmpeg -i audio.file -f s16le -acodec pcm_s16le -ac 2 -ar 48000 raw_audio_s16le_4800.bin Or, compile this, and run something like: ./audioconverter audio.file /dev/stdout | /usr/bin/gst-launch filesrc location=/dev/stdin ! wavparse ! audioconvert ! audioresample ! mixersink libaudioclient (used by libasrEarcon) seems to have a higher-lever wrapper around libmixerAPI which supports playing WAV files. It should be simple enough to adapt it to play anything. /usr/bin/ivonattsd makes use of this. Some more notes on libmixerAPI usage: - MixerOpenPlay returns 1 (failure) or 0 (success). - You need to use MixerGetSampleSizeBits to get the current bit depth (i.e. 16-bit). - To play samples, do MixerGetBufPlay, memcpy the samples, then MixerReleaseBufPlay. - MixerWaitTillAudioProcessed waits until the buffer has been emptied (i.e. to play audio, loop between MixerWaitTillAudioProcessed/MixerGetBufPlay/memcpy/MixerReleaseBufPlay/decode until there isn't any more audio left to play). - MixerClose takes the address of the mixer and destroys it. - If you use libaudioclient instead, it's as simple as audio_initializeStream/audio_playWaveSamples/audio_waitForCompletion/audio_destroyStream). Last edited by geek1011; 04-11-2020 at 03:56 PM. |
04-11-2020, 03:59 AM | #32 |
Wizard
Posts: 2,735
Karma: 6987557
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD
|
Some more stuff about libmixerAPI:
- void* MixerOpenPlay(int rate, int channels, int sampleSize, const char* something) - Note: something is "Music" if null, idk exactly what it's being used for yet. - void MixerClose(void* mixer) - int MixerGetBufPlay(void* mixer, uint8_t** buf_ptr_out, int* buf_size_out) - Returns 0 on success, 1 on failure. - void MixerReleaseBufPlay(void* mixer, int n_written, uint8_t* buf_ptr) - These params are mostly just educated guesses (I haven't gone through the disassembly in detail yet). - void* MixerWaitTillAudioProcessed(void* mixer) - I haven't figured out the return type yet. - void MixerDrain(void* mixer) - void MixerFlush(???) - I haven't figured out the params yet. Note: This is purely based on static analysis, so it's all untested. Even so, this should be enough to link with (or dlopen) libmixerAPI and play raw PCM signed integer samples. Last edited by geek1011; 04-11-2020 at 04:05 AM. |
Advert | |
|
04-12-2020, 12:39 PM | #33 | |
Guru
Posts: 829
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
From your research I agree that libaudioclient appears to be the simplest approach. As from my earlier post, I had planned to use mplayer to originate the audio stream. I should be able to get mplayer to pipe a stream in WAV format, but I guess I will need a program to accept it and pass it on via libaudioclient. What resources available on the pw4 can be used for this purpose? As you noted ivonattsd makes use of libaudioclient, but it is dedicated for another purpose. I assume that there is no existing program on the pw4 right now that will address this problem, so one will need to be built. Dave Last edited by dhdurgee; 04-12-2020 at 12:41 PM. Reason: typo |
|
04-12-2020, 12:46 PM | #34 | |
Wizard
Posts: 2,735
Karma: 6987557
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD
|
Quote:
|
|
04-12-2020, 05:11 PM | #35 | |
Guru
Posts: 829
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
Code:
[root@kindle mplayer]# ./mplayer -v -ao pcm -format s16le -af resample=48000 /mnt/us/music/01-Diamond_Star.mp3 MPlayer 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team CPU: ARM get_path('codecs.conf') -> '/tmp/root/.mplayer/codecs.conf' Reading /tmp/root/.mplayer/codecs.conf: Can't open '/tmp/root/.mplayer/codecs.conf': No such file or directory Reading /opt/kindle/etc/mplayer/codecs.conf: Can't open '/opt/kindle/etc/mplayer/codecs.conf': No such file or directory Using built-in default codecs.conf. Configuration: --prefix=/opt/kindle --enable-cross-compile --enable-armv6 --target=arm-linux --host-cc=gcc --cc=arm-kindle-linux-gnueabi-cc --as=arm-kindle-linux-gnueabi-as --nm=arm-kindle-linux-gnueabi-nm --ranlib=arm-kindle-linux-gnueabi-ranlib --disable-mencoder --disable-libdvdcss-internal --disable-dvdread-internal --disable-tv --disable-tga --disable-dvb --disable-v4l2 --disable-yuv4mpeg CommandLine: '-v' '-ao' 'pcm' '-format' 's16le' '-af' 'resample=48000' '/mnt/us/music/01-Diamond_Star.mp3' get_path('font/font.desc') -> '/tmp/root/.mplayer/font/font.desc' font: can't open file: /tmp/root/.mplayer/font/font.desc font: can't open file: /opt/kindle/share/mplayer/font/font.desc Using Unoptimized OnScreenDisplay Using nanosleep() timing get_path('input.conf') -> '/tmp/root/.mplayer/input.conf' Can't open input config file /tmp/root/.mplayer/input.conf: No such file or directory Can't open input config file /opt/kindle/etc/mplayer/input.conf: No such file or directory Falling back on default (hardcoded) input config get_path('01-Diamond_Star.mp3.conf') -> '/tmp/root/.mplayer/01-Diamond_Star.mp3.conf' Playing /mnt/us/music/01-Diamond_Star.mp3. get_path('sub/') -> '/tmp/root/.mplayer/sub/' [file] File size is 4975194 bytes STREAM: [file] /mnt/us/music/01-Diamond_Star.mp3 STREAM: Description: File STREAM: Author: Albeu STREAM: Comment: based on the code from ??? (probably Arpi) LAVF_check: MPEG audio layer 2/3 Checking for YUV4MPEG2 ASF_check: not ASF guid! Checking for REAL Checking for SMJPEG Searching demuxer type for filename /mnt/us/music/01-Diamond_Star.mp3 ext: .mp3 Trying demuxer 17 based on filename extension ==> Found audio stream: 0 demux_audio: seeking from 0x4BEA5A to start pos 0x1184 demux_audio: audio data 0x1184 - 0x4BE9DA Audio only file format detected. Clip info: Title: Diamond Star Artist: Point Valid with Catherine A.. Album: Diamond Star Year: 2009 Comment: Track 1 Track: 1 Genre: Alternative Rock get_path('sub/') -> '/tmp/root/.mplayer/sub/' ========================================================================== Opening audio decoder: [mp3lib] MPEG layer-2, layer-3 dec_audio: Allocating 4608 + 65536 = 70144 bytes for output buffer. mp3lib: using generic C decore! MP3lib: init layer2&3 finished, tables done MPEG 1.0, Layer III, 44100 Hz 128 kbit Joint-Stereo, BPF: 417 Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0 AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400) Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3) ========================================================================== Building audio filter chain for 44100Hz/2ch/s16le -> 0Hz/0ch/s16le... [libaf] Adding filter resample [resample] Changing sample rate to 48000Hz [resample] Using integer processing and inexact frequecy conversion. [resample] New filter designed up: 160 down: 147 [resample] Using integer processing and inexact frequecy conversion. Trying preferred audio driver 'pcm', options '[none]' [AO PCM] File: audiodump.wav (WAVE) PCM: Samplerate: 48000Hz Channels: Stereo Format s16le [AO PCM] Info: Faster dumping is achieved with -vc null -vo null -ao pcm:fast [AO PCM] Info: To write WAVE files use -ao pcm:waveheader (default). AO: [pcm] 48000Hz 2ch s16le (2 bytes per sample) AO: Description: RAW PCM/WAVE file writer audio output AO: Author: Atmosfear Building audio filter chain for 44100Hz/2ch/s16le -> 48000Hz/2ch/s16le... [resample] Using integer processing and inexact frequecy conversion. [resample] Using integer processing and inexact frequecy conversion. Video: no video Freeing 0 unused video chunks. Starting playback... [libaf] Reallocating memory in module resample, old len = 0, new len = 67714 Increasing filtered audio buffer size from 0 to 67712 Increasing filtered audio buffer size from 67712 to 67724 Increasing filtered audio buffer size from 67724 to 67740 Increasing filtered audio buffer size from 67740 to 67752 ds_fill_buffer: EOF reached (stream: audio) ds_fill_buffer: EOF reached (stream: audio) EOF code: 1 26.9) of 310.0 (05:10.0) 22.4% Uninit audio filters... [libaf] Removing filter resample Uninit audio: mp3lib Exiting... (End of file) Code:
[root@kindle mplayer]# cat audiodump.wav | /usr/bin/gst-launch filesrc location=/dev/stdin ! rawaudioparse use-sink-caps=false forma t=pcm pcm-format=s16le sample-rate=48000 ! audioconvert ! audioresample ! mixersink WARNING: erroneous pipeline: no element "rawaudioparse" [root@kindle mplayer]# Dave PS: I thought to try editing down the pipeline and got: Code:
[root@kindle mplayer]# cat audiodump.wav | /usr/bin/gst-launch filesrc location=/dev/stdin ! mixersink Setting pipeline to PAUSED ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /GstPipeline:pipeline0/MixerSink:mixersink0: The stream is in the wrong format. Additional debug info: gstbaseaudiosink.c(836): gst_base_audio_sink_preroll (): /GstPipeline:pipeline0/MixerSink:mixersink0: sink not negotiated. Execution ended after 4387667 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ... [root@kindle mplayer]# Last edited by dhdurgee; 04-12-2020 at 05:15 PM. |
|
Advert | |
|
04-12-2020, 11:48 PM | #36 | |
Wizard
Posts: 2,735
Karma: 6987557
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD
|
Quote:
|
|
04-13-2020, 03:26 PM | #37 |
Guru
Posts: 829
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
I regret to inform you that "wavparse" also yields a "no element" error.
I did a bit more looking around and it appears that they have stripped things down to the minimum they need. I checked what gst binaries were present and at least they left gst-inspect, which shows: Code:
coreindexers: memindex: A index that stores entries in memory mixersink: mixersink: Audio Sink Mixer audiblesrc: audiblesrc: Audible source coreelements: multiqueue: MultiQueue coreelements: typefind: TypeFind coreelements: tee: Tee pipe fitting coreelements: filesink: File Sink coreelements: queue: Queue coreelements: identity: Identity coreelements: filesrc: File Source coreelements: fdsink: Filedescriptor Sink coreelements: fdsrc: Filedescriptor Source coreelements: fakesink: Fake Sink coreelements: fakesrc: Fake Source coreelements: capsfilter: CapsFilter staticelements: bin: Generic bin staticelements: pipeline: Pipeline object Total count: 5 plugins, 17 features The full list of gst binaries is: Code:
-rwxr-xr-x 1 root root 9244 Nov 27 2018 /usr/bin/gst-feedback -rwxr-xr-x 1 root root 3173 Nov 27 2018 /usr/bin/gst-feedback-0.10 -rwxr-xr-x 1 root root 9240 Nov 27 2018 /usr/bin/gst-inspect -rwxr-xr-x 1 root root 30308 Nov 27 2018 /usr/bin/gst-inspect-0.10 -rwxr-xr-x 1 root root 9240 Nov 27 2018 /usr/bin/gst-launch -rwxr-xr-x 1 root root 20276 Nov 27 2018 /usr/bin/gst-launch-0.10 -rwxr-xr-x 1 root root 9244 Nov 27 2018 /usr/bin/gst-typefind -rwxr-xr-x 1 root root 9624 Nov 27 2018 /usr/bin/gst-typefind-0.10 -rwxr-xr-x 1 root root 1734 Nov 27 2018 /usr/bin/gst-visualise-0.10 -rwxr-xr-x 1 root root 9244 Nov 27 2018 /usr/bin/gst-xmlinspect -rwxr-xr-x 1 root root 17692 Nov 27 2018 /usr/bin/gst-xmlinspect-0.10 Let me know of anything else I can try for you. If this is insufficient support I guess we need to investigate libaudioclient instead. Dave |
04-13-2020, 05:09 PM | #38 |
Wizard
Posts: 2,735
Karma: 6987557
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD
|
To use gstreamer then, you'd need to either compile the module externally (do you have a TC, @NiLuJe?) or pre-convert the audio to the right format.
|
04-13-2020, 05:22 PM | #39 |
BLAM!
Posts: 13,477
Karma: 26012494
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
I do, but gstreamer is probably down a long rabbit hole of dependencies, so I'd approach that from a slightly different angle: BuildRoot (which does support ct-ng TCs, I've used it a few weeks ago to build X stuff for KOReader because I couldn't be arsed to deal with it manually ;p).
In this specific instance, though, the drawback of not doing it manually is that BR won't be shipping prehistoric code (i.e., you'll end with with something adhering to gstreamer's 1.0 API/ABI, not 0.10). You could probably still piggy-back on the BR sysroot to just end up having to build an old gstreamer manually, though. Last edited by NiLuJe; 04-13-2020 at 05:24 PM. |
04-13-2020, 08:14 PM | #40 | |
Guru
Posts: 829
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
Dave |
|
04-14-2020, 10:59 AM | #41 |
Guru
Posts: 829
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
I don't know if this is helpful, but in case it is I used gst-inspect on the two provided custom elements in case it is helpful. I don't know what to do with it, but I had hoped it might give a clue either to what stream format the mixersink expect, or if it is flexible how to specify what input we are passing to it. I had hoped that the audible source details might allow me to use something like:
gst-launch audiblesrc {options} ! mixersink {options} If this would work then perhaps there would be a way to pull the stream description from the source to the sink. Unfortunately there is a reference to an authentication file in audiblesrc, so unless someone knows where that hides this isn't possible. |
04-16-2020, 03:46 PM | #42 |
Guru
Posts: 829
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
I did a bit of a web search looking for further information and aproaches to attacking the gstreamer problem. This led me to try this:
Code:
[root@kindle mplayer]# /usr/bin/gst-launch -v filesrc location=./audiodump.wav ! 'audio/x-raw-int,rate=(int)44100,channels=(int)2' ! queue ! mixersink Setting pipeline to PAUSED ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = audio/x-raw-int, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/x-raw-int, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/x-raw-int, rate=(int)44100, channels=(int)2 ERROR: from element /GstPipeline:pipeline0/MixerSink:mixersink0: The stream is in the wrong format. Additional debug info: gstbaseaudiosink.c(706): gst_base_audio_sink_setcaps (): /GstPipeline:pipeline0/MixerSink:mixersink0: cannot parse audio format. Execution ended after 20550000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ... Dave PS: I have tried this with and without the WAV header -ao pcm -format s16le Last edited by dhdurgee; 04-16-2020 at 04:05 PM. |
04-16-2020, 06:45 PM | #43 | |
Wizard
Posts: 2,735
Karma: 6987557
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD
|
Quote:
Try other common bitrate/channel combinations. For bitrates, try 16000, 44100, and 48000. For channels, try 1 and 2. Note that you don't need to reconvert the audio files until one works, as you could just feed it random bytes for all it cares (obviously, you'll hear garbage too, but the goal is to get it to start). |
|
04-16-2020, 09:33 PM | #44 |
Guru
Posts: 829
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
Here is a puzzle for you. I tried all variations I could think of without success. I then thought to try the audiblesrc, not expecting it to work as there was a authentication property and I had no idea where to find it. IT PLAYED! Here is a log from it:
Code:
[root@kindle mplayer]# /usr/bin/gst-launch -v audiblesrc location=/mnt/us/audible/Free_Excerpt__Star_Wars__Heir_to_the_Empire_-_Behi nd_the_Scenes_B005JZ4RJ6.aax ! queue ! mixersink Setting pipeline to PAUSED ... /GstPipeline:pipeline0/GstAudibleSrc:audiblesrc0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)22050, channels=(int)1 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)22050, channels=(int)1 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)22050, channels=(int)1 /GstPipeline:pipeline0/MixerSink:mixersink0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)22050, channels=(int)1 ^CCaught interrupt -- handling interrupt. Interrupt: Stopping pipeline ... Execution ended after 14439976002 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/MixerSink:mixersink0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstAudibleSrc:audiblesrc0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ... [root@kindle mplayer]# Code:
[root@kindle mplayer]# /usr/bin/gst-launch -v filesrc location=./audiodump.pcm ! 'audio/x-raw-int,endianness=(int)1234,signed=(boole an)true,width=(int)16,depth=(int)16,rate=(int)22050,channels=(int)1' ! queue ! mixersink Setting pipeline to PAUSED ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)22050, channels=(int)1 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)22050, channels=(int)1 New clock: GstSystemClock /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)22050, channels=(int)1 /GstPipeline:pipeline0/MixerSink:mixersink0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)22050, channels=(int)1 Caught interrupt -- ^Chandling interrupt. Interrupt: Stopping pipeline ... Execution ended after 5376706001 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/MixerSink:mixersink0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ... [root@kindle mplayer]# Dave |
04-17-2020, 01:17 PM | #45 |
Guru
Posts: 829
Karma: 2525050
Join Date: Jun 2010
Device: K3W, PW4
|
SUCCESS!
Thinking further I realized that the mixer would need to support a range of options for input or they would not have specified one in the caps for it. What was preventing operation was the lack of several other options. So tried again with the appropriate options for the track I was testing with and it worked. Here is the log of the run: Code:
[root@kindle mplayer]# /usr/bin/gst-launch -v filesrc location=./audiodump.pcm ! 'audio/x-raw-int,endianness=(int)1234,signed=(boole an)true,width=(int)16,depth=(int)16,rate=(int)44100,channels=(int)2' ! queue ! mixersink Setting pipeline to PAUSED ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 New clock: GstSystemClock /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 /GstPipeline:pipeline0/MixerSink:mixersink0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2 Got EOS from element "pipeline0". Execution ended after 207406500025 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/MixerSink:mixersink0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ... [root@kindle mplayer]# I would like to figure out a way to pipe this to the gst-launch command and have the rate and number of channels deduced from the source. On my k3 I was playing both local mp3 files and internet radio streams, but that won't work without manual intervention at this point. What would probably be workable is to pipe the mplayer output, with the WAVE header, to a program that would use the header to construct the gst pipeline and pipe the rest of the stream to it for playback. This is beyond my current experience level. Can someone take this further? Dave Last edited by dhdurgee; 04-17-2020 at 01:19 PM. Reason: typo |
Tags |
audiobook, bluetooth, jailbreak, m4b, mp3 |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Issue with finding audiobook metadata on Amazon | angelyne | Calibre | 6 | 10-21-2018 08:52 AM |
Listen Audiobook Player question | Hrafn | Audiobook Hardware & Software | 0 | 06-16-2018 02:36 AM |
Listen Up - We've got a brand new audiobook forum | Alexander Turcic | Announcements | 11 | 09-10-2014 06:18 PM |
Amazon Ebooks and downloaded Audiobook | ErikaGC | Kindle Fire | 1 | 06-10-2013 12:13 PM |
Sony & Amazon, etc. - Why No Wifi or Bluetooth? | poohbear_nc | News | 8 | 08-26-2009 04:29 PM |