[MPlayer-dev-eng] [PATCH] real demuxer fix V3

Balatoni Denes pnis at coder.hu
Thu Feb 13 00:36:12 CET 2003


first of all I might misunderstnad the jargon
so B frame is what has the correct timestamp and I/P
is with the timestamp ahead of current time?
i assume this 

[...]
[info about b frames in other formats]
good to know, thanks

> it's quite easy job anyway, just print that byte in binary for every frame,
> and then the timestamps (the LSB part from frame header) and then check
> that which bits are significant for frame type. you can expect
> IBBPBBPBBPBBIBBP.. structure, but it's clearly visible from the timestamps.
> if you're unable to do it, tell me that instead of flaming about the patch.
the main reason why it took me ten hours, is because i was looking at s[0]
and the timestamps. for all sample movies I have (most of what' son mphq)
found:
1x0? i/p
<1x18 i/p
>0x18 b
didn't see any 0x2? or 0x3?
and for rv40 in addition:
0x4? i/p      
0x50 i/p
0x6? b
<0x78 b

those were all values for s[0] that I encountered
looking at this it is not obvious for me which bits do what
but eg. 
if( ( (fourcc='RV30') && (!(x&0x10)||!(x&0x08)) ) ||
    ( (fourcc='RV40') && ((x&0x1F)==0x40) ||
    ( (fourcc='RV50') && ((x&0x07)==0x50) ||
is not good
my best idea was what you can see in the latest patch 

and you are right the usual sequence is i/p b b b i/p b b b 
or i/p b i/p b
and the least significant 4 bits was some kind of counter or whatever (it was 
increasing sometimes)

and i put in a warning for non monotonious timestamp - when that happens there 
was probably a missed i/p frame or misrecognized b frame

>
> also did you notice that vd_realvid has an commented debug part (unless
> alex removd at cleanup) to get the codec do this calculation, so you can
> verify if your math is correct. i've did it for rv30 thus i'm sure my code
> (what you called broken) is 100% correct, at least for samples i had that
> time.
i didn't call it broken, at least I didn't intend to do so. it did break on 
certain occasions, but that was lack of some features
and of course knowing there is a timestamp in the header was more than usefull 
for me too, which was rev.enginereed by you probably 
iirc it was mostly you who called anybodies code broken;)

anyhow I didn't know about that debug code, I will look at it.

bye
Denes





More information about the MPlayer-dev-eng mailing list