Commit graph

7241 commits

Author SHA1 Message Date
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
Sebastian Dröge
166c5333ca timecodestamper: Remove all existing timecode metas if requested to override existing 2016-11-24 14:42:45 +02:00
Edward Hervey
a39dc142e6 mpegtspacketizer: Don't add existing values to group
If the last value is already identical, there is no need in adding it
yet-another-time
2016-11-24 11:15:22 +01:00
Sebastian Dröge
0acb3d87bb audiobuffersplit: New element that splits raw audio buffers into equal-sized buffers
This is useful e.g. if audio buffers should be exactly the duration of a
video frame, or if a audio buffers should never be too large because of
latency constraints.

The element is taking a fractional buffer duration, to allow working
with e.g. 1001/30000 as output duration and it accumulates rounding
errors in the buffer durations and compensates for them by making some
buffers one sample larger than the others.

https://bugzilla.gnome.org/show_bug.cgi?id=774689
2016-11-23 18:18:46 +02:00
Sebastian Dröge
43736e5c37 h265parse: Ensure codec_data has the required size when reading number of NAL arrays
https://bugzilla.gnome.org/show_bug.cgi?id=774896
2016-11-23 10:53:46 +02:00
Sebastian Dröge
1dbfef93d6 h264parse: Ensure codec_data has the required size when reading number of SPS
https://bugzilla.gnome.org/show_bug.cgi?id=774896
2016-11-23 10:53:40 +02:00
Sebastian Dröge
ee300b6c33 mpegtspacketizer: Reset values before parsing each section 2016-11-22 13:00:21 +02:00
Sebastian Dröge
ab4bb225bd mpegtspacketizer: Make sure in all cases that we have enough data left for reading a section start
In some cases we ended up parsing sections without.
2016-11-22 12:56:03 +02:00
Sebastian Dröge
0f657cec07 vc1parse: Mark pad as needing reconfiguration again if it failed
And return FLUSHING instead of NOT_NEGOTIATED on flushing pads.

https://bugzilla.gnome.org/show_bug.cgi?id=774623
2016-11-18 12:22:44 +02:00
Thibault Saunier
ca3020cf46 videomeasure: Remove old unported videomeasure plugin as it is now replaced by IQA 2016-11-17 13:25:40 -03:00
Sebastian Dröge
4cb1bcf142 vmncdec: Sanity-check width/height before using it
We will allocate a screen area of width*height*bpp bytes, however this
calculation can easily overflow if too high width or height are given
inside the stream. Nonetheless we would just assume that enough memory
was allocated, try to fill it and overwrite as much memory as wanted.

Also allocate the screen area filled with zeroes to ensure that we start
with full-black and not any random (or not so random) data.

https://scarybeastsecurity.blogspot.gr/2016/11/0day-poc-risky-design-decisions-in.html

Ideally we should just remove this plugin in favour of the one in
gst-libav, which generally seems to be of better code quality.

https://bugzilla.gnome.org/show_bug.cgi?id=774533
2016-11-16 20:41:39 +02:00
Sebastian Dröge
b957c336e5 smoothwave: Remove empty directory 2016-11-16 16:45:27 +02:00
Sebastian Dröge
734d98eaf1 real: Remove empty directory 2016-11-16 16:33:41 +02:00
Sebastian Dröge
ca6e47e63b mpeg1sys: Remove obsolete, empty directory that only contains a meson.build 2016-11-16 16:15:34 +02:00
Scott D Phillips
e4407d4599 Fix some MSVC warnings about const-ness
Some miscellaneous warnings about const-ness, either casting away const
where we know it's safe or removing const where it's not correct.

https://bugzilla.gnome.org/show_bug.cgi?id=774293
2016-11-15 14:53:49 +02:00
Scott D Phillips
0345fb8aef mpegtsdemux: fix operator precedence in SAFE_FOURCC_ARGS
Type cast has higher precedence than bitwise shift, so the third
argument will truncate to 8 bits and then shift right by 8 bits
resulting in constant zero.

https://bugzilla.gnome.org/show_bug.cgi?id=774293
2016-11-12 10:53:02 +02:00
Sebastian Dröge
4899bf0926 gst: Fix more mentions of interlaced-mode to say interlace-mode 2016-11-04 16:26:50 +02:00
Tim-Philipp Müller
d42177c89e bayer: fix stride inconsistencies for odd widths
Consistently use GST_ROUND_UP_4(width) as stride for
bayer buffers. Bayer data will usually come in widths
that are multiples of 4 anyway, so hopefully this
should not have any adverse impact on anyone in
practice.

Before, bayer2rgb required input buffers to are sized
accordingly, but then didn't actually round up when
calculating row offsets. rgb2bayer didn't use a rounded
stride nor buffer size.

https://bugzilla.gnome.org/show_bug.cgi?id=752014
2016-11-01 19:35:47 +02:00
Tim-Philipp Müller
2f8709d057 rawparse: pass flow returns upstream
rawvideoparse wouldn't error out on not-negotiated,
but would just keep on going, because it didn't pass
the flow return value back to the parent class and
thus upstream, so the source wouldnt' stop streaming.
2016-10-29 11:31:28 +01:00
Nirbheek Chauhan
bb0a83b018 plugins: Use explicit type conversion from enums
MSVC warns about this because it's a C++ compiler, and this actually
results in useful things such as the incorrect 'gboolean' return value
for functions that return GstFlowReturn, so let's do explicit
conversions to reduce the noise and increase its efficacy.
2016-10-27 23:06:26 +05:30
Nirbheek Chauhan
f790863755 Explicitly define float constants as float
With MSVC, this gives the following warning:

warning C4305: 'function': truncation from 'double' to 'gfloat'

Apparently, MSVC does not figure out what type to use for constants
based on the assignment. This warning is very spammy, so let's try to
fix it.
2016-10-27 23:06:26 +05:30
Nirbheek Chauhan
4b903f0cf3 meson: Add missing gstvideo dep to segmentclip
In file included from ../subprojects/gst-plugins-base/gst-libs/gst/video/video.h:27:0,
                 from ../subprojects/gst-plugins-bad/gst/segmentclip/gstvideosegmentclip.c:25:
../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.h:27:39: fatal error: gst/video/video-enumtypes.h: No such file or directory
 #include <gst/video/video-enumtypes.h>
                                       ^
compilation terminated.

https://ci.gstreamer.net/job/GStreamer-master-meson/269/console
2016-10-18 13:01:04 +05:30
Vincent Penquerc'h
1630d2a0d7 mpegtsmux: fix buffer size mismatch in M2TS mode
In M2TS mode, we need an extra 4 bytes in the buffer, so need
to ensure the buffer can contain these. The allocation site
does not know the mode, so this is done in all cases.
2016-10-17 12:32:58 +01:00
Joan Pau Beltran
32b356b2c5 bayer: fix _transform_caps method to preserve fields in given caps
https://bugzilla.gnome.org/show_bug.cgi?id=758717
2016-10-14 09:45:15 -04:00
Edward Hervey
6622e2dacf mpegtsdemux: Implement efficient program updates
If the parent bin can handle it, only add/remove the new/gone stream
instead of re-adding/re-moving everything

https://bugzilla.gnome.org/show_bug.cgi?id=772742
2016-10-12 15:07:46 +02:00
Edward Hervey
ddacbb7793 mpegtsdemux: Ensure we always get an upstream stream-id
This was a regression.

We only have a upstream-id via STREAM_START if we were in push-mode.
In pull-mode we need to create one.

Note: It would be good to eventually have that method (copied from
gst_pad_get_stream_id_internal()) public in the future
2016-10-12 14:35:21 +02:00
Edward Hervey
ee70f830a8 mpegtsdemux: Fix issues with GST_DISABLE_GST_DEBUG
Some variables were hidden or unused
2016-10-11 16:47:37 +02:00
Edward Hervey
bcc06d679a mpegtsdemux: Switch to using GstStream/GstStreamCollection
For each MpegTSBaseStream, we have a GstStream object which
subclasses can extend with information.

For each program a GstStreamCollection is created with all
GstStream from each stream.
2016-10-11 12:38:02 +02:00
Edward Hervey
dc703b50b3 mpegtsbase: Remove duplicated code
Just have one function to check for private section streams
2016-10-11 12:37:57 +02:00
Edward Hervey
fb36608ccd mpegts: Also clear packetizer on TIME DISCONT
When dealing with TIME-based input, the incoming stream could have
potentially changed completely.

In order to check whether it did or not, we need to re-check all sections
(PAT, PMT...). If it didn't, we will keep using the existing streams/pad,
and if it did we will act as if there was a program switch.

Fixes HLS streaming with decodebin3/playbin3
2016-10-08 14:14:00 +02:00
Wonchul Lee
69b866326e tsdemux: Add conditions to identify ATSC EAC3
https://bugzilla.gnome.org/show_bug.cgi?id=770528
2016-10-03 15:14:54 -04:00
Kyungyong Kim
214a041e13 h265parse: Fix parsing of multiple NALs in the hvcC box
https://bugzilla.gnome.org/show_bug.cgi?id=771970
2016-09-26 09:35:25 +03:00
Sebastian Dröge
8daf628910 jpeg2000parse: Don't pass NULL strings to the colorspace / sampling parsing functions
They assert on NULL.
2016-09-24 10:05:49 -04:00
Joakim Johansson
2837ca997f rtponviftimestamp: Change default value of D-bit
The default value of D-bit is changed to TRUE so discontinuity
is set for initial request and seek request as well.

Only set the e_bit flag for the CUSTOM_DOWNSTREAM event if
a cached buffer exists.

https://bugzilla.gnome.org/show_bug.cgi?id=770221
2016-09-19 11:24:47 -04:00
Hyunjun Ko
4ba54b6046 dvbsuboverlay: map with READWRITE for overlay blend
Just as in basetextoverlay [1], the frame to blend with the subtitles overlay
should be mapped with flags GST_MAP_READWRITE, because
gst_video_overlay_composition_blend() does both operations.

1. https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=1396f804

Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

https://bugzilla.gnome.org/show_bug.cgi?id=771382
2016-09-14 10:55:09 +02:00
Graham Leggett
7713bb763e tsdemux: handle a NULL name in DVB short event descriptor
Resolves the warning:

GStreamer-WARNING **: Trying to set NULL string on field 'title' on taglist.

https://bugzilla.gnome.org/show_bug.cgi?id=771198
2016-09-13 12:23:28 +01:00
Wonchul Lee
35d147930d tsdemux: Support ATSC EAC3
EAC3 bit streams shall be identified with a stream_type value of 0x87 when
transmitted as PES streams conforming to ATSC-published standards. It is specified
in ATSC Standard A/52.

https://bugzilla.gnome.org/show_bug.cgi?id=770528
2016-09-01 17:56:41 -04: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
Thibault Saunier
50473d77cc meson: Make mpegts lib build when using subprojects
The headers passed as parametter are relative to the build dir
basically "../subproject/gst-plugins-bad/gst-libs/gst/mpegts/XXX.h"
but that does not match what is needed at build time when building as
subproject, also we always add current dir as include_dir so we are
safe including directly.

And link mpegtsdemux against the 'math' library as it is needed.
2016-08-25 15:17:17 -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
Nirbheek Chauhan
7e2b68fe2f plugins: Use stdint.h instead of _stdint.h
_stdint.h is generated by Autotools and we don't really need it. All
supported platforms now ship with stdint.h. The only stickler was MSVC,
and since Visual Studio 2015 it also ships stdint.h now.
2016-08-19 14:42:52 +01:00
Luis de Bethencourt
9514d06ab6 rawvideoparse: fix typo in comment
Small typo in the comment explaining the code fixed by the previous commit.
Fixing it.
2016-08-19 12:25:48 +01:00
Sebastian Dröge
a27103b536 rawvideoparse: Revert last commit and actually remember the physically last plane
Instead of just always taking the last one as before.
2016-08-19 14:19:38 +03:00
Luis de Bethencourt
94c5e998c2 rawvideoparse: remove unused assignment
Value in last_plane will be overwritten before used, remove unused
asignment.

Fixes commit 91cf5ac69f
CID 1371462
2016-08-19 11:57:35 +01:00
Carlos Rafael Giani
91cf5ac69f rawvideoparse: Compute plane offsets & strides if no custom ones are set
This is useful to ensure that the offsets and strides are computed if
only width, height, format etc. in the property config are set.

https://bugzilla.gnome.org/show_bug.cgi?id=769797
2016-08-18 09:21:16 +03:00
xlazom00
94d11f87c7 hls, timecode: fix linking
https://bugzilla.gnome.org//show_bug.cgi?id=769587
2016-08-07 16:45:25 +01:00
Bernhard Miller
9171fa9c19 aiffparse: keep end_offset when seeking
After seeking in aiff files the information about the data end offset is
discarded, leading to audio artifacts with metadata chunks at the end of
a file.
This patch retains the end offset information after a seek event.

https://bugzilla.gnome.org//show_bug.cgi?id=769376
2016-08-06 16:47:27 +01:00
Tim-Philipp Müller
f991e09319 dvdspu: don't crash if video frame could not be mapped
As might happen with e.g. vaapi and the test file from
https://bugzilla.gnome.org/show_bug.cgi?id=736227
2016-08-06 16:17:06 +01:00
Vivia Nikolaidou
3072dd80d2 timecodewait: New element to wait for a specific timecode
timecodewait receives a timecode as an argument (either as string or as
GstVideoTimeCode - one is gst-launch-friendly and the other is code-friendly),
and it will drop all audio and video buffers until that timecode has been
reached.

https://bugzilla.gnome.org/show_bug.cgi?id=766419
2016-08-04 19:08:27 +03:00
Vivia Nikolaidou
a2c6e2b64a timecodestamper: New element to attach SMPTE timecode to buffers
The timecodestamper element attaches a SMPTE timecode to each video buffer.
This timecode corresponds to the current stream time.

https://bugzilla.gnome.org/show_bug.cgi?id=766419
2016-08-04 19:08:27 +03:00
Edward Hervey
51c5ff45de tsdemux: Fix draining on wrong programs
When draining a program, we might send a newsegment event on the pads
that are going to be removed (and then the pending data).

In order to do that, calculate_and_push_newsegment() needs to know
what list of streams it should take into account (instead of blindly
using the current one).

All callers to calculate_and_push_newsegment() and push_pending_data()
can now specify the program on which to act (or NULL for the default
one).
2016-08-03 17:15:41 +02:00
Edward Hervey
e2b98a7721 tsdemux: Fix GAP synchronization without a valid PCR PID
For streams that don't have a valid PCR PID, we just use the latest
PTS from any given stream.

https://bugzilla.gnome.org/show_bug.cgi?id=608148
2016-08-03 17:15:41 +02:00
Michael Olbrich
36e6590335 tsdemux: handle pcr_pid == 0x1fff
Streams without PCR make senses in HLS, where the playlist timestamps
can be used to seek or calculate the duration.

https://bugzilla.gnome.org/show_bug.cgi?id=608148
2016-08-03 17:15:41 +02:00
Arnaud Vrac
7a3d189250 mpegtsdemux: do not abort playback when no PCR were found during initial scan
Seeking will not be possible in those streams but at least the can be
played. Note scanning is only done when tsdemux is configured in pull mode.

https://bugzilla.gnome.org/show_bug.cgi?id=608148
2016-08-03 17:15:41 +02:00
Arnaud Vrac
35a1720de1 mpegtsdemux: only wait for PCR when PCR pid is set
Streams without PCR make senses in HLS, where the playlist timestamps
can be used to seek or calculate the duration.

https://bugzilla.gnome.org/show_bug.cgi?id=608148
2016-08-03 17:15:40 +02:00
Carlos Rafael Giani
9c596d20fe aiffparse: Add tags for container format and bitrate
The bitrate is added to help downstream elements (like uridecodebin)
figure out a proper network buffer size

https://bugzilla.gnome.org/show_bug.cgi?id=769389
2016-08-02 15:21:38 +03:00
Sreerenj Balachandran
14cc51cddc videoparsers: h264: Add more scalable profiles to the profile list
Adding Scalable Constrained High (G.10.1.2.1) and
Scalable High Intra(G.10.1.3) profiles to the profile list

https://bugzilla.gnome.org/show_bug.cgi?id=769303
2016-08-02 14:26:40 +03:00
Sebastian Dröge
1990d4337b rawaudioparse: Use G_GINT64_MODIFIER for portability
https://bugzilla.gnome.org/show_bug.cgi?id=769295
2016-07-29 10:49:26 +03:00
Sebastian Dröge
e572375793 unalignedaudioparse: Fix element factory name of inner parser 2016-07-29 10:07:23 +03:00
Carlos Rafael Giani
403499a0c0 rawparse: Remove old parser code and wrap new parsers in old elements
https://bugzilla.gnome.org/show_bug.cgi?id=767011
2016-07-26 13:44:39 +03:00
Carlos Rafael Giani
d555f34562 rawparse: Add new raw audio and video parser elements
The new rawaudioparse and rawvideoparse elements are based on GstBaseParse
and completely replace audioparse and videoparse

https://bugzilla.gnome.org/show_bug.cgi?id=767011
2016-07-26 13:44:39 +03:00
Michael Olbrich
48c5cc1b1b tsdemux: add support for LPCM with stream_type = 0x83
https://bugzilla.gnome.org/show_bug.cgi?id=765807
2016-07-25 13:38:29 +03:00
Sebastian Dröge
064f46e9e1 jpeg2000parse: Use correct enum type
GST_JPEG2000_SAMPLING_RGB instead of GST_JPEG2000_COLORSPACE_RGB

https://bugzilla.gnome.org/show_bug.cgi?id=768696
2016-07-12 00:02:53 +03:00
Nirbheek Chauhan
a3d58818e8 Fix various gboolean vs GstFlowReturn problems
Caught by building with MSVC which gave warnings for these
2016-07-11 15:02:06 +01:00
Tim-Philipp Müller
dae928f14c camerabin: update docs section 2016-07-08 14:42:18 +01:00
Luis de Bethencourt
6033c37d14 gaudi: fix documentation warning in GstGaussianBlur
Fixing the following warning when generating documentation:
xml/element-gaussianblur.xml:72: element refsect2: validity error :
    ID GstGaussianBlur already defined
<refsect2 id="GstGaussianBlur" role="typedef">
                                             ^
Warning: multiple "IDs" for constraint linkend: GstGaussianBlur.
  DOC   Fixing cross-references
2016-07-07 17:40:43 +01:00
Luis de Bethencourt
3b491a15cb gaudi: fix documentation warning in GstChromium
Fixing the following warning when generating documentation:
xml/element-chromium.xml:74: element refsect2: validity error :
    ID GstChromium already defined
<refsect2 id="GstChromium" role="typedef">
                                         ^
Warning: multiple "IDs" for constraint linkend: GstChromium.
  DOC   Fixing cross-references
2016-07-07 17:40:43 +01:00
Luis de Bethencourt
418e643b61 gstjpeg2000parse: no need for else after a goto
else clause is redundant when the end of the if statement is a jump.
If we haven't gone to the beach, we are in the false branch.
2016-07-01 14:08:13 +01:00
Aaron Boxer
154698389d gstjpeg2000parse: improved parsing of jpc magic and j2c box
https://bugzilla.gnome.org/show_bug.cgi?id=767512
2016-07-01 13:15:11 +01:00
Edward Hervey
c19d1b46c3 h264parse: Drop filler data
When skipping data, check if they are filler bytes. If so, drop the
data instead of skipping. We don't want to output filler bytes, but they
shouldn't cause a discontinuity.

https://bugzilla.gnome.org/show_bug.cgi?id=768125
2016-06-30 10:32:01 +02:00
Jan Schmidt
92e7e3a3bf h264parse: When input alignment=AU, always drain each packet.
If the input alignment claims AU alignment, each received
buffer should contain a complete video frame, so never hold over parts
of buffers for later processing. Also reduces latency, as packets
are parsed/converted and output immediately instead of 1 buffer
later.

Fixes a problem where an (arguably disallowed) padding byte on the
end of a buffer is detected as an extra byte in the following
start code, and messes up the timestamping that should apply to
that start code.
2016-06-24 22:55:18 +10:00
Tim-Philipp Müller
cb7b6e7a90 videoparsers: fix broken include 2016-06-24 09:39:00 +01:00
Aaron Boxer
e7e6a3579d jpeg2000parse: use enums for colorspace and sampling, rather than strings
Also, move gstjpeg2000sampling to codecparsers project

https://bugzilla.gnome.org/show_bug.cgi?id=767908
2016-06-24 11:23:31 +03:00
Nicolas Dufresne
951157c2a5 doc: Automatic update
This is an automatic update with manual merges of running
"make update" in the doc/plugins directory. This should help
later maintenance of the plugins doc. A lot of plugin are
not referenced yet in the doc. Will come later.
2016-06-21 13:46:00 -04:00
Nirbheek Chauhan
36332faf14 build: Factor out endian-order RGB formats
MSVC seems to ignore preprocessor conditionals inside static pad templates
2016-06-21 11:32:29 +01:00
Aaron Boxer
81e3b998be jpeg2000parse: support j2c format
https://bugzilla.gnome.org/show_bug.cgi?id=767512
2016-06-17 23:08:37 +03:00
Mats Lindestam
a0876aa750 h264parse: support for handling of config-interval = -1
Added support for handling of config-interval = -1.
config-inteval = -1 represents resending SPS and PPS for each
I-/IDR-frame.

https://bugzilla.gnome.org/show_bug.cgi?id=766803
2016-06-13 10:10:21 +01:00
Mats Lindestam
bf0d952387 h264parse: refactored handling of SPS/PPS when pushing frames
https://bugzilla.gnome.org/show_bug.cgi?id=766803
2016-06-13 10:10:05 +01:00
Mats Lindestam
0c04e004bb h264parse: change "config-interval" property type from uint to int
So we can use -1 as special value like in rtph264pay.

https://bugzilla.gnome.org/show_bug.cgi?id=766803
2016-06-13 10:08:22 +01:00
Aaron Boxer
3dc3a915ea jpeg2000parse: Require either colorspace or sampling field in sink caps
And always set the sampling field on the src caps, if necessary guessing a
correct value for it from the colorspace field.

Also, did some cleanup: removed sampling enum - redundant.

https://bugzilla.gnome.org/show_bug.cgi?id=766236
2016-06-10 16:25:50 +03:00
Nicolas Dufresne
50537e2c08 vmncdec: Wait for segment event before checking it
The heuristic to choose between packetise or not was changed to use the
segment format. The problem is that this change is reading the segment
during the caps event handling. The segment event will only be sent
after. That prevented the decoder to go in packetize mode, and avoid
useless parsing.

https://bugzilla.gnome.org/show_bug.cgi?id=736252
2016-06-07 21:05:41 -04:00
Aaron Boxer
fffee978c2 jpeg2000parse: Add JPEG2000 parser element
https://bugzilla.gnome.org/show_bug.cgi?id=766236
2016-06-07 15:29:41 +03:00
Aaron Boxer
eebb65e934 openjpeg: set sampling in the caps
https://bugzilla.gnome.org/show_bug.cgi?id=766236
2016-06-07 15:24:32 +03:00
Jan Alexander Steffens (heftig)
851c89ded9 mpegtsmux: Set PTS on aligned buffers
This was broken in 09c05df (make "alignment" property more useful for
packetisation).

https://bugzilla.gnome.org/show_bug.cgi?id=765926
2016-06-07 15:11:00 +03:00
Jan Schmidt
e3f5ccb333 tsdemux: Change the pad naming scheme to include a generation ID
A simple fix for the problem of creating new pads with duplicate
names when switching program, easier than the alternative of
trying to work out which pads might persist and manage that.

See https://bugzilla.gnome.org/show_bug.cgi?id=758454
2016-06-06 13:05:34 +03:00