]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/audio/audio_decoder.cpp
2.0. audio:
[casparcg] / modules / ffmpeg / producer / audio / audio_decoder.cpp
index dd0a9e58675e55e488a5775fa716183d137fbed0..a71c672c25271f23c474f59fb00aecefbc2e535e 100644 (file)
@@ -95,9 +95,9 @@ public:
                packets_.push(packet);\r
        }       \r
        \r
-       std::vector<std::shared_ptr<std::vector<int32_t>>> poll()\r
+       std::vector<std::shared_ptr<core::audio_buffer>> poll()\r
        {\r
-               std::vector<std::shared_ptr<std::vector<int32_t>>> result;\r
+               std::vector<std::shared_ptr<core::audio_buffer>> result;\r
 \r
                if(packets_.empty())\r
                        return result;\r
@@ -123,7 +123,7 @@ public:
                return result;\r
        }\r
 \r
-       std::vector<std::shared_ptr<std::vector<int32_t>>> empty_poll()\r
+       std::vector<std::shared_ptr<core::audio_buffer>> empty_poll()\r
        {\r
                auto packet = packets_.front();\r
                packets_.pop();\r
@@ -131,10 +131,10 @@ public:
                if(!packet)                     \r
                        return boost::assign::list_of(nullptr);\r
                \r
-               return boost::assign::list_of(std::make_shared<std::vector<int32_t>>(format_desc_.audio_samples_per_frame, 0)); \r
+               return boost::assign::list_of(std::make_shared<core::audio_buffer>(format_desc_.audio_samples_per_frame, 0));   \r
        }\r
 \r
-       std::shared_ptr<std::vector<int32_t>> decode(AVPacket& pkt)\r
+       std::shared_ptr<core::audio_buffer> decode(AVPacket& pkt)\r
        {               \r
                buffer1_.resize(AVCODEC_MAX_AUDIO_FRAME_SIZE*2);\r
                int written_bytes = buffer1_.size() - FF_INPUT_BUFFER_PADDING_SIZE;\r
@@ -152,7 +152,7 @@ public:
                const auto n_samples = buffer1_.size() / av_get_bytes_per_sample(AV_SAMPLE_FMT_S32);\r
                const auto samples = reinterpret_cast<int32_t*>(buffer1_.data());\r
 \r
-               return std::make_shared<std::vector<int32_t>>(samples, samples + n_samples);\r
+               return std::make_shared<core::audio_buffer>(samples, samples + n_samples);\r
        }\r
 \r
        bool ready() const\r
@@ -164,6 +164,6 @@ public:
 audio_decoder::audio_decoder(const safe_ptr<AVFormatContext>& context, const core::video_format_desc& format_desc) : impl_(new implementation(context, format_desc)){}\r
 void audio_decoder::push(const std::shared_ptr<AVPacket>& packet){impl_->push(packet);}\r
 bool audio_decoder::ready() const{return impl_->ready();}\r
-std::vector<std::shared_ptr<std::vector<int32_t>>> audio_decoder::poll(){return impl_->poll();}\r
+std::vector<std::shared_ptr<core::audio_buffer>> audio_decoder::poll(){return impl_->poll();}\r
 int64_t audio_decoder::nb_frames() const{return impl_->nb_frames_;}\r
 }
\ No newline at end of file