Initial effort to reduce or eliminate the use of assertions in the
production code (i.e. not test code). See issue 43 for an example of how
this can cause an application (thread) to panic when reading an unusual
file. Not all of the changes were as simple as returning an Err, since some
functions did not return a Result. Also, the error type used (InvalidData)
is just a catch-all with a message, and in some cases a more refined error
type may be in order.
cargo test passes
* 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.
* 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>