mediadecode_ffmpeg/
lib.rs1#![doc = include_str!("../README.md")]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![cfg_attr(docsrs, allow(unused_attributes))]
4#![deny(missing_docs)]
5
6mod adapter;
7mod audio;
8mod backend;
9pub mod boundary;
10mod buffer;
11pub mod channel_layout;
12mod codec_id;
13pub mod convert;
14mod decoder;
15mod demuxer;
16mod error;
17pub mod extras;
18#[cfg(test)]
19mod fault_subprocess;
20mod ffi;
21mod frame;
22mod pixdesc;
23mod reader_guard;
24#[cfg(feature = "resample")]
25mod resampler;
26mod sample_format;
27mod subtitle;
28mod video;
29
30pub use adapter::Ffmpeg;
31pub use audio::{AudioDecodeError, FfmpegAudioStreamDecoder};
32pub use backend::Backend;
33pub use boundary::{
34 PacketBuildError, attachment_packet_from_ffmpeg, audio_packet_from_ffmpeg,
35 audio_packet_from_ffmpeg_in, data_packet_from_ffmpeg_in, empty_audio_frame, empty_subtitle_frame,
36 empty_video_frame, from_av_pixel_format, is_hardware_pix_fmt, subtitle_packet_from_ffmpeg,
37 subtitle_packet_from_ffmpeg_in, try_empty_audio_frame, try_empty_subtitle_frame,
38 try_empty_video_frame, video_packet_from_ffmpeg, video_packet_from_ffmpeg_in,
39};
40pub use buffer::{FfmpegBuffer, PacketBufferError};
41pub use channel_layout::{
42 channel_layout_description_from_ffmpeg, channel_layout_from_ffmpeg, channel_order_from_ffmpeg,
43};
44pub use codec_id::CodecId;
45pub use decoder::VideoDecoder;
46pub use demuxer::{DemuxError, FfmpegDemuxer};
47pub use error::{Error, Result};
48pub use frame::Frame;
49#[cfg(feature = "resample")]
50#[cfg_attr(docsrs, doc(cfg(feature = "resample")))]
51pub use resampler::{FfmpegResampler, ResampleError, ResampleSpec, SpecEnd};
52pub use sample_format::SampleFormat;
53pub use subtitle::{FfmpegSubtitleStreamDecoder, SubtitleDecodeError};
54pub use video::{FfmpegVideoStreamDecoder, VideoDecodeError};
55
56pub type VideoPacket = mediadecode::packet::VideoPacket<extras::VideoPacketExtra, FfmpegBuffer>;
61
62pub type AudioPacket = mediadecode::packet::AudioPacket<extras::AudioPacketExtra, FfmpegBuffer>;
65
66pub type SubtitlePacket =
69 mediadecode::packet::SubtitlePacket<extras::SubtitlePacketExtra, FfmpegBuffer>;
70
71pub type VideoFrame =
74 mediadecode::frame::VideoFrame<mediadecode::PixelFormat, extras::VideoFrameExtra, FfmpegBuffer>;
75
76pub type AudioFrame = mediadecode::frame::AudioFrame<
79 SampleFormat,
80 mediaframe::audio::ChannelLayoutDescription,
81 extras::AudioFrameExtra,
82 FfmpegBuffer,
83>;
84
85pub type SubtitleFrame =
88 mediadecode::frame::SubtitleFrame<extras::SubtitleFrameExtra, FfmpegBuffer>;
89
90pub type DataPacket = mediadecode::demuxer::DataPacket<extras::DataPacketExtra, FfmpegBuffer>;
93
94pub type AttachmentPacket =
97 mediadecode::demuxer::AttachmentPacket<extras::AttachmentPacketExtra, FfmpegBuffer>;
98
99pub type DemuxedPacket = mediadecode::demuxer::DemuxedPacket<Ffmpeg, FfmpegBuffer>;
101
102pub type TrackInfo = mediadecode::demuxer::TrackInfo<Ffmpeg>;
106
107pub type TrackParams = mediadecode::demuxer::TrackParams<Ffmpeg>;