author Bryce Van Dyk <>
Tue, 11 Dec 2018 20:55:26 +0000
changeset 450157 b3a9872c08d7d3254e3db718c24529c94a9d96db
parent 447756 89caaea53d18aaf2d4b90b98a2f989a8cdc7062b
child 457328 06b6f5ce09bc465d85dffef9e23d32ad549f9bc8
permissions -rw-r--r--
Bug 1513042 - Update mp4parse-rust to v0.11.2. r=jya Update mp4parse-rust update script and pull the new version. This update changes the mp4parse C-API. Specifically, each track can now have multiple sample descriptions. Previously we'd just exposed the first for the entire track, and if others were available they were not exposed via the API. Because of the API change, we update the C++ interface with mp4parse-rust. We now inspect the sample info to make sure they're consistent with the parsers expectations: - Only a single codec is present for a track, multiple codecs in a track will result in us returning an error. - Only 0 or 1 crypto info is present for a track, more than one set of info will result in us returning an error. We still generalize some of the first sample info to the samples of the track, as we did before this patch. However, we will now catch the above cases explicitly. We now handle crypto information if it is not present on the first sample info. The parser will iterate through sample infos and use the first set of crypto info it finds (and fail if it finds 2+). Differential Revision:


# These are the "root" crates, which we build and test as top-level targets.
# Their transitive dependencies and dev-dependencies are included automatically
# and do not need to be listed here. Their external dependencies are vendored
# into `third_party/rust` by `mach vendor rust`.
members = [
  "js/src/frontend/binsource", # Code generator.

# Excluded crates may be built as dependencies, but won't be considered members
# of the workspace and their dev-dependencies won't be included.
exclude = [
  # Exclude third-party code vendored into mozilla-central.

  # Excluded because these crates have their own Cargo workspaces so they can't
  # be included in the top-level one.

  # Excluded because they are used only as dependencies, not top-level targets,
  # so we don't need to vendor their dev-dependencies.

# Explicitly specify what our profiles use.  The opt-level setting here is
# a total fiction; see the setup of MOZ_RUST_DEFAULT_FLAGS for what the
# opt-level setting will be as a result of various other configure flags.
opt-level = 1
rpath = false
lto = false
debug-assertions = true
panic = "abort"

opt-level = 2
rpath = false
debug-assertions = false
panic = "abort"
codegen-units = 1

libudev-sys = { path = "dom/webauthn/libudev-sys" }
serde_derive = { git = "", branch = "deserialize_from_enums9" }
winapi = { git = "", branch = "aarch64" }