Commit graph

7142 commits

Author SHA1 Message Date
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