Commit graph

23000 commits

Author SHA1 Message Date
Hosang Lee
6a5bae5343 m3u8: Parse and use AVERAGE-BANDWIDTH attribute if available
The AVERAGE-BANDWIDTH attribute in the EXT-X-STREAM-INF tag represents
the average segment bit rate of the Variant Stream, while the BANDWIDTH
attribute represents the peak segment bit rate of the Variant Stream.
(https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2)
Using the average bit rate instead of the peak bit rate for variant switching
is more efficient and appropriate. Sometimes due to VBR encoding,
the BANDWIDTH may represent a value way above the average bit rate,
which could result to players not switching to that variant stream
 although network bandwidth is sufficiently available.

https://bugzilla.gnome.org/show_bug.cgi?id=790821
2017-12-06 15:02:40 -05:00
Wonchul Lee
9667ba688e examples: audiomixmatrix: Remove unused part
matrix-value-array property is removed since
18917de956 commit applied

https://bugzilla.gnome.org/show_bug.cgi?id=790836
2017-12-06 14:18:59 -05:00
Nicolas Dufresne
44dabe21d9 kmssink: Fix CropMeta support
We copy the meta's from the original buffer to the wrapper or copied
buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=790473
2017-12-06 13:34:19 -05:00
Nicolas Dufresne
d33aff0fa0 kmssink: Enforce pixel aspect ratio when we cannot scale
When we cannot scale, we need to enforce the pixel aspect ratio.
This was partly implemented in the previous patch. Doing this
simplify some of the code.

https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-12-06 13:34:19 -05:00
Sebastian Dröge
02e4d92cbf decklinkvideosink: Wait until scheduled playback is actually stopped before continuing
Otherwise we might "start" again, just to get finally stopped and then
getting errors all over the place.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-06 19:38:55 +02:00
Seungha Yang
2b39d1876e srt: Fix warning error
gstsrt.c: In function ‘gst_srt_client_connect_full’:
gstsrt.c:151:6: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if (sock != SRT_INVALID_SOCK) {

https://bugzilla.gnome.org/show_bug.cgi?id=791302
2017-12-06 12:07:54 -05:00
Ursula Maplehurst
236398ee3f androidmedia: when flushing, better handle IllegalStateException received from getOutputBuffer
1. Similar to 880f3d8, don't consider not getting an output buffer as
   an error during flushing. I've seen the following sometimes when
   encoding:

   W GStreamer+amcvideoenc: java.lang.IllegalStateException
   W GStreamer+amcvideoenc:         at android.media.MediaCodec.getBuffer(Native Method)
   W GStreamer+amcvideoenc:         at android.media.MediaCodec.getOutputBuffer(MediaCodec.java:2886)

2. For amcvideodec/enc, call _find_nearest_frame (which grabs a fresh
   reference on a GstVideoCodecFrame) after we have an output buffer,
   so as to not leak the reference, in case getting an output buffer
   fails.

   Otherwise, if we get an error grabbing the output buffer, we leak
   the reference to the frame. This can cause issues with a
   v4l2bufferpool feeding the encoder not being able to clean itself
   up properly due to buffers still being marked as in-use.

https://bugzilla.gnome.org/show_bug.cgi?id=791258
2017-12-06 10:32:02 +02:00
Víctor Manuel Jáquez Leal
3937ed906c gldownload: fix wrong enum
When compiling with clang, an enum conversion error is triggered
since GstVideoFrameFlags are not GstVideoFlags.

This patch sets GST_VIDEO_FRAME_FLAG_NONE to the added video meta.

https://bugzilla.gnome.org/show_bug.cgi?id=791251
2017-12-05 18:12:12 +01:00
Edward Hervey
23df1dfb87 docs: aggregator has moved to base 2017-12-03 11:22:12 +01:00
Nicolas Dufresne
4515e11c39 gldownload: Add missing ifdef for dmabuf and egl
This fixes the build for platforms that don't support one or the other.
2017-12-02 19:28:30 -05:00
Nicolas Dufresne
472b8a3736 gldisplay: Prefer wayland over X11
As most Wayland compositors supports XWayland, X11 backend get
selected. This also realign better GStreamer decision to what
happens with GTK and other stack out there.
2017-12-02 15:25:38 -05:00
Nicolas Dufresne
69934d0756 gldisplay: Add missing GL API to the doc 2017-12-02 15:25:16 -05:00
Matt Fischer
9f65c316e4 gldownload: Add dmabuf exporting
This patch adds code to gldownload to export the image as a
dmabuf if requested.  The element now exposes memory:DMABuf as
a cap feature, and if it is selected, the element exports the
texture to an EGL image and then a dmabuf. It also implements a
fallback to system memory download in case the exportation failed.

https://bugzilla.gnome.org/show_bug.cgi?id=776927
2017-12-02 14:49:39 -05: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
Nicolas Dufresne
737067e793 kmssink: Add display-width/height properties
This is to be used with gst_video_overlay_set_render_rectangle()
so the application can calculate a rectangle that fits inside
the display. The property changes are notify in a way that you
can watch either notify::display-width or notify::display-height
and both will be up-to-data when this is called back. Before the
element is started, the size will be 0x0.

https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-12-01 12:01:59 -05:00
Haihua Hu
b24bb73101 kmssink: support videooverlay interface
Implement videooverlay interface in kmssink, divided into two cases:
when driver supports scale, then we do refresh in show_frame(); if
not, send a reconfigure event to upstream and re-negotiate, using the
new size.

https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-12-01 09:44:47 -05:00
Haihua Hu
ff9a4390cb kmssink: add can-scale property
https://bugzilla.gnome.org/show_bug.cgi?id=784599
2017-12-01 09:44:47 -05:00
Jun Xie
beb32ab37d dashdemux: remove duplicated code
remove duplicated code

https://bugzilla.gnome.org/show_bug.cgi?id=790895
2017-11-30 01:10:35 -08:00
Jun Xie
f31e91b7a1 dashdemux: fix memory leak
GPtrArray in GstActiveStream is leaked in some cases.
gst_mpdparser_free_active_stream shall be invoked to free GstActiveStream

https://bugzilla.gnome.org/show_bug.cgi?id=790899
2017-11-30 01:06:51 -08:00
Tim-Philipp Müller
55823ae92b meson: don't generate or install pkg-config file for gstreamer-wayland
which is not for public consumption currently (headers not installed).

https://bugzilla.gnome.org/show_bug.cgi?id=790912
2017-11-28 13:44:54 +00:00
Matthew Waters
0310142ca7 Automatic update of common submodule
From 3f4aa96 to e8c7a71
2017-11-27 20:11:23 +11:00
Matthew Waters
a3ce46a454 gl/caopengllayer: use public GstGLContext instead of Cocoa-specific one
Allows keeping the GstGLCAOpenGLLayer public but not the winsys-specific
context/display/window.
2017-11-27 15:20:28 +11:00
Matthew Waters
9c20be77e7 Revert "gl: cocoa: sprinkle some GST_EXPORT"
This reverts commit 94d798c333.

cocoac headers don't need to be public as all the functionality can be
provided by the base class
2017-11-27 15:20:12 +11:00
Tim-Philipp Müller
94d798c333 gl: cocoa: sprinkle some GST_EXPORT
Undefined symbols for architecture x86_64:
  "_gst_gl_context_cocoa_get_type", referenced from:
      __create_layer in libgstopengl_la-caopengllayersink.o

Might need some more in other headers, but first need to
clarify what exactly should be exported, there are some
inconsistencies (installed header files vs. funcs in docs).
2017-11-26 22:36:35 +00:00
Tim-Philipp Müller
df039b3544 autotools: remove check-exports target dep which no longer exists 2017-11-26 18:35:13 +00:00
Tim-Philipp Müller
b890daf7b5 win32: remove .def file with exports
They're no longer needed, symbol exporting is now explicit
via GST_EXPORT in all cases (autotools, meson, incl. MSVC).
2017-11-26 16:32:01 +00:00
Tim-Philipp Müller
26b13f16d6 autotools: stop controlling symbol visibility with -export-symbols-regex
Instead, use -fvisibility=hidden and explicit exports via GST_EXPORT.
This should result in consistent behaviour for the autotools and
Meson builds.
2017-11-26 16:25:50 +00:00
Tim-Philipp Müller
0ba57d0b8c codecparsers: mpegvideoparser: remove API that was deprecated 5 years ago
Libraries in -bad are not covered by our API/ABI stability
guarantees, and to the best of our knowledge everyone using
this API has moved to the replacement APIs ages ago.
2017-11-26 16:23:16 +00:00
Nicolas Dufresne
9c866da336 waylandsink: Add prototype for gst_wayand_pool_get_type() 2017-11-25 20:06:57 -05:00
Nicolas Dufresne
2db81d6597 waylandsink: Rollback video info changes when copying
We change the video info base on the received buffer. We need to
rollback these changes whenever we want to copy into our internal
pool of buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=790057
2017-11-25 14:59:03 -05:00
Nicolas Dufresne
1a7363e023 waylandsink: Validate strides and offset when using FD as SHM
As SHM interface only support 1 stride, and 1 offset, we need to
make sure that there is no padding between planes for planar formats.

https://bugzilla.gnome.org/show_bug.cgi?id=790057
2017-11-25 14:59:03 -05:00
Nicolas Dufresne
cc033355ab waylandsink: Update video info size to buffer size
We where setting the size to the first memory size, this may be
too small in case we received a buffer with multiple memory.

https://bugzilla.gnome.org/show_bug.cgi?id=790057
2017-11-25 14:59:03 -05:00
Nicolas Dufresne
02df3a47b3 waylandsink: Allocate only what's needed when copying
There was this regression that we'd be using the updated video
info size instead of default size when initializing the pool.

https://bugzilla.gnome.org/show_bug.cgi?id=790057
2017-11-25 14:59:03 -05:00
Nicolas Dufresne
9bbd5ef722 waylandsink: Only try SHM for single memory buffer
https://bugzilla.gnome.org/show_bug.cgi?id=790057
2017-11-25 14:59:03 -05:00
Nicolas Dufresne
51bb235cc6 wlwindow: Only update video info on new render
The sink->video_info might not reflect the current buffer
when expose is being called.

https://bugzilla.gnome.org/show_bug.cgi?id=790057
2017-11-25 14:59:03 -05:00
Nicolas Dufresne
b06a8bffde waylandsink: Disable video-alignment from the pool
The SHM interface does not allow passing arbitrary strides and offsets,
for this reason, we simply disable this feature from the proposed pool.

This fixes video artifact seen when using the FFMPEG based video
decoder.

https://bugzilla.gnome.org/show_bug.cgi?id=790057
2017-11-25 14:59:03 -05:00
Havard Graff
0a9d924131 opusparse: fix uninitialized-warning 2017-11-25 12:13:05 +00:00
Stian Selnes
04393f4377 h263parse: Add debug log for more annexes when plustype 2017-11-25 12:12:20 +00:00
Edward Hervey
c92694e12a hls: Don't leak mutex 2017-11-25 13:10:11 +01:00
Edward Hervey
f0ba09d10e videoaggregator: Don't leak string
The result of gst_video_colorimetry_to_string () needs to be free'd
2017-11-25 12:49:43 +01:00
Tim-Philipp Müller
c27bb822a8 netsim: simplify getting buffer size in bits 2017-11-25 11:27:57 +00:00
Håvard Graff
3d20065bc5 meson.build: use join_paths() on prefix
So that "/" are correct on Windows and the paths in
the .pc files are like C:/some/where and not
C:\some\where.
2017-11-25 11:25:10 +00:00
Tim-Philipp Müller
38994d4359 tests: ignore waylandsink in state change test
"Unexpected critical/warning: Wayland compositor is missing
the ability to scale, video display may not work properly."
2017-11-25 11:16:53 +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