mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-08 19:33:07 +00:00
We were already accepting AvFrame for swscale inputs, but for the output a different SwConverterTarget trait was being used. The old interface had a few issues: - The use of memory mapping traits, putting a dependency on crosvm/base - Insufficient metadata, not being able to represent custom padding on the stride or non-contiguous plane layouts - Inconsistency between input and output types In this patch, we: 1. Introduce a AvFrame-based API to replace the old SwConverter API. 2. Add a TryAsAvFrameExt extension trait inside devices/ to convert virtio handles to AvFrames. (This is placed inside devices to avoid ffmpeg depending on base.) 3. Add a new wrapper type, MemoryMappingAvBufferSource, that wraps a MemoryMappingArena and implements AvBufferSource for it. This was technically not sound, but it's a low-risk attack vector that we implicitly allowed before. The patch doesn't change the behavior; it just makes this assumption more explicit. BUG=b:239897269 TEST=cargo test --features "video-decoder,ffmpeg" -p devices -p ffmpeg Change-Id: Id15e19b7d2452d1bc722a65f941c2c9150876205 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3889245 Commit-Queue: Tatsuyuki Ishi <ishitatsuyuki@google.com> Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
13 lines
194 B
TOML
13 lines
194 B
TOML
[package]
|
|
name = "ffmpeg"
|
|
version = "0.1.0"
|
|
authors = ["The Chromium OS Authors"]
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
anyhow = "*"
|
|
libc = "*"
|
|
thiserror = "*"
|
|
|
|
[build-dependencies]
|
|
pkg-config = "*"
|