]> git.sesse.net Git - nageru/blobdiff - audio_encoder.h
Remove some use of the AVStream::codec parameter (not all). Fixes some deprecation...
[nageru] / audio_encoder.h
index 786d36498bec525def5786e702f200bf79f189fb..8a08af5a1df25b91d967be86a6884dd3b1a3f680 100644 (file)
@@ -3,6 +3,7 @@
 #ifndef _AUDIO_ENCODER_H
 #define _AUDIO_ENCODER_H 1
 
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -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<AVCodecParameters, decltype(avcodec_parameters_free_unique)*>
+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<float> &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);