Newsgroup: it.comp.software.divx
Titolo: AVInaptic 3-12-2006

Ho rilasciata una nuova versione di AVInaptic.
Queste le differenze rispetto alle precedenti versioni:
- corretti alcuni errori ed imprecisioni;
- migliorate le regole per rilevare automaticamente i titoli di
  coda codificati ad alti quantizers;
- aggiunto il riconoscimento e l'analisi DRF dei bitstream di tipo
  DivX 3 (o "Microsoft MPEG4");
Ho iniziato il supporto ai contenitori ASF/WMV: ho gia' scritto il
parser di base, ma attualmente nella finestra nera vengono riportate
poche informazioni (e ancora non e' possibile estrarre tracce...).
Per quanto riguarda il formato Matroska, ho esteso il parsing a
caratteristiche che in precedenza avevo tralasciato; in particolare,
adesso nella finestra nera vengono mostrati tutti gli eventuali file
allegati (attachments) e tutti i capitoli/sottocapitoli definiti
nel file.
E' inoltre possibile salvare gli allegati (uno per volta, oppure
tutti insieme su una directory a scelta), ed e' possibile salvare
la struttura dei capitoli/sottocapitoli in formato XML.
Per quanto riguarda i capitoli, questi vengono mostrati nella
finestra nera (cioe', nel rapporto generato) in questo formato:
-------------------------------------------------------------
Capitoli
Introduzione                00:00:00,000 - 00:00:05,000
Chapter 2                   00:00:05,000 - 00:00:12,000
Sottocapitolo 1                 00:00:05,000 - 00:00:08,000
Sottocapitolo 2                 00:00:08,100 - 00:00:09,000
Chapter 3                   00:00:12,000 - 00:00:14,000
-------------------------------------------------------------
I capitoli Matroska possono essere annidati ricorsivamente a
qualsiasi livello di profondita': la struttura dovrebbe essere
chiara dall'indentazione dei timestamps sulla destra.
La descrizione riportata sulla sinistra e' solo la prima che e'
specificata nella struttura "ChapterDisplay" (Matroska
permette piu' descrizioni per ogni capitolo, ma per non
appensantire troppo il rapporto, ho messo solo la prima).
L'esportazione dei capitoli e' sempre in XML
(codifica ISO-8859-1).
Per ora e' tutto.
-- 
Home page: 
http://fsinapsi.altervista.org

poche informazioni (e ancora non e' possibile estrarre tracce...).
Tanto per darti un'idea, ti posto il log di quei due maledetti .dvr-ms
;-) 
[ Info sul file ]
Nome: kan.dvr-ms
Data: 26/11/2006 14:57:46
Dimensione: 320,230,622 bytes
[ Info generiche ]
Tipo di contenitore: ASF/WMV
Streams totali: 1
Tipo stream n. 3: Video Stream (DVR )
Audio streams: 0
Muxing Application: Unknown GUID: 0x2f 0xd5 0x94 0x7c 0x4a 0x57 0xbe
0x42 0xae 0x4a 0xed 0x40 0x82 0xd3 0xfe 0x79
Rapporto generato da AVInaptic (3-12-2006) in data  3 dic 2006, h
18:46:25
[ Info sul file ]
Nome: il buio si avvicina.dvr-ms
Data: 1/11/2006 11:12:17
Dimensione: 18,446,744,073,230,044,413 bytes
[ Info generiche ]
Tipo di contenitore: ASF/WMV
Streams totali: 1
Tipo stream n. 3: Video Stream (DVR )
Audio streams: 0
Muxing Application: Unknown GUID: 0xdc 0xbb 0xfd 0x72 0xb0 0x19 0xe3
0x41 0xb6 0x74 0xb0 0x36 0xd9 0xf8 0x3f 0x61
Rapporto generato da AVInaptic (3-12-2006) in data  3 dic 2006, h
18:48:09
-- 
Paradoxally,
Jan AxHell

 Audio streams: 0
qui avrebbe dovuto rilevare anche l'audio e dovro' capire perche' non
lo fa (il numero riportato, "3", non lo genera il mio programma, ma lo
legge nel file... facendo le prove con altri ASF, ho notato diverse
stranezze in questi valori)
Ciao


 Dimensione: 18,446,744,073,230,044,413 bytes
18.4 * 10E18 byte ~ 18.4 milioni di TByte ???
Ciao,
    Walter

> Dimensione: 18,446,744,073,230,044,413 bytes
significa che il programma lo testo solo sotto linux, e che ci sono
alcune differenze nell'implementazione Windows di questa funzione C:
    fgetpos( fp, (fpos_t *)&j );
Infatti, mentre sotto linux mi da' sempre il valore corretto, vedo
adesso, grazie alla tua segnalazione, che sotto Windows certe volte
puo' dare un valore sbagliato.
Se mi dici anche qual e' la lunghezza esatta di quel file, posso
provare a metterci una pezza in modo che dia il valore corretto...
Puo' essere un valore simile al risultato di questa differenza?
$ 2^64 - 18,446,744,073,230,044,413
479,507,203
Se mi dici il valore esatto, posso mettere questa brutta regola:
se (solo sotto Windows) il valore supera 2^63, allora bisogna
apportare una specifica correzione...


 apportare una specifica correzione...
Il valore l'ho visto dal log speditoti da "Jan AxHell"; quel file
"il buio si avvicina.dvr-ms" io non l'ho.
Ho solo notato che era presente questo "enorme" valore, ma
non so la lunghezza effettiva del file e purtroppo non ho file
del genere da provare.
Se non erro era un file tipo WMV; provero un altro di questo
tipo per vedere cosa viene fuori.
Ciao,
    Walter 

 tipo per vedere cosa viene fuori.
non ti disturbare, lo risolvero' facilmente (forse stasera).
Il tipo di file non c'entra, quell'errore sulla lunghezza del
file viene fuori solo su files piu' grandi di 2^32 bytes
(indipendntemente dal tipo), quindi presumo che quel file superi
i 4 GB (o 2 GB). Per risolvere, dovrebbe bastare definire una
macro in fase di compilazione sotto windows (-D__LARGE64_FILES);
nella prossima versione dovrebbe essere risolto...
A proposito, se noti ancora quel problema delle lettere
accentate, fammelo sapere (nelle ultime versioni ho fatto un po'
di prove sotto win98 e non ho riscontrato problemi)



Si, sotto windowsXP succede sempre quello che ti ho già
descritto, anche quando salvo l'immagine del grafico.
Normalmente cerco di modificare il titolo togliendo le
accentate a favore delle vocali semplici piu' l'apostrofo
(come il piu'); se invece non mi sono accorto dell'accento,
una volta aperta la finestra DOS evito di chiuderla.
L'unica volta che non si presenta la finestra DOS è quando
premo sul tasto "Salva" (non il tasto "Salva come").
    Walter 

 premo sul tasto "Salva" (non il tasto "Salva come").
questo e' facile da spiegare:
la finestra DOS si apre solo quando viene eseguito il "widget
predefinito di selezionamento del toolkit grafico" (gtk_filesel);
si apre perche' GTK (o Gdk, o Glib) vuole comunicare un errore
a tempo di esecuzione (probabilmente una funzione del supporto
riporta che gli e' stato passato un valore non valido; qual
e' il messaggio nella finestra?).
Il lato veramente negativo e' che a me non lo fa (ne' sotto
linux ne' sotto win98), quindi l'unico modo per risolverlo e'
andare da qualcuno che usa xp e fare qualche prova di
conversione dei path con accentate; e non so quando mi
capitera'...
Un altro modo per scavalcare il problema sarebbe di riscrivere
quel widget. Mi piacerebbe farlo, e sotto linux mi verrebbe
bene. Ma sotto windows non andrebbe bene, per via delle
differenze nella gestione dei filesystems: sotto Linux, un
filesystem e' una struttura che puo' essere composta da piu'
sotto-filesystem "montati" su directories arbitrarie ("mount
points"), mentre sotto Windows c'e' un sistema strambo di
lettere usate come prefissi per identificare diverse "unita'
logiche" ("A:" "B:" "C:" ecc), e non ho la minima idea di come
si faccia a sapere quali lettere dovrebbe mostrare il
programma, ne' tantomeno come si fa a rilevare che e' avvenuto
un montaggio (ad esempio, quando l'utente ha infilato un
cd nel lettore)...


 cd nel lettore)...
Beh, purtroppo, per questo, non ti posso aiutare...
Walter

 failed
grazie, adesso sembra piu' chiaro: quando ci sono accentate,
infatti, il mio programma converte il path in UTF-8 (prima di
passarlo alla funzione gtk_file_selection_set_filename), mediante
la funzione g_filename_to_utf8 (in realta' lo fa sempre, solo che,
se non ci sono accentate la conversione non produce differenze).
Togliendo questo passaggio, forse sul tuo sistema funzionera'...
Ma temo che non funzionera' piu' sotto win98 :-)
Anzi, sono quasi certo di avere gia' provato a togliere quella
conversione in UTF-8 e, cosi' facendo, sotto win98 mi succedeva
quello che ora succede a te (se ci sono accentate, cliccando su
"Salva come" si apre la finestra DOS con l'errore...).
Comunque sia, stasera faro' quella prova; se non trovo un modo
per poter stabilire se la conversione vada fatta o meno,
sacrifichero' win98 in favore di XP...


 "Salva come" si apre la finestra DOS con l'errore...).
ho provato poco fa: non si apre la finestra DOS, ma non funziona:
nella finestra di selezionamento compare il messaggio
"Directory illeggibile: ...".
Effettuando la conversione, invece, sotto win98 funziona
correttamente con tutti i caratteri... (ma non funzia sotto XP).
Adesso ho messo una versione del programma, senza conversione dei
path in utf-8, qui:
http://fsinapsi.altervista.org/tmp/prova.zip
Se potessi provarla e dirmi quali problemi presenta, mi sarebbe
molto utile. Grazie.




OK, fatto e sembra funzionare correttamente, cioe'
non si apre piu' la finestra DOS con l'errore nelle
condizioni in cui prima avveniva.
Domanda se devo fare altre prove.
Walter
 

 Domanda se devo fare altre prove.
no.
Se questa versione funziona su XP, lo lascero' cosi'
(a meno che non trovo un modo per sapere se il programma
sta sicuramente girando su win98; in quel caso gli farei
fare la conversione...)


 fare la conversione...)
Quindi su Win98 ci sono dei problemi, con questo programma.
Non l'ho mai provato con Win98, se ho tempo stasera ci provo.
Ciao,
    Walter 

 a cui ho cambiato il nome in "divx_איטלעש.avi"
nelle mie prove sotto win98, ho creato una directory "zטאלעשי"
e ci ho copiato un file dal nome "634טי©.avi". Non so se il
fatto di usare accentate anche sul nome della directory possa
influire sul risultato...
In conclusione, pare che le cose stiano cosi':
- le versioni che avevo rilasciato (che effettuano la conversione)
  funzionano bene su win98, ma male su XP;
- la versione dentro il file "prova.zip" funziona bene su XP, ma
  sotto win98, cliccando su "Salva come", non si sposta sulla
  directory "zטאלעשי" e compare la scritta "Directory
  illeggibile".
Sfortunatamente non conosco il motivo per cui quel widget si
comporta in modo differente su win98 e XP... Ad ogni modo, se
non ci sono novita', in futuro lascero' il metodo adottato per
la versione "prova.zip"


 la versione "prova.zip"
A meno che tu non possa rilasciare due versioni, una per win98
e una per WinXP.
Walter 

 e una per WinXP.
forse ho risolto: mi sono accorto che nelle mie prove su windows
ho sempre usato delle dll che hanno una dimensione diversa da
quelle che ho messo sul sito, quindi a questo punto e' molto
probabile che la differenza sia dovuta all'utilizzo di librerie
differenti.
Ora sono un po' incasinato... appena riesco, faro' tutte le
prove necessarie


 differenti.
era proprio cosi'...
