Add opus codec test

This commit is contained in:
dijunkun
2023-11-21 22:30:25 -08:00
parent 19506af831
commit e44c5b1cc7
12 changed files with 368 additions and 2 deletions

View File

@@ -0,0 +1,33 @@
#ifndef __OPUSENCODERIMPL_H
#define __OPUSENCODERIMPL_H
#include <mutex>
#include <queue>
#include <thread>
#include <vector>
#include "base_type.h"
#include "opus/opus.h"
class OpusEncoderImpl {
private:
OpusEncoder *encoder;
const int channel_num;
int sample_rate;
std::queue<StreamInfo> info_queue;
std::queue<unsigned char> pcm_queue;
std::mutex mutex;
bool isRuning = true;
std::mutex access_mutex;
std::unique_ptr<std::thread> m_thread;
public:
OpusEncoderImpl(int sampleRate, int channel);
void Feed(unsigned char *data, int len);
bool PopFrame(StreamInfo &info);
void EncodeRun();
void Stop();
~OpusEncoderImpl();
};
#endif