[Alsaplayer-devel] Some TODOs to discuss

Dominique Michel dominique.michel at citycable.ch
Fri Mar 2 09:09:19 GMT 2007


Hi Peter !

Le Thu, 1 Mar 2007 23:56:14 +0300,
"Peter Lemenkov" <lemenkov at gmail.com> a écrit :

> Hello All!
> 
> Firstly I want to tell that almost all functionality is implemented in
> my APE- and WavPack-plugins. There are some issues remains -
> multichannel and 24- or 32-byte-per-sample files are not supported yet
> (and alsaplayer in general too) and tag-reading.
>
 
Well done ! And congratulations.

> Secondly, I want to start discussion about internals of AlsaPlayer.
> Today I looked closely at order in which main application executes
> functions from plugin and found unsatisfactory results. Just have a
> look at this - how many redunant calls were made:
> 
> [petro at Sulaco ~]$ alsaplayer -V
> AlsaPlayer 0.99.77
> (C) 1999-2004 Andy Lo A Foe <andy at alsaplayer.org> and others.
> Output plugin: ALSA output v1.9.0beta12
> Loading reader plugin: HTTP reader v1.3
> Loading reader plugin: File reader v1.1
> Loading Input plugin: Monkey's Audio plugin ver. 0.0.0.6
> WV: wv_init
> Loading Input plugin: WavPack plugin ver. 0.0.0.2
> Loading Input plugin: Ogg Vorbis player v1.2
> Loading Input plugin: flac player v1.2
> Loading Input plugin: MikMod player v1.0
> Loading Input plugin: CDDA player v1.2
> Loading Input plugin: WAV player v1.01
> Loading Input plugin: MAD MPEG audio plugin v1.01
> Interface plugin: GTK2 interface v0.0
> WV: wv_can_handle [/mnt/nfs/192.168.1.33/music_1/House/Антон Кубиков &
> DJ Сапунов//2005
> 3Fat.Men/VA.-.3fat.man.-.mixed.by.Kubikov.&.Sapunov.cue]
> WV: wv_can_handle [/mnt/nfs/192.168.1.33/music_1/House/Антон Кубиков &
> DJ Сапунов//2005
> 3Fat.Men/VA.-.3fat.man.-.mixed.by.Kubikov.&.Sapunov.wv]
> WV: wv_can_handle [/mnt/nfs/192.168.1.33/music_1/House/Антон Кубиков &
> DJ Сапунов//2005
> 3Fat.Men/VA.-.3fat.man.-.mixed.by.Kubikov.&.Sapunov.wv]
> WV: wv_open
> WPC: RC[2], NC[2], NS[208773516], SR[44100], ByPS[2], V[4]
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_nr_frames
> WV: wv_frame_to_sec
> WV: wv_stream_info
> WV: wv_close
> WV: wv_can_handle [/mnt/nfs/192.168.1.33/music_1/House/Антон Кубиков &
> DJ Сапунов//2005
> 3Fat.Men/VA.-.3fat.man.-.mixed.by.Kubikov.&.Sapunov.wv]
> WV: wv_open
> WPC: RC[2], NC[2], NS[208773516], SR[44100], ByPS[2], V[4]
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_sample_rate
> WV: wv_frame_size
> WV: wv_frame_seek
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_sample_rate
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_sample_rate
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_sample_rate
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_sample_rate
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_sample_rate
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_sample_rate
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> WV: wv_play_frame
> WV: wv_frame_size
> WV: wv_frame_size
> 
> ....
> 
> And  so on.
> For exaplme I don't think that two successive calls for frame size
> returns different results (especially bearing in mind that in all
> plugins this parameter is hardcoded).
> 
> Another thing that upsets me is that very informative structure
> stream_info didn't used not as one would like it to be. Actually it
> used only in interface-plugins although it contains all necessary info
> about corrently playing stream (bps, frequency etc). I strongly vote
> for usage of this structure instead of calling functions from
> input-plugin.
> 

I cannot help you much with this issue. I will try to learn the internal of
alsaplayer but it will take some time because I will be learning more C/C++ at
the same time. And I have been very busy with another project those days, but
this will be done hopefully this week so I will have more time in the near
future.

> And finally, does anyone ever hear about streams with variable
> byte-per-sample and frequency parameters (for example, at start it was
> 16bit/2ch/44100 but in the middle it will be 24bit/5ch/48000)? I can't
> remember any examples. If such streams doesn't exist it would simplify
> some things a little.
> 

No, but I think at it is a good question to ask on linux-audio-dev before to
conclude something.

Ciao,
Dominique



More information about the alsaplayer-devel mailing list