g2 & sh_video
D Richard Felker III <[email protected]>
| Newsgroups | gmane.comp.video.mplayer.g2.devel |
|---|---|
| Message-ID | <[email protected]> |
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? Rich