[MPlayer-G2-dev] g2 & sh_video

D Richard Felker III dalias at aerifal.cx
Wed Dec 17 23:41:03 CET 2003

Looking at the sh_video structure (which I must admit I never
understood very well in G1 ;) it seems like a lot of it is obsolete
with the new video layer. Aside from holding some codec parameters
obtained from the demuxer layer, its main purpose seems to have been
providing a point for the player to monitor and control a/v sync,
decoding, and seeking.

But now:

1. The entry point for decoding has been moved to the video pipeline,
   and decoding is driven from the output end rather than the decoder
   end. And the vd wrapper no longer exists; decoders are native nodes
   in the video pipeline that use the same api.

2. A/V sync is performed on the final output frames (possibly with
   adjusted pts) rather than on the original decoded frames.

3. NEW: I recommend that seeking also be performed through the vp
   layer, as a control that passes up the pipeline to the codec and
   demuxer. This way editlists can be implemented as a filter that
   remaps pts and seek requests, allowing full interactive seeking in
   an editlist'ed video.

With these changes (or even with just #1 and 2), most of the sh_video
structure is useless. But there's a little bit that's still useful --
the actual "stream header" data from the demuxer, i.e. the stuff that
sh_video was probably meant for in the beginning. Should we keep
sh_video, and just strip it down to this minimal level, or should the
data be moved to some other (demuxer?) structures?


More information about the MPlayer-G2-dev mailing list