audio_stream.h 532 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include "audio_sampler.h"
  3. #include "stream.h"
  4. namespace ffmpeg {
  5. /**
  6. * Class uses FFMPEG library to decode one audio stream.
  7. */
  8. class AudioStream : public Stream {
  9. public:
  10. AudioStream(
  11. AVFormatContext* inputCtx,
  12. int index,
  13. bool convertPtsToWallTime,
  14. const AudioFormat& format);
  15. ~AudioStream() override;
  16. private:
  17. int initFormat() override;
  18. int copyFrameBytes(ByteStorage* out, bool flush) override;
  19. private:
  20. std::unique_ptr<AudioSampler> sampler_;
  21. };
  22. } // namespace ffmpeg