|
|
#31 |
|
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,812
Karma: 7423683
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD, Clara BW, Libra Colour
|
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 04:56 PM. |
|
|
|
|
|
#32 |
|
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,812
Karma: 7423683
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD, Clara BW, Libra Colour
|
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 05:05 AM. |
|
|
|
|
|
#33 | |
|
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 918
Karma: 3000002
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 01:41 PM. Reason: typo |
|
|
|
|
|
|
#34 | |
|
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,812
Karma: 7423683
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD, Clara BW, Libra Colour
|
Quote:
|
|
|
|
|
|
|
#35 | |
|
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 918
Karma: 3000002
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 06:15 PM. |
|
|
|
|
|
|
#36 | |
|
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,812
Karma: 7423683
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD, Clara BW, Libra Colour
|
Quote:
|
|
|
|
|
|
|
#37 |
|
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 918
Karma: 3000002
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 |
|
|
|
|
|
#38 |
|
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,812
Karma: 7423683
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD, Clara BW, Libra Colour
|
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.
|
|
|
|
|
|
#39 |
|
BLAM!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,506
Karma: 26047202
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 06:24 PM. |
|
|
|
|
|
#40 | |
|
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 918
Karma: 3000002
Join Date: Jun 2010
Device: K3W, PW4
|
Quote:
Dave |
|
|
|
|
|
|
#41 |
|
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 918
Karma: 3000002
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. |
|
|
|
|
|
#42 |
|
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 918
Karma: 3000002
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 05:05 PM. |
|
|
|
|
|
#43 | |
|
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,812
Karma: 7423683
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD, Clara BW, Libra Colour
|
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). |
|
|
|
|
|
|
#44 |
|
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 918
Karma: 3000002
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 |
|
|
|
|
|
#45 |
|
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 918
Karma: 3000002
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 02: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 09:52 AM |
| Listen Audiobook Player question | Hrafn | Audiobook Hardware & Software | 0 | 06-16-2018 03:36 AM |
| Listen Up - We've got a brand new audiobook forum | Alexander Turcic | Announcements | 11 | 09-10-2014 07:18 PM |
| Amazon Ebooks and downloaded Audiobook | ErikaGC | Amazon Fire | 1 | 06-10-2013 01:13 PM |
| Sony & Amazon, etc. - Why No Wifi or Bluetooth? | poohbear_nc | News | 8 | 08-26-2009 05:29 PM |