56 bool planar_output =
false,
57 uint32_t target_rate = 0);
70 return codec_context && swr_context && stream_index >= 0;
90 void drain_resampler_init();
109 [[nodiscard]] std::vector<FileRegion> extract_cue_regions(
const FFmpegDemuxContext& demux)
const;
115 [[nodiscard]]
const std::string&
last_error()
const {
return m_last_error; }
121 AVCodecContext* codec_context =
nullptr;
122 SwrContext* swr_context =
nullptr;
124 int stream_index = -1;
125 uint64_t total_frames = 0;
126 uint32_t sample_rate = 0;
127 uint32_t channels = 0;
132 bool setup_resampler(
bool planar_output, uint32_t target_rate);
bool is_valid() const
True if the codec and resampler are ready for decoding.
AudioStreamContext & operator=(AudioStreamContext &&)=delete
const std::string & last_error() const
AudioStreamContext(const AudioStreamContext &)=delete
AudioStreamContext & operator=(const AudioStreamContext &)=delete
AudioStreamContext()=default
AudioStreamContext(AudioStreamContext &&)=delete
RAII owner of one audio stream's codec and resampler state.
RAII owner of a single AVFormatContext and associated demux state.