Dubbi sulla traduzione di GStreamer

Luca Ferretti elle.uca@infinito.it
Ven 2 Dic 2005 21:04:22 CET


Se ancora non lo sapete, tra qualche giorno verrà rilasciata la versione
0.10 di GStreamer. Come avrete già immaginato leggendo l'oggetto, ci
sono alcune stringhe la cui traduzione, anzi il significato, è un po'
oscuro..

Ecco qui il primo messaggio dubbioso. Rammento che GStreamer funziona
come una pipeline costruita da diversi blocchi (-> input -> T1() -> ...
-> Tn() -> output ->) ed ogni elemento della pipeline può trovarsi in
uno degli stati seguenti: NULL (predefinito, l'elemento è creato e non
sta facendo alcunché), READY (pronto a fare qualcosa), PAUSED (in
pausa), PLAYING (sta facendo qualcosa). Gruppi di elementi possono
essere considerati come un singolo elemento pipeline.

Per cui ho

        #: tools/gst-launch.c:626 tools/gst-launch.c:673
        #, c-format
        msgid "PAUSE pipeline ...\n"
        msgstr ""
        
Stando al codice questo messaggio appare su stderr prima di impostare lo
stato di una pipeline a PAUSED. Credo che il maiuscolo sia stato usato
per mettere in evidenza l'azione. Che ne dite di:

        Pipeline in PAUSE...\n

Ora, una volta segnalato su stderr ed inviato il segnale di pausa, si
procede con l'analisi del codice di ritorno e all'invio su stderr del
messaggio opportuno.

Prima soluzione, STATE_CHANGE_FAILURE, e primo messaggio:
        
        #: tools/gst-launch.c:631
        #, fuzzy, c-format
        msgid "ERROR: pipeline doesn't want to pause.\n"
        msgstr "ERRORE: la pipeline non vuole mettersi in pausa.\n"
        
Qui mi sento costretto a rendere attore la pipeline, cosa non proprio
gradita alle nostre linee guida. OK? (ovvio che so che potrei mettere
"impossibile mettere in pausa..", ma si perde il fatto che il problema è
nella pipeline e non nello scheduler).
        
Seconda soluzione, GST_STATE_CHANGE_NO_PREROLL, e secondo messaggio
        
        #: tools/gst-launch.c:636
        #, fuzzy, c-format
        msgid "NO_PREROLL pipeline ...\n"
        msgstr "NESSUN PREROLL sulla pipeline...\n"
        
Per questo benedetto preroll, ho trovato sulla documentazione:

        Sinks are special elements in GStreamer. This is because sink
        elements have to take care of preroll, which is the process that
        takes care that elements going into the GST_STATE_PAUSED state
        will have buffers ready after the state change. The result of
        this is that such elements can start processing data immediately
        after going into the GST_STATE_PLAYING state, without requiring
        to take some time to initialize outputs or set up decoders; all
        that is done already before the state-change to GST_STATE_PAUSED
        successfully completes.
        
        Preroll, however, is a complex process that would require the
        same code in many elements. Therefore, sink elements can derive
        from the GstBaseSink base-class, which does preroll and a few
        other utility functions automatically. The derived class only
        needs to implement a bunch of virtual functions and will work
        automatically. 
        
Terza soluzione, GST_STATE_CHANGE_ASYNC, e terzo messaggio

        #: tools/gst-launch.c:639
        #, fuzzy, c-format
        msgid "PREROLL pipeline ...\n"
        msgstr "PREROLL sulla pipeline...\n"
        
Credo che intenda che l'azione di preroll è ancora in corso. Magari
aggiungere un "in corso" come se fosse PREROLLING?

Ultima soluzione, GST_STATE_CHANGE_SUCCESS, e ultimo messaggio

        #: tools/gst-launch.c:643
        #, fuzzy, c-format
        msgid "PREROLLED pipeline ...\n"
        msgstr "EFFETTUATO PREROLL sulla pipeline...\n"
        
Il messaggio che segue credo appaia dopo aver atteso un po' quando prima
c'era GST_STATE_CHANGE_ASYNC. 

        #: tools/gst-launch.c:650
        #, c-format, fuzzy
        msgid "ERROR: pipeline doesn't want to preroll.\n"
        msgstr "ERRORE: la pipeline non vuole fare il preroll.\n"
        
I due seguenti mi paiono pacifici, fatto salvo per la pipeline attore,
che a questo punto ho continuato a mantenere.

        #: tools/gst-launch.c:655
        #, c-format
        msgid "RUNNING pipeline ...\n"
        msgstr "ESECUZIONE della pipeline...\n"
        
        #: tools/gst-launch.c:658
        #, c-format
        msgid "ERROR: pipeline doesn't want to play.\n"
        msgstr "ERRORE: la pipeline non vuole riprodurre.\n"
        
I due seguenti invece, rifanno in verso al primo messaggio dubbioso. Al
printf su stderr del messaggio fa seguito un comando per impostare lo
stato delle pipeline a READY o NULL

        #: tools/gst-launch.c:676
        #, fuzzy, c-format
        msgid "READY pipeline ...\n"
        msgstr "Pipeline in READY...\n"
        
        #: tools/gst-launch.c:681
        #, c-format, fuzzy
        msgid "NULL pipeline ...\n"
        msgstr "Pipeline in NULL...\n"
        
Infine ultimo messaggio della serie ed ultimo messaggio del comando,
viene inviato su stderr prima di fare l'unref dell'oggetto e terminare
l'esecuzione di gst-launch

        #: tools/gst-launch.c:686
        #, fuzzy, c-format
        msgid "FREEING pipeline ...\n"
        msgstr "??? della pipeline...\n"
        
???= SVUOTAMENTO, LIBERAZIONE, DEREFERENZIAZIONE, ESECUZIONE FREE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Questa parte del messaggio =?ISO-8859-1?Q?è?Url : http://lists.linux.it/pipermail/tp/attachments/20051202/be5570d3/attachment.pgp


Maggiori informazioni sulla lista tp