C3PO Plugin verisone 0.1alfa

Pagina 1 di 2 1 2 ultimo
Visualizzazione dei risultati da 1 a 10 su 514

Hybrid View

Messaggio precedente Messaggio precedente   Prossimo messaggio Prossimo messaggio
  1. #1
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    ...Continuo però a non capire perché utilizzare uno script che non fa praticamente nulla (salvo lanciarne un altro) anziché far fare tutto (o quanto meno tutto ciò che è possibile) direttamente a quello (che viene avviato direttamente da LMS).

    In linea di principio io cercherei di semplificare quanto più possibile le cose, evitando giri inutili. Quindi (sempre senza conoscere i dettagli di LMS, per cui magari nella mia logica c'è qualche "intoppo" che mi sfugge) penserei di creare un "plugin" che gestisce le configurazioni (e la relativa UI) ed un "eseguibile" (in realtà verosimilmente ancora uno script Perl) che viene utilizzato da LMS sempre, per tutti i formati e tutte le conversioni possibili ed immaginabili. Sarebbe poi lo script stesso ad occuparsi di tutto (direttamente o utilizzando i vari comandi esterni quali flac, sox, mmpeg, ecc quando e come necessario), mentre LMS si limiterebbe ad avviarlo ed a fornigli dati e parametri di ingresso e di uscita.

    Uno dei punti chiave di tutto il ragionamento è che, anziché creare "n" casi particolari diversi per i diversi OS cercherei di utilizzare esclusivamente Perl, con codice scritto in forma quanto più possibile "portabile", che azzeri o quanto meno riduca al minimo possibile le differenze tra le diverse architetture. Altrimenti mantenere il tutto rischia di diventare un incubo...
    Ovviamente ne convengo, per questo c'è un solo programma perl valido per tutte le architetture e solo gli script di lancio sono dipendenti dal SO, cosa che mi pare comunque inevitabile.

    Ribadisco che l'unica cosa che fanno questi script è localizzare C3PO.Perl e lanciarlo passandogli gli stessi parametri che hanno ricevuto in input, ne ricevono l'output (il comando) e lo mandano in esecuzione.

    Non volendo modificare LMS e volendo rispettare le regole imposte dalla sua architettura a plugin, devo necessariamente sottostare ad acuni vincoli, tra i quali quello che in windows l'eseguibile DEVE essere un .exe, altrimenti non viene riconosciuto.

    MA tralasciamo questo aspetto ed ipotizziamo di riuscire ad utilizzare PERL direttamente (alla peggio posso sempre lanciare PERL.exe stesso, estremamente inefficiente e poco elegante, ma...).

    Il vero problema diventa: come mando in esecuzione da dentro perl il comado che mi sono costruito?

    Con System o open è esattamente corrispondente a quello che faccio, al contrario, cioè da Perl chiamo il SO e gli faccio eseguire il comando, prelevo l'output e lo passo al processo chiamante (che è una pipe all'OS aperta dal PERL di LMS). In tutto questo giro, io non sono riuscito a far arrivare l'audio integro, ma forse sbaglio qualcosa.
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  2. #2
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    New da OsX...

    Se prendo il file per coocme esce dal comando

    "/Library/PreferencePanes/Squeezebox.prefPane/Contents/server/Bin/darwin/flac" -dcs --totally-silent -- "/Users/macbookair/Music/flac_44_16.flac" | "/Library/PreferencePanes/Squeezebox.prefPane/Contents/server/Bin/darwin/sox" -q -t wav - -t wav -r 176400 -c 2 -3 -s -L - gain -3 rate -v -M -a -b 90.7 176400 > file.wav

    e lo confronto con quello prodotto dallo stesso comando (cambiando le directory) su win, NON sono uguali. I programmi audio come Foobar, Audacity, iTunes,... li leggono senza problemi entrambi, ma non LMS (e di conseguenza squeezelite), quelli provenienti dal mac non li riconosce.

    Qualcuno pò consigliarmi un tool per vedere cosa c'è scritto nelle rispettive headers e capire dove si origina il problema, può essere il bit order?
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  3. #3
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da marcoc1712
    Qualcuno pò consigliarmi un tool per vedere cosa c'è scritto nelle rispettive headers e capire dove si origina il problema, può essere il bit order?
    copiatelo su una macchina Linux ed usa e.g. i comandi "file" e "mediainfo". Alla peggio, usa hexedit e guardaci direttamente "dentro"...
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  4. #4
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Tra la correzione di un bug e l'altra...


    info => {
    audio_offset => 80,
    audio_size => 136956960,
    bitrate => 8467200,
    bits_per_sample => 24,
    block_align => 6,
    channels => 2,
    file_size => 136957040,
    format => 65534,
    jenkins_hash => 3704618135,
    samplerate => 176400,
    song_length_ms => 7660,
    },

    Tutte le applicazioni compresa file e mediainfo mi riportano tutto normale, prima di usare hexdump mi sono estrapolato il 'pezzo' di LMS che fa le verifiche e questo è il risultato: L'offset è di 80 byte e non di 44, come normalmente è... che c... ci mette SOX in qui 36 byte in più...

    con calma ci guardo, ma se qualcuno ha idee...
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  5. #5
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    @DacPassion: Hai una versione rivista anche per mac, dovrebbe correggere il problema della massima frequenza e fare quello che ti aspetti, da me - comunque - rimane il problema del rumore bianco con resampling alla massima frequenza sincrona, potresti cortesemente provare anche quello e riferirmi?

    Grazie.


    @BigTube, @AntonelloCaroli. Credo di aver risolto i problemi che avevate, non appena potete cortesemente provate la nuova versione ed in particolare il resample a max frequenza sincrona.


    Grazie.
    Ultima modifica di marcoc1712 : 29-10-2015 a 13:58
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  6. #6
    gibibyte L'avatar di DacPassion
    Registrato
    Jul 2014
    Messaggi
    1,250

    Predefinito

    Originariamente inviato da marcoc1712
    @DacPassion: Hai una versione rivista anche per mac, dovrebbe correggere il problema della massima frequenza e fare quello che ti aspetti, da me - comunque - rimane il problema del rumore bianco con resampling alla massima frequenza sincrona, potresti cortesemente provare anche quello e riferirmi?

    Grazie.


    @BigTube, @AntonelloCaroli. Credo di aver risolto i problemi che avevate, non appena potete cortesemente provate la buova versione ed in particolare il resample a max frequenza sincrona.


    Grazie.
    Questo ha ancora ffmpeg di serie o devo metterlo io?
    Clearaudio Emotion + Satisfy + Grado Gold1 > Phono D3A DIY
    Futro S450 + Daphile / Amanero + Buffalo 2 (trident) uscita a TU Cinemag 15/15B DIY / Jlsounds + Lector Digicode TDA1541 S1
    Monoblocchi D3A 2A3 (electrolytich free!!) DIY / Coral Beta8 in BLH DIY

  7. #7
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da DacPassion
    Questo ha ancora ffmpeg di serie o devo metterlo io?
    FFMPEG era solo per windows e non c'è più... Ma tu non sei su Mac? Li non c'è mai stato, se ti serve devi installarlo. Le prossime versioni potranno funzionare anche senza, usando flac come è semrpe stato, meno efficiente ma funziona.
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  8. #8
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da marcoc1712
    ... devo necessariamente sottostare ad acuni vincoli, tra i quali quello che in windows l'eseguibile DEVE essere un .exe, altrimenti non viene riconosciuto.
    questo mi pare molto strano... che fa, LMS controlla "l'estensione" del nome? o addirittura il formato del file? perché mai dovrebbero voler fare una cosa simile!?

    BTW: e allora come fai ad utilizzare uno script di shell, che immagino sia un .bat (o .cmd)?

    Originariamente inviato da marcoc1712
    Con System o open è esattamente corrispondente a quello che faccio, al contrario, cioè da Perl chiamo il SO e gli faccio eseguire il comando, prelevo l'output e lo passo al processo chiamante (che è una pipe all'OS aperta dal PERL di LMS). In tutto questo giro, io non sono riuscito a far arrivare l'audio integro, ma forse sbaglio qualcosa.
    Occhio ai dettagli: possibile che tu stia trattando lo stream binario come testo (guarda tra le opzioni di open()), oppure che tu stia mischiando lo stream dei dati con altre cose (ad es. i messaggi dei programmi) perché non separi "stdout" da "stderr", o altro ancora ...
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  9. #9
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    questo mi pare molto strano... che fa, LMS controlla "l'estensione" del nome? o addirittura il formato del file? perché mai dovrebbero voler fare una cosa simile!?

    BTW: e allora come fai ad utilizzare uno script di shell, che immagino sia un .bat (o .cmd)?


    Occhio ai dettagli: possibile che tu stia trattando lo stream binario come testo (guarda tra le opzioni di open()), oppure che tu stia mischiando lo stream dei dati con altre cose (ad es. i messaggi dei programmi) perché non separi "stdout" da "stderr", o altro ancora ...

    Non so come faccia, immagino che in win cerchi l'estensione, infatti .bat o .cmd non funzionano. In Linux e mac controlla il magic bit che determina se è eseguibile o meno, l'estensione non conta.

    Perli di Perl o di bash?

    Su perl STDERR è deviato sul log, STDOUT va in uscita e viene raccolto da bash/cmd/sh... Su bash in effetti no, potrei provare a farlo non appena prima di lanciare il comando, anche se sia flac che sox son oin modo silenzioso, ma non si sa mai...


    Ma da perl, una volta fatta la open del FH ho già una pipe completa, quello che non riesco a fare è passare lo STDOUT di perl stesso alla pipe che LMS ha aperto per lanciarlo:

    per spiegarmi:

    ESTERNO > PERL (LMS) > Open PERL (SCRIPT) > Open SHELL COMMAND > PERL (SCRIPT) > PERL LMS > ESTERNO

    mentre in questo modo (tranne che in mac) va:

    ESTERNO > PERL (LMS) > Open SHELL COMMAND > PERL LMS > ESTERNO

    dove le parti in Blu non dipendono dal mio codice ma sono impostate da LMS, io posso solo innestarmi sostituendo un qualsiasi eseguibile (o pipe di eseguibili) al posto di Open Shell Command (...bella backdoor...), mediante le famose stringhe nei convert.conf.
    Ultima modifica di marcoc1712 : 28-10-2015 a 18:39
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  10. #10
    tebibyte
    Registrato
    Aug 2011
    Età
    51
    Messaggi
    2,928
    configurazione

    Predefinito

    Ciao Marco, pare che su win Max sample sinco non va...mi si apre sto file

    codice:
    #
    # See plugin.pm for description and terms of use.
    
    use strict;
    
    use FindBin qw($Bin);
    use lib $Bin;
    use lib $Bin.'/CPAN';
    
    # let standard modules load.
    #
    use constant SLIM_SERVICE => 0;
    use constant SCANNER      => 1;
    use constant RESIZER      => 0;
    use constant TRANSCODING  => 0;
    use constant PERFMON      => 0;
    use constant DEBUGLOG     => ( grep { /--nodebuglog/ } @ARGV ) ? 0 : 1;
    use constant INFOLOG      => ( grep { /--noinfolog/ } @ARGV ) ? 0 : 1;
    use constant STATISTICS   => ( grep { /--nostatistics/ } @ARGV ) ? 0 : 1;
    use constant SB1SLIMP3SYNC=> 0;
    use constant IMAGE        => ( grep { /--noimage/ } @ARGV ) ? 0 : 1;
    use constant VIDEO        => ( grep { /--novideo/ } @ARGV ) ? 0 : 1;
    use constant MEDIASUPPORT => IMAGE || VIDEO;
    use constant WEBUI        => 0;
    use constant ISWINDOWS    => ( $^O =~ /^m?s?win/i ) ? 1 : 0;
    use constant ISMAC        => ( $^O =~ /darwin/i ) ? 1 : 0;
    use constant HAS_AIO      => 0;
    use constant LOCALFILE    => 0;
    use constant NOMYSB       => 1;
    #
    #######################################################################
    
    use Data::Dump qw(dump);
    use Getopt::Long;
    use YAML::XS;
    use File::Spec::Functions qw(:ALL);
    
    use Transcoder;
    
    #########################################################################
    #
    # Command line options.
    #
    # -c - client mac address (es. 00:04:20:12:b3:17) -> clientId
    # -i - input stream format (es. flc) -> inFormat
    # -o - output stream format (es. wav) -> outFormat
    # -t - stream time start offset (m:ss.cc es. 24:46.02) -> startTime
    # -v - stream time end offset (m:ss.cc es. 28:24.06) -> endTime
    # -s - stream seconds start offset (hh:mm:ss.mmm es. 00:15:47.786) -> startSec
    # -u - stream seconds end offset (hh:mm:ss.mmm es. 00:19:07.000) -> endSec
    # -w - stream seconds duration (n*.n* es. 542.986666666667) -> durationSec
    # -r - imposed samplerate
    #
    # The input file is the first and only parameter (with no option) in line.
    #
    #########################################################################
    
    #### preference file pathname, will be replaced with the command line options #
    #
    # my $prefFile = "C:\\Documents and Settings\\All Users\\Dati applicazioni\\SqueezeboxTest\\prefs\\plugin\\C3PO.prefs";
    # my $clientId = "e8:de:27:03:05:b2";
    #
    #################
    my $logfile;
    
    init();
    
    #################
    
    
    sub init{
    
    	my $options=getOptions();
    	#dump ($options);
    	
    	if (!defined $options) {dieMessage("Missing options")}
    	if (!defined $options->{clientId}) {dieMessage("Missing clientId in options")}
    	if (!defined $options->{prefFile}) {dieMessage("Missing preference file in options")}
    	if (!defined $options->{inCodec}) {dieMessage("Missing input codec in options")}
    	
    	my $clientId= $options->{clientId};
    	#dump ($clientId);
    	
    	my $prefFile=$options->{prefFile};
    	
    	my $prefs=loadPreferences($prefFile);
    	#dump ($prefs);
    
    	my $client=buildClient($clientId);
    	#dump ($client);
    	
    	my $serverFolder=$prefs->{'serverFolder'};
    	if (!defined $serverFolder) {dieMessage("Missing ServerFolder")}
    	#dump ($serverFolder);
    
    	my $logFolder=$prefs->{'logFolder'};
    	if (!defined $logFolder) {dieMessage("Missing log directory in preferences")}
    	#dump ($logFolder);
    	
    	$logfile= catdir($logFolder, "C-3PO.log");
    	
    	my $transcodeTable=buildTranscoderTable($client,$prefs);
    	$transcodeTable->{'options'}=$options;
    	#dump ($transcodeTable);
    	
    	$transcodeTable->{'inCodec'}=$options->{inCodec};
    	my $commandTable=Plugins::C3PO::Transcoder::buildCommand($transcodeTable);
    		
    	returnCommand($commandTable->{command});
    
    }
    sub writeLog {
    	my $msg = shift;
    
    	my $now = localtime;
    	my $line = qq([$now] $msg);
    
    	open(my $fh, ">>", qq($logfile)) or  die;
    	print $fh "\n $line \n";
    	close $fh;
    }
    sub returnCommand{
    	my $command=shift;
    	
    	if (DEBUGLOG || INFOLOG) {writeLog(qq(INFO: Command is: $command));}
    	
    	print STDOUT ($command);
    	exit;
    }
    sub getOptions{
    
    	#dump(@ARGV);
    	
    	my $options={};
    	if ( @ARGV > 0 ) {
    
    		GetOptions( 'c=s' => \$options->{clientId},
    				'i=s' => \$options->{inCodec},
    				'o=s' => \$options->{outCodec},
    				't=s' => \$options->{startTime},
    				'v=s' => \$options->{endTime},
    				's=s' => \$options->{startSec},
    				'u=s' => \$options->{endSec},
    				'w=s' => \$options->{durationSec},
    				'r=s' => \$options->{forcedSamplerate},
    				'p=s' => \$options->{prefFile},
    				);
    				
    				my $file;
    				for my $str (@ARGV){
    					
    					if (!defined $file){
    						
    						$file=$str;
    						
    					} else {
    					
    						$file = qq($file $str);
    					}
    				}
    				$options->{file}=$file;
    				
    				#print "\n\n\n".$options->{file}."\n";
    				return $options;
    	}
    	return undef;
    }
    
    sub buildClient{
    	my $clientId = shift;
    
    	$clientId =~ s/-/:/g;
    	return '_client:'.$clientId;
    }
    
    sub loadPreferences {
    	my $file=shift;
    	
    	my $prefs;
    	$prefs = eval {YAML::XS::LoadFile($file) };
    
    	if ($@) {
    		# log is not yet initialized
    		warn("Unable to read prefs from $file : $@\n");
    	}
    	return $prefs;
    }
    sub buildTranscoderTable{
    	my $client=shift;
    	my $prefs= shift;
    	
    	if (!exists $prefs->{$client}){
    
    		dieMessage("Missing client preferences for player $client");
    	}
    		
    	my $transcodeTable={};
    	
    	$transcodeTable->{'id'}=$prefs->{$client}->{'id'};
    	$transcodeTable->{'macaddress'}=$prefs->{$client}->{'macaddress'};
    	$transcodeTable->{'model'}=$prefs->{$client}->{'model'};
    	$transcodeTable->{'modelName'}=$prefs->{$client}->{'modelName'};
    	$transcodeTable->{'name'}=$prefs->{$client}->{'name'};
    	$transcodeTable->{'maxSupportedSamplerate'}=$prefs->{$client}->{'maxSupportedSamplerate'};
    	$transcodeTable->{'codecs'}=$prefs->{$client}->{'codecs'};
    	$transcodeTable->{'sampleRates'}=$prefs->{$client}->{'sampleRates'};
    
    	my $useGlogalSettings=$prefs->{$client}->{'useGlogalSettings'};
    
    	$transcodeTable->{'resampleWhen'}= $useGlogalSettings ?
    					$prefs->{'resampleWhen'} : $prefs->{$client}->{'resampleWhen'};
    					
    	$transcodeTable->{'resampleTo'}=$useGlogalSettings ?
    					$prefs->{'resampleTo'} : $prefs->{$client}->{'resampleTo'};
    					
    	$transcodeTable->{'outCodec'}=$useGlogalSettings ?
    					$prefs->{'outCodec'} : $prefs->{$client}->{'outCodec'};
    					
    	$transcodeTable->{'outBitDepth'}=$useGlogalSettings ?
    					$prefs->{'outBitDepth'} : $prefs->{$client}->{'outBitDepth'};
    					
    	$transcodeTable->{'outByteOrder'}=$useGlogalSettings ?
    					$prefs->{'outByteOrder'} : $prefs->{$client}->{'outByteOrder'};
    					
    	$transcodeTable->{'outEncoding'}=$useGlogalSettings ?
    					$prefs->{'outEncoding'} : $prefs->{$client}->{'outEncoding'};
    					
    	$transcodeTable->{'outChannels'}=$useGlogalSettings ?
    					$prefs->{'outChannels'} : $prefs->{$client}->{'outChannels'};
    					
    	$transcodeTable->{'gain'}=$useGlogalSettings ?
    					$prefs->{'gain'} : $prefs->{$client}->{'gain'};
    					
    	$transcodeTable->{'phase'}=$useGlogalSettings ?
    					$prefs->{'phase'} : $prefs->{$client}->{'phase'};
    	
    	$transcodeTable->{'quality'}=$useGlogalSettings ?
    					$prefs->{'quality'} : $prefs->{$client}->{'quality'};
    	
    	$transcodeTable->{'aliasing'}=$useGlogalSettings ?
    					$prefs->{'aliasing'} : $prefs->{$client}->{'aliasing'};
    					
    	$transcodeTable->{'bandwidth'}=$useGlogalSettings ?
    					$prefs->{'bandwidth'} : $prefs->{$client}->{'bandwidth'};
    					
    	$transcodeTable->{'dither'}=$useGlogalSettings ?
    					$prefs->{'dither'} : $prefs->{$client}->{'dither'};
    
    	$transcodeTable->{'pathToFlac'}=$prefs->{'pathToFlac'};
    	$transcodeTable->{'pathToSox'}=$prefs->{'pathToSox'};
    	$transcodeTable->{'pathToFaad'}=$prefs->{'pathToFaad'};
    	$transcodeTable->{'pathToC3PO'}=$prefs->{'pathToC3PO'};
    	$transcodeTable->{'pathToFFmpeg'}=$prefs->{'pathToFFmpeg'};
    	
    	$transcodeTable->{'serverFolder'}=$prefs->{'serverFolder'};
    	$transcodeTable->{'logFolder'}=$prefs->{'logFolder'};
    
    	my $outCodec= $transcodeTable->{'outCodec'};
    	$transcodeTable->{'outCompression'}=0;
    	
    	if (length($outCodec)>3){
    		
    		$transcodeTable->{'outCodec'}=substr($outCodec, 0,3);
    		$transcodeTable->{'outCompression'}=substr($outCodec, 3,1)
    	}
    
    	return $transcodeTable;
    }
    sub dieMessage{
    	my $msg=shift;
    	writeLog(qq(ERROR: $msg));
    	die ($msg);
    }
    1;

Pagina 1 di 2 1 2 ultimo

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022