1
0
Fork 0
mirror of https://github.com/alfg/mp4-rust.git synced 2024-05-20 01:08:06 +00:00
Commit graph

88 commits

Author SHA1 Message Date
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
Alf 8def228352 Add support for reading/writing fragmented mp4 (fMP4) boxes. 2020-09-03 21:33:45 -07:00
Alf 3b5a728a30 fix tests and update mp4copy example. 2020-09-01 21:15:56 -07:00
Alf b4b4dbd49f add support for hev1 box 2020-09-01 20:41:34 -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
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
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
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
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
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
Ian Jun 85a65ea596
Add ReadBox trait (#7) 2020-07-24 19:57:46 -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
Alf f04ebb4b61 Add skip fn for skipping remaining bytes in a box. 2020-02-05 20:22:08 -08:00
Alfred Gutierrez ec53b03673
Cleanup and some minor restructuring. (#2)
* Cleanup and some minor restructuring.

* Update readme.
2020-02-03 21:52:23 -08:00
Alf 4a8c4f57b4 cleanup. 2020-01-27 21:58:19 -08:00
Alfred Gutierrez e9936e5f78
Sample boxes and mp4info example updates (#1)
* more sample boxes

* stts and sample box parsing. Update mp4info example with more details.
2020-01-27 21:32:53 -08:00
Alf b345450e19 cleanup on lib and add more mp4info example output. 2020-01-21 21:41:51 -08:00
Alf 56e49bea57 mdia/mdhd/hdlr box parsing. 2020-01-19 23:17:03 -08:00
Alf b50097b784 edts/elst box parsing 2020-01-19 20:34:22 -08:00
Alf b400b02aee TKHD box parsing. 2020-01-16 22:43:41 -08:00
Alf 4acb2cd93f add trak/tkhd box. 2020-01-15 22:53:42 -08:00
Alf c4123f721a Add moov box builder and skip remaining bytes. 2020-01-13 21:10:25 -08:00
Alf efd7ac8981 Change main.rs to lib.rs and create example mp4info project. Update readme and license. 2020-01-12 19:33:26 -08:00
Alf d4f69d82ee parse moov and mvhd box. 2020-01-12 01:19:31 -08:00
Alf 06f388f20e update box parsing logic. 2020-01-12 00:00:30 -08:00
Alf fc92c60298 Fix top level box parsing logic. 2020-01-11 19:34:29 -08:00
Alf 7c239e72a0 parse ftyp box 2020-01-09 22:26:08 -08:00
Alf 9994a0a6a7 Update main.rs. 2020-01-07 22:51:21 -08:00
Alf 5d11bf9c78 Basic example of parsing mp4 atom boxes in rust. 2020-01-07 21:34:01 -08:00