mediadecode-ffmpeg 0.7.0

FFmpeg adapter for the `mediadecode` abstraction layer — implements its `VideoAdapter` / `AudioAdapter` / `SubtitleAdapter` traits and the matching push-style decoder traits, with hardware-acceleration auto-probe across VideoToolbox / VAAPI / NVDEC / D3D11VA and software fallback via ffmpeg-next.
Documentation

Build #4194525 2026-08-23 01:33:01

# rustc version rustc 1.100.0-nightly (c656540d6 2026-08-21)

# docs.rs version docsrs 0.0.0 (e1bf2044f995578af06750ed1e554ccf8db7c5c4 2026-08-21 )

# build log [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-w" "/opt/rustwide/workdir" "--user" "1001:1001" "8826f962c16cdab3481062d5f3254583b5f626dee370f3e89437ad708b41e3d7" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--all-features" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=html-non-static-files\", \"--resource-suffix\", \"-20260821-1.100.0-nightly-c656540d6\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-j6" "--target" "x86_64-unknown-linux-gnu" "-Zrustdoc-scrape-examples", kill_on_drop: false }` [INFO] [stderr] warning: Rustdoc did not scrape the following examples because they require dev-dependencies: decode, decode_via_trait [INFO] [stderr] If you want Rustdoc to scrape these examples, then add `doc-scrape-examples = true` [INFO] [stderr] to the [[example]] target configuration of at least one example. [INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op [INFO] [stderr] Documenting mediadecode-ffmpeg v0.7.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: public documentation for `Backend` links to private item `probe_order` [INFO] [stderr] --> src/backend.rs:6:38 [INFO] [stderr] | [INFO] [stderr] 6 | /// out of scope. If no backend in [`probe_order`] for the current platform [INFO] [stderr] | ^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] = note: `#[warn(rustdoc::private_intra_doc_links)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `mediadecode::VideoPacket` [INFO] [stderr] --> src/boundary.rs:518:41 [INFO] [stderr] | [INFO] [stderr] 518 | /// Builds an `ffmpeg::Packet` from a [`mediadecode::VideoPacket`] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `VideoPacket` in module `mediadecode` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stderr] [INFO] [stderr] warning: public documentation for `ffmpeg_packet_from_video_packet` links to private item `attach_side_data` [INFO] [stderr] --> src/boundary.rs:529:7 [INFO] [stderr] | [INFO] [stderr] 529 | /// [`attach_side_data`] for why that is not optional. [INFO] [stderr] | ^^^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `mediadecode::AudioPacket` [INFO] [stderr] --> src/boundary.rs:556:41 [INFO] [stderr] | [INFO] [stderr] 556 | /// Builds an `ffmpeg::Packet` from a [`mediadecode::AudioPacket`]. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `AudioPacket` in module `mediadecode` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `mediadecode::SubtitlePacket` [INFO] [stderr] --> src/boundary.rs:580:41 [INFO] [stderr] | [INFO] [stderr] 580 | /// Builds an `ffmpeg::Packet` from a [`mediadecode::SubtitlePacket`]. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `SubtitlePacket` in module `mediadecode` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `ffmpeg::Packet` [INFO] [stderr] --> src/boundary.rs:605:24 [INFO] [stderr] | [INFO] [stderr] 605 | /// Wraps a borrowed [`ffmpeg::Packet`] as a [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `ffmpeg` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `ffmpeg::Packet` [INFO] [stderr] --> src/boundary.rs:623:24 [INFO] [stderr] | [INFO] [stderr] 623 | /// Wraps a borrowed [`ffmpeg::Packet`] as a [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `ffmpeg` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `ffmpeg::Packet` [INFO] [stderr] --> src/boundary.rs:633:24 [INFO] [stderr] | [INFO] [stderr] 633 | /// Wraps a borrowed [`ffmpeg::Packet`] as a [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `ffmpeg` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `ffmpeg::Packet` [INFO] [stderr] --> src/boundary.rs:859:24 [INFO] [stderr] | [INFO] [stderr] 859 | /// Wraps a borrowed [`ffmpeg::Packet`] from a **data** track — timecode, [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `ffmpeg` in scope [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `ffmpeg::Packet` [INFO] [stderr] --> src/boundary.rs:890:24 [INFO] [stderr] | [INFO] [stderr] 890 | /// Wraps a borrowed [`ffmpeg::Packet`] from an **attachment** track — [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `ffmpeg` in scope [INFO] [stderr] [INFO] [stderr] warning: public documentation for `with_max_probe_pending_bytes` links to private item `DEFAULT_MAX_PROBE_PENDING_BYTES` [INFO] [stderr] --> src/decoder/mod.rs:421:9 [INFO] [stderr] | [INFO] [stderr] 421 | /// [`DEFAULT_MAX_PROBE_PENDING_BYTES`]. Use a higher value when targeting [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] [INFO] [stderr] warning: public documentation for `send_packet` links to private item `MAX_PROBE_PACKET_SIDE_DATA_ENTRIES` [INFO] [stderr] --> src/decoder/mod.rs:507:29 [INFO] [stderr] | [INFO] [stderr] 507 | /// entry count exceeds [`MAX_PROBE_PACKET_SIDE_DATA_ENTRIES`], its [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] [INFO] [stderr] warning: public documentation for `send_packet` links to private item `MAX_PROBE_PACKETS` [INFO] [stderr] --> src/decoder/mod.rs:508:41 [INFO] [stderr] | [INFO] [stderr] 508 | /// bytes would push the probe past [`MAX_PROBE_PACKETS`] or [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] [INFO] [stderr] warning: public documentation for `send_packet` links to private item `MAX_PROBE_PACKET_BYTES` [INFO] [stderr] --> src/decoder/mod.rs:509:9 [INFO] [stderr] | [INFO] [stderr] 509 | /// [`MAX_PROBE_PACKET_BYTES`], or [`av_packet_ref`] fails ENOMEM — [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] [INFO] [stderr] warning: public documentation for `HwDeviceInitFailed` links to private item `HwDeviceInitFailed` [INFO] [stderr] --> src/error.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | /// [`HwDeviceInitFailed`] for the payload details. `#[from]` gives [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] [INFO] [stderr] warning: public documentation for `AllBackendsFailed` links to private item `AllBackendsFailed` [INFO] [stderr] --> src/error.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | /// [`AllBackendsFailed`] for the payload details (in particular the [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] [INFO] [stderr] warning: public documentation for `FallbackFailed` links to private item `FallbackFailed` [INFO] [stderr] --> src/error.rs:59:44 [INFO] [stderr] | [INFO] [stderr] 59 | /// fallback attempt itself fails. See [`FallbackFailed`] for the [INFO] [stderr] | ^^^^^^^^^^^^^^ this item is private [INFO] [stderr] | [INFO] [stderr] = note: this link will resolve properly if you pass `--document-private-items` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `crate::pix_fmt` [INFO] [stderr] --> src/frame.rs:229:36 [INFO] [stderr] | [INFO] [stderr] 229 | /// output formats listed in [`crate::pix_fmt`]. [INFO] [stderr] | ^^^^^^^^^^^^^^ no item named `pix_fmt` in module `mediadecode_ffmpeg` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `unspecified_layout` [INFO] [stderr] --> src/resampler.rs:94:21 [INFO] [stderr] | [INFO] [stderr] 94 | /// the note on [`unspecified_layout`] for the last. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ no item named `unspecified_layout` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: `mediadecode-ffmpeg` (lib doc) generated 19 warnings [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.81s [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/mediadecode_ffmpeg/index.html [INFO] running `Command { std: "docker" "inspect" "8826f962c16cdab3481062d5f3254583b5f626dee370f3e89437ad708b41e3d7", kill_on_drop: false }`