summaryrefslogtreecommitdiffstats
path: root/gst/mpeg2sub/gstmpeg2subt.h
diff options
context:
space:
mode:
authorJan Schmidt <thaytan@mad.scientist.com>2004-04-01 11:48:27 +0000
committerJan Schmidt <thaytan@mad.scientist.com>2004-04-01 11:48:27 +0000
commitbc4cb91fab1a4efca7e0addf7a327f397b9ba2dd (patch)
tree5c53e0af75d5df62749bc0ea9ff89eb4fc2f531f /gst/mpeg2sub/gstmpeg2subt.h
parent23fb6b5caeeba3badc8ef414fbfff2633b8aa542 (diff)
downloadgst-plugins-bad-bc4cb91fab1a4efca7e0addf7a327f397b9ba2dd.tar.gz
gst-plugins-bad-bc4cb91fab1a4efca7e0addf7a327f397b9ba2dd.tar.bz2
gst-plugins-bad-bc4cb91fab1a4efca7e0addf7a327f397b9ba2dd.zip
a52dec: Use a debug category, Output timestamps correctly
Original commit message from CVS: a52dec: Use a debug category, Output timestamps correctly Emit tag info, Handle events, tell liba52dec about cpu capabilities so it can use MMX etc. dvdec: Fix a crasher accessing invalid memory dvdnavsrc:Some support for byte-format seeking. Small fixes for still frames and menu button overlays mpeg2dec: Use a debug category. Adjust the report level of several items to LOG. Call mpeg2_custom_fbuf to mark our buffers as 'custom buffers' so it doesn't lose the GstBuffer pointer navseek: Add the navseek debug element for seeking back and forth in a video stream using arrow keys. mpeg2subt:Pretty much a complete rewrite. Now a loopbased element. May still require work to properly synchronise subtitle buffers. mpegdemux: dvddemux: Don't attempt to create subbuffers of size 0 Reduce a couple of error outputs to warnings. y4mencode:Output the y4m frame header correctly
Diffstat (limited to 'gst/mpeg2sub/gstmpeg2subt.h')
-rw-r--r--gst/mpeg2sub/gstmpeg2subt.h47
1 files changed, 40 insertions, 7 deletions
diff --git a/gst/mpeg2sub/gstmpeg2subt.h b/gst/mpeg2sub/gstmpeg2subt.h
index 29f60b27..8a078171 100644
--- a/gst/mpeg2sub/gstmpeg2subt.h
+++ b/gst/mpeg2sub/gstmpeg2subt.h
@@ -44,26 +44,59 @@ extern "C" {
typedef struct _GstMpeg2Subt GstMpeg2Subt;
typedef struct _GstMpeg2SubtClass GstMpeg2SubtClass;
+/* Hold premultimplied colour values */
+typedef struct YUVA_val {
+ guint16 Y;
+ guint16 U;
+ guint16 V;
+ guint16 A;
+} YUVA_val;
+
struct _GstMpeg2Subt {
GstElement element;
GstPad *videopad,*subtitlepad,*srcpad;
- GstBuffer *partialbuf; /* previous buffer (if carryover) */
-
- gboolean have_title;
+ GstBuffer *partialbuf; /* Collect together subtitle buffers until we have a full control sequence */
+ GstBuffer *hold_frame; /* Hold back one frame of video */
+ GstBuffer *still_frame;
guint16 packet_size;
guint16 data_size;
gint offset[2];
- guchar color[5];
- guchar trans[4];
- guint duration;
+ YUVA_val palette_cache[4];
- gint width, height;
+ /*
+ * Store 1 line width of U, V and A respectively.
+ * Y is composited direct onto the frame.
+ */
+ guint16 *out_buffers[3];
+ guchar subtitle_index[4];
+ guchar menu_index[4];
+ guchar subtitle_alpha[4];
+ guchar menu_alpha[4];
+ guint32 current_clut[16];
+
+ gboolean have_title;
+ gboolean forced_display;
+
+ GstClockTime start_display_time;
+ GstClockTime end_display_time;
+ gint left, top,
+ right, bottom;
+ gint clip_left, clip_top,
+ clip_right, clip_bottom;
+
+ gint in_width, in_height;
+ gint current_button;
+
+ GstData *pending_video_buffer;
+ GstClockTime next_video_time;
+ GstData *pending_subtitle_buffer;
+ GstClockTime next_subtitle_time;
};
struct _GstMpeg2SubtClass {