torchaudio/csrc/ffmpeg/decoder.h (19 lines of code) (raw):

#pragma once #include <torchaudio/csrc/ffmpeg/ffmpeg.h> namespace torchaudio { namespace ffmpeg { class Decoder { AVCodecContextPtr pCodecContext; public: // Default constructable Decoder(AVCodecParameters* pParam); // Custom destructor to clean up the resources ~Decoder() = default; // Non-copyable Decoder(const Decoder&) = delete; Decoder& operator=(const Decoder&) = delete; // Movable Decoder(Decoder&&) = default; Decoder& operator=(Decoder&&) = default; // Process incoming packet int process_packet(AVPacket* pPacket); // Fetch a decoded frame int get_frame(AVFrame* pFrame); // Flush buffer (for seek) void flush_buffer(); }; } // namespace ffmpeg } // namespace torchaudio