Commit graph

398 commits

Author SHA1 Message Date
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
Tim-Philipp Müller
979907144a meson: dist meson build files
Ship meson build files in tarballs, so people who use tarballs
in their builds can start playing with meson already.
2017-02-14 20:19:44 +00:00
Sebastian Dröge
08723e68df mxfdemux: Set stream tags to NULL after unreffing
Otherwise we might try to unref them a second time a little bit later.

https://bugzilla.gnome.org/show_bug.cgi?id=777503
2017-01-20 07:51:09 +02:00
Sebastian Dröge
88e060743a mxfdemux: Post an error message if we got EOS before having any source pads
Otherwise, sending an EOS event has no effect and the application waits
forever for something to happen.
2016-11-26 12:28:57 +02:00
Sebastian Dröge
d3b45a145f mxfdemux: Fix up another size check and prevent allocating too much memory 2016-11-25 16:46:45 +02:00
Sebastian Dröge
31a2f2d5a1 mxfdemux: Handle zero-sized KLV items better and don't assert on them 2016-11-25 15:59:44 +02:00
Sebastian Dröge
73e02f4553 mxfdemux: Fix various logic errors in error handling of footer partition parsing 2016-11-25 15:53:50 +02:00
Sebastian Dröge
9ff1ac59f3 mxfdemux: Don't try parsing empty metadata items 2016-11-25 15:53:36 +02:00
Sebastian Dröge
329fe3eea4 mxfmetadata: Add missing NULL check 2016-11-25 15:30:39 +02:00
Sebastian Dröge
743d7bd7ec mxf: Remove mxfdms1.[ch] from the build for now
It's completely unused currently but might be used in the future.
2016-11-24 23:40:45 +02:00
Sebastian Dröge
b5bb6e3b38 mxfdemux: Add various missing bounds checks, NULL checks and integer overflow protection for error cases 2016-11-24 23:40:21 +02:00
Thibault Saunier
2fb716409c Use the new API to post flow ERROR messages on the bus
https://bugzilla.gnome.org/show_bug.cgi?id=770158
2016-08-26 19:23:31 -03:00
Nirbheek Chauhan
42af2d66d8 Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Matej Knopp <matej.knopp@gmail.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-20 11:35:54 +01:00
Sebastian Dröge
cc1feff99f mxfmux: Instead of releasing request pads on stop(), clear them only
Request pads are requested by applications and as such should only be released
by them again. Instead of releasing them when stopping the muxer, just clear
their state so that they can be used again when starting the muxer again.

https://bugzilla.gnome.org/show_bug.cgi?id=763862
2016-03-25 12:54:00 +02:00
Vineeth TM
8cdfb13658 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Jimmy Ohn
74a90087c1 mxfdemux: Fix query memory leak
Peer query isn't being freed in case of GST_QUERY_SEEKING.

https://bugzilla.gnome.org/show_bug.cgi?id=763974
2016-03-21 10:44:02 +02:00
Sebastian Dröge
a032347c77 mxfmux: Fix typo in JPEG2000 colorspace
sRGC -> sRGB
2016-03-16 11:34:46 +02:00
Sebastian Dröge
129b04fad0 mxftypes: Generate UUIDs according to RFC4122 version 4 (aka random)
Instead of fully random UUIDs, these should follow a scheme.
2016-01-29 23:39:26 +01:00
Sebastian Dröge
4321fd94a1 mxfmetadata: Properly write video line map data as an array of 32 bit integers 2016-01-29 21:09:44 +01:00
Sebastian Dröge
4d13ef1034 mxfmetadata: DMSchemes in the Preface is a required field
Even if it has 0 entries.
2016-01-29 20:58:27 +01:00
Sebastian Dröge
9c39e6769d mxful: Fix Content Storage UL 2016-01-29 18:41:52 +01:00
Sebastian Dröge
e222f28bf3 mxfmetadata: Best effort values must be written and if unset must contain the distinguished value
It's invalid to not write them at all.
2016-01-29 18:28:03 +01:00
Sebastian Dröge
070d4312a8 mxful: Add missing OperationalPattern UL, which fixes an off-by-one with the others 2016-01-29 17:36:11 +01:00
Sebastian Dröge
2f40450d8e mxfmux: Our body partition is always complete and closed
We have no metadata in it.
2016-01-29 17:07:08 +01:00
Sebastian Dröge
5f3e444aff mxfmux: Use IndexSID of 2 instead of 1
Some tools complain if essence and index have the same SID.
2016-01-29 17:02:32 +01:00
Sebastian Dröge
cd17ea1070 mxfmux: Rewrite body partition pack on EOS and mark it as complete/closed 2016-01-29 17:02:32 +01:00
Sebastian Dröge
cd2a8036f2 mxfmpeg: Write the correct essence container UL for all codecs 2016-01-28 18:54:29 +01:00
Sebastian Dröge
45048662a1 mxfmpeg: Write version number into the picture essence coding UL 2016-01-28 18:54:29 +01:00
Sebastian Dröge
e48c5ed816 mxfmux: Write a timecode track into the source package too 2016-01-28 18:54:29 +01:00