15 #include <libavcodec/avcodec.h> 16 #include <libavformat/avformat.h> 17 #include <libswresample/swresample.h> 32 ssize_t Encode(uint8_t* pbtStream,
size_t nNumBytesRead)
override;
33 bool Close()
override;
36 static int avio_write_callback(
void* opaque, uint8_t* buf,
int buf_size);
37 static int64_t avio_seek_callback(
void* opaque, int64_t offset,
int whence);
39 void SetTag(
const std::string& tag,
const std::string& value);
41 AVSampleFormat GetInputFormat(
int inBitsPerSample);
43 AVFormatContext* m_formatCtx{
nullptr};
44 AVCodecContext* m_codecCtx{
nullptr};
45 SwrContext* m_swrCtx{
nullptr};
46 AVStream* m_stream{
nullptr};
47 AVSampleFormat m_inFormat;
48 AVSampleFormat m_outFormat;
56 static constexpr
size_t BUFFER_SIZE = 4096;
58 unsigned int m_neededFrames{0};
59 size_t m_neededBytes{0};
60 uint8_t* m_buffer{
nullptr};
61 size_t m_bufferSize{0};
62 AVFrame* m_bufferFrame{
nullptr};
63 uint8_t* m_resampledBuffer{
nullptr};
64 size_t m_resampledBufferSize{0};
65 AVFrame* m_resampledFrame{
nullptr};
66 bool m_needConversion{
false};
67 int64_t m_samplesCount{0};
68 int64_t m_samplesCountMultiply{1000};
Definition: EncoderFFmpeg.h:25
Definition: AudioDecoder.h:18