mux/{mp4, fmp4}: Hard depend on feature v1_18

Else --no-default-features was failing to compile.

v1_18 is needed to for the aggregator code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/588>
This commit is contained in:
Jordan Petridis 2022-11-29 15:02:37 +02:00
parent 821c23e202
commit a84eeeb240
4 changed files with 92 additions and 200 deletions

View file

@ -10,11 +10,11 @@ rust-version = "1.63"
[dependencies]
anyhow = "1"
gst = { package = "gstreamer", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst-base = { package = "gstreamer-base", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst-audio = { package = "gstreamer-audio", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst-video = { package = "gstreamer-video", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst-pbutils = { package = "gstreamer-pbutils", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst = { package = "gstreamer", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
gst-base = { package = "gstreamer-base", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
gst-audio = { package = "gstreamer-audio", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
gst-video = { package = "gstreamer-video", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
gst-pbutils = { package = "gstreamer-pbutils", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
once_cell = "1.0"
[lib]
@ -33,11 +33,10 @@ chrono = "0.4"
gst-plugin-version-helper = { path="../../version-helper" }
[features]
default = ["v1_18"]
default = []
static = []
capi = []
v1_18 = ["gst-video/v1_18"]
doc = ["gst/v1_18"]
doc = []
[package.metadata.capi]
min_version = "0.8.0"

View file

@ -82,10 +82,8 @@ fn cmaf_brands_from_caps(caps: &gst::CapsRef, compatible_brands: &mut Vec<&'stat
&& level <= ("3", "1")
&& fps <= gst::Fraction::new(60, 1)
{
#[cfg(feature = "v1_18")]
{
if let Some(colorimetry) = colorimetry
.and_then(|c| c.parse::<gst_video::VideoColorimetry>().ok())
if let Some(colorimetry) =
colorimetry.and_then(|c| c.parse::<gst_video::VideoColorimetry>().ok())
{
if matches!(
colorimetry.primaries(),
@ -107,21 +105,13 @@ fn cmaf_brands_from_caps(caps: &gst::CapsRef, compatible_brands: &mut Vec<&'stat
// Assume it's OK
compatible_brands.push(b"cfsd");
}
}
#[cfg(not(feature = "v1_18"))]
{
// Assume it's OK
compatible_brands.push(b"cfsd");
}
} else if width <= 1920
&& height <= 1080
&& level <= ("4", "0")
&& fps <= gst::Fraction::new(60, 1)
{
#[cfg(feature = "v1_18")]
{
if let Some(colorimetry) = colorimetry
.and_then(|c| c.parse::<gst_video::VideoColorimetry>().ok())
if let Some(colorimetry) =
colorimetry.and_then(|c| c.parse::<gst_video::VideoColorimetry>().ok())
{
if matches!(
colorimetry.primaries(),
@ -139,12 +129,6 @@ fn cmaf_brands_from_caps(caps: &gst::CapsRef, compatible_brands: &mut Vec<&'stat
// Assume it's OK
compatible_brands.push(b"cfhd");
}
}
#[cfg(not(feature = "v1_18"))]
{
// Assume it's OK
compatible_brands.push(b"cfhd");
}
} else if width <= 1920
&& height <= 1080
&& level <= ("4", "2")
@ -271,7 +255,6 @@ fn cmaf_brands_from_caps(caps: &gst::CapsRef, compatible_brands: &mut Vec<&'stat
&& level <= ("5", "1")
&& fps <= gst::Fraction::new(60, 1)
{
#[cfg(feature = "v1_18")]
if let Some(colorimetry) =
colorimetry.and_then(|c| c.parse::<gst_video::VideoColorimetry>().ok())
{
@ -318,11 +301,6 @@ fn cmaf_brands_from_caps(caps: &gst::CapsRef, compatible_brands: &mut Vec<&'stat
compatible_brands.push(b"cud1");
}
}
#[cfg(not(feature = "v1_18"))]
{
// Assume it's OK
compatible_brands.push(b"cud1");
}
}
}
}
@ -1109,50 +1087,11 @@ fn write_visual_sample_entry(
write_box(v, b"colr", move |v| {
v.extend(b"nclx");
let (primaries, transfer, matrix) = {
#[cfg(feature = "v1_18")]
{
(
(colorimetry.primaries().to_iso() as u16),
(colorimetry.transfer().to_iso() as u16),
(colorimetry.matrix().to_iso() as u16),
)
}
#[cfg(not(feature = "v1_18"))]
{
let primaries = match colorimetry.primaries() {
gst_video::VideoColorPrimaries::Bt709 => 1u16,
gst_video::VideoColorPrimaries::Bt470m => 4u16,
gst_video::VideoColorPrimaries::Bt470bg => 5u16,
gst_video::VideoColorPrimaries::Smpte170m => 6u16,
gst_video::VideoColorPrimaries::Smpte240m => 7u16,
gst_video::VideoColorPrimaries::Film => 8u16,
gst_video::VideoColorPrimaries::Bt2020 => 9u16,
_ => 2,
};
let transfer = match colorimetry.transfer() {
gst_video::VideoTransferFunction::Bt709 => 1u16,
gst_video::VideoTransferFunction::Gamma22 => 4u16,
gst_video::VideoTransferFunction::Gamma28 => 5u16,
gst_video::VideoTransferFunction::Smpte240m => 7u16,
gst_video::VideoTransferFunction::Gamma10 => 8u16,
gst_video::VideoTransferFunction::Log100 => 9u16,
gst_video::VideoTransferFunction::Log316 => 10u16,
gst_video::VideoTransferFunction::Srgb => 13u16,
gst_video::VideoTransferFunction::Bt202012 => 15u16,
_ => 2,
};
let matrix = match colorimetry.matrix() {
gst_video::VideoColorMatrix::Rgb => 0u16,
gst_video::VideoColorMatrix::Bt709 => 1u16,
gst_video::VideoColorMatrix::Fcc => 4u16,
gst_video::VideoColorMatrix::Bt601 => 6u16,
gst_video::VideoColorMatrix::Smpte240m => 7u16,
gst_video::VideoColorMatrix::Bt2020 => 9u16,
_ => 2,
};
(primaries, transfer, matrix)
}
};
let full_range = match colorimetry.range() {
@ -1170,8 +1109,6 @@ fn write_visual_sample_entry(
})?;
}
#[cfg(feature = "v1_18")]
{
if let Ok(cll) = gst_video::VideoContentLightLevel::from_caps(&stream.caps) {
write_box(v, b"clli", move |v| {
v.extend((cll.max_content_light_level() as u16).to_be_bytes());
@ -1193,7 +1130,6 @@ fn write_visual_sample_entry(
Ok(())
})?;
}
}
// Write fiel box for codecs that require it
if ["image/jpeg"].contains(&s.name()) {

View file

@ -10,11 +10,11 @@ rust-version = "1.63"
[dependencies]
anyhow = "1"
gst = { package = "gstreamer", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst-base = { package = "gstreamer-base", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst-audio = { package = "gstreamer-audio", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst-video = { package = "gstreamer-video", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst-pbutils = { package = "gstreamer-pbutils", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
gst = { package = "gstreamer", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
gst-base = { package = "gstreamer-base", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
gst-audio = { package = "gstreamer-audio", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
gst-video = { package = "gstreamer-video", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
gst-pbutils = { package = "gstreamer-pbutils", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_18"] }
once_cell = "1.0"
[lib]
@ -30,11 +30,10 @@ url = "2"
gst-plugin-version-helper = { path="../../version-helper" }
[features]
default = ["v1_18"]
default = []
static = []
capi = []
v1_18 = ["gst-video/v1_18"]
doc = ["gst/v1_18"]
doc = []
[package.metadata.capi]
min_version = "0.8.0"

View file

@ -904,50 +904,11 @@ fn write_visual_sample_entry(
write_box(v, b"colr", move |v| {
v.extend(b"nclx");
let (primaries, transfer, matrix) = {
#[cfg(feature = "v1_18")]
{
(
(colorimetry.primaries().to_iso() as u16),
(colorimetry.transfer().to_iso() as u16),
(colorimetry.matrix().to_iso() as u16),
)
}
#[cfg(not(feature = "v1_18"))]
{
let primaries = match colorimetry.primaries() {
gst_video::VideoColorPrimaries::Bt709 => 1u16,
gst_video::VideoColorPrimaries::Bt470m => 4u16,
gst_video::VideoColorPrimaries::Bt470bg => 5u16,
gst_video::VideoColorPrimaries::Smpte170m => 6u16,
gst_video::VideoColorPrimaries::Smpte240m => 7u16,
gst_video::VideoColorPrimaries::Film => 8u16,
gst_video::VideoColorPrimaries::Bt2020 => 9u16,
_ => 2,
};
let transfer = match colorimetry.transfer() {
gst_video::VideoTransferFunction::Bt709 => 1u16,
gst_video::VideoTransferFunction::Gamma22 => 4u16,
gst_video::VideoTransferFunction::Gamma28 => 5u16,
gst_video::VideoTransferFunction::Smpte240m => 7u16,
gst_video::VideoTransferFunction::Gamma10 => 8u16,
gst_video::VideoTransferFunction::Log100 => 9u16,
gst_video::VideoTransferFunction::Log316 => 10u16,
gst_video::VideoTransferFunction::Srgb => 13u16,
gst_video::VideoTransferFunction::Bt202012 => 15u16,
_ => 2,
};
let matrix = match colorimetry.matrix() {
gst_video::VideoColorMatrix::Rgb => 0u16,
gst_video::VideoColorMatrix::Bt709 => 1u16,
gst_video::VideoColorMatrix::Fcc => 4u16,
gst_video::VideoColorMatrix::Bt601 => 6u16,
gst_video::VideoColorMatrix::Smpte240m => 7u16,
gst_video::VideoColorMatrix::Bt2020 => 9u16,
_ => 2,
};
(primaries, transfer, matrix)
}
};
let full_range = match colorimetry.range() {
@ -965,8 +926,6 @@ fn write_visual_sample_entry(
})?;
}
#[cfg(feature = "v1_18")]
{
if let Ok(cll) = gst_video::VideoContentLightLevel::from_caps(&stream.caps) {
write_box(v, b"clli", move |v| {
v.extend((cll.max_content_light_level() as u16).to_be_bytes());
@ -988,7 +947,6 @@ fn write_visual_sample_entry(
Ok(())
})?;
}
}
// Write fiel box for codecs that require it
if ["image/jpeg"].contains(&s.name()) {