X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=audio_encoder.h;fp=audio_encoder.h;h=8a08af5a1df25b91d967be86a6884dd3b1a3f680;hb=319b807ceede52e45cf07f712259b1a42ec3cc54;hp=786d36498bec525def5786e702f200bf79f189fb;hpb=b5e7ce923d2acf68a975273be231b3ef9e4f6493;p=nageru diff --git a/audio_encoder.h b/audio_encoder.h index 786d364..8a08af5 100644 --- a/audio_encoder.h +++ b/audio_encoder.h @@ -3,6 +3,7 @@ #ifndef _AUDIO_ENCODER_H #define _AUDIO_ENCODER_H 1 +#include #include #include @@ -14,6 +15,14 @@ extern "C" { #include "mux.h" +static inline void avcodec_parameters_free_unique(AVCodecParameters *codec_par) +{ + avcodec_parameters_free(&codec_par); +} + +typedef std::unique_ptr +AVCodecParametersWithDeleter; + class AudioEncoder { public: AudioEncoder(const std::string &codec_name, int bit_rate, const AVOutputFormat *oformat); @@ -25,7 +34,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);