summaryrefslogtreecommitdiff
path: root/convert.h
diff options
context:
space:
mode:
Diffstat (limited to 'convert.h')
-rw-r--r--convert.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/convert.h b/convert.h
new file mode 100644
index 0000000..04fcc4b
--- /dev/null
+++ b/convert.h
@@ -0,0 +1,37 @@
+/*
+ * convert.h
+ */
+
+#ifndef __CONVERT_H
+#define __CONVERT_H
+
+#include "postdata.h"
+#include "mpa-frame.h"
+#include "a-tools.h"
+
+extern "C" {
+#include <avcodec.h>
+}
+
+
+class cConvert {
+private:
+ AVCodec *decoder_codec, *encoder_codec;
+ AVCodecContext *decoder_ctx, *encoder_ctx;
+ int decoder_open, encoder_open;
+
+ abuffer decoder_buf, encoder_buf, mpa_frame_buf;
+
+ void init_decoder(void);
+ void decode_mpa_frame(mpeg_audio_frame *mpa_frame);
+ void init_encoder(const char *codec, int bit_rate, int sample_rate,
+ int channels);
+public:
+ cConvert(const cPostData &postdata);
+ ~cConvert();
+
+ abuffer *reencode_mpa_frame(mpeg_audio_frame *mpa_frame,
+ float volume = 1);
+};
+
+#endif /* __CONVERT_H */