Hi,

> > 
> > I don't really have any idea about how to fix it.
> 
> Are you sure aviplay doesn't play them ?

ok i've just updated aviplay from cvs, and it plays it with sound, but with
the same ~ 6 sec desync as mplayer.

btw, avifile doesn't compiles without errors (but this time ./configure was
generated and run well :)):

/bin/sh ../../libtool --mode=link g++  -g -O2 -mcpu=i686 -march=i686
-ffast-math -pipe   -o avimake  avimake.o ../../lib/libaviplay.la
-L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread -L/usr/X11R6/lib
-lSM -lICE  -lXxf86dga -lXxf86vm -lXi -lXft -lXv -lXext -lX11  -ljpeg -lnsl
-ldl
g++ -g -O2 -mcpu=i686 -march=i686 -ffast-math -pipe -o .libs/avimake
avimake.o -Wl,-rpath -Wl,/usr/local/lib  ../../lib/.libs/libaviplay.so -lm
-L/usr/local/lib -lm -L/opt/gnome/lib -lm -L/usr/X11R6/lib -lm
/opt/gnome/lib/libesd.so -lm -lm
/opt/gnome/lib/libaudiofile.so -lm -lm -lm -lm -lm /usr/local/lib/libSDL.so
-lm
-lesd -laudiofile -lm /usr/local/lib/libaa.so -lpthread -lSM -lICE
-lXxf86dga -lXxf86vm -lXi -lXft -lXv -lXext -lX11 -ljpeg -lnsl -ldl
-Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/opt/gnome/lib
avimake.o: In function atalError type_info function':
/demo/mplayer/avifile-CVS/avifile-0.6/samples/misc/../../include/avm_stl.h(.text+0x83):
undefined reference to err'
/demo/mplayer/avifile-CVS/avifile-0.6/samples/misc/../../include/avm_stl.h(.text+0x88):
undefined reference to tream::operator<<(char const *)'
/demo/mplayer/avifile-CVS/avifile-0.6/samples/misc/../../include/avm_stl.h(.text+0x91):
undefined reference to tream::operator<<(char const *)'
...

but as it's in samples/misc, i don't care. make -k worked, other files
compile well.

anyway i have an idea bout what's wrong with a-v sync here.

======= STREAM Header =======
Type: auds   FCC:  (0)
Flags: 0
Priority: 0   Language: 0
InitialFrames: 0
Rate: 48000/1152 = 41.667
Start: 0   Len: 6433
Suggested BufferSize: 23040
Quality 0
Sample size: 0
======= WAVE Format =======
Format Tag: 85 (0x55)
Channels: 2
Samplerate: 48000
avg byte/sec: 26686
Block align: 1152
bits/sample: 0
cbSize: 12

so Block align is 1152.
according to Avery Lee's paper on dshow demuxer bug (making vbr audio
possible) the dshow avi demuxer rounds up chunk size to Block align value.
so, for normal vbr files, where chunks are small (smaller than 1152 bytes)
it works well, and teh demuxer handles it as CBR (due to rounded-up
chunksizes are constant). but, in this file, due to zeroes, the chunk sizes
are bad:

    0:  01wb     0  00000004  len: 23040  pos:      0->  0.000       0->0.000
    1:  01wb     0  00005A0C  len:  1152  pos:  23040->  1.229       1->0.042
    2:  01wb     0  00005E94  len:  2304  pos:  24192->  1.290       2->0.083
    3:  01wb     0  0000679C  len:  2304  pos:  26496->  1.413       3->0.125
    4:  01wb     0  000070A4  len:  1152  pos:  28800->  1.536       4->0.167
    5:  01wb     0  0000752C  len:  2304  pos:  29952->  1.598       5->0.209
    6:  01wb     0  00007E34  len:  2304  pos:  32256->  1.721       6->0.250
    7:  01wb     0  0000873C  len:  2304  pos:  34560->  1.843       7->0.292
    8:  01wb     0  00009044  len:  1152  pos:  36864->  1.966       8->0.334
    9:  01wb     0  000094CC  len:  2304  pos:  38016->  2.028       9->0.375
   10:  01wb     0  00009DD4  len:  2304  pos:  40320->  2.151      10->0.417
...

so this rounding thing doesn't work the same way.
it probably handles the 2304 byte chunks as 2 frames, so it may cause a-v
desync. what do you think?


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu

_______________________________________________
Avifile mailing list
[EMAIL PROTECTED]
http://prak.org/mailman/listinfo/avifile

Reply via email to