Edward Hervey
a68198c405
mxf: Improve index entry debug log
...
By printing out the various known flag values
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371 >
2021-07-21 14:33:19 +00:00
Edward Hervey
11d9abd2d5
mxf: Demote error message when resolving valid empty reference
...
A Source Clip can have zero'd SourcePackageID and SourceTrackID, this indicates
it terminates the source reference chain
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371 >
2021-07-21 14:33:19 +00:00
Edward Hervey
dfee771afd
mxfdemux: Handle temporal reordering shift
...
This is similar to how the same issue was handled in qtdemux.
In order for the "DTS <= PTS" constraint to be respected, we calculate the
maximum temporal reordering that can happen (via index tables).
If there is a non-0 temporal reordering, we:
* Shift all outgoing PTS by that amount
* Shift segment for that stream by that amount
* Don't modify DTS (i.e. they might end up having negative running-time, before
the start of the segment)
Also ensure all entries have a valid PTS set, previously this wouldn't be set
for entries with a temporal offset of 0.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/584
(and maybe a lot of other issues)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371 >
2021-07-21 14:33:19 +00:00
Edward Hervey
49b061241e
mxfdemux: Check validity of interleaved File Package
...
As specified by the S377 MXF core specification, if a file package has
interleaved content, then all tracks must be using the same Edit Rate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2378 >
2021-07-05 07:07:15 +00:00
Edward Hervey
162e7bd28b
mxfvanc: Handle empty ANC essence
...
Not having any *actual* ANC is totally fine and common usage with several MXF
variants.
In order to properly advance the streams, the essence handler returns an empty
GAP buffer which gets converted to a GST_EVENT_GAP.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2345 >
2021-07-01 11:04:03 +02:00
Stéphane Cerveau
eb96f50c45
mxf: check EOS cond with any segment's flag
...
The previous test was preventing the pad to be in EOS
when the segment position was greater than segment stop.
It ended up consuming all the data before getting in EOS.
Regarding GST_SEEK_FLAG_SEGMENT it seems to be
correctly handled later in the method.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2173 >
2021-05-04 19:11:27 +00:00
Stéphane Cerveau
c32f455b7b
mxfdemux: fix keyframe detection in index
...
An index entry should be considered as a keyframe
if the flags allow a random access only.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2173 >
2021-05-04 19:11:27 +00:00
Stéphane Cerveau
891be51105
gst-plugins: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2110 >
2021-04-11 16:16:55 +00:00
Matthew Waters
640a65bf96
gst: don't use volatile to mean atomic
...
volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead. GCC 11 has started warning about using volatile
with atomic operations.
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2098 >
2021-03-22 14:34:36 +11:00
Mathieu Duponchelle
e2f28c3d08
mxfvanc: document new sink pad template
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1368 >
2020-06-25 06:59:18 +00:00
Sebastian Dröge
e54107db02
mxfdemux/mux: Add support for CEA-708 CDP from S436 essence tracks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1368 >
2020-06-25 06:59:18 +00:00
Mathieu Duponchelle
a048ce81d4
plugins: uddate gst_type_mark_as_plugin_api() calls
2020-06-06 00:40:42 +02:00
Sebastian Dröge
74f2f733be
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
2020-06-04 13:33:16 -04:00
Tim-Philipp Müller
415c798b73
mxfdemux: add support for Apple ProRes
2020-01-15 11:51:20 +00:00
Edward Hervey
7bceb6c3ff
bad: Avoid using deprecated API
...
GTimeval is deprecated
2019-11-08 10:43:08 +00:00
Aaron Boxer
6d3429af34
documentation: fixed a heap o' typos
2019-11-05 09:11:25 -05:00
Tim-Philipp Müller
f218ec2794
Remove autotools build system
2019-10-14 13:54:27 +01:00
Sebastian Dröge
b0470e2c98
mxfdemux: Also allow picture essence element type 0x05 for VC-3
...
It's found like this in various files out there even if it does not
conform to SMPTE 2019-4.
2019-08-12 18:19:46 +00:00
Thibault Saunier
47a49f3381
docs: Build documentation with hotdoc
2019-05-13 17:00:00 -04:00
Thibault Saunier
ebb0527e75
mxfdemux: Avoid possible NULL caps 'dereferencing'
2019-03-21 00:40:53 +00:00
Xavier Claessens
83d0623293
Meson: Generate pc file for all plugins in bad
...
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:08:09 +01:00
Mathieu Duponchelle
7771488edb
mxfmux: instantiate adapter at the correct place
2018-02-28 23:46:44 +01:00
Tim-Philipp Müller
c7e34a0b2f
Update for renamed aggregator pad API
...
https://bugzilla.gnome.org/show_bug.cgi?id=791204
2018-01-23 09:01:00 +00:00
Edward Hervey
6c2fc31012
mxfdemux: Remove useless check
...
Any modification of ret in that "while (ret == GST_FLOW_OK)" loop will
break (and cause it to stop the iteration).
CID #1427095
2018-01-11 11:41:33 +01:00
Tim-Philipp Müller
d01297e115
Remove GstAggregator from -bad, moved to core
...
https://bugzilla.gnome.org/show_bug.cgi?id=739010
2017-12-02 16:14:36 +00:00
Mathieu Duponchelle
56fc5bef18
aggregator: Remove klass->sinkpads_type
...
This posed problems for the python bindings (and possibly others).
Instead, subclasses now use add_pad_template_with_gtype.
https://bugzilla.gnome.org/show_bug.cgi?id=789986
2017-11-22 16:52:29 +01:00
Edward Hervey
4260f8a120
all: Fix left-shift undefined behaviour
...
Cast to the target type before shifting (or use macro if available)
2017-11-20 17:06:07 +01:00
Ponnam Srinivas
ff0ccc2a11
mxfdemux: Fix memory leak in error case
...
https://bugzilla.gnome.org/show_bug.cgi?id=788508
2017-10-06 18:15:38 +01:00
Sebastian Dröge
5f144ca6ba
mxfvc3: Use correct wrapping byte value
2017-08-10 17:01:03 +03:00
Sebastian Dröge
444776ae10
mxfdemux: Fix compilation with gcc 4.8.4
...
https://bugzilla.gnome.org/show_bug.cgi?id=785367
2017-07-25 10:03:25 +03:00
Sebastian Dröge
de7985d46a
mxfdemux: Correctly consider frame reordering for timecode calculation
2017-07-24 17:00:02 +03:00
Sebastian Dröge
59f9bc05d2
mxfdemux: Use material track edit rate for component PTS offsetting
2017-07-24 16:57:19 +03:00
Sebastian Dröge
26d5ba42ea
mxfdemux: Output timecodes for video streams
2017-07-24 16:49:19 +03:00
Sebastian Dröge
c2ef63a3bc
mxfdemux: Keep track of component start positions and material track positions
...
This allows us to know exactly where in the material track we are, and
how to convert from a PTS for a source track to the actual PTS of the
material track (i.e. by adding the component start position).
https://bugzilla.gnome.org/show_bug.cgi?id=785119
2017-07-24 16:21:31 +03:00
Sebastian Dröge
16fc8541b5
mxfdemux: Create index table arrays with a big enough size
2017-07-11 20:57:24 +03:00
Sebastian Dröge
3a1912f88c
mxfdemux: Initialize index table entries completely in all cases
...
When seeking backwards into a previously unseen location, we wouldn't
fully initialize them and playback would fail later.
2017-07-11 20:57:23 +03:00
Sebastian Dröge
08ac093b40
mxfdemux: For intra-only streams, always output DTS=PTS
2017-07-05 17:04:46 +03:00
Sebastian Dröge
9091e746e5
mxfdemux: Fix integer overflow in partition position comparison function
2017-07-05 15:48:57 +03:00
Sebastian Dröge
bd8809f9d7
mxfdemux: Print PTS and DTS in debug output when pushing buffers
2017-07-05 15:11:22 +03:00
Sebastian Dröge
4706447ddc
mxfmetadata: Set field-order correctly for interlaced video
2017-07-05 14:03:07 +03:00
Sebastian Dröge
1e646472e7
mxfmetadata: Use display width/height instead of stored width/height
...
Stored values contain padding and alignment, and should only be used as
fallback if neither display values nor sampled values exist.
2017-07-05 13:52:25 +03:00
Sebastian Dröge
37e0439e84
mxfdemux: Don't include any KLV packets between header metadata and index table segments in calculations
...
Minor fixup of last commit.
2017-07-05 00:49:25 +03:00
Sebastian Dröge
72b7794798
mxfdemux: Allow filler and other KLV packets between index table segments
...
While only filler packets should be allowed, for good measure also skip
any other KLV packets in the range where there could be index table
segments.
This fixes parsing of partitions with multiple index table segments,
which are separated by a filler packet, or other packets.
2017-07-04 20:17:53 +03:00
Sebastian Dröge
af6db6861e
mxfdemux: Include duration in response to SEEKING query
2017-06-27 15:41:48 +03:00
Sebastian Dröge
1069330f76
mxfmux: Write temporal offset and correct keyframe offset into index table
...
https://bugzilla.gnome.org/show_bug.cgi?id=784027
2017-06-27 15:04:22 +03:00
Sebastian Dröge
830e89b7e9
mxfdemux: Take temporal reordering from the index table into account
...
This is needed to know the PTS, without that we only know the DTS and
using that also for the PTS is wrong unless we have an intra-only codec.
If we can't get the temporal reordering from the index table, don't set
any PTS for non-intra-only codecs and let decoders figure out something.
https://bugzilla.gnome.org/show_bug.cgi?id=784027
2017-06-27 10:47:44 +03:00
Thibault Saunier
fd3854c3e3
mxfdemux: Do not try to serialize unresolved metadatas
...
When retrieving the `mxfdemux.structure` property, it leads to an
assertion as metadatas need to be resolved for the call to
mxf_metadata_base_to_structure to be valid.
2017-06-15 14:18:20 -04:00
Nicolas Dufresne
4261692187
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Thibault Saunier
78022a6e0c
docs: Port all docstring to gtk-doc markdown
2017-04-12 12:57:57 -03:00
Vincent Penquerc'h
8a5d6397c1
mxfmux: fix index entry leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=781023
2017-04-09 11:17:11 +03:00