diff options
author | Uoti Urpala <uau@mplayer2.org> | 2011-08-20 20:25:43 +0300 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-08-20 20:25:43 +0300 |
commit | 9c7c4e5b7dd7745ad071ec330abab49a8f4e314b (patch) | |
tree | fefbae9c04f401be71f363129bbc30783c19f8f6 /libmpcodecs/vd.h | |
parent | e2ca8853a6a26ca1afcababea0e4a743b525daa2 (diff) | |
download | mpv-9c7c4e5b7dd7745ad071ec330abab49a8f4e314b.tar.bz2 mpv-9c7c4e5b7dd7745ad071ec330abab49a8f4e314b.tar.xz |
core, demux, vd_ffmpeg: pass side data from demux_lavf to vd_ffmpeg
Pass the libavformat packet side_data field from demux_lavf to
vd_ffmpeg. Libavcodec/libavformat use this field for palette data, and
passing it is required for the playback of some paletted video codecs.
The implementation works by giving vd_ffmpeg a copy of the struct
demux_packet used to store the video packet (from which it can access
the avpacket field). The definition of struct demux_packet is moved to
new file demux_packet.h so that vd_ffmpeg.c can use it without
including all of demuxer.h.
Diffstat (limited to 'libmpcodecs/vd.h')
-rw-r--r-- | libmpcodecs/vd.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/libmpcodecs/vd.h b/libmpcodecs/vd.h index 76f3d00553..88837188f6 100644 --- a/libmpcodecs/vd.h +++ b/libmpcodecs/vd.h @@ -25,16 +25,19 @@ typedef mp_codec_info_t vd_info_t; +struct demux_packet; + /* interface of video decoder drivers */ typedef struct vd_functions { - const vd_info_t *info; - int (*init)(sh_video_t *sh); - void (*uninit)(sh_video_t *sh); - int (*control)(sh_video_t *sh,int cmd,void* arg, ...); - mp_image_t* (*decode)(sh_video_t *sh,void* data,int len,int flags); - struct mp_image *(*decode2)(struct sh_video *sh, void *data, int len, - int flags, double *reordered_pts); + const vd_info_t *info; + int (*init)(sh_video_t *sh); + void (*uninit)(sh_video_t *sh); + int (*control)(sh_video_t *sh,int cmd,void* arg, ...); + mp_image_t* (*decode)(sh_video_t *sh,void* data,int len,int flags); + struct mp_image *(*decode2)(struct sh_video *sh, struct demux_packet *pkt, + void *data, int len, int flags, + double *reordered_pts); } vd_functions_t; // NULL terminated array of all drivers |