1
0
Fork 0
mirror of https://github.com/alfg/mp4-rust.git synced 2024-12-22 20:16:27 +00:00
Commit graph

73 commits

Author SHA1 Message Date
Alf
95ce57363a 0.7.0 2020-09-14 20:05:03 -07:00
Alfred Gutierrez
fba770a00e
Updating docs (#32)
* Updating docs.

* Fix docs tests and update to 0.7.0.
2020-09-14 19:48:00 -07:00
Alfred Gutierrez
6ec013b7b9
Fragmented tracks (#31)
* Add trun box.

* Adding Movie Extends Box and subboxes (mvex, mehd, trex).

* Adding more support for parsing fragmented tracks. Add mp4sample example.

* cleanup

* Set default_sample_duration from moov.mvex.trex for getting fragmented samples.

* fix trex box parsing/writing.
2020-09-14 18:05:34 -07:00
Alfred Gutierrez
f8f767dc07
Fragmented boxes (#30)
* Add trun box.

* Adding Movie Extends Box and subboxes (mvex, mehd, trex).
2020-09-13 00:25:08 -07:00
Alf
a1f7902c6c Skip serializing edts if Option::is_none. 2020-09-09 21:02:38 -07:00
Alf
dd2eae6eed Skip serializing vmhd/smhd if Option::is_none. 2020-09-09 20:04:06 -07:00
Alfred Gutierrez
0f373b03db
Box summary and to_json traits. (#29)
* Add Mp4Box traits for getting json or text summary for each box.

* fix test and serde version.

* skip serializing entries

* skip serializing sample_sizes

* Add custom serializer for FixedPoint types.
2020-09-08 22:24:34 -07:00
Alf
0330a8eda7 0.6.0 2020-09-06 13:04:24 -07:00
Alf
9822589734 fix is_fragmented method. 2020-09-06 13:00:34 -07:00
Alfred Gutierrez
d0e169b679
Merge pull request #28 from alfg/subtitle-track-support
Subtitle track support
2020-09-05 13:47:45 -07:00
Alf
76607394df update readme. 2020-09-05 13:43:48 -07:00
Alf
6bc1c9b217 update readme. 2020-09-05 13:38:55 -07:00
Alf
e879500c1a update mp4info example and track. 2020-09-05 13:15:31 -07:00
Alf
421d9e7606 More tx3g box parsing/writing and update tests. 2020-09-05 00:57:15 -07:00
Alf
05e20124e0 Add support for parsing subtitle tracks (tx3g box). 2020-09-04 23:09:33 -07:00
Alfred Gutierrez
fa53d6b138
Merge pull request #27 from alfg/fragmented-boxes
Add support for reading/writing fragmented mp4 (fMP4) boxes.
2020-09-03 22:12:14 -07:00
Alf
8def228352 Add support for reading/writing fragmented mp4 (fMP4) boxes. 2020-09-03 21:33:45 -07:00
Alfred Gutierrez
e4c7cf4520
Merge pull request #26 from alfg/hev1-box
Hev1 Box Support
2020-09-01 21:26:16 -07:00
Alf
3b5a728a30 fix tests and update mp4copy example. 2020-09-01 21:15:56 -07:00
Alf
042629a88c update mp4info and mp4dump examples. 2020-09-01 20:49:55 -07:00
Alf
b4b4dbd49f add support for hev1 box 2020-09-01 20:41:34 -07:00
Alfred Gutierrez
65b3408625
Merge pull request #25 from alfg/benchmarking
Benchmarking
2020-08-26 22:19:33 -07:00
Alf
be92897be6 add criterion for benchmarking performance. 2020-08-26 20:45:18 -07:00
Alf
6d1da78160 0.5.2 2020-08-25 22:08:18 -07:00
Alfred Gutierrez
682f8a93c1
Merge pull request #24 from alfg/mp4dump-example
Mp4dump example
2020-08-24 22:45:53 -07:00
Alf
b016ac3b47 add top level public function mp4::read_mp4 for using the Mp4Reader with a file path. Added simple example. 2020-08-24 22:38:05 -07:00
Alf
71f0f78ae6 remove duplicated code. 2020-08-24 22:00:48 -07:00
Alf
4df1097948 Update mp4dump example and update box_size to method in all boxes. 2020-08-24 21:49:58 -07:00
Alf
d51a193272 Add mp4dump example and update all mp4boxes with get_type and get_size methods. 2020-08-23 22:11:59 -07:00
Alfred Gutierrez
c4ff8627b0
Set optional EsdsBox in Mp4aBox. (#23)
* Make EsdsBox in Mp4aBox optional, instead of error when parsing. Also update mp4info example with some missing info that was removed.

* Update Mp4aBox test to check for optional EsdsBox.
2020-08-23 13:38:25 -07:00
Alf
0ac9986c7f 0.5.1 2020-08-20 20:09:28 -07:00
Alfred Gutierrez
6cd4f72d28
Mp4Reader and update README example (#21)
* Make ftyp and moov on Mp4Reader public. Also update README.md with working example.

* update readme
2020-08-19 21:38:57 -07:00
Alf
4f417f885d 0.5.0 2020-08-18 22:28:32 -07:00
Ian Jun
0abb242037
Refactoring (#17)
* Add ReadBox trait

* Add boxtype macro

* Remove offset in BoxHeader

* Fix parsing error when box has largesize

* Remove duplicated codes reading version and flags

* Update examples

* Fix test failure

* Rename I/O position moving functions

* skip_read() to skip_bytes()
* skip_read_to() to skip_bytes_to()
* skip_write() to write_zeros()

* Rename I/O position moving functions

* skip_read() to skip_bytes()
* skip_read_to() to skip_bytes_to()

* Ensure skip_bytes() does not go back.

Co-authored-by: Byungwan Jun <unipro.kr@gmail.com>
2020-08-06 20:35:08 -07:00
Ian Jun
b5367032a7
Update examples (#16)
* Add ReadBox trait

* Add boxtype macro

* Remove offset in BoxHeader

* Fix parsing error when box has largesize

* Remove duplicated codes reading version and flags

* Update examples

* Fix test failure

Co-authored-by: Byungwan Jun <unipro.kr@gmail.com>
2020-08-05 23:00:53 -07:00
Ian Jun
3104a2d95b
Feature/mp4copy (#14)
* Add ReadBox trait

* Add boxtype macro

* Remove offset in BoxHeader

* Fix parsing error when box has largesize

* Remove duplicated codes reading version and flags

* Add avc1 box

* Add mp4a box

* Add mp4a box

* Add DecoderSpecificDescriptor in esds box

* Add necessary sub-boxes to stbl box

* Improve ReadBox::read_box()

* Add smhd box

* Refactor BoxHeader

* Refactor BMFF

* Refactor

* Add some functions to get offset and size of sample

* Add Mp4Reader::read_sample() that read media samples

* Move Mp4Reader to reader.rs

* Add mandatory check when reading boxes

Add some methods to Mp4Reader, TrackReader
Format codes

* Update mp4info

* Refactor common types

* Add FixedPointX types

* Add media configuration, profile, ...

* Add initial Mp4Writer

* Run cargo fmt

* Add Mp4Writer and examples/mp4copy

* Add test codes for Avc1Box and Mp4aBox

* Remove prefix "get_" from method names

* Rename atoms to mp4box

* Fix some bugs

Co-authored-by: Byungwan Jun <unipro.kr@gmail.com>
2020-08-04 16:56:59 -07:00
Alfred Gutierrez
ba69f3812b
Update example in README.md. 2020-07-31 10:18:06 -07:00
Ian Jun
0df82aec5f
Feature/mp4reader (#13)
* Add ReadBox trait

* Add boxtype macro

* Remove offset in BoxHeader

* Fix parsing error when box has largesize

* Remove duplicated codes reading version and flags

* Add avc1 box

* Add mp4a box

* Add mp4a box

* Add DecoderSpecificDescriptor in esds box

* Add necessary sub-boxes to stbl box

* Improve ReadBox::read_box()

* Add smhd box

* Refactor BoxHeader

* Refactor BMFF

* Refactor

* Add some functions to get offset and size of sample

* Add Mp4Reader::read_sample() that read media samples

Co-authored-by: Byungwan Jun <unipro.kr@gmail.com>
2020-07-31 10:12:26 -07:00
Alf
b755db3fa0 Remove Cargo.lock and add to .gitignore. 2020-07-28 22:13:15 -07:00
Ian Jun
4df9fa1bd4
Feature/test write box (#12)
* Add ReadBox trait

* Add boxtype macro

* Remove offset in BoxHeader

* Fix parsing error when box has largesize

* Remove duplicated codes reading version and flags

* Add test code for all leaves in box tree

* Remove entry_count that is duplacated with entries.len()

* Change volume type to Ratio<u16>

Co-authored-by: Byungwan Jun <unipro.kr@gmail.com>
2020-07-28 21:29:04 -07:00
Ian Jun
8f56200dd0
Feature/writebox trait (#11)
* Add ReadBox trait

* Add boxtype macro

* Remove offset in BoxHeader

* Fix parsing error when box has largesize

* Remove duplicated codes reading version and flags

* Simplify all box size types as largesize

* Add WriteBox trait and improve compatibility with large box

* Split large atoms file into smaller ones

* Refator Error

Co-authored-by: Byungwan Jun <unipro.kr@gmail.com>
2020-07-28 09:36:17 -07:00
Alf
95fc64b811 0.4.3 2020-07-26 15:01:15 -07:00
Ian Jun
1e86e4edab
Remove deprecated codes (#9)
* Add ReadBox trait

* Add boxtype macro

* Remove offset in BoxHeader

* Fix parsing error when box has largesize

* Remove duplicated codes reading version and flags

Co-authored-by: Byungwan Jun <unipro.kr@gmail.com>
2020-07-25 20:11:47 -07:00
Alfred Gutierrez
a4fd45b3e8
Add basic integration test (#10)
* Add basic integration test and update README and example. Add sample minimal.mp4 file for tests.

* Add .travis.yml file.

* Update readme.
2020-07-25 20:07:39 -07:00
Alf
8dfe751516 0.4.2 2020-07-24 20:02:32 -07:00
Alfred Gutierrez
b1b0d597d9
Create rust.yml 2020-07-24 20:00:09 -07:00
Ian Jun
85a65ea596
Add ReadBox trait (#7) 2020-07-24 19:57:46 -07:00
Alf
e637fb761e 0.4.1 2020-06-04 23:12:49 -07:00
Nathan Fiedler
958304a9b2
Make the example tolerant of videos missing parts (#5)
* Make the example tolerant of videos missing parts

Some videos are missing certain parts that the example was assuming would be
present. This change makes all such access conditional on the parts being
present. Also added the display of the box version and the creation time in
a human-readable format. This serves to demonstrate the logic for converting
the MP4 epoch (1904-01-01) to Unix epoch (1970-01-01).

* Show creation time as Unix time only
2020-06-04 23:10:33 -07:00
Nathan Fiedler
e875c7da44
Skip over unknown boxes (#4)
* Skip over unknown boxes

If the box size is non-zero, skip over it and continue reading. Otherwise if
the box size is zero, exit the loop.

* Add comment clarifying the box skipping
2020-05-27 18:29:41 -07:00