X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=audio_encoder.h;h=93adbafce954d6188f3d5ca86770ff7dace53f6c;hb=d3e48df512d9476d3849227067792a3537bb094e;hp=d627a9c281a6abd10bd42cc5e51f098a46b79412;hpb=e1a58f0f4e9cd05441f1e1b43fc4c83d1f862dd7;p=nageru diff --git a/audio_encoder.h b/audio_encoder.h index d627a9c..93adbaf 100644 --- a/audio_encoder.h +++ b/audio_encoder.h @@ -3,20 +3,25 @@ #ifndef _AUDIO_ENCODER_H #define _AUDIO_ENCODER_H 1 +#include +#include #include #include extern "C" { #include +#include #include #include } -#include "mux.h" +#include "ffmpeg_raii.h" + +class Mux; class AudioEncoder { public: - AudioEncoder(const std::string &codec_name, int bit_rate); + AudioEncoder(const std::string &codec_name, int bit_rate, const AVOutputFormat *oformat); ~AudioEncoder(); void add_mux(Mux *mux) { // Does not take ownership. @@ -25,7 +30,7 @@ public: void encode_audio(const std::vector &audio, int64_t audio_pts); void encode_last_audio(); - const AVCodecContext *get_ctx() { return ctx; } + AVCodecParametersWithDeleter get_codec_parameters(); private: void encode_audio_one_frame(const float *audio, size_t num_samples, int64_t audio_pts);