Re: bypassing PTS in video filter layer

Michael Niedermayer <[email protected]>
Newsgroups gmane.comp.video.mplayer.g2.devel
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.