mp4mux: Handle the case of multiple tags per taglist correctly

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2204>
This commit is contained in:
Sebastian Dröge 2025-04-14 18:18:20 +03:00
parent 16d03ed362
commit 2519b9e51d

View file

@ -1181,7 +1181,8 @@ impl MP4Mux {
); );
} }
language_code = Stream::parse_language_code(lang); language_code = Stream::parse_language_code(lang);
} else if let Some(orientation) = tag.get::<gst::tags::ImageOrientation>() { }
if let Some(orientation) = tag.get::<gst::tags::ImageOrientation>() {
gst::trace!( gst::trace!(
CAT, CAT,
obj = pad, obj = pad,
@ -1194,7 +1195,8 @@ impl MP4Mux {
} else { } else {
stream_orientation = Some(TransformMatrix::from_tag(self, ev)); stream_orientation = Some(TransformMatrix::from_tag(self, ev));
} }
} else if let Some(bitrate) = tag }
if let Some(bitrate) = tag
.get::<gst::tags::MaximumBitrate>() .get::<gst::tags::MaximumBitrate>()
.filter(|br| br.get() > 0 && br.get() < u32::MAX) .filter(|br| br.get() > 0 && br.get() < u32::MAX)
{ {
@ -1214,7 +1216,8 @@ impl MP4Mux {
); );
} }
max_bitrate = Some(bitrate); max_bitrate = Some(bitrate);
} else if let Some(bitrate) = tag }
if let Some(bitrate) = tag
.get::<gst::tags::Bitrate>() .get::<gst::tags::Bitrate>()
.filter(|br| br.get() > 0 && br.get() < u32::MAX) .filter(|br| br.get() > 0 && br.get() < u32::MAX)
{ {
@ -1584,7 +1587,8 @@ impl AggregatorImpl for MP4Mux {
} }
} }
} }
} else if let Some(tag_value) = ev.tag().get::<gst::tags::ImageOrientation>() { }
if let Some(tag_value) = ev.tag().get::<gst::tags::ImageOrientation>() {
let orientation = tag_value.get(); let orientation = tag_value.get();
gst::trace!( gst::trace!(
CAT, CAT,
@ -1605,7 +1609,8 @@ impl AggregatorImpl for MP4Mux {
break; break;
} }
} }
} else if let Some(bitrate) = tag }
if let Some(bitrate) = tag
.get::<gst::tags::MaximumBitrate>() .get::<gst::tags::MaximumBitrate>()
.filter(|br| br.get() > 0 && br.get() < u32::MAX) .filter(|br| br.get() > 0 && br.get() < u32::MAX)
{ {
@ -1632,7 +1637,8 @@ impl AggregatorImpl for MP4Mux {
break; break;
} }
} }
} else if let Some(bitrate) = tag }
if let Some(bitrate) = tag
.get::<gst::tags::Bitrate>() .get::<gst::tags::Bitrate>()
.filter(|br| br.get() > 0 && br.get() < u32::MAX) .filter(|br| br.get() > 0 && br.get() < u32::MAX)
{ {