[MPlayer-G2-dev] bypassing PTS in video filter layer

Michael Niedermayer michaelni at gmx.at
Sat Aug 2 23:17:39 CEST 2003


Hi

On Saturday 02 August 2003 22:59, Arpi wrote:
> Hi,
>
> > > - it's not completely true that I frames are keyframes in mpeg2. there
> > > are streams (actually most of them i've seen) using partial update in I
> > > frames, ie. you need to decode 2 or more I frames to get the complete
> > > picture, otherwise you'll see checkboard-liek thing. just try to seek
> > > in some mpeg2 streams... (mostly true for DVD and DVB files). I frames
> > > don't use prediction (ie. reference frames), so you can seek to them,
> > > but also don't always cover the whole image area, so you can't simply
> > > skip them.
> >
> > hmm, do u say that there are streams which have skiped MBs / skiped
> > slices in I frames? the syntax would allow that but i thought thats not
> > allowed in the
>
> yes, skipped MBs. it looks like a checkboard, every 2nd or 3rd MB is
> skipped, so you need 2 or 3 I/P frames to get the whole picture.
btw, mpeg2 std:
----
           There shall be no skipped macroblocks in I-pictures except when
           either       picture_spatial_scalable_extension()  follows   the
           picture_header() of the current picture.
           or    sequence_scalable_extension() is present in the  bitstream
           and scalable_mode = "SNR scalability".
----

>
> try any VOB (i've tried matrix.vob and
> apollo_440_-_lost_in_space(jason_nevis_lunar_landing).vob, the later is on
> mphq too) with mplayer file.vob -nosound -fps 2 and then seek.
hmm, i only see the trashed b frames ...
try:
-----mpeg12.c.diff---
-if(s2->last_picture_ptr==NULL && s2->pict_type==B_TYPE) break;
+if(s2->pict_type==B_TYPE) break;
---------------------
this will skip all b frames

>
> > standard or did u mean I field pictures, for these 2 are needed and the
>
> no
>
> > btw, mplayer should call AVCodec.flush() before seeking to avoid trashed
> > B frames, as the "future" refrence frame is wrong immediately after
> > seeking
>
> hmm. does it also flush internal buffers/states when using 'truncated'
> mode? (i mean passing mpeg frame data by small chunks instead as whole
> frame ?)
no, but it should, ill fix that, should be quite easy

[...]
-- 
Michael
level[i]= get_vlc(); i+=get_vlc();		(violates patent EP0266049)
median(mv[y-1][x], mv[y][x-1], mv[y+1][x+1]);	(violates patent #5,905,535)
buf[i]= qp - buf[i-1];				(violates patent #?)
for more examples, see http://mplayerhq.hu/~michael/patent.html
stop it, see http://petition.eurolinux.org & http://petition.ffii.org/eubsa/en



More information about the MPlayer-G2-dev mailing list