Commit graph

7325 commits

Author SHA1 Message Date
Vivia Nikolaidou
f3b539e0ff avwait: Deserialised timecodes set after caps event now get correct framerate
A deserialised timecode has a framerate of 0/1 by default. That breaks
it when comparing the frames field with another timecode (incoming from
the frame). We were setting the framerate when receiving the caps event,
but not when setting the timecode in set_property, so it was broken for
timecodes set after the caps event.

Also checking if the fps_n we got from the caps event is != 0 before
setting it - also at the caps event.

https://bugzilla.gnome.org/show_bug.cgi?id=790334
2017-11-14 18:29:49 +02:00
Vivia Nikolaidou
d364c7b443 timecode: Fix incorrect wording in error message 2017-11-10 17:28:07 +02:00
Vivia Nikolaidou
38120376c6 avwait: Better handling of deserialised timecode framerates
Now that timecodes support proper serialisation / deserialisation, a
timecode might have an invalid fps_n / fps_d even without using the
target-time-code-string property. Detect those cases and set fps_n/fps_d
properly.
2017-11-10 17:28:05 +02:00
Vivia Nikolaidou
ccc1624d09 Revert "debugutils: Added new jitterer element"
This reverts commit 595254f21b.

Was not ready to be pushed yet.
2017-11-07 21:12:36 +02:00
Vivia Nikolaidou
1998ccf1fb Revert "timecodestamper: LTC from audio"
This reverts commit c01afab9f7.

Was not ready to be pushed yet
2017-11-07 21:12:32 +02:00
Vivia Nikolaidou
05426d9298 Revert "timecodestamper: Modify ltc-add to tc-add"
This reverts commit 6552981b79.

Was not ready to be pushed yet
2017-11-07 21:12:25 +02:00
Vivia Nikolaidou
503403ff0a avwait: Fix crash when explicitly setting end_tc to NULL
If end_tc is NULL, it means that we don't want avwait to stop at any
timecode. When explicitly setting end_tc to NULL, there is no point in
comparing end_tc with start_tc (to see if we'll reject end_tc for being
before start_tc), so the check in question is completely disabled
instead of letting it crash.
2017-11-07 21:03:22 +02:00
Georg Lippitsch
6552981b79 timecodestamper: Modify ltc-add to tc-add
It is more general now and also adds TC to internal counter
2017-11-07 16:45:52 +02:00
Georg Lippitsch
c01afab9f7 timecodestamper: LTC from audio
Add support for parsing linear time code from
an audio source using libltc

https://github.com/x42/libltc

The user can now choose between 3 different and independently
running timecode sources. The old override-existing property
has been replaced by timecode-source.

https://bugzilla.gnome.org/show_bug.cgi?id=784295
2017-11-07 16:45:52 +02:00
Vivia Nikolaidou
595254f21b debugutils: Added new jitterer element
This element can be configured to add jitter and/or drift to incoming
buffers' PTS, DTS, or both. Amplitude and average of jitter and drift
are configurable.

https://bugzilla.gnome.org/show_bug.cgi?id=787358
2017-11-07 16:45:52 +02:00
Tim-Philipp Müller
dd7a90c48e videoaggregator: drop ABI compat in padding for new struct member
Don't really have to do that while it's in -bad and most users
are in-tree anyway.
2017-11-02 11:57:24 +00:00
Vivia Nikolaidou
a160b85f0a avwait: Added end-timecode property
avwait can now be configured to stop when a given timecode has been
reached. It will start at the timecode indicated with start-timecode and
end at the timecode indicated with end-timecode. If end-timecode is
NULL (default), the previous functionality is preserved: keep going and
not end.

https://bugzilla.gnome.org/show_bug.cgi?id=789403
2017-10-25 13:39:19 +02:00
Stefan Sauer
0a2ff1ecda aggregator: fix type for latency property (int64 -> GStClockTime)
The value is used as GstClockTiem in the code. Adapt the hack^H^H^H^Hcode
in live-adder.
2017-10-23 11:41:17 +02: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
Reynaldo H. Verdejo Pinochet
0f71d2e408 Use proper GtkDoc notation for NULL/FALSE/TRUE 2017-10-03 14:35:48 -07:00
Sebastian Dröge
d01724a9ab audiobuffersplit: Drain pending samples if the caps are changing
https://bugzilla.gnome.org/show_bug.cgi?id=787560
2017-09-28 14:13:44 +03:00
Sebastian Dröge
dd490e1555 audiobuffersplit: Use new GstAudioStreamAlign API
https://bugzilla.gnome.org/show_bug.cgi?id=787560
2017-09-28 14:13:17 +03:00
James Stevenson
9d5d9897e5 autoconvert: Fix two memory leaks on error conditions
Both the sink_chain and sink_chain_list will neither pass
or free the buffer if the internal src pad doesn't exist yet.

https://bugzilla.gnome.org/show_bug.cgi?id=788035
2017-09-22 08:46:10 +01:00
Edward Hervey
52d0ef2665 tsdemux: Make jp2k handling more robust and efficient
* Avoid copying the pending data and instead create a buffer directly from
  that data with the appropriate offset.
* Locate the jp2k magic to determine the exact location of the (first) frame
  data instead of assuming that the header is of an expected size

https://bugzilla.gnome.org/show_bug.cgi?id=786111
2017-09-01 10:49:36 +02:00
Edward Hervey
c393f0d768 tsdemux: Handle quirk in jp2k es header handling
The jp2k specification (ITU-T T.800) specifies that the 'brat' box
has two fields and the second one (AUF2) can be set to 0 for progressive
streams.

The problem is that the mpeg-ts specification (ITU-T H.222.0 06/2012)
says that the AUF2 field is only present if the stream is interlaced

In order to cope with both situation, accept those next 32bit if the
stream is marked as progressive and those bits contain 0

https://bugzilla.gnome.org/show_bug.cgi?id=786111
2017-09-01 10:49:36 +02:00
Edward Hervey
62d6f5c78a tsdemux: Properly error out on jp2k parsing errors
Avoids crashes later on where we assume buffer exists
2017-08-29 10:37:11 +02:00
Sebastian Dröge
5f144ca6ba mxfvc3: Use correct wrapping byte value 2017-08-10 17:01:03 +03:00
Mathieu Duponchelle
29c4ecbc25 compositor: improve conversion debugging
https://bugzilla.gnome.org/show_bug.cgi?id=786078
2017-08-10 13:55:59 +02:00
Mark Nauwelaerts
d949de49f3 mpegtsdemux: remove obsolete function declaration 2017-08-09 19:33:08 +02:00
Aaron Boxer
27c04cf912 pcapparse: support vlan 802.1q
https://bugzilla.gnome.org/show_bug.cgi?id=785778
2017-08-09 09:52:12 +03:00
Aaron Boxer
111921ae70 pcapparse: Support pcap with nanosecond timestamps
https://bugzilla.gnome.org/show_bug.cgi?id=785770
2017-08-09 09:51:18 +03:00
Tim-Philipp Müller
0448cf125b compositor: update disted orc fallback files 2017-08-03 20:14:41 +01:00
Thibault Saunier
806ff70590 compositor: Add support for crossfade blending
Crossfading is a bit more complex than just having two pads with the
right keyframes as the blending is not exactly the same.

The difference is in the way we compute the alpha channel, in the case
of crossfading, we have to compute an additive operation between
the destination and the source (factored by the alpha property of both
the input pad alpha property and the crossfading ratio) basically so
that the crossfade result of 2 opaque frames is also fully opaque at any
time in the crossfading process, avoid bleeding through the layer
blending.

Some rationnal can be found in https://phabricator.freedesktop.org/T7773.

https://bugzilla.gnome.org/show_bug.cgi?id=784827
2017-08-03 12:59:43 -04:00
Thibault Saunier
b76a3f8518 mpegpsmux: Do not dereference a NULL pointer 2017-08-03 12:51:13 -04:00
George Kiagiadakis
30f5abc32c ipcpipeline: move to sys/ and make it dependent on platform support for unix sockets 2017-08-02 10:40:24 +03:00
George Kiagiadakis
d3920aa2a9 meson: enable building the ipcpipeline plugin 2017-08-01 14:43:06 +03:00
George Kiagiadakis
3089d142b0 ipcpipeline: introduce new plugin for inter-process pipelines
These elements allow splitting a pipeline across several processes,
with communication done by the ipcpipelinesink and ipcpipelinesrc
elements. The main use case is to split a playback pipeline into
a process that runs networking, parser & demuxer and another process
that runs the decoder & sink, for security reasons.

https://bugzilla.gnome.org/show_bug.cgi?id=752214
2017-08-01 14:42:53 +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
819406b563 tsmux: Fix make distcheck 2017-07-21 12:28:50 +03:00
Sebastian Dröge
489466e2a5 tsmux: Add mpegtsmux_jpeg2000.c to meson.build 2017-07-21 09:33:54 +03:00
Sebastian Dröge
3fe65ad854 tsmux: Store PES payload size in a 32 bit integer
While the size in the packet is only 16 bits, we need to handle bigger
sizes without overflowing. For video streams this can happen, 0 is
written to the stream instead.

This fixes muxing of buffers >= 2**16.
2017-07-21 09:33:31 +03:00
Aaron Boxer
bbbdc2cd7e tsmux/tsdemux: Add support for JPEG2000
Based on patches by Milos Seleceni.

https://bugzilla.gnome.org/show_bug.cgi?id=753323
2017-07-21 09:33:31 +03:00
Seungha Yang
00cf833c95 webvttenc: Change src pad template to application/x-subtitle-vtt
Use consistent mime-type with subparse element for webvtt format

https://bugzilla.gnome.org/show_bug.cgi?id=784715
2017-07-18 09:40:18 +02:00
Aaron Boxer
45dbe864e2 jpeg2000parse: support 2-component images
https://bugzilla.gnome.org/show_bug.cgi?id=784797
2017-07-17 15:53:06 +03:00
Aaron Boxer
e10276a616 jpeg2000parse: initial support for JP2 format
This is a simple way of supporting JP2 : we treat is as JPC, and throw
away header info.

https://bugzilla.gnome.org/show_bug.cgi?id=767546
2017-07-17 15:51:02 +03:00
Aaron Boxer
85fbbc7a24 jpeg2000parse: Parse colorimetry, interlace-mode, field-order, multiview-mode and chroma-site
https://bugzilla.gnome.org/show_bug.cgi?id=753323
2017-07-17 15:49:34 +03:00
Tim-Philipp Müller
da44d1f0a9 audiomixer: document caps negotiation raciness
Until we land conversion support in audioaggregator (#773762).

https://bugzilla.gnome.org/show_bug.cgi?id=777915
2017-07-14 13:54:48 +01: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
Aaron Boxer
2cffa1579a jpeg2000parse: allow parsing when current caps are null
In this case, we assume that the format is jpc, and we infer the color
space from the number of components. This allows the parser to process a
jpc disk file coming from a filesrc element.

https://bugzilla.gnome.org/show_bug.cgi?id=783291
2017-07-10 10:03:43 +03:00
Mark Nauwelaerts
eebc4c0022 mpegdemux: segment seek flag is not relevant when checking for EOS
It is only relevant in deciding whether or not send SEGMENT_DONE.
In this case, not detecting EOS leads to a busy loop when encountering
the originally recorded end-of-file of a file that is still growing.
2017-07-09 11:06:45 +02: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
Eunhae Choi
ed5d677dce mpegpsmux: remove unnecessary g_return_if_fail()
This should never happen, and should be a g_assert()
if it's a worry. Fixes warnings from source code
checkers about possible caps leaks here.

https://bugzilla.gnome.org/show_bug.cgi?id=783955
2017-06-27 00:17:03 +01:00
Nicolas Dufresne
81e1aa201c meson: Add netsim plugin 2017-06-22 14:21:34 -04: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
Aaron Boxer
9ec2b7ce13 jpeg2000parse: parse RSIZ capabilities and put profile/level into the caps
The RSIZ capabilities tag stores the JPEG 2000 profile. In the case of
broadcast profiles, it also stores the broadcast main level, which
specifies the bit rate.

https://bugzilla.gnome.org/show_bug.cgi?id=782337
2017-06-07 10:06:26 +03:00
Thibault Saunier
1b8aa7578c videoparse: Fix property handling
Usage of GstValueArray was wrong and frame-stride does not exist in
rawvideoparse
2017-06-06 15:22:20 -04:00
Wim Taymans
f28ab7ce60 pcapparse: endianness fix
Also swap the linktype after we detected that we need to do
byteswapping. Fixes a problem with reading pcap files generated
on a machine with different endianness.
2017-06-01 16:00:50 +02:00
Olivier Crête
5443aa9ac8 audioaggregate: Don't hold object locks across calls to aggregate_one
https://bugzilla.gnome.org/show_bug.cgi?id=782878
2017-05-21 18:44:53 +02:00
Olivier Crête
57ede26031 audiointerleave: Take object lock while modifying channel count 2017-05-20 17:52:00 +02:00
Matthew Waters
7c53043386 aggregator: add simple support for caps handling
Modelled off the videoaggregator caps handling as that seems the most
mature aggregtor-using implementation that has caps handling there is.

https://bugzilla.gnome.org/show_bug.cgi?id=776931
2017-05-20 16:21:17 +02:00
George Kiagiadakis
39d2526c34 videoaggregator: delay using new caps from a sink pad until the next buffer in the queue is taken
When caps changes while streaming, the new caps was getting processed
immediately in videoaggregator, but the next buffer in the queue that
corresponds to this new caps was not necessarily being used immediately,
which resulted sometimes in using an old buffer with new caps. Of course
there used to be a separate buffer_vinfo for mapping the buffer with its
own caps, but in compositor the GstVideoConverter was still using wrong
info and resulted in invalid reads and corrupt output.

This approach here is more safe. We delay using the new caps
until we actually select the next buffer in the queue for use.
This way we also eliminate the need for buffer_vinfo, since the
pad->info is always in sync with the format of the selected buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=780682
2017-05-20 16:21:16 +02:00
Tim-Philipp Müller
80d66dfec8 Fix up package name and origin in some plugins 2017-05-18 10:58:20 +01:00
Tim-Philipp Müller
2ced01cc9f stereo: fix typo in plugin description 2017-05-18 10:53:48 +01:00
Sebastian Dröge
eb1f1ff0a5 h265parse: Fix calculation of codec_data buffer size 2017-05-18 11:43:03 +03: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
Vincent Penquerc'h
9fae0055e7 h265parse: fix caps leak in renegotiation 2017-05-12 11:15:04 +01:00
Vincent Penquerc'h
a06423efa4 h264parse: fix caps leak in renegotiation 2017-05-12 11:15:00 +01:00
Vincent Penquerc'h
ba22007e2f jpeg2000parse: fix negotiation with j2c and jpc both allowed upstream
If upstream supports both, but downstream supports only jpc, j2c
would have been selected as the first in the caps.

https://bugzilla.gnome.org/show_bug.cgi?id=782221
2017-05-12 11:14:31 +01:00
Sebastian Dröge
6026d12d90 audiobuffersplit: Allow changing the output-buffer-duration at any time
Previously this was only allowed before the CAPS event arrived.
2017-05-11 18:41:08 +02:00
Thibault Saunier
78022a6e0c docs: Port all docstring to gtk-doc markdown 2017-04-12 12:57:57 -03:00
Thibault Saunier
90f766cc51 rawvideoparse: videoparse now uses GstValueArray and not GValueArray 2017-04-12 12:08:07 -03:00
Fabian Orccon
456153cec9 faceoverlay: Port to GStreamer 1.x
https://bugzilla.gnome.org/show_bug.cgi?id=764011
2017-04-11 11:22:01 +03:00
Fabian Orccon
d4797e4455 faceoverlay: Revert deletion
https://bugzilla.gnome.org/show_bug.cgi?id=764011
2017-04-11 11:22:01 +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
Douglas Bagnall
e83573fd8d audiointerleave: don't overflow channel map with >64 channels
When there are more than 64 channels, we don't want to exceed the
bounds of the ordering_map buffer, and in these cases we don't want to
remap at all. Here we avoid doing that.

Based on a patch originally for plugins-good/interleave in
https://bugzilla.gnome.org/show_bug.cgi?id=780331
2017-03-31 14:11:56 +03:00
Nicolas Dufresne
62d167b551 audiomixmatrix: Don't crash if matrix is unset
Fix a crash ff one set in_channels/out_channels to non-zero, and then
get the matrix property.
2017-03-27 15:10:45 -04:00
Nicolas Dufresne
18917de956 audiomixmatrix: Remove property matrix-value-array
This duplicated property is no longer needed as there is now API to
allow bindings access GST_TYPE_ARRAY (see gst_util_get/set/object_array).
Additionnally, Python has proper overrides which will make this looks
like Python. A 2x2 matrix would be set this way:

  element = matrix = Gst.ValueArray(Gst.ValueArray([1.0, -1.0]),
      Gst.ValueArray([1.0, -1.0))

Notice that you need to "cast" each arrays to Gst.ValueArray, otherwise
there is an ambiguity between Gst.ValueArray and Gst.ValueList list type.
Fortunatly, Gst.ValueArray implements the Sequence interface, so it can
be indexed like normal python matrix.
2017-03-27 13:58:24 -04:00
Sebastian Dröge
971a481a8c audiobuffersplit: Install srcpad query function on the srcpad, not the sinkpad 2017-03-22 13:23:11 +02:00
Tim-Philipp Müller
24ee608947 Update for 'mad' mp3 decoder removal
https://bugzilla.gnome.org/show_bug.cgi?id=776140
2017-03-20 17:15:54 +00:00
Nicolas Dufresne
eb2dae8fd6 Rename plugin filesnames to match plugin names
- libgstgtksink.so -> libgstgtk.so
- libgstteletextdec.so -> libgstteletex.so
- libgstcamerabin2.so -> libgstcamerabin.so
- libgstonvif.so -> libgstrtponvif.so (meson only)
- sdp -> sdpelem (avoid clash with libgstsdp)
- gstsiren -> siren
- libgstkmssink.so -> libgstkms.so

https://bugzilla.gnome.org/show_bug.cgi?id=779344
2017-03-08 20:04:23 -05:00
Sebastian Dröge
9b5c46ca57 timecodestamper: Only unref daily jam if not NULL 2017-03-08 15:52:43 +02:00
Sebastian Dröge
6357d3aada timecodestamper: Unref daily jam after usage 2017-03-08 15:48:19 +02:00
Sebastian Dröge
8f8c5e25fa h264parse: frame->buffer can't be NULL in pre_push_frame()
CID 1402118
2017-03-08 14:22:52 +02:00
Hyunjun Ko
a997a99fdd h264parse: fix some failures in testcases
Move logic of judgement whether or not to insert AU Delimiter before
draining.
Besides, aud_needed flag is reset to TRUE when skip.

https://bugzilla.gnome.org/show_bug.cgi?id=736213
2017-03-08 14:18:18 +02:00
Hyunjun Ko
201e71c3aa h264parse: insert AU delimiter only in case of byte-stream
Inserts AU delimeter by default if missing au delimeter from upstream.
This should be done only in case of byte-stream format.

Note that:
We have to compensate for the new bytes added for the AU, otherwise
insertion of PPS/SPS will use wrong offsets and overwrite wrong data.

Also mark the AU delimiter blob const, and use frame->out_buffer for
storing the output to keep baseparse assumptions valid.

Original-Patch-By: Michal Lazo <michal.lazo@mdragon.org>
Helped by Sebastian Dröge <sebastian@centricular.com>

https://bugzilla.gnome.org/show_bug.cgi?id=736213
2017-03-07 13:27:33 +02:00
Sebastian Dröge
c3d21053aa audiomixmatrix: Fix negotiation in first-channels mode if downstream does not allow the same number of channels 2017-03-03 15:18:40 +02:00
Sebastian Dröge
a064590912 glvideomixer/compositor: Correctly error out if calculating DAR fails
CID 1320700
2017-02-28 13:06:41 +02:00
Edward Hervey
fcf87ef2bf mpegtsdemux: Fix wrong usage of '<<' operator
Detected by GCC 7.

Add comments for clarity

https://bugzilla.gnome.org/show_bug.cgi?id=779333
2017-02-28 09:27:41 +01:00
Nicolas Dufresne
266324b97a audiomixmatric: Add missing libm deps for meson 2017-02-27 21:22:30 -05:00
Thibault Saunier
b75a61342f h264parse: Include interlace-mode in caps
Those are the rules:

In the SPS:
  * if frame_mbs_only_flag=1 => all frame progressive
  * if frame_mbs_only_flag=0 => field_pic_flag defines if each frame is
    progressive or interlaced, thus the mode is 'mixed' in GStreamer
    terms.

https://bugzilla.gnome.org/show_bug.cgi?id=779309
2017-02-27 15:28:31 -03:00
Jan Schmidt
60810cd057 tsparse: Convert PCR values immediately
Doing lazy conversion of PCR values doesn't work right
when a PCR discont is encountered. Instead, convert PCR
values to the continuous timestamp domain as soon as we
encounter them and store that instead.
2017-02-27 23:48:49 +11:00
Sebastian Dröge
4af642a6f8 rawparse: Move to gst-plugins-base and keep legacy audioparse/videoparse here
https://bugzilla.gnome.org/show_bug.cgi?id=774544
2017-02-25 14:52:38 +02:00
Vivia Nikolaidou
e5d2f7dc6f meson: Added meson.build for audiomixmatrix and timecode
https://bugzilla.gnome.org/show_bug.cgi?id=779154
2017-02-24 10:10:07 +02:00
Vivia Nikolaidou
fa47edf846 audiomixmatrix: New element that mixes audio channels
This element transforms a given number of input channels into a given number of
output channels according to a given transformation matrix. The matrix
coefficients must be between -1 and 1. In the auto mode, input/output channels
are automatically negotiated and the transformation matrix is a truncated or
zero-padded identity matrix.

https://bugzilla.gnome.org/show_bug.cgi?id=777376
2017-02-23 21:02:44 +02:00
Georg Lippitsch
fc2ca69c25 timecodestamper: Remove clock-source property
Remove clock-source property, because the GST clock usually starts at
some random value and is thus uselsess for creating a timecode from it.

https://bugzilla.gnome.org/show_bug.cgi?id=778703
2017-02-23 20:00:55 +02:00
Georg Lippitsch
2cc62641c3 timecodestamper: First timecode from current system time
Add a new flag which automatically sets this first timecode to the
current system time in local time zone.

https://bugzilla.gnome.org/show_bug.cgi?id=778703
2017-02-23 20:00:55 +02:00
Georg Lippitsch
290f3ca6d7 timecodestamper: First timecode property
Add an new property to start from a given timecode
instead of zero.

https://bugzilla.gnome.org/show_bug.cgi?id=778703
2017-02-23 20:00:55 +02:00
Vivia Nikolaidou
668c44072b audiobuffersplit: Add strict-buffer-size property
If set to TRUE, any last audio samples too small to fill a buffer will
be discarded.

https://bugzilla.gnome.org/show_bug.cgi?id=779064
2017-02-22 21:01:46 +02:00
Sebastian Dröge
63e280df22 rawbaseparse: Drop incomplete frames at EOS
See https://bugzilla.gnome.org/show_bug.cgi?id=773666

This would ideally be solved in baseparse but that requires further
thought at this point, and in the meantime it would be good to have
rawbaseparse not assert on this but handle it gracefully instead.
2017-02-18 20:18:50 +02: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
Vivia Nikolaidou
a5933dc002 avwait: Fix potential deadlock when flushing / shutting down audio
The mutex must be unlocked in the error case

https://bugzilla.gnome.org/show_bug.cgi?id=778076
2017-02-02 15:29:25 +02:00
Jan Schmidt
df612f7eb1 mpegdemux: Add stream-format to the H.264 caps.
H.264 in MPEG-PS is always byte-stream
2017-02-01 14:46:15 +11:00
Jan Schmidt
ae98d3537b mpegdemux: Add extra length checks to TS scanning.
Add some missing size checks to the timestamp scanning
fast path.
2017-02-01 14:46:15 +11:00
Jan Schmidt
948b87bf15 psdemux: Rewrite PSM parsing using GstByteReader
Avoid possible buffer overflows and ignore invalid PSM packets better
by using GstByteReader.

https://bugzilla.gnome.org/show_bug.cgi?id=777957
2017-02-01 14:46:15 +11:00
Vivia Nikolaidou
9e4e447ad4 avwait: Rename timecodewait to avwait, add modes
Renamed timecodewait to avwait. Added running-time and video-first
modes. Default mode is timecode (the previous behaviour).

https://bugzilla.gnome.org/show_bug.cgi?id=777741
2017-01-26 16:21:55 +02:00
Sebastian Dröge
046aad8c1b tsdemux: Set caps/tags in the GstStream object before pushing the stream-start event
Otherwise downstream will get a more or less empty GstStream although we
already know a lot about it at this point.
2017-01-24 23:11:08 +02:00
Sebastian Dröge
636cb4ce32 tsdemux: Don't leak pad name and template for Opus
It's set again (the same way) further below, overwriting the previously
allocated memory without freeing.

https://bugzilla.gnome.org/show_bug.cgi?id=777533
2017-01-20 14:34:10 +02: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
Jan Schmidt
17430e7b82 dvdspu: Handle vob display rect starting on an odd line
DVDs always have subpictures that start on an even Y
coordinate, but gstspu does more generic vobsubs these
days, so handle ones that start on an odd vertical position.

https://bugzilla.gnome.org/show_bug.cgi?id=777400
2017-01-18 13:31:24 +11:00
Matt Staples
e81e029aa2 jpegparse: Chain up to parent class' sink event handler
Call base class's sink_event handler after handling GST_EVENT_FLUSH_STOP
event, so that base class doesn't get stuck in a 'flushing' state

https://bugzilla.gnome.org/show_bug.cgi?id=777097
2017-01-10 17:38:44 +02:00
Vivia Nikolaidou
b16cd484bf timecodestamper: Post element message with current timecode
timecodestamper will post an element message which contains the current
timecode it just stamped. If a timecode was already found and not
replaced, it will still post it in a message.

https://bugzilla.gnome.org/show_bug.cgi?id=777048
2017-01-09 18:52:24 +02:00
Garima Gaur
81b0a14d69 Fix some caps leaks in pad template creation code
gst_pad_template_new() does not take ownership of
the caps passed to it, so we need to unref the caps.

https://bugzilla.gnome.org/show_bug.cgi?id=776790
https://bugzilla.gnome.org/show_bug.cgi?id=776787
2017-01-03 10:02:58 +00:00
Fabrice Bellet
aac4c10d0e autoconvert: fix a reconfigure event leak
https://bugzilla.gnome.org/show_bug.cgi?id=776726
2017-01-02 19:52:33 -03:00
Nicola Murino
92b471b511 videoanalyse: update docs
https://bugzilla.gnome.org/show_bug.cgi?id=746018
2016-12-31 10:51:04 +00:00
Mark Nauwelaerts
dc970791b8 mpeg4videoparse: determine intra of frame at frame parse time
... rather than when determining when to end the frame.
The opportunity to do so might not come when forced to drain,
and it seems nicer anyway to do so at parse wrapup time.
2016-12-28 13:54:24 +01:00
Sebastian Dröge
5cff156f2c audiobuffersplit: Don't try to output anything if samples_per_buffer == 0
This happens if we had no CAPS event yet but e.g. got an EOS event. We
would then try to output a 0-sized buffer, but getting that from the
adapter will give an assertion, return NULL and then crash.
2016-12-23 13:27:42 +02:00
Sebastian Dröge
9b5de05399 Remove various unported plugins
If they were not ported after 4+ years it seems unlikely that anybody is
ever going to need them again. They're still in the GIT history if
needed.

https://bugzilla.gnome.org/show_bug.cgi?id=774530
2016-12-21 11:17:11 +02:00
Garima Gaur
0fdd4e2539 gst: Fix memory leaks in usage of gst_element_get_request_pad() API
The return value has to be unreffed at some point.

https://bugzilla.gnome.org/show_bug.cgi?id=776334
2016-12-21 10:28:12 +02:00
Graham Leggett
b5791efcc0 tsdemux: Don't leak a taglist if a taglist has already been created
https://bugzilla.gnome.org/show_bug.cgi?id=776244
2016-12-19 11:02:08 +02:00
Daniel Shahaf
a38887375f mirror: Fix documentation for the mirror mode
Using the wrong enum there causes it to be randomly mixed with the docs
of the other enums.

https://bugs.debian.org/848297
2016-12-16 13:26:50 +02:00
Sebastian Dröge
951ddc6ece compositor: Reject multiview video
Compositor does not support it currently and it needs special support
for handling this correctly, and is rather non-trivial to implement for
all formats.
2016-12-14 15:36:14 +02:00
Sebastian Dröge
807e23118b vmncdec: Sanity-check rectangle sizes a bit more thorough
The x/y coordinates could already be bigger than the configured
width/height, and adding the rectangle width/height could cause an
overflow.
2016-12-06 07:59:51 +02:00
Tim-Philipp Müller
af706826a6 rawvideoparse: fix typos in property description 2016-12-05 18:17:30 +00:00
Vivia Nikolaidou
e27fc343cc interlace: Writing field-order into the src caps
Writing top-field-first vs bottom-field-first into the src caps

https://bugzilla.gnome.org/show_bug.cgi?id=775409
2016-11-30 18:50:41 +02:00
Garima Gaur
aa08be43c7 gst: Fix caps leak
https://bugzilla.gnome.org/show_bug.cgi?id=775072
2016-11-30 09:59:08 +02:00
Sebastian Dröge
423e4593aa rawparse: Whitespace cleanup 2016-11-28 14:26:17 +02:00
Tim-Philipp Müller
de4bb6e1d4 dataurisrc: remove plugin, moved to core
https://bugzilla.gnome.org/show_bug.cgi?id=774527
2016-11-28 11:26:50 +00:00
Sebastian Dröge
b0a6b5eac8 tsdemux: Post an error message on the bus if we activated a program without pads
Otherwise decodebin and applications are going to wait forever for pads
to appear, which is never going to happen.

Happens on this stream, which probably just need support for it added:
https://samples.mplayerhq.hu/3D/AVC_codec_in_m2ts_not_recognized/AVC_codec_not_recognized_right_video_sample.m2ts
2016-11-28 10:30:11 +02:00
Sebastian Dröge
2f87392ee7 rawbaseparse: Fix output buffer size trimming
For frame->buffer, baseparse is doing that automatically for us. For
frame->output_buffer it doesn't and assumes that the subclass is already
doing that. Consistency!
2016-11-27 12:40:53 +02:00
Sebastian Dröge
5a6b121d5b rawparse: Properly align raw audio/video output buffers
That is, aligned to the basic type for audio and to 32 bytes for video.
Fixes crashes if the raw buffers are passed to SIMD processing functions.

https://bugzilla.gnome.org/show_bug.cgi?id=774428
2016-11-27 11:45:33 +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
55043aff12 h264parse: Fix indentation 2016-11-26 12:16:58 +02:00
Sebastian Dröge
cb4ccecc97 h265parse: Fix assertion when encountering an invalid NALU
Error out properly instead.

https://bugzilla.gnome.org/show_bug.cgi?id=775130
2016-11-26 12:16:58 +02:00
Sebastian Dröge
47bf425cba h264parse: Fix assertion when encountering an invalid NALU
Error out properly instead.

https://bugzilla.gnome.org/show_bug.cgi?id=775130
2016-11-26 12:16:58 +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