Newsgroup: it.comp.software.divx
Titolo: [test] dimensioni file

Chiedo scusa, ma ho bisogno che qualcuno mi faccia una prova
(v. altro thread "AVINaptic").
Se qualcuno usa windows e ha per le mani un file piu' grande di
2 GB (cioe', piu' grande di 2,147,483,648 bytes), si sarebbe da
prendere questo piccolo file (4 kb):
http://fsinapsi.altervista.org/tmp/test-size.zip
Questo contiene un file, "test-size.exe", che va copiato nella stessa
cartella di avinaptic, oppure in una cartella dove si trova anche il
file "cygwin1.dll" che si trova nella cartella di avinaptic o che
puo' anche essere scaricato da qui:
http://fsinapsi.altervista.org/code/dll/cygwin1-dll.zip
Questo e' un programma a riga di comando, che va usato da console, in
questo modo:
test-size pippo.avi
dove "pippo.avi" e' un file piu' grande di 2 GB.
Il programma dovrebbe stampare quattro righe che mostrano la lunghezza
in bytes del file.
Ho bisogno di sapere se uno di questi metodi funziona correttamente,
e non ho alcun modo di provare sotto windows...
Per salvare le quattro righe in un file di testo, dovrebbe bastare
scrivere il comando cosi':
test-size pippo.avi > risultato.txt
Grazie per la collaborazione
-- 
Home page: 
http://fsinapsi.altervista.org

 test-size pippo.avi > risultato.txt
stat size = 
3328675840
ftell size = -966291456
fgetpos size = -966291456
lseek size = 
3328675840
La Dimensione su Disco corrisponde
Informazioni del file prese con MediaInfo
Avinaptic non lo riconosce.
Generale #0
Nome completo        : F:\File01.avi
Formato              : AVI
Info                 : Audio Video Interleave
Family               : RIFF
Dimensione           : 3.10 GiB
Durata               : 3min 55s
BitRate              : 113304 Kbps
Application          : VirtualDubMod 1.5.10.1 (build 2366/release)
Compressore          : VirtualDubMod build 2366/release
Video #0
Codec                : RGB
Family               : RGB
Info                 : Device Independent Bitmap
Durata               : 3min 55s
BitRate              : 113131 Kbps
Larghezza            : 512
Altezza              : 384
AspectRatio          : 4/3
FrameRate            : 23.976 fps
Bits/(Pixel*Frame)   : 24.000
Audio #0
Codec                : MPEG-1 Audio layer 3
Family               : MPEG-1
Info                 : MPEG-1 or 2 layer 3
Codec profile        : Joint stereo
Durata               : 3min 59s
BitRate              : 160 Kbps
ModalitÃ              : CBR
Canali               : 2 canali
SamplingRate         : 48 KHz
Risoluzione          : 16
-- 
by Isaac (The Original)
Qu...@excite.it
 - Non usare per messaggi privati
Fidolook 2002 (SL) 6.0.2800.94 - 3/3/2005 11:18:26 

 Avinaptic non lo riconosce.
[ Omissis ]
Dimenticato di dire che il file è un processo abortito
di un full processing mode fatto con VirtualDubMod
su un video xvid e che anche AviCodec e Gspot
lo riconoscono.
Vogliamo farlo riconoscere anche ad AviNaptic ? :)


 wrote:
testato su un file avi (dv da telecamera) (12.700.883.456 byte file)
test-size.exe cina_1.avi
stat size = 12700883456
ftell size = -184018432
fgetpos size = -184018432
lseek size = 12700883456
Avinaptic non e' in grado di aprirlo
allego report mediainfo
General #0
Complete name        : E:\Telecamera\cina_1.avi
Format               : AVI
Format/Info          : Audio Video Interleave
Format/Family        : RIFF
File size            : 11.8 GiB
PlayTime             : 58mn 38s
Bit rate             : 29 Mbps
Video #0
Codec                : Sony DV
Codec/Family         : DV
Codec/Info           : Sony Digital Video (DV) 525 lines at 29.97 Hz or 625 lines at 25.00 Hz
PlayTime             : 58mn 38s
Bit rate             : 29 Mbps
Width                : 720 pixels
Height               : 576 pixels
Aspect ratio         : 4/3
Frame rate           : 25.000 fps
Standard             : PAL
Bits/(Pixel*Frame)   : 2.784
Audio #0
Codec                : Sony DV
Codec/Family         : DV
Codec/Info           : Sony Digital Video (DV), audio part
ciao
---
Andres Zanzani
Cesena, Italy
www.64k.it/andres
 <--- Tutto e oltre per i DivX

 Avinaptic non lo riconosce.
adesso mi e' tutto chiaro :-)
Avinaptic usa "fgetpos", che da' un valore sbagliato se e' piu'
grande di 2^31-1.
Per fortuna posso riscriverlo usando "lseek", che da' il valore
esatto, a 64 bit.
Se puoi, ci sarebbe da fare un'altra prova: ci sarebbe da
prendere questo zip:
http://fsinapsi.altervista.org/code/dll/cygwin1-dll-new.zip
Poi andrebbe creata una nuova directory in cui mettere sia
il programmino "test.size.exe" che il file "cygwin1.dll" contenuto
in questo nuovo zip.
A questo punto andrebbe ripetuto lo stesso test di prima.
In pratica, questo serve per controllare se usando una versione
piu' recente di "cygwin1.dll", il risultato di "fgetpos" viene
giusto o continua a venire sballato... Nel primo caso, potrei
risparmiarmi la rottura di scatole di dover riscrivere il
programma (basterebbe sostituire "cygwin1.dll" con una versione
piu' recente)...
Ciao e grazie


 Avinaptic non e' in grado di aprirlo
si', grazie anche a te, adesso mi e' chiaro. Saro' costretto a riscrivere
il supporto del mio linguaggio usando "lseek".
Ero convinto che "fgetpos" funzionasse anche sotto cygwin, perche'
avevo testato sizeof(fpos_t) e mi rendeva 64 (non 32), quindi non
capisco perche' questa funzione
    int fgetpos(FILE *stream, fpos_t *pos);
non renda un valore a 64 bit...


 avevo testato sizeof(fpos_t) e mi rendeva 64 (non 32)
oops, ho sbagliato a scrivere: sizeof rende i bytes, non i bits.
Intendevo che sizeof(fpos_t) = 8 (non 4), sia sotto linux che
sotto cygwin



non funzia lo stesso...
E:\Programmi\avinaptic>test-size.exe e:\Telecamera\cina_1.avi
stat size = 12700883456
ftell size = -184018432
fgetpos size = -184018432
lseek size = 12700883456
sorry


 non funzia lo stesso...
pazienza... vorra' dire che dovro' riscriverlo in un altro modo.
La situazione e' quindi questa:
- l'attuale versione di avinaptic sul sito non puo' analizzare
  correttamente file di dimensioni maggiori a 2 GB (mi riferisco
  solo alla   versione per windows; quella per linux e' ok);
- dalla prossima versione questo problema non dovrebbe piu'
  esserci
Grazie per le prove
