summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_packet.h
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-08-20 20:25:43 +0300
committerUoti Urpala <uau@mplayer2.org>2011-08-20 20:25:43 +0300
commit9c7c4e5b7dd7745ad071ec330abab49a8f4e314b (patch)
treefefbae9c04f401be71f363129bbc30783c19f8f6 /libmpdemux/demux_packet.h
parente2ca8853a6a26ca1afcababea0e4a743b525daa2 (diff)
downloadmpv-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/demux_packet.h')
-rw-r--r--libmpdemux/demux_packet.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/libmpdemux/demux_packet.h b/libmpdemux/demux_packet.h
new file mode 100644
index 0000000000..30cd0010f5
--- /dev/null
+++ b/libmpdemux/demux_packet.h
@@ -0,0 +1,39 @@
+/*
+ * This file is part of mplayer2.
+ *
+ * mplayer2 is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * mplayer2 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with mplayer2; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef MPLAYER_DEMUX_PACKET_H
+#define MPLAYER_DEMUX_PACKET_H
+
+#include <sys/types.h>
+
+// 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;
+
+#endif /* MPLAYER_DEMUX_PACKET_H */