mirror of
https://github.com/alfg/mp4-rust.git
synced 2024-06-02 13:39:54 +00:00
Fix buggy file without enabled track
This commit is contained in:
parent
6c84994405
commit
5db8d56283
|
@ -401,7 +401,7 @@ impl<W: Write> WriteDesc<&mut W> for DecoderConfigDescriptor {
|
|||
write_desc(writer, Self::desc_tag(), size)?;
|
||||
|
||||
writer.write_u8(self.object_type_indication)?;
|
||||
writer.write_u8((self.stream_type << 2) + (self.up_stream & 0x02))?;
|
||||
writer.write_u8((self.stream_type << 2) + (self.up_stream & 0x02) + 1)?; // 1 reserved
|
||||
writer.write_u24::<BigEndian>(self.buffer_size_db)?;
|
||||
writer.write_u32::<BigEndian>(self.max_bitrate)?;
|
||||
writer.write_u32::<BigEndian>(self.avg_bitrate)?;
|
||||
|
|
|
@ -23,7 +23,7 @@ impl Default for TkhdBox {
|
|||
fn default() -> Self {
|
||||
TkhdBox {
|
||||
version: 0,
|
||||
flags: 1, // XXX enum Track_enabled
|
||||
flags: 3, // XXX enum Track_enabled | Track_in_movie
|
||||
creation_time: 0,
|
||||
modification_time: 0,
|
||||
track_id: 0,
|
||||
|
@ -199,7 +199,7 @@ mod tests {
|
|||
fn test_tkhd32() {
|
||||
let src_box = TkhdBox {
|
||||
version: 0,
|
||||
flags: 1, // XXX enum Track_enabled
|
||||
flags: 3, // XXX enum Track_enabled | Track_in_movie
|
||||
creation_time: 100,
|
||||
modification_time: 200,
|
||||
track_id: 1,
|
||||
|
@ -238,7 +238,7 @@ mod tests {
|
|||
fn test_tkhd64() {
|
||||
let src_box = TkhdBox {
|
||||
version: 1,
|
||||
flags: 1, // XXX enum Track_enabled
|
||||
flags: 3, // XXX enum Track_enabled | Track_in_movie
|
||||
creation_time: 100,
|
||||
modification_time: 200,
|
||||
track_id: 1,
|
||||
|
|
|
@ -469,6 +469,10 @@ impl Mp4TrackWriter {
|
|||
trak.mdia.mdhd.timescale = config.timescale;
|
||||
trak.mdia.mdhd.language = config.language.to_owned();
|
||||
trak.mdia.hdlr.handler_type = config.track_type.into();
|
||||
trak.mdia.hdlr.name = match config.track_type { // XXX enum or something
|
||||
TrackType::Video => String::from("VideoHandler"),
|
||||
TrackType::Audio => String::from("SoundHandler"),
|
||||
};
|
||||
// XXX largesize
|
||||
trak.mdia.minf.stbl.stco = Some(StcoBox::default());
|
||||
match config.media_conf {
|
||||
|
|
Loading…
Reference in a new issue