Edward Hervey [Tue, 24 Jun 2014 14:04:57 +0000 (16:04 +0200)]
mpegts: More doc fixes
Still not done :(
Edward Hervey [Tue, 24 Jun 2014 13:41:36 +0000 (15:41 +0200)]
mpegts: more annotation fixes
Stefan Ringel [Sun, 1 Jun 2014 08:44:23 +0000 (10:44 +0200)]
mpegts: change to GType and from gchar[] to gchar*
https://bugzilla.gnome.org/show_bug.cgi?id=730914
Matthew Waters [Tue, 24 Jun 2014 13:51:24 +0000 (23:51 +1000)]
gl: XInitThreads when env variable is set
This is too allow gst-launch debugging with multiple GL contexts as
well as avoiding segfaulting innocent gtk+ apps that have not called
XInitThreads.
https://bugzilla.gnome.org/show_bug.cgi?id=731525
Matthew Waters [Tue, 24 Jun 2014 13:33:30 +0000 (23:33 +1000)]
gl: add a scary note about initializing thread support for the winsys
We cannot do it as the winsys may crash if we initialize too late.
Example, GLX contexts with Intel drivers:
Intel requires the X Display to be the same in order to share GL
resources across GL contexts. These GL contexts are generally
accessed from different threads. Without winsys support it is
nearly impossible to guarentee that concurrent access will not
occur. This concurrent access could result in crashes or abortion
by the winsys (xcb).
https://bugzilla.gnome.org/show_bug.cgi?id=731525
Edward Hervey [Tue, 24 Jun 2014 12:05:14 +0000 (14:05 +0200)]
mpegts: Fix descriptor_from_dvb_service
Various leaks/overwrites issues
Edward Hervey [Tue, 24 Jun 2014 11:46:17 +0000 (13:46 +0200)]
all: Don't declare variables in 'for' loops
Sebastian Dröge [Tue, 24 Jun 2014 09:27:15 +0000 (11:27 +0200)]
badbase: Use the correct LDFLAGS for creating libraries
Otherwise we won't e.g. create .dlls on Windows
Edward Hervey [Tue, 24 Jun 2014 06:01:21 +0000 (08:01 +0200)]
compositor: Fix Makefile CFLAGS/LIBADD ordering
We want to use the libraries from -bad if/when present
Eric Trousset [Mon, 23 Jun 2014 18:44:23 +0000 (20:44 +0200)]
d3dvideosink: Release D3D surfaces when shutting down the sink
https://bugzilla.gnome.org/show_bug.cgi?id=726026
Sebastian Dröge [Mon, 23 Jun 2014 18:33:54 +0000 (20:33 +0200)]
openslessrc: Classification of the element factory should be Source/ not Src/
https://bugzilla.gnome.org/show_bug.cgi?id=727811
Matthew Waters [Mon, 23 Jun 2014 12:40:23 +0000 (22:40 +1000)]
videoaggregator: don't clobber already heap allocated video frame
CID # 1223440
Matthew Waters [Mon, 23 Jun 2014 12:36:23 +0000 (22:36 +1000)]
videoaggregator: fix up the parent chaining for dispose and finalize
Matthew Waters [Mon, 23 Jun 2014 11:43:10 +0000 (21:43 +1000)]
gluploadmeta: reenable GLMemory upload path
Reynaldo H. Verdejo Pinochet [Mon, 23 Jun 2014 03:39:14 +0000 (23:39 -0400)]
dvbsrc: fix diseqc-source prop name in example
Reynaldo H. Verdejo Pinochet [Mon, 23 Jun 2014 01:04:45 +0000 (21:04 -0400)]
dvbsrc: fix nit on warning message
Tim-Philipp Müller [Sun, 22 Jun 2014 21:04:31 +0000 (22:04 +0100)]
configure: use $ERROR_CFLAGS instead of hard-coding -Werror
https://bugzilla.gnome.org//show_bug.cgi?id=731692
Koop Mast [Sun, 15 Jun 2014 19:15:51 +0000 (21:15 +0200)]
configure: use -Werror to make the include GL and GLES2 header check guaranteed fatal
Clang will only give a warning for the redefinition of typedef GLenum.
Since master is build with -Werror this will result in a build failure
later in the gl plugin. Add -Werror to the test, so the test result is as
expected. This will allow the gl plugins to build.
https://bugzilla.gnome.org//show_bug.cgi?id=731692
Chris Bass [Tue, 17 Jun 2014 13:23:43 +0000 (14:23 +0100)]
h265parse: fix hvcC size check
In ISO/IEC 14496-15, the minimum size of a HEVCDecoderConfigurationRecord
(i.e., the contents of a hvcC box) is 23 bytes. However, the code in h265parse
checks that the size of this data is not less than 28 bytes, and it refuses to
accept caps if the check fails. The result is that standards-conformant streams
that don't carry any parameter sets in their hvcC boxes won't play.
https://bugzilla.gnome.org//show_bug.cgi?id=731783
Koop Mast [Thu, 19 Jun 2014 18:15:05 +0000 (20:15 +0200)]
modplug: don't hardcode c++ standard library
Fixes build with llvm on FreeBSD.
https://bugzilla.gnome.org//show_bug.cgi?id=731930
Sebastian Dröge [Sun, 22 Jun 2014 17:36:14 +0000 (19:36 +0200)]
Back to development
Sebastian Dröge [Sun, 22 Jun 2014 17:22:28 +0000 (19:22 +0200)]
Release 1.3.3
Sebastian Dröge [Sun, 22 Jun 2014 17:09:43 +0000 (19:09 +0200)]
Update .po files
Sebastian Dröge [Sun, 22 Jun 2014 16:58:51 +0000 (18:58 +0200)]
gl: Need to link to new badvideo library for the video aggregator base class
Sebastian Dröge [Sun, 22 Jun 2014 16:51:45 +0000 (18:51 +0200)]
video: Link with $(LIBM) for rint() and others
Sebastian Dröge [Sun, 22 Jun 2014 12:25:42 +0000 (14:25 +0200)]
po: Update translations
Thomas Bluemel [Fri, 20 Jun 2014 14:20:55 +0000 (08:20 -0600)]
hlsdemux: Fix decrypting fragments
Only reset the decryption engine on the first buffer of a fragment,
not again for the second buffer. This fixes corrupting the second
buffer of a fragment.
https://bugzilla.gnome.org/show_bug.cgi?id=731968
Sebastian Dröge [Sun, 22 Jun 2014 12:12:43 +0000 (14:12 +0200)]
rawparse: Use the pad passed to us directly for default event handling
Justin Joy [Thu, 19 Jun 2014 08:24:26 +0000 (17:24 +0900)]
rawparse: default query should be forward on target pad
https://bugzilla.gnome.org/show_bug.cgi?id=731899
Tim-Philipp Müller [Sun, 22 Jun 2014 11:32:35 +0000 (12:32 +0100)]
tsdemux: fix up comment
Matthew Waters [Sat, 21 Jun 2014 23:44:24 +0000 (09:44 +1000)]
gl: move gles2 compat header to glprototypes
Matthew Waters [Sat, 21 Jun 2014 23:36:34 +0000 (09:36 +1000)]
glbufferpool: provide a consistent API regardless of platform
Matthew Waters [Sat, 21 Jun 2014 23:22:23 +0000 (09:22 +1000)]
gl: mark library as API unstable
Thibault Saunier [Sat, 21 Jun 2014 14:57:34 +0000 (16:57 +0200)]
libs:uridownloader: Properly declare APIs as UNSTABLE
Thibault Saunier [Sat, 21 Jun 2014 14:52:51 +0000 (16:52 +0200)]
libs:video: Properly declare APIs as UNSTABLE
Thibault Saunier [Sat, 21 Jun 2014 14:51:01 +0000 (16:51 +0200)]
libs:base: Properly declare APIs as UNSTABLE
Sebastian Dröge [Sat, 21 Jun 2014 14:57:18 +0000 (16:57 +0200)]
waylandsink: Fix compiler warning
gstwaylandsink.c:480:14: error: comparison of constant -1 with expression of
type 'enum wl_shm_format' is always false
[-Werror,-Wtautological-constant-out-of-range-compare]
if (format == -1)
~~~~~~ ^ ~~
Sebastian Dröge [Sat, 21 Jun 2014 14:55:05 +0000 (16:55 +0200)]
tsdemux: Update comments to the new reality and remove unused variables
Thibault Saunier [Sat, 21 Jun 2014 13:40:58 +0000 (15:40 +0200)]
libs:video: Add -I$(top_srcdir)/gst-libs to fix distcheck
Thibault Saunier [Sat, 21 Jun 2014 13:26:14 +0000 (15:26 +0200)]
libs:base: Fix includedir
Thibault Saunier [Sat, 21 Jun 2014 11:45:13 +0000 (13:45 +0200)]
aggregator: Fix requested pad name
Thibault Saunier [Fri, 20 Jun 2014 20:02:07 +0000 (22:02 +0200)]
libs: videoaggregato: Do not import videoconvert.h in gstvideoaggregatorpad.h
+ Add a Private structure to the GstVideoAggregatorPad
+ Add some padding
Thibault Saunier [Fri, 20 Jun 2014 19:18:58 +0000 (21:18 +0200)]
Final fix compilation
Tim-Philipp Müller [Fri, 20 Jun 2014 19:11:07 +0000 (20:11 +0100)]
build: remove gst-libs/gst/video/ from CRUFT_DIRS
It was gone, but now it's back.
Thibault Saunier [Fri, 20 Jun 2014 18:23:30 +0000 (20:23 +0200)]
libs:video:Fix compilation
Thibault Saunier [Fri, 20 Jun 2014 09:10:45 +0000 (11:10 +0200)]
gl:glvideomixer: Add the Compositor in the element metadata class
So it is possible to pick one compositing element from the registry
Mathieu Duponchelle [Thu, 22 May 2014 17:46:02 +0000 (19:46 +0200)]
compositor: Add a new compositor based on the new GstVideoAggregator base class
It is a replacement for videomixer with a similare API
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
https://bugzilla.gnome.org/show_bug.cgi?id=731919
Thibault Saunier [Tue, 10 Jun 2014 09:26:53 +0000 (11:26 +0200)]
gl: Port glmixer to the GstVideoAggregator baseclass
https://bugzilla.gnome.org/show_bug.cgi?id=731921
Mathieu Duponchelle [Tue, 3 Jun 2014 17:00:34 +0000 (19:00 +0200)]
videoaggregator: Create a new GstVideoAggregator baseclass
This base class has been added to a newly created libgstbadvideo library
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
https://bugzilla.gnome.org/show_bug.cgi?id=731918
Thibault Saunier [Thu, 22 May 2014 17:44:37 +0000 (19:44 +0200)]
aggregator: Add new GstAggregator base class
This base class has been added to a newly created libgstbadbase library
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
https://bugzilla.gnome.org/show_bug.cgi?id=731917
Sebastian Dröge [Fri, 20 Jun 2014 12:59:12 +0000 (14:59 +0200)]
androidmedia: Clear exceptions also when we did not provide a GError
Sebastian Dröge [Thu, 19 Jun 2014 09:26:41 +0000 (11:26 +0200)]
androidmedia: Also don't report warnings for queue/dequeue errors during flushing in error cases
... and fix a case where we released an invalid buffer index.
Sebastian Dröge [Thu, 19 Jun 2014 09:15:56 +0000 (11:15 +0200)]
androidmedia: Don't consider input buffer queueing failures as an error during flushing
Sebastian Dröge [Thu, 19 Jun 2014 09:12:47 +0000 (11:12 +0200)]
androidmedia: Clean up flushing code and don't consider output buffer releasing failures during flushing as an error
Sebastian Dröge [Thu, 19 Jun 2014 07:57:25 +0000 (09:57 +0200)]
uridownloader: Include the debug string in the error messages we propagate from t source
Sebastian Dröge [Thu, 19 Jun 2014 07:56:09 +0000 (09:56 +0200)]
hlsdemux: Include the debug string in the error messages we propagate from the
source
Sebastian Dröge [Thu, 19 Jun 2014 07:54:10 +0000 (09:54 +0200)]
hlsdemux: Include a more descriptive error message
Sebastian Dröge [Thu, 19 Jun 2014 07:53:00 +0000 (09:53 +0200)]
hlsdemux: Propagate error messages from the source element up in the hierarchy
Instead of inventing our own generic error strings which are mostly useless.
Sebastian Dröge [Thu, 19 Jun 2014 07:40:11 +0000 (09:40 +0200)]
hlsdemux: Directly convert GErrors to error messages
This will make sure that we don't leak debug information into the actual
error message string and keep it behind the debug string.
Miguel París Díaz [Tue, 17 Jun 2014 09:48:12 +0000 (11:48 +0200)]
gstsrtpenc: unref event when needed
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=731768
Wim Taymans [Wed, 18 Jun 2014 13:36:09 +0000 (15:36 +0200)]
srtpenc: improve property comments
Add a Note to the allow-repeat-tx property because it is potentially
insecure when used incorrectly.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=731714
Miguel París Díaz [Fri, 13 Jun 2014 09:15:25 +0000 (11:15 +0200)]
gstsrtpenc: add allow-repeat-tx property
Lubosz Sarnecki [Tue, 27 May 2014 10:40:09 +0000 (12:40 +0200)]
opengl: add element for transforming video geometry
* add graphene as soft dependency for linear algebra
Tim-Philipp Müller [Wed, 18 Jun 2014 09:13:10 +0000 (10:13 +0100)]
pnm: link against libgstbase for GstAdapter
https://bugzilla.gnome.org/show_bug.cgi?id=730523
Matthew Waters [Tue, 17 Jun 2014 13:20:04 +0000 (23:20 +1000)]
glframebuffer: don't segfault needlessly with GLES2
gst_gl_framebuffer_use_v2 was using a function that is not available
with GLES2
Matthew Waters [Mon, 16 Jun 2014 10:36:09 +0000 (20:36 +1000)]
glfiltershader: port to GLES2
Provide a time variable
Tim-Philipp Müller [Tue, 17 Jun 2014 12:48:10 +0000 (13:48 +0100)]
win32: update exports for changed h264 codec parser API
Sanjay NM [Tue, 17 Jun 2014 07:20:17 +0000 (12:50 +0530)]
pnmdec: Added PBM Support
https://bugzilla.gnome.org/show_bug.cgi?id=730523
Tim-Philipp Müller [Tue, 17 Jun 2014 12:15:06 +0000 (13:15 +0100)]
wayland: add unstable API guards to wayland library header
Tim-Philipp Müller [Tue, 17 Jun 2014 12:11:29 +0000 (13:11 +0100)]
gst-libs: fix uninstalled build of new wayland lib
George Kiagiadakis [Mon, 16 Jun 2014 16:53:53 +0000 (18:53 +0200)]
waylandsink/wldisplay: verify that all the required interfaces have been found on the compositor
This allows waylandsink to fail gracefully before going to READY
in case one of the required interfaces does not exist. Not all
interfaces are necessary for all modes of operation, but it is
better imho to fail before going to READY if at least one feature
is not supported, than to fail and/or crash at some later point.
In the future we may want to relax this restriction and allow certain
interfaces not to be present under certain circumstances, for example
if there is an alternative similar interface available (for instance,
xdg_shell instead of wl_shell), but for now let's require them all.
Weston supports them all, which is enough for us now. Other compositors
should really implement them if they don't already. I don't like the
idea of supporting many different compositors with different sets of
interfaces implemented. wl_subcompositor, wl_shm and wl_scaler are
really essential for having a nice video sink. Enough said.
George Kiagiadakis [Mon, 16 Jun 2014 16:03:51 +0000 (18:03 +0200)]
waylandsink: remove the buffer from the surface when going PAUSED -> READY
This essentially hides the video and allows the application to
potentially draw a black background or whatever else it wants.
This allows to differentiate the "paused" and "stopped" modes
from the user's point of view.
Also reworded a comment there to make my thinking more clear,
since the "reason for keeping the display around" is not really
the exposed() calls, as there is no buffer shown in READY/NULL
anymore.
Arnaud Vrac [Thu, 12 Jun 2014 15:43:40 +0000 (17:43 +0200)]
wayland: install .pc file
George Kiagiadakis [Fri, 13 Jun 2014 14:37:38 +0000 (16:37 +0200)]
waylandsink/wlwindow: do not commit a resize when it happens due to a video info change
1) We know that gst_wayland_sink_render() will commit the surface
in the same thread a little later, as gst_wl_window_set_video_info()
is always called from there, so we can save the compositor from
some extra calculations.
2) We should not commit a resize with the new video info while we are still
showing the buffer of the previous video, with the old caps, as that
would probably be a visible resize glitch.
George Kiagiadakis [Fri, 13 Jun 2014 14:29:32 +0000 (16:29 +0200)]
waylandsink/wlwindow: take into account the video aspect ratio when determining the size of the surface
George Kiagiadakis [Fri, 13 Jun 2014 13:58:08 +0000 (15:58 +0200)]
waylandsink: improve the way the video size is passed to wlwindow and also improve the code for window creation
George Kiagiadakis [Fri, 6 Jun 2014 10:49:56 +0000 (12:49 +0200)]
waylandsink: rename pause/resume_rendering to begin/end_geometry_change and update their documentation
George Kiagiadakis [Thu, 29 May 2014 09:27:46 +0000 (12:27 +0300)]
waylandsink: remove the manual synchronization from pause/resume_rendering and use subsurface sync/desync
Previously, in order to change the surface size we had to let the pipeline
redraw it, which at first also involved re-negotiating caps, etc, so a
synchronization with the pipeline was absolutely necessary.
At the moment, we are using wl_viewport, which separates the surface size
from the buffer size and it also allows us to commit a surface resize without
attaching a new buffer, so it is enough to just do:
gst_wayland_video_pause_rendering():
wl_subsurface_set_sync()
gst_video_overlay_set_render_rectangle():
wl_subsurface_set_position()
wl_viewport_set_destination()
wl_surface_damage()
wl_surface_commit()
... commit the parent surface ...
gst_wayland_video_resume_rendering():
wl_subsurface_set_desync()
This is enough to synchronize a surface resize and the pipeline can continue
drawing independently. Now of course, the names pause/resume_rendering are
bad. I will rename them in another commit.
George Kiagiadakis [Fri, 6 Jun 2014 10:10:24 +0000 (12:10 +0200)]
waylandsink: protect access to properties with the OBJECT_LOCK
George Kiagiadakis [Fri, 6 Jun 2014 10:04:44 +0000 (12:04 +0200)]
waylandsink: protect access to the display with a new display_lock
Access is protected only for setting/creating/destroying the display
handle. set_caps() for example is not protected because it cannot be
called before changing state to READY, at which point there will be
a display handle available and which cannot change by any thread at
that point
George Kiagiadakis [Fri, 6 Jun 2014 08:35:20 +0000 (10:35 +0200)]
waylandsink: remove the OBJECT_LOCK from set_caps()
It's not really necessary, this method is protected from GstBaseSink with the PREROLL_LOCK
George Kiagiadakis [Wed, 28 May 2014 10:10:43 +0000 (13:10 +0300)]
waylandsink: Replace the OBJECT_LOCK with a private render_lock to lock render operations
This is because:
* GST_ELEMENT_WARNING/ERROR do lock the OBJECT_LOCK and we deadlock instantly
* In future commits I want to make use of GstBaseSink functions that also
lock the OBJECT_LOCK inside this code
George Kiagiadakis [Mon, 26 May 2014 11:13:56 +0000 (14:13 +0300)]
waylandsink: move surface resizing logic to the GstWlWindow and make it be called from the main thread
George Kiagiadakis [Mon, 26 May 2014 09:54:10 +0000 (12:54 +0300)]
waylandsink: cleanup GstWlWindow a bit after the overlaying semantics change
* own_surface is not needed anymore
* gst_wl_window_from_surface is not used externally anymore
* many initializations to 0 are not needed (GObject does them)
George Kiagiadakis [Mon, 26 May 2014 08:34:51 +0000 (11:34 +0300)]
wayland: remove gst_wayland_video_set_surface_size()
Not needed anymore, since we use gst_video_overlay_set_render_rectangle()
George Kiagiadakis [Fri, 23 May 2014 15:18:32 +0000 (18:18 +0300)]
waylandsink: create and maintain the subsurface inside the sink
This means that the given surface in set_window_handle can now be
the window's top-level surface on top of which waylandsink creates
its own subsurface for rendering the video.
This has many advantages:
* We can maintain aspect ratio by overlaying the subsurface in
the center of the given area and fill the parent surface's area
black in case we need to draw borders (instead of adding another
subsurface inside the subsurface given from the application,
so, less subsurfaces)
* We can more easily support toolkits without subsurfaces (see gtk)
* We can get properly use gst_video_overlay_set_render_rectangle
as our api to set the video area size from the application and
therefore remove gst_wayland_video_set_surface_size.
George Kiagiadakis [Fri, 23 May 2014 10:09:27 +0000 (13:09 +0300)]
wayland: add public API for creating & using the display handle GstContext
George Kiagiadakis [Wed, 21 May 2014 15:27:28 +0000 (18:27 +0300)]
waylandsink: get the external display handle using GstContext
This drops the ugly GstWaylandWindowHandle structure and is much
more elegant because we can now request the display separately
from the window handle. Therefore the window handle can be requested
in render(), i.e. when it is really needed and we can still open
the correct display for getting caps and creating the pool earlier.
This change also separates setting the wl_surface from setting its size.
Applications should do that by calling two functions in sequence:
gst_video_overlay_set_window_handle (overlay, surface);
gst_wayland_video_set_surface_size (overlay, w, h);
George Kiagiadakis [Wed, 21 May 2014 10:14:15 +0000 (13:14 +0300)]
waylandsink: drop width/height arguments from gst_wl_window_new_from_surface()
George Kiagiadakis [Thu, 22 May 2014 07:10:51 +0000 (10:10 +0300)]
waylandsink: add G_BEGIN/END_DECLS on all headers for consistency
George Kiagiadakis [Wed, 21 May 2014 09:58:10 +0000 (12:58 +0300)]
waylandsink: fix assertion failure when stopping immediately after starting, without displaying anything
This was triggered in scenarios like
filesrc location=nonexistent_file ! decodebin ! waylandsink
George Kiagiadakis [Wed, 21 May 2014 08:55:45 +0000 (11:55 +0300)]
waylandsink: Update wl_scaler to version 2
George Kiagiadakis [Tue, 20 May 2014 16:04:16 +0000 (19:04 +0300)]
wayland/Makefile.am: link with gstvideo to avoid introspection errors
George Kiagiadakis [Tue, 20 May 2014 16:03:39 +0000 (19:03 +0300)]
waylandsink/Makefile.am: Fix scaler-client-protocol.h generation
George Kiagiadakis [Thu, 13 Mar 2014 11:13:08 +0000 (13:13 +0200)]
waylandsink: remove unused functions
George Kiagiadakis [Wed, 12 Mar 2014 17:25:06 +0000 (19:25 +0200)]
waylandsink: Add myself to the authors list
George Kiagiadakis [Wed, 12 Mar 2014 15:03:10 +0000 (17:03 +0200)]
waylandsink/wldisplay: bind to the latest available wl_compositor version
George Kiagiadakis [Wed, 12 Mar 2014 12:28:44 +0000 (14:28 +0200)]
waylandsink: create/destroy the display when entering/leaving the READY state instead of PAUSED
This is the only way to get the negotiation working with the dynamic
detection of formats from the display, because the pipeline needs
to know the supported formats in the READY state and the supported
formats can only be known if we open the display.
Unfortunately,in wayland we cannot have a separate connection to
the display from the rest of the application, so we need to ask for a
window handle when going to READY in order to get the display from it.
And since it's too early to create a top level window from the state
change to READY, create it in render() when there is no other window.
This also changes set_window_handle() to not support window handle
changes in PAUSED/PLAYING (because it's complex to handle and useless
in practice) and make sure that there is always a valid display pointer
around in the READY state.
George Kiagiadakis [Wed, 12 Mar 2014 12:13:49 +0000 (14:13 +0200)]
waylandsink: Support all video formats supported by the display
George Kiagiadakis [Wed, 12 Mar 2014 11:54:44 +0000 (13:54 +0200)]
waylandsink: fix crash in case there is no pool because of a caps negotiation error