Originariamente inviato da UnixMan
tutto è relativo...

quindi, riassumendo, nella mia condizione (stream wav 384K da LMS, nessuna elaborazione da parte di SL), quali opzioni/parametri metteresti sulla riga di comando di squeezelite? "-b 30720:2048" ? o ti riferivi ai parametri dell'opzione "-a"?
NO!

io metterei

-a 40:2::0 -b 30720:30720.

30720:30720 (o qualiasi altro valore) sono uguali proprio perchè non c'è conversione di formato ne resampling, questo è il cardine del ragionamento: tenere uguali (o simili) le 'durate' dei buffer. In pratica, dato il formato, l'unica variabile è la durata che desideri.


Nello specifico dei valori:

-a 40:2::0

40 ms è il default ed a me pare tutto sommato un buon compromesso, 2 - sempre secondo me - migliora leggermente rispetto a valori superiori, se non manda in crisi la CPU lo terrei fisso, MMAP, almeno in assenza di conversioni, è certamente inutile.

-b 30720:30720.

equivale a 10 sec. per il formato 384/32 (3072 KB/sec). Diversi formati o divere durate originano diversi valori.

Originariamente inviato da UnixMan
Però, se puoi modificare C-3PO in modo che questo utilizzi un binario diverso a tua scelta, non potresti banalmente fornirgli direttamente il path completo dell'eseguibile? (ad es. in questo caso "/usr/bin/sox").

In questo modo si eviterebbe la necessità di dover fare qualsivoglia modifica al sistema; per giunta, rendendo la cosa configurabile dall'utente, si potrebbe utilizzare lo stesso "meccanismo" su tutti i SO supportati. Ad es. potresti aggiungere una opzione (checkbox) "use custom sox binary", seguita da un input field dove specificare il path dell'eseguibile...
No, non riesco, o almeno non per i casi in cui non uso l'eseguibile C-3PO ma LMS nativo. In quei casi nella riga di configurazione C-3PO scrive [SOX] (o qualsiasi altra cosa) ed è LMS che recupera il binario da utilizzare in base ai suoi algoritmi di ricerca, come ti ho già detto, dovrei patchare LMS e non voglio farlo.

Comunque io continuo a non capire come si dovrebbe fare in Linux per avere due versioni dello stesso eseguibile, ad esempio per gestire la transizione negli upgrade di sistema, a scopo di test... Come fai a gestire un cambio di release graduale (con parallelo) in produzione, ad esempio?