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/dec_video.c | |
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/dec_video.c')
-rw-r--r-- | libmpcodecs/dec_video.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libmpcodecs/dec_video.c b/libmpcodecs/dec_video.c index f49eb79218..8dbd733fd7 100644 --- a/libmpcodecs/dec_video.c +++ b/libmpcodecs/dec_video.c @@ -393,7 +393,8 @@ int init_best_video_codec(sh_video_t *sh_video, char **video_codec_list, return 1; // success } -void *decode_video(sh_video_t *sh_video, unsigned char *start, int in_size, +void *decode_video(sh_video_t *sh_video, struct demux_packet *packet, + unsigned char *start, int in_size, int drop_frame, double pts) { mp_image_t *mpi = NULL; @@ -433,7 +434,7 @@ void *decode_video(sh_video_t *sh_video, unsigned char *start, int in_size, } if (sh_video->vd_driver->decode2) { - mpi = sh_video->vd_driver->decode2(sh_video, start, in_size, + mpi = sh_video->vd_driver->decode2(sh_video, packet, start, in_size, drop_frame, &pts); } else { mpi = sh_video->vd_driver->decode(sh_video, start, in_size, |