Un utilisateur de XCFA m'a écrit dans un Mail que l'application WavSplit (Tobias Weihmann) n'est plus maintenue !
Une visite chez Debian me confirme hélas l'affaire ... :/
Ici aussi ... :/
Un Mail à Tobias Weihmann m'est revenu avec l'état d'erreur !
Le temps d'aller chercher la dernière version (1.2.1) pour tests : récupération du tar.gz, extraction, binarisation (Ôh, un nouveau mot) et tests sur plusieurs fichiers de type WAV.
WavSplit m'expédie quelques phrases de mécontentement sur le moniteur et libère le prompt de mon shell !
Très curieux, j'ouvre les fichiers wavsplit.c et wavsplit.h.
Les Devs ayant une façons très spécifique de voir et de mettre en valeur les choses, je redoute le pire ... Le code de Tobias Weihmann correspond t-il a ce que je suis capable de comprendre ?
Les définitions des structures WAVEFORMAT et WAVE_HEADER du fichier wavsplit.h m'indiquent apparemment que les définitions byte et word sont mal dimensionnées.typedef struct { u_long dwSize; u_short wFormatTag; u_short wChannels; u_long dwSamplesPerSec; u_long dwAvgBytesPerSec; u_short wBlockAlign; u_short wBitsPerSample; } WAVEFORMAT; typedef struct { char RiffID[4]; u_long RiffSize; char WaveID[4]; char FmtID[4]; u_long FmtSize; u_short wFormatTag; u_short nChannels; u_long nSamplesPerSec; u_long nAvgBytesPerSec; u_short nBlockAlign; u_short wBitsPerSample; char DataID[4]; u_long nDataBytes; } WAVE_HEADER;Un très simple morceau de code me le confirme:printf( "sizeof(u_short) = %lu\n", sizeof(u_short)); printf( "sizeof(u_long) = %lu\n", sizeof(u_long)); printf( "sizeof(short int) = %lu\n", sizeof(short int)); printf( "sizeof(int) = %lu\n", sizeof(int));Ce qui donne:sizeof(u_short) = 2 sizeof(u_long) = 8 sizeof(short int) = 2 sizeof(int) = 4Et puis, et puis ... après une analyse du code, je pense également que ces deux structures font double emploi (réflexion très personnelle) et que pour finir (faut quand même bien que mes critiques 'constructives' cesses un jour: non mais !), il serait tout de même interessant d'avoir un emballage plus sympa. du style autotools avec des options du genre:$ ./configure --prefix=/usr $ make $ make distcheck # make install # make uninstall etc, etc ...D'autant plus que ce tout nouveau et tout beau paquet tar.gz pourrait être transformé très facilement en un paquet DEB, GZ, RPM, etc ...Et donc, après ces minis modifications, les tests sont ok chez moi:
- Hop, hop, quelques rectifications de code ...
Il me semble avoir lu quelque part qu'un bug concerne les fichiers supèrieurs en taille à 2 Go !
Il y à déjà de quoi faire mais cette coquille si elle existe pourrait (peut être !) être palliée avec une lecture séquentielle ... Une analyse plus en profondeur du code est donc souhaitable ...
Après vérification du code, la lecture est séquentielle ... houfffffffff !- Fabrication d'un paquet tar.gz avec BaseBuild
$ ./src/wavsplit --help !================================================================================ ! WAVSPLIT version 1.2.2 (http://www.fomalhaut.de) ! Licensed under GPL by author Tobias Weihmann !-------------------------------------------------------------------------------- ! Hour patch by Sacha Bartok (sacha@myrealbox.com) ! Modified for frames, hours, seconds, decimal seconds by Alan Fitch ! Modified for individual track lengths (non-cumulative splits) by Derek Schuff ! Update by Claude BULIN in version 1.2.2 ! bytes struct WAVE_HEADER ! packaging with autotools ! http://www.xcfa.tuxfamily.org/article14/wavsplit !================================================================================ Usage: wavsplit [options] wavfile split split split... Options: -q --quiet Quiet mode (no messages) -H --Hours Use Hours wavsplit [options] wavfile hr:min:sec [hr:min:sec]... -f --frames FPS use Frames FPS (frames per second) must be either 12, 24, 25, 30, or 75 wavsplit [options] wavfile min:sec:fr [min:sec:fr]... -s --seconds Use Seconds wavsplit [options] wavfile sec [sec]... -t --tracktimes Use individual track times (instead of cumulative split times) -h --help This info You can combine both Hours and frames options Examples: wavsplit --frames 30 file.wav 32:21:15 45:10:0 wavsplit --Hours file.wav 1:32:21:59.2 1:45:10:0.3 wavsplit --seconds file.wav 300.1 500.2Une découpe d'une minute :$ ./src/wavsplit ./01.wav -H 0:0:0:0.0 0:1:0:0.0 !================================================================================ ! WAVSPLIT version 1.2.2 (http://www.fomalhaut.de) ! Licensed under GPL by author Tobias Weihmann !-------------------------------------------------------------------------------- ! Hour patch by Sacha Bartok (sacha@myrealbox.com) ! Modified for frames, hours, seconds, decimal seconds by Alan Fitch ! Modified for individual track lengths (non-cumulative splits) by Derek Schuff ! Update by Claude BULIN in version 1.2.2 ! bytes struct WAVE_HEADER ! packaging with autotools ! http://www.xcfa.tuxfamily.org/article14/wavsplit !================================================================================ INFO: Hours:mins:sec format selected ------------------------------- ./01.wav ------------------------------- RiffID : RIFF RiffSize : 21872676 WaveID : WAVE FmtID : fmt FmtSize : 16 FormatTag : 1 Channels : 2 SamplesPerSec: 44100 Hz gBytesPerSec : 176400 BlockAlign : 4 BitsPerSample: 16 DataID : data DataBytes : 21872640 ------------------------------- Split Hours Mins Seconds Bytes % [01] until 0 0 0.000 0 0.00% [02] until 0 1 0.000 10584000 48.39% [03] until the end 21872640 100.00% Success.Bref, si cette mise à jour d'application bien utile intéresse une Linuxienne ou un Linuxien, les paquets sont ici ...
La phase de transformation en binaire depuis le code source reste très simple:$ tar xvfz ./wavsplit-1.2.2.tar.gz $ cd wavsplit-1.2.2/ $ ./configure --prefix=/usr $ makePuis en mode adminitrateur:# make installEt à vous les joies du 'Split' avec par exemple depuis un dossier contenant des WAV:$ wavsplit ./musique.wav -H 0:0:0:0.0 0:1:0:0.0
S i l'auteur initial de WavSplit passe dans le coin, qu'il s'arrête pour discuter autour d"un café ou d'une bière puis il pourra, si il le souhaite et si il est satisfait de mes modifications de code pour cette excellente application, repartir avec ce nouveau paquet sous le bras ;-)
↧
Update WavSplit
↧