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.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 'libmpdemux/demuxer.h')
-rw-r--r-- | libmpdemux/demuxer.h | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/libmpdemux/demuxer.h b/libmpdemux/demuxer.h index 5585cf73ed..1b885f28d3 100644 --- a/libmpdemux/demuxer.h +++ b/libmpdemux/demuxer.h @@ -27,6 +27,7 @@ #include "bstr.h" #include "mpcommon.h" +#include "demux_packet.h" struct MPOpts; @@ -124,21 +125,6 @@ enum timestamp_type { // demux_lavf can pass lavf buffers using FF_INPUT_BUFFER_PADDING_SIZE instead #define MP_INPUT_BUFFER_PADDING_SIZE 8 -// Holds one packet/frame/whatever -typedef struct demux_packet { - int len; - double pts; - double duration; - double stream_pts; - off_t pos; // position in index (AVI) or file (MPG) - unsigned char *buffer; - int flags; // keyframe, etc - int refcount; // counter for the master packet, if 0, buffer can be free()d - struct demux_packet *master; //in clones, pointer to the master packet - struct demux_packet *next; - struct AVPacket *avpacket; // original libavformat packet (demux_lavf) -} demux_packet_t; - typedef struct demux_stream { int buffer_pos; // current buffer position int buffer_size; // current buffer size @@ -360,6 +346,7 @@ int ds_get_packet(struct demux_stream *ds, unsigned char **start); int ds_get_packet_pts(struct demux_stream *ds, unsigned char **start, double *pts); int ds_get_packet_sub(struct demux_stream *ds, unsigned char **start); +struct demux_packet *ds_get_packet2(struct demux_stream *ds); double ds_get_next_pts(struct demux_stream *ds); int ds_parse(struct demux_stream *sh, uint8_t **buffer, int *len, double pts, off_t pos); |