Warning
TorchAudio’s C++ API is a prototype feature. API/ABI backward compatibility is not guaranteed.
Note
The top-level namespace has been changed from torchaudio to torio.
StreamReader has been renamed to StreamingMediaDecoder.
torio::io::StreamingMediaDecoder¶
StreamingMediaDecoder is the implementation used by Python equivalent and provides similar interface.
When working with custom I/O, such as in-memory data, StreamingMediaDecoderCustomIO class can be used.
Both classes have the same methods defined, so their usages are the same.
Constructors¶
StreamingMediaDecoder¶
- 
class StreamingMediaDecoder¶
- Fetch and decode audio/video streams chunk by chunk. - Unnamed Group - private: int drain(); - //////////////////////////////////////////////////////////////////////////// Retrieval //////////////////////////////////////////////////////////////////////////// public: / / - / Pop one chunk from each output stream if it is available. std::vector<std::optional<Chunk>> pop_chunks(); - / - / 
Warning
doxygenfunction: Unable to resolve function “torio::io::StreamingMediaDecoder::StreamingMediaDecoder” with arguments (const std::string&, const std::optional<std::string>&, const c10::optional<OptionDict>&) in doxygen xml output for project “libtorio” from directory: cpp/xml. Potential matches:
- StreamingMediaDecoder(const std::string &src, const std::optional<std::string> &format = std::nullopt, const std::optional<OptionDict> &option = std::nullopt)
StreamingMediaDecoderCustomIO¶
Warning
doxygenclass: Cannot find class “torio::io::StreamingMediaDecoderCustomIO” in doxygen xml output for project “libtorio” from directory: cpp/xml
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoderCustomIO::StreamingMediaDecoderCustomIO” in doxygen xml output for project “libtorio” from directory: cpp/xml
Query Methods¶
find_best_audio_stream¶
- 
int64_t torio::io::StreamingMediaDecoder::find_best_audio_stream() const¶
- Find a suitable audio stream using heuristics from ffmpeg. - If successful, the index of the best stream (>=0) is returned. Otherwise a negative value is returned. 
find_best_video_stream¶
- 
int64_t torio::io::StreamingMediaDecoder::find_best_video_stream() const¶
- Find a suitable video stream using heuristics from ffmpeg. - If successful, the index of the best stream (0>=) is returned. otherwise a negative value is returned. 
get_metadata¶
- 
OptionDict torio::io::StreamingMediaDecoder::get_metadata() const¶
- Fetch metadata of the source media. 
num_src_streams¶
- 
int64_t torio::io::StreamingMediaDecoder::num_src_streams() const¶
- Fetch the number of source streams found in the input media. - The source streams include not only audio/video streams but also subtitle and others. 
get_src_stream_info¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::get_src_stream_info” in doxygen xml output for project “libtorio” from directory: cpp/xml
num_out_streams¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::num_out_streams” in doxygen xml output for project “libtorio” from directory: cpp/xml
get_out_stream_info¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::get_out_stream_info” in doxygen xml output for project “libtorio” from directory: cpp/xml
is_buffer_ready¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::is_buffer_ready” in doxygen xml output for project “libtorio” from directory: cpp/xml
Configure Methods¶
add_audio_stream¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::add_audio_stream” in doxygen xml output for project “libtorio” from directory: cpp/xml
add_video_stream¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::add_video_stream” in doxygen xml output for project “libtorio” from directory: cpp/xml
remove_stream¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::remove_stream” in doxygen xml output for project “libtorio” from directory: cpp/xml
Stream Methods¶
seek¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::seek” in doxygen xml output for project “libtorio” from directory: cpp/xml
process_packet¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::process_packet” in doxygen xml output for project “libtorio” from directory: cpp/xml
process_packet_block¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::process_packet_block” in doxygen xml output for project “libtorio” from directory: cpp/xml
process_all_packets¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::process_all_packets” in doxygen xml output for project “libtorio” from directory: cpp/xml
fill_buffer¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::fill_buffer” in doxygen xml output for project “libtorio” from directory: cpp/xml
Retrieval Methods¶
pop_chunks¶
Warning
doxygenfunction: Cannot find function “torio::io::StreamingMediaDecoder::pop_chunks” in doxygen xml output for project “libtorio” from directory: cpp/xml
Support Structures¶
Chunk¶
Warning
doxygenstruct: Cannot find class “torio::io::Chunk” in doxygen xml output for project “libtorio” from directory: cpp/xml
SrcStreaminfo¶
- 
struct SrcStreamInfo¶
- Information about source stream found in the input media. - COMMON MEMBERS - 
AVMediaType media_type¶
- The stream media type. - Please see refer to the FFmpeg documentation for the available values - Todo:
- Introduce own enum and get rid of FFmpeg dependency 
 
 - 
const char *codec_name = "N/A"¶
- The name of codec. 
 - 
const char *codec_long_name = "N/A"¶
- The name of codec in long, human friendly form. 
 - Unnamed Group - / / - / Width int width = -1; - / Height int height = -1; - / Frame rate AVRational frame_rate{0, 1}; - / - 
torch::Tensor frames¶
- }; - / Stores decoded frames and metadata struct Chunk { / Audio/video frames. / / For audio, the shape is - [time, num_channels], and the- dtype/ depends on output stream configurations. / / For video, the shape is- [time, channel, height, width], and / the- dtypeis- torch.uint8.
 - 
double pts¶
- Presentation time stamp of the first frame, in second. 
 
- 
AVMediaType media_type¶
OutputStreaminfo¶
Warning
doxygenstruct: Cannot find class “torio::io::OutputStreamInfo” in doxygen xml output for project “libtorio” from directory: cpp/xml