mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-09-04 18:53:48 +00:00
Merge branch 'analytics-combiner-null-caps' into 'main'
analyticscombiner: Use NULL caps instead of EMPTY caps in the array for streams with no caps See merge request gstreamer/gst-plugins-rs!2444
This commit is contained in:
commit
19e5414298
4 changed files with 24 additions and 30 deletions
|
@ -440,7 +440,7 @@ impl AggregatorImpl for AnalyticsCombiner {
|
|||
|
||||
let Some(stream_caps) = streams
|
||||
.get(pad_index)
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.and_then(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
else {
|
||||
continue;
|
||||
};
|
||||
|
@ -532,11 +532,11 @@ impl AggregatorImpl for AnalyticsCombiner {
|
|||
return None;
|
||||
};
|
||||
let caps = caps.caps_owned();
|
||||
Some(caps)
|
||||
Some(Some(caps))
|
||||
})
|
||||
.unwrap_or_else(|| {
|
||||
gst::warning!(CAT, obj = pad, "No caps for pad, using empty caps for now");
|
||||
gst::Caps::new_empty()
|
||||
gst::warning!(CAT, obj = pad, "No caps for pad, using NULL caps for now");
|
||||
None::<gst::Caps>
|
||||
});
|
||||
|
||||
streams.append(caps);
|
||||
|
|
|
@ -16,7 +16,7 @@ static CAT: LazyLock<gst::DebugCategory> = LazyLock::new(|| {
|
|||
|
||||
struct Stream {
|
||||
pad: gst::Pad,
|
||||
caps: gst::Caps,
|
||||
caps: Option<gst::Caps>,
|
||||
}
|
||||
|
||||
struct State {
|
||||
|
@ -240,7 +240,7 @@ impl AnalyticsSplitter {
|
|||
};
|
||||
let streams = streams
|
||||
.iter()
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.map(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let mut state_guard = self.state.lock().unwrap();
|
||||
|
@ -410,7 +410,7 @@ impl AnalyticsSplitter {
|
|||
|
||||
let Some(stream_caps) = streams
|
||||
.get(pad_index)
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.and_then(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
else {
|
||||
continue;
|
||||
};
|
||||
|
|
|
@ -185,11 +185,11 @@ fn test_combine_multi() {
|
|||
.get::<gst::ArrayRef>("streams")
|
||||
.unwrap()
|
||||
.iter()
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.map(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(streams.len(), 2);
|
||||
assert_eq!(&streams[0], &h0_caps);
|
||||
assert_eq!(&streams[1], &h1_caps);
|
||||
assert_eq!(streams[0].as_ref(), Some(&h0_caps));
|
||||
assert_eq!(streams[1].as_ref(), Some(&h1_caps));
|
||||
|
||||
let ev = h0.pull_event().unwrap();
|
||||
assert_eq!(ev.type_(), gst::EventType::Segment);
|
||||
|
@ -374,10 +374,10 @@ fn test_strategy_all() {
|
|||
.get::<gst::ArrayRef>("streams")
|
||||
.unwrap()
|
||||
.iter()
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.map(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(streams.len(), 1);
|
||||
assert_eq!(&streams[0], &h_caps);
|
||||
assert_eq!(streams[0].as_ref(), Some(&h_caps));
|
||||
|
||||
let ev = h.pull_event().unwrap();
|
||||
assert_eq!(ev.type_(), gst::EventType::Segment);
|
||||
|
@ -557,10 +557,10 @@ fn test_strategy_first() {
|
|||
.get::<gst::ArrayRef>("streams")
|
||||
.unwrap()
|
||||
.iter()
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.map(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(streams.len(), 1);
|
||||
assert_eq!(&streams[0], &h_caps);
|
||||
assert_eq!(streams[0].as_ref(), Some(&h_caps));
|
||||
|
||||
let ev = h.pull_event().unwrap();
|
||||
assert_eq!(ev.type_(), gst::EventType::Segment);
|
||||
|
@ -740,10 +740,10 @@ fn test_strategy_first_with_overlap() {
|
|||
.get::<gst::ArrayRef>("streams")
|
||||
.unwrap()
|
||||
.iter()
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.map(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(streams.len(), 1);
|
||||
assert_eq!(&streams[0], &h_caps);
|
||||
assert_eq!(streams[0].as_ref(), Some(&h_caps));
|
||||
|
||||
let ev = h.pull_event().unwrap();
|
||||
assert_eq!(ev.type_(), gst::EventType::Segment);
|
||||
|
@ -923,10 +923,10 @@ fn test_strategy_last() {
|
|||
.get::<gst::ArrayRef>("streams")
|
||||
.unwrap()
|
||||
.iter()
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.map(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(streams.len(), 1);
|
||||
assert_eq!(&streams[0], &h_caps);
|
||||
assert_eq!(streams[0].as_ref(), Some(&h_caps));
|
||||
|
||||
let ev = h.pull_event().unwrap();
|
||||
assert_eq!(ev.type_(), gst::EventType::Segment);
|
||||
|
@ -935,9 +935,6 @@ fn test_strategy_last() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
#[ignore]
|
||||
// See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2444
|
||||
// https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9522
|
||||
fn test_combine_multi_initial_gap() {
|
||||
init();
|
||||
|
||||
|
@ -1156,11 +1153,11 @@ fn test_combine_multi_initial_gap() {
|
|||
.get::<gst::ArrayRef>("streams")
|
||||
.unwrap()
|
||||
.iter()
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.map(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(streams.len(), 2);
|
||||
assert_eq!(&streams[0], &h0_caps);
|
||||
assert_eq!(&streams[1], &gst::Caps::new_empty());
|
||||
assert_eq!(streams[0].as_ref(), Some(&h0_caps));
|
||||
assert_eq!(streams[1].as_ref(), None);
|
||||
|
||||
let ev = h0.pull_event().unwrap();
|
||||
assert_eq!(ev.type_(), gst::EventType::Segment);
|
||||
|
@ -1177,11 +1174,11 @@ fn test_combine_multi_initial_gap() {
|
|||
.get::<gst::ArrayRef>("streams")
|
||||
.unwrap()
|
||||
.iter()
|
||||
.map(|v| v.get::<gst::Caps>().unwrap())
|
||||
.map(|v| v.get::<Option<gst::Caps>>().unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(streams.len(), 2);
|
||||
assert_eq!(&streams[0], &h0_caps);
|
||||
assert_eq!(&streams[1], &h1_caps);
|
||||
assert_eq!(streams[0].as_ref(), Some(&h0_caps));
|
||||
assert_eq!(streams[1].as_ref(), Some(&h1_caps));
|
||||
|
||||
let ev = h0.pull_event().unwrap();
|
||||
assert_eq!(ev.type_(), gst::EventType::Eos);
|
||||
|
|
|
@ -166,9 +166,6 @@ fn test_combine_split_multi() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
#[ignore]
|
||||
// See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2444
|
||||
// https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9522
|
||||
fn test_combine_split_multi_with_initial_gap() {
|
||||
init();
|
||||
|
||||
|
|
Loading…
Reference in a new issue