Commit graph

23167 commits

Author SHA1 Message Date
Sebastian Dröge
011649790d decklinkvideosink: Only start if both sinks are set to PLAYING already
Not only if the video sink is set to PLAYING so far. Also give more
useful debug output about why we don't start, and don't start if already
started.

Also refactor the function to early-return instead of having a huge
if-else block over the whole function.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
a38cf7d8a9 decklinkaudiosink: Include final flow return in debug output
https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
3e70f00209 decklinkaudiosink: Check also against the clock if we run ahead of the clock too much
The buffer level as reported by the Decklink driver is completely
unreliable, and we could otherwise easily run ahead >1s if we're
unlucky.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
118b2967e7 decklinkaudiosink: Implement resampling/buffer reversing for trick-modes
https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Sebastian Dröge
86888d9918 decklinkaudiosink: Re-implement around GstBaseSink instead of GstAudioBaseSink
The Decklink and GstAudioBaseSink APIs don't fit very well together,
which causes various problems due to inaccuracies in the clock
calculations and the actual ringbuffer and GStreamer's copy getting of
sync.

Problems are audio drop-outs and A/V sync getting wrong after
pausing/seeking.

https://bugzilla.gnome.org/show_bug.cgi?id=790114
2017-12-14 10:37:20 +02:00
Matthew Waters
ef0497c149 Automatic update of common submodule
From e8c7a71 to 3fa2c9e
2017-12-14 14:49:10 +11:00
Josep Torra
5676005235 vtenc: fix a warning when building in MacOS 10.12
vtenc.c:564:20: error: incompatible pointer types passing 'GstVTEnc *' (aka 'struct _GstVTEnc *')
to parameter of type 'GstVideoEncoder *' (aka 'struct _GstVideoEncoder *')
2017-12-12 08:40:33 +01:00
Josep Torra
842d7a9162 cocoa: fix a warning when building in MacOS 10.12
gstglwindow_cocoa.m:186:60: error: incompatible pointer types sending 'GstGLContextCocoa *'
(aka 'struct _GstGLContextCocoa *') to parameter of type 'GstGLContext *' (aka 'struct _GstGLContext *')
2017-12-12 08:31:47 +01:00
Víctor Manuel Jáquez Leal
c0d87b5dd3 gl: display: demote error level at display creation error
https://bugzilla.gnome.org/show_bug.cgi?id=791391
2017-12-11 22:47:01 +01:00
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
Mathieu Duponchelle
58c374c8e2 meson test: Enable libs tests
https://bugzilla.gnome.org/show_bug.cgi?id=789064
2017-12-08 18:42:22 +01:00
Edward Hervey
4aa51c82a8 pkgconfig: Move fixes for move of aggregator to core 2017-12-08 13:54:27 +01: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
Seungha Yang
80f03b4d15 srt: Post error message for NULL host
... instead of crash without any information

https://bugzilla.gnome.org/show_bug.cgi?id=791329
2017-12-07 14:06:19 -05:00
Nicolas Dufresne
c04aba241e waylandsink: Fix memory leak of shm allocator
This fixes conflict resolution error introduced in commit:

  816d115317

http://bugzilla.gnome.org/show_bug.cgi?id=790042
2017-12-06 20:50:31 -05:00
Shinya Saito
816d115317 waylandsink: Fix memory leak of shm allocator.
gst_allocator_find() needs gst_object_unref() after usage.

https://bugzilla.gnome.org/show_bug.cgi?id=790042
2017-12-06 15:46:40 -05:00
Jun Xie
77321f62dd dashdemux: fix coredump issue with external AdaptationSet
fix wrong AdaptationSet list iterator

https://bugzilla.gnome.org/show_bug.cgi?id=790812
2017-12-06 15:21:50 -05:00
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