Commit graph

7245 commits

Author SHA1 Message Date
Nirbheek Chauhan
11af685d64 Revert "New element 'proxy' to send data to in-process pipelines"
This reverts commit 8a056af05e.

Accidentally pushed this element, oops! Progress on this element is
being tracked at: https://bugzilla.gnome.org/show_bug.cgi?id=788200
2017-12-19 01:16:35 +05:30
Nirbheek Chauhan
8a056af05e New element 'proxy' to send data to in-process pipelines
This plugin is useful when you want to pipe arbitrary data to
a different pipeline within the same process. Buffers, events, and caps
are transmitted as-is without copying or manipulation.
2017-12-19 01:09:50 +05:30
Vivia Nikolaidou
cbeebfea49 avwait: Added "avwait-status" element message
"avwait-status" is posted when avwait starts or stops passing through
data (e.g. because target-timecode and end-timecode respectively have
been reached). The attached structure includes a "dropping" boolean (set
to TRUE if we are currently dropping data, FALSE otherwise), and a
"running-time" GST_CLOCK_TIME which contains the running time of the
change.

https://bugzilla.gnome.org/show_bug.cgi?id=790170
2017-12-08 21:56:32 +02:00
Tim-Philipp Müller
c0226e08e3 h264parse: make caps writable before modifying them
https://bugzilla.gnome.org/show_bug.cgi?id=790628
2017-12-07 19:17:07 +00:00
Tim-Philipp Müller
d01297e115 Remove GstAggregator from -bad, moved to core
https://bugzilla.gnome.org/show_bug.cgi?id=739010
2017-12-02 16:14:36 +00:00
Stian Selnes
04393f4377 h263parse: Add debug log for more annexes when plustype 2017-11-25 12:12:20 +00:00
Tim-Philipp Müller
c27bb822a8 netsim: simplify getting buffer size in bits 2017-11-25 11:27:57 +00:00
Havard Graff
b8b4124c8b netsim: add "allow-reordering" property
Reordering of packets is not very common in networks, and the delay
functions will always introduce reordering if delay > packet-spacing,
so by setting allow-reordering to FALSE you guarantee that the packets
are in order, while at the same time introducing delay/jitter to them.
2017-11-25 11:10:27 +00:00
Stian Selnes
c9002e3dd5 netsim: Add gamma distribution for delay
This simulates the delay on wifi networks better.
2017-11-25 11:10:27 +00:00
Stian Selnes
531b1e326f netsim: Change max-delay to be inclusive
It is more intuitive for the user that in order to acheive a constant
delay min-delay and max-delay are equal.
2017-11-25 11:10:27 +00:00
Stian Selnes
9416d36463 netsim: Add "delay-distribution" property plus normal distribution
By using the property "delay-distribution" the user can control how the
delay applied to delayed packets is distributed. This is either the
uniform distribution (as before) or the normal distribution.

"min-delay" and "max-delay" control both distributions. For the normal
distribution it defines the bounds of the 95% confidence interval.
2017-11-25 11:10:27 +00:00
Havard Graff
3eb733d95f netsim: add token bucket algorithm for simulating network congestion 2017-11-25 11:10:27 +00:00
Havard Graff
3cdd53621e netsim: change property enums to PROP_* and fix indentation 2017-11-25 11:10:27 +00:00
Tim-Philipp Müller
5187fdfb07 netsim: remove private struct and padding
There's no need for these things, since the plugin headers
are not public, and all the extra ->priv-> just clutter the
code.
2017-11-25 11:10:27 +00:00
Guillaume Desmottes
93d29e8030 h265parse: early set src caps when input not byte-stream
When input is not in byte-stream format there is no need to wait for the first
buffer before setting src caps. We already have all the information from the
input codec_data.

This allow us to already configure downstream elements allowing them,
for example, to already allocate their internal buffers as they know
the format of the input they are about to receive.

Same change as the one I just did in h264parse.

https://bugzilla.gnome.org/show_bug.cgi?id=790709
2017-11-24 11:13:05 +02:00
Guillaume Desmottes
5ac886d85a h264parse: early set src caps when input is avc
When input is in AVC format there is no need to wait for the first buffer
before setting src caps. We already have all the information from the
input codec_data.

This allow us to already configure downstream elements allowing them,
for example, to already allocate their internal buffers as they know
the format of the input they are about to receive.

https://bugzilla.gnome.org/show_bug.cgi?id=790709
2017-11-24 11:13:05 +02:00
Mathieu Duponchelle
56fc5bef18 aggregator: Remove klass->sinkpads_type
This posed problems for the python bindings (and possibly others).

Instead, subclasses now use add_pad_template_with_gtype.

https://bugzilla.gnome.org/show_bug.cgi?id=789986
2017-11-22 16:52:29 +01:00
Guillaume Desmottes
00874850e7 h265parse: put downstream caps first if possible on sink caps
Try prioritizing downstream's caps over upstream's if possible so the
parser can configured in "passthrough" if possible and save it from
doing useless conversions.

Exact same change as the one I just did in h264parse.

https://bugzilla.gnome.org/show_bug.cgi?id=790628
2017-11-22 17:38:04 +02:00
Guillaume Desmottes
d5067b42de h264parse: put downstream caps first if possible on sink caps
Try prioritizing downstream's caps over upstream's if possible so the
parser can configured in "passthrough" if possible and save it from
doing useless conversions.

https://bugzilla.gnome.org/show_bug.cgi?id=790628
2017-11-22 17:38:04 +02:00
Edward Hervey
4260f8a120 all: Fix left-shift undefined behaviour
Cast to the target type before shifting (or use macro if available)
2017-11-20 17:06:07 +01:00
Vivia Nikolaidou
f3b539e0ff avwait: Deserialised timecodes set after caps event now get correct framerate
A deserialised timecode has a framerate of 0/1 by default. That breaks
it when comparing the frames field with another timecode (incoming from
the frame). We were setting the framerate when receiving the caps event,
but not when setting the timecode in set_property, so it was broken for
timecodes set after the caps event.

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

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

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

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

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

https://github.com/x42/libltc

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

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

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

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

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

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

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

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

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

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

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

https://bugzilla.gnome.org/show_bug.cgi?id=784827
2017-08-03 12:59:43 -04:00
Thibault Saunier
b76a3f8518 mpegpsmux: Do not dereference a NULL pointer 2017-08-03 12:51:13 -04:00
George Kiagiadakis
30f5abc32c ipcpipeline: move to sys/ and make it dependent on platform support for unix sockets 2017-08-02 10:40:24 +03:00