Commit graph

7324 commits

Author SHA1 Message Date
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
Scott D Phillips 3edd641667 h265parse: Don't assume contiguous id's in make_codec_data
vps/sps/pps id's are not required to be used contiguously.

https://bugzilla.gnome.org/show_bug.cgi?id=766891
2016-05-30 12:42:24 +03:00
Jan Schmidt d0d22a9b2c pnmdec: Fix ASCII parsing
Parse gray16 properly in ascii mode, and fix
some bugs around reading data in chunks when
ascii values cross chunk boundaries
2016-05-24 07:21:44 +10:00
Jan Schmidt a2fde272f5 pnmenc: Make output caps match the srcpad template
Don't output 'image/pnm', which isn't even in the template
caps. Instead, output a mime-type consistent with what we
are encoding.
2016-05-24 07:21:44 +10:00
Jan Schmidt fa2d98afe2 pnmenc: Tidy up code, support BE/LE GRAY16 properly
Remove code that dealt with odd strides separately - there's
not really any overhead to just using 1 codepath for both matched
and unmatched stride output.

Add separate codepaths for BE vs LE GRAY16 input so they're
handled properly
2016-05-24 07:21:44 +10:00
Jan Schmidt 30503f07ae pnmdec: Actually output LE or BE GRAY16 as negotiated
Add codepaths to output GRAY16 in little or big endian
as negotiated.

Move all output format negotiation into a central
function and clean it up
2016-05-24 07:21:44 +10:00
Dimitrios Katsaros 88a9b151c1 pnmdec: Implementation of GRAY16 handling
https://bugzilla.gnome.org/show_bug.cgi?id=757022
2016-05-24 07:21:44 +10:00
Dimitrios Katsaros 61440e58c1 pnmenc: Implementation of GRAY16 handling
https://bugzilla.gnome.org/show_bug.cgi?id=757022
2016-05-24 07:21:44 +10:00
Edward Hervey 2d778881cb compositor: Check if we get a valid display ratio
As is done everywhere else, and avoids setting bogus values
And remove useless *<val> checks (we always provide valid values and
it's an internal function).

CID #1320700
2016-05-15 14:35:38 +02:00
Carlos Rafael Giani b415d7b34f rawparse: Add unaligned raw audio parsing to audioparse and add new element
This helps in cases where raw audio data is being delivered, but the
buffers do not come in sample aligned sizes. The new unalignedaudioparse
bin can be autoplugged and configures an internal audioparse element to
align the data. audioparse itself gets support for audio/x-unaligned-raw
input caps; the output caps then contain the same information, except that
the name is changed to audio/x-raw (since audioparse aligns the data).
This ensures that souphttpsrc ! audioparse still works.

https://bugzilla.gnome.org/show_bug.cgi?id=689460
2016-05-15 13:19:48 +03:00
Jan Schmidt b6d5aac1c0 mpegdemux: Handle system header when scanning for timestamps.
When scanning for SCR / PTS / DTS, handle the case where
the pack header is followed by the optional system header,
so we can correctly collect timestamps in such cases.

https://bugzilla.gnome.org/show_bug.cgi?id=623860
2016-05-15 19:30:55 +10:00
Jan Schmidt e3b554f0e6 mpegdemux: Fix backward timestamp scan on small files.
When the file size is smaller than the configured 4MB scan
limit for timestamps, don't underflow the guard variable
when checking if it's time to stop.

Limit the backward SCR scan to the same 4MB as the PTS scan.

Add some comments.
2016-05-15 19:30:55 +10:00
Tim-Philipp Müller d520e25db3 mpegdemux: don't do bogus adjustments on seek if we have no first_pts
Fixes bogus segment and gap events with start=GST_CLOCK_TIME_NONE if
we failed to find a first_pts.

https://bugzilla.gnome.org/show_bug.cgi?id=623860
2016-05-15 10:18:11 +01:00
Damian Ziobro abc1c4fc9a mpegtsbase: remove unused variables: upstream_live and queried_latency
https://bugzilla.gnome.org/show_bug.cgi?id=766343
2016-05-13 10:28:46 +03:00
Tim-Philipp Müller c4680ab2a9 mpegdemux: fix description 2016-05-05 10:44:22 +01:00
Tim-Philipp Müller 19d52a4ed5 videodiff: fix supported formats in template caps 2016-05-05 10:41:53 +01:00
Tim-Philipp Müller b346be1c52 videodiff: fill in FIXME metadata and docs with description
https://bugzilla.gnome.org/show_bug.cgi?id=765989
2016-05-05 10:40:37 +01:00
Sebastian Dröge 619d198a2f compositor: Set blend functions in ::negotiated_caps() instead of ::fixate_caps()
The latter should not change any state but just fixate the caps, while the
former is always called when srcpads caps are decided.

https://bugzilla.gnome.org/show_bug.cgi?id=765324
2016-05-03 16:53:25 +03:00
Thiago Santos 1b1beded51 mpegtsmux: effectively check if there is a language
'language' is an array and not a pointer.

CID 1358835
2016-04-29 17:19:19 -03:00
Thiago Santos 9cc00bf2c9 mpegtsmux: write language descriptor when language is available
Adds a new function to mpegts lib to create a iso639 language
descriptor from a language and use it in mpegtsmux to add
a language descriptor to audio streams that have a language set.

https://bugzilla.gnome.org/show_bug.cgi?id=763647
2016-04-26 23:45:34 -03:00
Sebastian Dröge 920ad27122 h265parse: H265 level idc 0 is not valid
Don't put level=0 into the caps, it confuses other elements.

https://bugzilla.gnome.org/show_bug.cgi?id=765538
2016-04-25 18:50:59 +03:00
Sebastian Dröge 4bdda1d810 h264parse: H264 level idc 0 is not valid
Don't put level=0 into the caps, it confuses other elements.

https://bugzilla.gnome.org/show_bug.cgi?id=765538
2016-04-25 18:50:59 +03:00
Scott D Phillips 2830145a71 checksumsink: add "hash" property and allow more checksum types
Now any GChecksumType can be used by GstChecksumSink, adding
support for MD5, SHA-256 and SHA-512 in addition to SHA-1.

https://bugzilla.gnome.org/show_bug.cgi?id=763006
2016-04-22 20:51:14 +01:00
Jan Schmidt 4e5b0b38a4 mpegtsmux: Remove an unnecessary check for NULL before g_free 2016-04-16 22:43:38 +10:00
Reynaldo H. Verdejo Pinochet 58465bc90f Drop usage of 'overlayed' to mean 'overlaid' 2016-04-15 13:39:32 -07:00
Damian Ziobro 6141cd2f4b mpegtsmux: free pad_data->language before g_strdup in order to avoid memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=765005
2016-04-14 09:38:44 +03:00
Jan Schmidt d6ea4d83f2 mpegtsbase: Fix when applying new PMT with same program number
When the sub-class is delaying deactivation of the old program,
but it has the same program number as the new program, don't
overwrite the old program in the hash table and then steal
the new program back out of it. Instead, add the new program to
the hash table after handling removal of the old one.
2016-04-12 14:09:47 +10:00
Nicolas Dufresne 81960ea853 rfbsrc: Fix fallback to GstVideoBufferPool
The replacement pool need to be added to the query, otherwise the
baseclass won't see it. We also need to properly remove the rejected
pools.

https://bugzilla.gnome.org/show_bug.cgi?id=763441
2016-04-05 21:40:58 -04:00
Nicolas Dufresne 7e293f15dd rfbsrc: Implement decide_allocation virtual
This way we can use the base class for buffer allocation, hence use
fill() instead of create() virtual. This also adds a strict check on the
select pool buffer size as we don't support strides and padding.

This is based on initial patch proposed by Sebastien Dröge, from which I
also fixed a buffer pool leak.

https://bugzilla.gnome.org/show_bug.cgi?id=763441
2016-04-05 21:21:29 -04:00
Nicolas Dufresne d3d34b5a8c rfbsrc: Fix caps negotiation
As we currently only use the server reported "natural" format, caps
negotiation should simply be limited to telling the base class which
format to use. Fix the negotiation by moving the associated code
into negotiate() virtual function. Also, use gst_base_src_set_caps()
rather then setting it on the pad directly. Also protect against this
method being called multiple time (we can't renegotiate for now).

This change also moves some network code that was being run during the
application state change call, to be run on the streaming thread.

https://bugzilla.gnome.org/show_bug.cgi?id=739598
2016-04-05 15:36:31 -04:00
Nicolas Dufresne 52b50d0952 rfbsrc: Implement unlock() method
This prevent stalls when we try to stop the source while waiting
for the server to send more updates.
2016-04-05 13:35:38 -04:00
Nicolas Dufresne 89f3f162a5 rfbsrc: Check for connection being closed
Although it's not very well documented, g_input_stream_read_all() will
set the number of bytes read to 0 if the connection is closed rather
then returning an error.
2016-04-05 13:35:25 -04:00
Nicolas Dufresne 0eb5722af6 rfbsrc: Check for read/write error
Check for read/write error. This prevent undefined behaviour that rely
on unitialized buffer.
2016-04-05 13:35:18 -04:00
Nicolas Dufresne ba93b86011 rfbsrc: Add a internal method to disconnect
This also removes the disconnected boolean hack.
2016-04-05 13:35:11 -04:00
Nicolas Dufresne ff5dc55c8a rfbsrc: Don't ignore errors
This prevents recursion on error. This used to happen as we
don't change the state when something fails. We end up running
and failing in the same state forever.
2016-04-05 13:34:57 -04:00
Nicolas Dufresne 459bdaae3f rfbsrc: Serialize write operations
Currently we send key events from seperate threads. IOStream does not
allow concurrent write operations, so protect this operation using a
mutex.
2016-04-05 13:34:38 -04:00
Nicolas Dufresne c8d2e234c4 rfbsrc: Add 3.7/3.8 security type negotiation 2016-04-05 13:34:34 -04:00
Nicolas Dufresne 21b322c8f3 rfbsrc: Port to GSocketClient
Using GSocketClient we can simplify a lot the read/write operation.
This also provide an GSocketConnection (a GIOStream) which can then
be used with the GTlsClientConnection for secure connections. Note
that we use _write_all() to ensure all bytes have been read. This is
to follow the fact the none of the _send() calls check the return
value.
2016-04-05 13:34:07 -04:00
Nicolas Dufresne 4e0a5c101f rfbsrc: Remove useless library wrapping
We use a sinlge .c file, simplify everything by removing that
static library.
2016-04-05 13:34:01 -04:00
Nicolas Dufresne 29f1ca8602 rfbsrc: Cleanup dead code
Remove all the unused stuff, the include header, definition and C code
that don't contribute anything to this element.
2016-04-05 13:33:50 -04:00
Nicolas Dufresne 7b4b8a95b4 rfbsrc: Properly fallback to 3.3
If the major version is not 3, then the minor version provided
should be ignored, as it is meaningless for our fallback.
2016-04-05 13:33:38 -04:00
Nicolas Dufresne b83a6967c9 rfbsrc: Cleanly handle security negotiation failure
When the security cannot be negotiated, the server returns
security type of 0 (failure). In that case, the next step is
to read the error reason string.
2016-04-05 13:33:24 -04:00
Christoffer Stengren de3b2cc171 gdpdepay: Query for buffer allocator before using default
https://bugzilla.gnome.org/show_bug.cgi?id=764361
2016-04-03 11:45:09 +03:00
Vivia Nikolaidou e6c3446d01 interlace: Allow interlaced sink caps, do passthrough
Allow interlace to receive already interlaced content, if compatible with its
configuration. In that case, it will just do passthrough.

https://bugzilla.gnome.org/show_bug.cgi?id=764036
2016-04-03 11:29:48 +03:00
Sebastian Dröge 0fa43aaab4 h264parse: constrained-baseline is a subset of baseline
We get into this code path if the profile is already constrained-baseline and
downstream does not support constrained-baseline. So we should try baseline
and the other compatible profiles.

https://bugzilla.gnome.org/show_bug.cgi?id=764448
2016-04-01 12:08:29 +03: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
Sebastian Dröge b53f682d75 sdp: Add new sdpsrc element
This can read from an SDP file or get the SDP data via property. Works
around the problem that sdpdemux inside decodebin fails because the
GST_STATE_CHANGE_NO_PREROLL is not observed by the pipeline.

See https://bugzilla.gnome.org/show_bug.cgi?id=702495

https://bugzilla.gnome.org/show_bug.cgi?id=762860
2016-03-25 12:50:15 +02:00
Thiago Santos dbd12ec82b mpegtsbase: plug EIT string leak 2016-03-24 11:29:35 -03:00
Thiago Santos f8cad7d755 mpegtspacketizer: simplify variable reset
Just set it directly to 0, instead of checking and reseting
2016-03-24 11:06:55 -03: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
Vincent Penquerc'h 5b786ce5b7 interlace: fix negotiation with fixed framerate downstream
https://bugzilla.gnome.org/show_bug.cgi?id=762924
2016-03-24 14:54:36 +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
Aleksander Wabik d8e681bb63 h264parse, h265parse: fix handling of downstream force-key-unit events
The parser handles the downstream force-key-unit event incorrectly,
it tries to parse it as an upstream force-key-unit event, does not
check the return value, and then uses uninitialized memory in
"all_headers" boolean variable.

https://bugzilla.gnome.org/show_bug.cgi?id=763793
2016-03-17 19:24:32 +00:00
Sebastian Dröge a032347c77 mxfmux: Fix typo in JPEG2000 colorspace
sRGC -> sRGB
2016-03-16 11:34:46 +02:00
Tim-Philipp Müller 5ec337f8ae tsdemux: add video/x-h265 to template caps 2016-03-12 15:44:54 +00:00
Jan Schmidt 6de7f0c0fa mpegts: Don't leave freed programs in the hash table
When the sub-class claims a program for later freeing, make
sure it's not left in the hash table, or it can cause crashes on shutdown.

Make sure tsdemux frees any program it has kept around at shutdown
if it wasn't freed already.

https://bugzilla.gnome.org/show_bug.cgi?id=763503
2016-03-12 03:32:32 +11:00
Sreerenj Balachandran 92f4eb45ab videoparsers: h265: Fix segfault while transforming hevc to nal aligned bytestream
Create temporary ParseFrame and copy the nal size buffer region
for each nal unit like we did for h264.

https://bugzilla.gnome.org/show_bug.cgi?id=763494
2016-03-11 17:34:03 +02:00
Edward Hervey 5ebf1d477d mpegvideoparser: Handle non-hierarchical profiles again
This is a regression from since mpegvideoparser was switched to
use the codecparsing library.

The problem is that the high bit of the profile_and_level is used
to specify non-hierarchical profiles and levels. Unfortunately we
were discarding that information.

Expose that escape bit, and use it in the element

https://bugzilla.gnome.org/show_bug.cgi?id=763220
2016-03-09 15:18:42 +01:00
Edward Hervey 215c9eb71a tsdemux: Don't reset/recalculate segments with accurate seeks
When dealing with accurate seeks, we must send out a segment which
is exactly what is requested.

https://bugzilla.gnome.org/show_bug.cgi?id=763262
2016-03-08 15:13:40 +01:00
Aurélien Zanelli d87177b69b mpegtspacketizer: handle early PTS conversion when a group has been found
In some cases, the PTS might be smaller than the first observed PCR
value which causes element to apply wraparound leading to bogus
timestamp. To solve this, we only apply it if the PTS-PCR difference is
greater that 1 second to be sure that it's a real wraparound.

Moreover, using unsigned 32 bits values to handle wrapover could end up
with bogus value, so it use pts value to handle it.

Also, convert pcr time to gst time before comparing it to pts.
Since refpcr is expressed in PCR time base while pts is expressed in GStreamer
time.

https://bugzilla.gnome.org/show_bug.cgi?id=743259
2016-03-03 00:50:15 +11:00
Sreerenj Balachandran cf7056a312 videoparsers: h264: Disable passthorugh mode enabling
Enabling passthorugh mode is causing multiple issue:
For nal aligned multiresoluton streams, passthrough mode
make h264parse unable to advertise the new resoultions.
Also causing issues while parsing MVC streams which have two
separate layers (base-view and non-base-view).

This fix is only a temporary workaround.

For MVC, proper fixes needed in many places:
(handle prefix nal unit, handle non-base-view slice nal extension,
fix the picture_start detection for multi-layer-mvc streams etc)

https://bugzilla.gnome.org/show_bug.cgi?id=758656
2016-02-29 12:35:58 +02:00
Sebastian Dröge 019bc67837 sdpdemux: Set caps to application/x-rtp instead of application/x-unknown as returned by the SDP helpers
The SDP helpers can't know if this is going to be RTP, SRTP, or ....

https://bugzilla.gnome.org/show_bug.cgi?id=762860
2016-02-29 12:03:43 +02:00
Sebastian Dröge cbfbc6ed88 sdpdemux: Add pads with the correct names in case an rtpbin is used
They're supposed to be stream_%u and not recv_rtp_src_%u_%u_%u.

https://bugzilla.gnome.org/show_bug.cgi?id=762860
2016-02-29 12:03:43 +02:00
Sebastian Dröge fd42320ec1 dataurisrc: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()
Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=759539
2016-02-23 18:17:42 +02:00
Tim-Philipp Müller a3019ffb63 aiffparse: fix negotiation errors with multi-channel files
Set fallback channel layout on files with more than two
channels. Not clear where to retrieve the real layout from
or what the default layout is for AIFF files, the spec
only seems to specify some layout for up to 6 channels
and the file in question doesn't have a CHAN chunk.

https://bugzilla.gnome.org/show_bug.cgi?id=676425
2016-02-21 12:20:10 +00:00
Tim-Philipp Müller 5b5398d613 win32: remove outdated build cruft
This hasn't been touched for generations, doesn't work,
and is just causing confusion. We also don't want to
maintain these files manually.
2016-02-21 10:34:56 +00:00
Edward Hervey ab31900b64 tsparse: Fix per-program-pad pushing
This fixes a couple of issues regarding the output of (request)
per-program pads output:

We would never push out PAT sections (ok, that was one reallly stupid
mistake. I guess nobody ever uses this feature ...).

In the case where the PMT section of a program was bigger than one
packet, we would only end up pushing the last packet of that PMT. Which
obviously results in the resulting stream never containing the proper
(complete) PMT.

The problem was that the program is only started (in the base class)
after the PMT section is completely parsed. When dealing with single-program
pads, tsparse only wants to push the PMT corresponding to the requested
program (and not the other ones). tsparse did that check by looking
at the streams of the program...
... but that program doesn't exist for the first packets of the initial
PMT.

The fix is to use the base class program information (if it parsed the
PAT it already has some information, like the PMT PID for a given program)
if the program hasn't started yet.
2016-02-19 18:12:59 +01:00
Edward Hervey 00a1879d65 tsparse: Use GstFlowCombiner
In addition to the fact that it's a sane thing to do for multi-source
pad elements, it also avoids the situation where just using a request
pad (and not the main static pad) would result in the processing
stopping.
2016-02-19 18:04:23 +01:00
Vineeth TM ee8a5455d0 mpegtsbase: Refactor code to check for subclass seek handling
If subclass is not able to handle seek event, then there is no need to
stop streaming and send flush events. We should simply return FALSE

https://bugzilla.gnome.org/show_bug.cgi?id=758516
2016-02-17 10:51:07 +02:00
Vineeth TM 6676ed6cb0 mpegtsbase: Add condition to check for non working negative rate
tsdemux is not able to handle negative playback rates.
But in mpegtsbase, the same check is not being done.
added a check to not handle negative rate while seeking unless
the same is handled upstream.

https://bugzilla.gnome.org/show_bug.cgi?id=758516
2016-02-17 10:51:07 +02:00
Tim-Philipp Müller f649e85bc9 rtp: move RTP H.265 payloader/depayloader to -good
https://bugzilla.gnome.org/show_bug.cgi?id=761606
2016-02-16 00:33:50 +00:00
Stian Selnes e3f9e854f0 netsim: Add netsim element
Resurrected from the Farstream repository and given an
overhaul to fix races, deadlocks etc.

https://bugzilla.gnome.org/show_bug.cgi?id=756252
2016-02-12 10:08:06 +00:00
Luis de Bethencourt 682bce33a5 gstrtph265depay: keep consistency with rtph264depay
Use gst_rtp_drop_meta() and the same function prototype for
gst_rtp_copy_meta() to keep consistency with the RTP elements in
gst-plugins-good
2016-02-05 17:53:30 +00:00
Luis de Bethencourt 463ea1a9c7 rtph265depay: fix termination of access unit
Only consider the access unit complete when the next-occurring VCL NAL unit
has the first bit after its NAL unit header equal to 1.
2016-02-05 14:04:50 +00:00
Luis de Bethencourt 63af4649c6 h264parse: remove unused mview_mode value
Since commit b77f8e172a the new value
assigned to mview_mode hasn't been used. That commit changed the following
"if" check to an "else if", which means the original value of mview_mode
is used.
2016-02-04 12:50:47 +00:00
Matthew Waters 2a49811721 h265parse: avoid sending unnecessary downstream caps queries/events
h265 versions of the following commits:
f352691a04
try the current caps before querying downstream
72bc7d7f73
increase caps equality check for no codec_data

https://bugzilla.gnome.org/show_bug.cgi?id=761014
2016-02-04 18:19:40 +11:00
Matthew Waters 72bc7d7f73 h264parse: increase caps equality check for no codec_data
When converting from avc to byte-stream, there will not be any codec_data
in the src caps.  Remove it before the equality check to avoid sending caps
events downstream on every SPS/PPS change.

https://bugzilla.gnome.org/show_bug.cgi?id=761014
2016-02-04 18:07:57 +11:00
Matthew Waters f352691a04 h264parse: try the current caps before querying downstream
If we have a stream that contains an unchanging SPS/PPS for every video frame,
we don't need to to constantly query downstream for it's supported caps if the
current caps are compatible with the negotiated caps.

https://bugzilla.gnome.org/show_bug.cgi?id=761014
2016-02-04 18:07:47 +11:00
Tim-Philipp Müller fdb45d84fa docs: remove some leftover 'Since 0.10.x' markers 2016-02-03 21:16:18 +00:00
Tim-Philipp Müller a2d3231ec7 debugutils: use generic marshaller 2016-02-03 21:13:58 +00: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
Aurélien Zanelli 5fd3511859 videoparse: initialize update_size to FALSE when updating info
Otherwise, behavior will be undefined when no strides/offsets are set
and it will likely go wrong.

https://bugzilla.gnome.org/show_bug.cgi?id=760270
2016-01-28 14:48:11 -05:00
Nicolas Dufresne acb7205f91 videoparse: Fix framesize calculation
When the framesize is not specified, we try and calculate a size from
the strides and offset information. This was done with the sum of
offsets + the size of the last frame. That is just wrong method. We also
need to account for video meta that may be flipping two planes. An
example is if you convert I420 to YV12 by flipping the two last offsets.

https://bugzilla.gnome.org/show_bug.cgi?id=760270
2016-01-28 14:48:11 -05:00
Sebastian Dröge 80c72169c6 gdpdepay: Add ts-offset property to adjust buffer timestamps 2016-01-28 19:38:22 +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
Aurélien Zanelli fd33314f03 videoparse: use decide_allocation to check if downstream supports videometa
If yes, we add them to each output buffers and we avoid frame copy.

https://bugzilla.gnome.org/show_bug.cgi?id=760270
2016-01-28 10:02:55 -05:00
Aurélien Zanelli 354f16a5ca rawparse: add 'decide_allocation' vfunc to let subclass parse an allocation query
And so send an allocation query. This could be used to check whether
downstream element supports some metas or not.

https://bugzilla.gnome.org/show_bug.cgi?id=760270
2016-01-28 10:02:54 -05:00
Aurélien Zanelli 6e8278c51e rawparse: use size of buffer we got from adapter
Otherwise position in stream could be wrong if subclass 'pre_push_frame'
method changes the buffer size.

https://bugzilla.gnome.org/show_bug.cgi?id=760270
2016-01-28 10:02:54 -05:00
Aurélien Zanelli a90f35e14b videoparse: add properties to set framesize, strides and planes offsets
To make parser work with image having non-standard strides, plane
offsets or with padding between images.
For now, since element doesn't check for videometa, we can't directly
push buffers when these properties are set so it convert the frame
in the pre_push_buffer method to remove any custom padding.

https://bugzilla.gnome.org/show_bug.cgi?id=760270
2016-01-28 10:02:54 -05:00
Aurélien Zanelli 04d59ffd4d rawparse: rename 'set_buffer_flags' vfunc to 'pre_push_buffer'
to allow subclass to change other fields of the buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=760270
2016-01-28 10:02:54 -05:00
Aurélien Zanelli cf25e09b1a videoparse: cache video info in instance
To avoid initializing and filling video info each time we need it.

https://bugzilla.gnome.org/show_bug.cgi?id=760270
2016-01-28 10:02:54 -05:00
Sebastian Dröge 3df615a503 mxfmux: Write This Generation UID into the Identification metadata
It's required according to the standard and we forgot to actually write it to
the file although we stored it in the data structures.
2016-01-28 15:38:45 +01:00
Sebastian Dröge 3a72574c59 mxfmetadata: Add workaround for ffmpeg only writing one Video Line Map value
https://ffmpeg.org/pipermail/ffmpeg-devel/2016-January/188202.html
2016-01-28 15:29:44 +01:00
Matthew Waters 87031b14cb videoaggregator: don't do caps processing that is not overridable
Allows the subclass to completely override the chosen src caps.

This is needed as videoaggregator generally has no idea exactly
what operation is being performed.

- Adds a fixate_caps vfunc for fixation
- Merges gst_video_aggregator_update_converters() into
  gst_videoaggregator_update_src_caps() as we need some of its info
  for proper caps handling.
- Pass the downstream caps to the update_caps vfunc

https://bugzilla.gnome.org/show_bug.cgi?id=756207
2016-01-27 20:36:25 +11:00
Vineeth TM e389211aa5 h265parse: Fix buffer leak when sps is not present
When sps data is NULL, the buffer allocated and mapped is not being freed.
In this scenario there is no need to allocate the buffer as we are supposed to return NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=761070
2016-01-25 10:07:55 -03:00
Vineeth TM 6a35a4018e h265parse: Fix buffer memory leak.
While setting caps, codec_data buffer is mapped, but not being unmapped
leading to memory leaks.

https://bugzilla.gnome.org/show_bug.cgi?id=761070
2016-01-25 10:07:55 -03:00
Sebastian Dröge 8a1fa31c67 audio: Move audioaggregator base class to a library
It's useful enough already to be used in other elements for audio aggregation,
let's give people the opportunity to use it and give it some API testing.

https://bugzilla.gnome.org/show_bug.cgi?id=760733
2016-01-22 12:39:48 +02:00
Hyunjun Ko a274299f48 mpegtsmux: set non-0 payload length in PES header if video ES packet is small enough
https://bugzilla.gnome.org/show_bug.cgi?id=748507
2016-01-19 19:32:27 +00:00
Hyunjun Ko f9ef150652 mpegtsmux: reset pes_bytes_written when starting to write new PES packet
In case of an unbounded packet (video usually), pes_bytes_written was
no reset.

https://bugzilla.gnome.org/show_bug.cgi?id=748507
2016-01-19 19:19:38 +00:00
Tim-Philipp Müller ab5aab60a9 mpegtsmux: add support for H.265/HEVC video
https://bugzilla.gnome.org/show_bug.cgi?id=744367
2016-01-19 17:08:50 +00:00
Luis de Bethencourt 63ffe374ab rtph265depay: fix unneeded sub-buffer creation
We create a sub-buffer just to copy over its metas and then throw it
away immediately, just use the original input buffer directly.
2016-01-15 16:10:04 +00:00
Luis de Bethencourt 6f8f82164a rtph265pay: add "send VPS/SPS/PPS with every key frame" mode
It's not enough to have timeout or event based VPS/SPS/PPS information
sent in RTP packets. There are some scenarios when key frames may appear
more frequently than once a second, in which case the minimum timeout
for "config-interval" of 1 second for sending VPS/SPS/PPS isn't enough.
It might also be desirable in general to make sure the VPS/SPS/PPS is
available with every keyframe (packet loss aside), so receivers can
actually pick up decoding immediately from the first keyframe if
VPS/SPS/PPS is not signaled out of band.

This commit adds the possibility to send VPS/SPS/PPS with every key frame.
This mode can be enabled by setting "config-interval" property to -1. In
this case the payloader will add VPS, SPS and PPS before every key (IDR)
frame.

https://bugzilla.gnome.org/show_bug.cgi?id=757892
2016-01-15 15:57:41 +00:00
Luis de Bethencourt 31a7ad77b6 rtph265pay: change config-interval property type from uint to int
This way we can use -1 as special value, which is nicer than MAXUINT.

https://bugzilla.gnome.org/show_bug.cgi?id=757892
2016-01-15 15:19:47 +00:00
Luis de Bethencourt 3fd44b2dde videosegmentclip: fail to set_caps if problem in caps structure
gst_video_segment_clip_set_caps () should return FALSE if there was a
problem reading the framerate values from the caps structure.
2016-01-15 11:51:15 +00:00
Thiago Santos f94079c1a9 frei0rmixer: replace accept-caps with caps query
It wants to check if upstream can produce a certain format,
accept-caps might only check if the next element can produce it.
2016-01-11 17:00:17 -03:00
Bob Holcomb cb520dce26 mpegtsmux: fix reserve bits so they are 1's
The MPEG standard (ISO-13880-1) says the reserve bits need to be set
to one (2.1.64). This is causing transport streams to fail validation
on some systems.

https://bugzilla.gnome.org/show_bug.cgi?id=760127
2016-01-09 16:38:04 +00:00
Sebastian Dröge b6696122a0 mxftypes: Don't store pointers in stack allocated guints
This works usually in this place, unless the compiler optimizes things in
interesting ways in which case it causes stack corruption and crashes later.

The compiler in question here is clang with -O1, which seems to pack the stack
a bit more and causes writing to the guint as pointer to overwrite map.memory,
which then later crashes during unmapping of the memory.
2016-01-07 18:13:08 +02:00
Sebastian Dröge 5a1953b31f mxfmetadata: Initialize boolean to FALSE to fix valgrind warning
Seems to be a false warning though.
2016-01-07 18:13:08 +02:00