avidemux: Pass through seek event seqnums in all SEGMENT/EOS events and SEGMENT_DONE...
[platform/upstream/gst-plugins-good.git] / ext / wavpack / gstwavpackenc.h
index 0925b08..26a5b11 100644 (file)
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WAVPACK_ENC_H__
 #define __GST_WAVPACK_ENC_H__
 
 #include <gst/gst.h>
+#include <gst/audio/gstaudioencoder.h>
 
 #include <wavpack/wavpack.h>
-#include <wavpack/md5.h>
 
 G_BEGIN_DECLS
-
 #define GST_TYPE_WAVPACK_ENC \
   (gst_wavpack_enc_get_type())
 #define GST_WAVPACK_ENC(obj) \
@@ -37,9 +36,8 @@ G_BEGIN_DECLS
   (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_WAVPACK_ENC,GstWavpackEnc))
 #define GST_IS_WAVPACK_ENC(obj) \
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_WAVPACK_ENC))
-#define GST_IS_WAVPACK_ENC_CLASS(obj) \
+#define GST_IS_WAVPACK_ENC_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_WAVPACK_ENC))
-
 typedef struct _GstWavpackEnc GstWavpackEnc;
 typedef struct _GstWavpackEncClass GstWavpackEncClass;
 
@@ -47,15 +45,15 @@ typedef struct
 {
   gboolean correction;
   GstWavpackEnc *wavpack_enc;
+  gboolean passthrough;
 } GstWavpackEncWriteID;
 
 
 struct _GstWavpackEnc
 {
-  GstElement element;
+  GstAudioEncoder element;
 
-  /*< private >*/
-  GstPad *sinkpad, *srcpad;
+  /*< private > */
   GstPad *wvcsrcpad;
 
   GstFlowReturn srcpad_last_return;
@@ -66,26 +64,37 @@ struct _GstWavpackEnc
 
   gint samplerate;
   gint channels;
-  gint width;
+  gint channel_mask;
+  gint8 channel_mapping[8];
+  gboolean need_channel_remap;
+  gint depth;
 
-  GstWavpackEncWriteID *wv_id;
-  GstWavpackEncWriteID *wvc_id;
+  GstWavpackEncWriteID wv_id;
+  GstWavpackEncWriteID wvc_id;
 
   guint mode;
-  gdouble bitrate;
+  guint bitrate;
+  gdouble bps;
   guint correction_mode;
   gboolean md5;
-  MD5_CTX *md5_context;
-  gboolean extra_processing;
+  GChecksum *md5_context;
+  guint extra_processing;
   guint joint_stereo_mode;
 
   void *first_block;
   int32_t first_block_size;
+
+  GstBuffer *pending_buffer;
+  gint32 pending_offset;
+  GstEvent *pending_segment;
+
+  GstClockTime timestamp_offset;
+  GstClockTime next_ts;
 };
 
 struct _GstWavpackEncClass
 {
-  GstElementClass parent;
+  GstAudioEncoderClass parent;
 };
 
 GType gst_wavpack_enc_get_type (void);
@@ -93,5 +102,4 @@ GType gst_wavpack_enc_get_type (void);
 gboolean gst_wavpack_enc_plugin_init (GstPlugin * plugin);
 
 G_END_DECLS
-
 #endif /* __GST_WAVPACK_ENC_H__ */