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 /libmpdemux/demuxer.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 'libmpdemux/demuxer.c')
-rw-r--r-- | libmpdemux/demuxer.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index d4c43ad657..6ae2ca8b7f 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -21,6 +21,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <assert.h> #include <unistd.h> #include <sys/types.h> @@ -846,6 +847,15 @@ int ds_get_packet_sub(demux_stream_t *ds, unsigned char **start) return len; } +struct demux_packet *ds_get_packet2(struct demux_stream *ds) +{ + // This shouldn't get used together with partial reads + assert(ds->buffer_pos >= ds->buffer_size); + ds_fill_buffer(ds); + ds->buffer_pos = ds->buffer_size; + return ds->current; +} + double ds_get_next_pts(demux_stream_t *ds) { demuxer_t *demux = ds->demuxer; |