Re: bypassing PTS in video filter layer

Arpi <[email protected]>
Newsgroups gmane.comp.video.mplayer.g2.devel
Message-ID <[email protected]>
Hi,

> > any better ideas?
> 
> IMO it should be much simpler than this. If the frames are being
> dropped at the codec/demuxer end (because of 0-byte skipped frames in
> .avi container and such, or nonrecoverable decoding errors or
> whatever) then the codec/demuxer layer or the wrapper between codec
> and vf layer should just adjust the relative_pts of the next frame it
> sends out to account for any dropped frames in between.

> On the other hand, if the frames are being dropped by a filter, it
> seems to me that the filter should be responsible for pts accounting.
> This is already the case for filters like inverse telecine that don't
> actually 'drop' frames, but which have a non-1-to-1 correspondence
> between input and output frames, so it seems like it'd be ok for other
> filters (dint, decimate, etc.) which drop frames to do the same.

you're right, as usual :)
i'll go for this.
(did you notice that in last release relative_pts is also in the struct?:))

> BTW, I was thinking that (non-hard) framedrop for slow cpu and for
> output to fixed-fps container (for encoding) or vo should be an actual
> filter, rather than just part of the player/encoder loop. Then the
> user could insert it at an arbitrary position in the chain --
> certainly after inverse telecine or temporal noise filters, but before
> expensive swscaler, etc.

fixed-fps output is clean to be implemented as a filter.
(maybe autoinserted for fixed-fps formats encoding)
(btw we could develop filter which can interpolate images at fps upsampling,
maybe by reusing some MC info exported by codec... :))

but for slow-cpu (and also slow-vga) type framedrop i think it's
more than a filter. actually it's a drop signal to the codec to do decoding
as fast as possible (ie. skip B frames, postprocessing etc) and skip all teh
filtering and display. The special case of temporal filters is already
hdnaled in the vf_process_image(), ie. drop 'signal' is not delivered above
the last filter needing all frames.


A'rpi / Astral & ESP-team

--
Developer of MPlayer G2, the Movie Framework for all - http://www.MPlayerHQ.hu
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.