asfdemux: fix performance issue, especially with high-bitrate streams
[glsdk/gst-plugins-ugly0-10.git] / gst / asfdemux / asfpacket.h
index 283088101c78ca9f94498e72e1081a91ad4a77da..15ffef5b0a336c3f105db628bc81a193b0b8ba3f 100644 (file)
@@ -32,6 +32,8 @@ typedef struct {
   guint         mo_number;         /* media object number (unused)           */
   guint         mo_offset;         /* offset (timestamp for compressed data) */
   guint         mo_size;           /* size of media-object-to-be, or 0       */
+  guint         buf_filled;        /* how much of the mo data we got so far  */
+  GstBuffer    *buf;               /* buffer to assemble media-object or NULL*/
   guint         rep_data_len;      /* should never be more than 256, since   */
   guint8        rep_data[256];     /* the length should be stored in a byte  */
   GstClockTime  ts;
@@ -41,7 +43,6 @@ typedef struct {
   gboolean      interlaced;        /* default: FALSE */
   gboolean      tff;
   gboolean      rff;
-  GstBuffer    *buf;
 } AsfPayload;
 
 typedef struct {
@@ -58,7 +59,7 @@ typedef struct {
 gboolean   gst_asf_demux_parse_packet (GstASFDemux * demux, GstBuffer * buf);
 
 #define gst_asf_payload_is_complete(payload) \
-    (GST_BUFFER_SIZE ((payload)->buf) >= (payload)->mo_size)
+    ((payload)->buf_filled >= (payload)->mo_size)
 
 G_END_DECLS