Commit graph

14 commits

Author SHA1 Message Date
Brad Hards
e1af0533b5 mux/mp4: add taic box
TAI Clock Information (`taic`) will be defined in ISO/IEC 23001-17 Amendment 1.
The TAI Clock Information box appears in the sample entry for the applicable track.

The clock information is metadata about the type and quality of a TAI clock. That
can be set via a stream tag. For example:

gst-launch-1.0 -v videotestsrc num-buffers=50 ! video/x-raw,width=1280,height=720,format=I420 !  taginject tags=precision-clock-type=can-sync-to-tai,precision-clock-time-uncertainty-nanoseconds=30000 ! isomp4mux ! filesink location=taic.mp4

This version writes compliant taic boxes if either or both of the tags are set. There
are two values in taic (for clock resolution and clock drift rate) that will be set to
reasonable default values.

taic is intended to be used (in video) with a TAITimestampPacket instance that is
per-sample auxilary information (i.e. via saio and saiz entries). That will be
provided as a follow-up change, based on a meta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2246>
2025-06-03 11:12:18 +00:00
Brad Hards
0826007d97 mux/mp4: test the trak structure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2268>
2025-05-28 18:23:01 +09:30
Brad Hards
34f16e0567 mux/mp4: migrate to mp4-atom to check muxing
This avoids implementing parsing logic for tests.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2258>
2025-05-26 10:30:12 +00:00
Brad Hards
8cf0784730 mux/mp4: avoid dumping test output into build directory
This makes it slightly more difficult to debug failing tests, but is way
cleaner for the common case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2257>
2025-05-26 11:58:15 +09:30
Brad Hards
a34475fb60 mux: use smaller number of samples for testing
This improves the test time from ~30 seconds to ~5 seconds, mainly
because of the AV1 encoding. However reduction in the uncompressed
tests is also worth while because there are a lot of them, and
will likely be more as the number of formats supported on both
encode side and in qtdemux for round-trip.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2130>
2025-03-26 16:39:51 +00:00
Brad Hards
2130c3bfbe mux/mp4: add image sequence mode
Image sequence is defined in ISO/IEC 23008-12 (HEIF), as a variant of
video. The key difference is that image sequence timing is advisory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2101>
2025-02-26 13:56:09 +00:00
Brad Hards
12b0c814d7 mux/mp4: add round trip testing infrastructure
This makes use of the recently added qtdemux changes to verify
that muxing works. At this stage its only used for unpadded RGB,
RGBA, BGRA, BGR and GRAY8 since that is all qtdemux supports
at this time. However the approach is general.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2066>
2025-02-15 12:19:11 +11:00
Brad Hards
251819a57d mux/mp4: support ISO/IEC 23001-17 uncompressed encoding
This adds support for direct encoding of common formats into ISO base media file
format.

There are unit tests for formats that are not completely supported, to
check that those functions work correctly, and to ease future extension.

End-to-end testing currently requires use of gpac to validate files.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1990>
2025-01-21 09:20:13 +00:00
Rafael Caricio
5549dc7a15 fmp4mux: Support AV1 packaging in the fragmented mp4 plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1544>
2024-05-10 20:59:49 +00:00
Simonas Kazlauskas
5d939498f1 mp4/fmp4: support flac inside the iso (f)mp4 container
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1401>
2024-04-09 14:37:05 +03:00
Guillaume Desmottes
6dfd1c1496 use new debug and parse API
Changes from https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1355

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1403>
2023-12-04 15:58:21 +01:00
Sebastian Dröge
3b4c48d9f5 Fix various new clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1062>
2023-01-25 10:31:19 +02:00
Sebastian Dröge
97bb327b2a mp4: Remove unneeded cast in tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/974>
2022-11-10 12:44:46 +02:00
Sebastian Dröge
c2f403f998 gst-plugin-mp4: Add new MP4 plugin with a non-fragmented MP4 muxer 2022-11-08 19:08:47 +02:00