[Alsaplayer-devel] Some TODOs to discuss

Peter Lemenkov lemenkov at gmail.com
Thu Mar 1 20:56:14 GMT 2007


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.

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.

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.

-- 
With best regards!


More information about the alsaplayer-devel mailing list