mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-09-02 17:53:48 +00:00
fmp4mux: Add TODO comments for creating codec specific boxes when receiving caps
Keeps error checking up-front and keeps things more consistent overall. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2208>
This commit is contained in:
parent
3e5da7a783
commit
7e00e8c90b
2 changed files with 7 additions and 0 deletions
|
@ -1048,6 +1048,7 @@ fn write_visual_sample_entry(
|
|||
let map = codec_data
|
||||
.map_readable()
|
||||
.context("codec_data not mappable")?;
|
||||
// TODO: create codec_specific_boxes when receiving caps
|
||||
write_box(v, b"avcC", move |v| {
|
||||
v.extend_from_slice(&map);
|
||||
Ok(())
|
||||
|
@ -1060,12 +1061,14 @@ fn write_visual_sample_entry(
|
|||
let map = codec_data
|
||||
.map_readable()
|
||||
.context("codec_data not mappable")?;
|
||||
// TODO: create codec_specific_boxes when receiving caps
|
||||
write_box(v, b"hvcC", move |v| {
|
||||
v.extend_from_slice(&map);
|
||||
Ok(())
|
||||
})?;
|
||||
}
|
||||
"video/x-vp9" => {
|
||||
// TODO: create codec_specific_boxes when receiving caps
|
||||
let profile: u8 = match s.get::<&str>("profile").expect("no vp9 profile") {
|
||||
"0" => Some(0),
|
||||
"1" => Some(1),
|
||||
|
@ -1129,6 +1132,7 @@ fn write_visual_sample_entry(
|
|||
})?;
|
||||
}
|
||||
"video/x-av1" => {
|
||||
// TODO: create codec_specific_boxes when receiving caps
|
||||
write_box(v, b"av1C", move |v| {
|
||||
if let Ok(codec_data) = s.get::<&gst::BufferRef>("codec_data") {
|
||||
let map = codec_data
|
||||
|
@ -1441,6 +1445,7 @@ fn write_audio_sample_entry(
|
|||
if map.len() < 2 {
|
||||
bail!("too small codec_data");
|
||||
}
|
||||
// TODO: create codec_specific_boxes when receiving caps
|
||||
write_esds_aac(v, cfg, stream, &map)?;
|
||||
}
|
||||
"audio/x-opus" => {
|
||||
|
|
|
@ -1195,6 +1195,8 @@ impl FMP4Mux {
|
|||
stream.dts_offset.display(),
|
||||
);
|
||||
|
||||
// TODO: Move this to the stream creation
|
||||
|
||||
// If the stream is AV1, we need to parse the SequenceHeader OBU to include in the
|
||||
// extra data of the 'av1C' box. It makes the stream playable in some browsers.
|
||||
let s = stream.caps.structure(0).unwrap();
|
||||
|
|
Loading…
Reference in a new issue