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 617a2f6..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 "md5.h"
 
 G_BEGIN_DECLS
 #define GST_TYPE_WAVPACK_ENC \
@@ -45,15 +45,15 @@ typedef struct
 {
   gboolean correction;
   GstWavpackEnc *wavpack_enc;
+  gboolean passthrough;
 } GstWavpackEncWriteID;
 
 
 struct _GstWavpackEnc
 {
-  GstElement element;
+  GstAudioEncoder element;
 
   /*< private > */
-  GstPad *sinkpad, *srcpad;
   GstPad *wvcsrcpad;
 
   GstFlowReturn srcpad_last_return;
@@ -64,26 +64,37 @@ struct _GstWavpackEnc
 
   gint samplerate;
   gint channels;
+  gint channel_mask;
+  gint8 channel_mapping[8];
+  gboolean need_channel_remap;
   gint depth;
 
   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);