[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.
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