mirror of
https://github.com/mpv-player/mpv
synced 2025-01-18 04:51:52 +00:00
early draft
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4869 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
b8cf61a944
commit
8bb7aebf00
34
DOCS/tech/libmpcodecs.txt
Normal file
34
DOCS/tech/libmpcodecs.txt
Normal file
@ -0,0 +1,34 @@
|
||||
# video decoder:
|
||||
|
||||
int init(sh_video) -> loads codec dll, check if available and it accepts header if any
|
||||
|
||||
int control(sh_video,cmd,param,...) -> various set/get/query functions
|
||||
|
||||
int decode(sh_video,framedrop) -> decode frame, callbacks to config/get_surface
|
||||
|
||||
int uninit(sh_video)
|
||||
|
||||
# callbacks for video decoder:
|
||||
|
||||
mpcodecs_config_vo(sh_video, w, h, preferred_outfmt){
|
||||
// it will be called by codec (either init() or decode()) when it gets
|
||||
// enough info to know image dimensions, colorspaces and buffering type
|
||||
|
||||
// this func should use control() to get/set parameters for a given outfmt
|
||||
// (like supported buffering types, stride limitations, etc) or to
|
||||
// query and select other colorspace.
|
||||
|
||||
}
|
||||
|
||||
// possible buffer setups:
|
||||
- 1 static overwrite only (partial update type codecs: cvid, fli, vfw etc)
|
||||
- 1+ independent temp writeonly (I-only mpegs, jpeg, mjpeg etc)
|
||||
- 2+ static read/write (I+P mpegs)
|
||||
- 2+ static read/write and 1+ temp writeonly (I+P+B mpegs)
|
||||
|
||||
image_t* mpcodecs_get_surface(sh_video, flags){
|
||||
// flags:
|
||||
// 0x1 - read (make it readable -> don't put to slow video ram)
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user