Sebastian Dröge
f2617ee0ee
videoaggregator: Print some debug output if we change the timestamp offset
2015-06-15 14:29:04 +02:00
Sebastian Dröge
3c9176d7e8
videoaggregator: Add some more debug output
2015-06-15 14:25:43 +02:00
Sebastian Dröge
442114c606
videoaggregator: Don't update the ts-offset before updating the actual configured caps
2015-06-15 14:19:05 +02:00
Sebastian Dröge
9533d1f165
videoaggregator: Remember if the last LATENCY query returned live or not and use the in the QoS messages
2015-06-15 14:18:39 +02:00
Mathieu Duponchelle
3c2fff7165
videoaggregator: No need to artificially bound the zorder.
...
It is an unsigned integer so the upper bound is G_MAXUINT.
2015-06-14 23:15:25 +02:00
Luis de Bethencourt
417db39d0d
codecparsers: mpeg4: actually return full number of bits of resync marker
...
Switch the increment of markersize from when it is used to when it is
returned from compute_resync_marker_size.
This also makes the CHECK_REMAINING in gst_mpeg4_parse_video_packet_header
check for the actually required number of bits now and not one too few.
https://bugzilla.gnome.org/show_bug.cgi?id=739345
2015-06-13 18:03:11 +01:00
Tim-Philipp Müller
b14fb383ed
Revert "codecparsers: remove ignored increment of return"
...
This reverts commit 916b954315
.
Clearly something else was intended, and it also makes
more sense to add the extra bit. The resync marker is
N zero bits plus a 1 bit, and the pattern/mask needs to
be run on N+1 bits too.
(Even after the rever the code doesn't do that of course, so
it still needs to be fixed differently.)
https://bugzilla.gnome.org/show_bug.cgi?id=739345
2015-06-13 17:59:42 +01:00
Nirbheek Chauhan
b395c055eb
videoaggregator: add "ignore-eos" property for input pads
...
When set, it causes videoaggregator to repeatedly aggregate the last buffer on
an EOS pad instead of skipping it and outputting silence. This is useful, for
instance, while playing back files seamless one after the other, to avoid
videoaggregator ever outputting silence (the checkerboard pattern).
It is to be noted that if all the pads on videoaggregator have this property set
on them, the mixer will never forward EOS downstream for obvious reasons. Hence,
at least one pad with 'ignore-eos' set to FALSE must send EOS to the mixer
before it will be forwarded downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=748946
2015-06-12 19:44:50 +01:00
Jesper Larsen
355439206d
mpegts: return early if packetizing short section
...
Short sections have 3 bytes of common header, while other sections
have 8 bytes of common header. If packetizing common header of short
section, we should stop after the first 3 bytes.
https://bugzilla.gnome.org/show_bug.cgi?id=735653
2015-06-12 19:21:51 +01:00
Matthew Waters
c3a47c910d
glmemory: separate pbo transfer from texture transfers
...
When supported, the potentially longer pbo upload/download can be
initiated before the texture upload/download, potentially increasing
throughput.
2015-06-12 16:59:20 +10:00
Matthew Waters
7d8d1f8206
glmemory: implement on top of glbasebuffer
...
Provides convenient access to PBO usage.
Currently texture updates are coupled tightly to data transfers.
2015-06-12 16:59:20 +10:00
Matthew Waters
6e88b07cc5
gl: new glbasebuffer GstMemory object
...
Provides generic handling of GL buffer objects accessible using
the GL bind points (GL_ARRAY_BUFFER, GL_PIXEL_*_BUFFER).
Implementation based off the current GstGLMemory.
2015-06-12 16:59:20 +10:00
Matthew Waters
2741093c97
gl/prototypes: add some buffer function prototypes
2015-06-12 16:09:49 +10:00
Matthew Waters
ea4867dfa7
gl/window/x11: only listen on the X Display when needed
...
5697b6b89b
causes us to possibly listen
on a toolkit provided Display connection. We thus could eat their
precious winsys events. Only listen if we need to
(!foreign_display or videooverlay).
2015-06-12 13:14:57 +10:00
Jan Schmidt
e2ce1eff36
gl: Add support for multiple views in upload, colour convert and download
...
Support multiple attached views on input/output buffers
by processing each one, not just the first.
2015-06-12 00:39:15 +10:00
Matthew Waters
5697b6b89b
gl/window/x11: don't create our own X11 display
...
It's not needed anymore with most window operations occuring in the
GL thread.
2015-06-12 00:34:58 +10:00
Matthew Waters
e2adfb8bf2
gl/window/x11: handle_events() may be called before the window has been created
...
Fixes an XIO fatal error
2015-06-12 00:34:58 +10:00
Sebastian Dröge
e7ca427ddb
gl: OES_vertex_array_object is improperly implemented on PowerVR SGX 544MP
...
https://bugzilla.gnome.org/show_bug.cgi?id=750185
2015-06-10 13:31:16 +02:00
Thiago Santos
7b8d819d18
videoaggregator: simplify aggregate returning
...
Rework special handling with goto/labels to only have one case
and otherwise just return normally.
2015-06-08 12:35:25 -03:00
Thiago Santos
443a3beb8f
videoaggregator: refactor caps reconfigure to its own function
...
Makes the aggregation code shorter and easier to read
2015-06-08 12:34:23 -03:00
Thiago Santos
9f9c723f5d
videoaggregator: fixing types in aggregate function
...
Correctly use boolean and GstFlowReturn types in the function.
2015-06-08 12:33:40 -03:00
Thiago Santos
a5e1f26385
videoaggregator: use macro to access aggregator src pad
...
Makes code a bit more readable
2015-06-08 12:09:51 -03:00
Thiago Santos
0a495cbea2
aggregator: add a convenience macro to get the source pad
...
Easier than casting or acessing the parent everywhere
2015-06-08 12:09:51 -03:00
Thiago Santos
045bfa10fe
Fix a common typo: retreive -> retrieve
...
Seems to have been copy pasted around a few places
2015-06-05 09:43:35 -03:00
Sebastian Dröge
4dd355cea2
adaptivedemux: Error out if downloading a segment failed too often in live mode
...
It's true that we shouldn't consider errors fatal immediately, but if we
always ignore them we will loop infinitely on live streams with segments
that can't be downloaded at all.
2015-06-05 11:26:11 +02:00
Sebastian Dröge
fc67e1db8b
adaptivedemux: Release the manifest mutex before waiting for a download
...
Otherwise we will hurt parallel downloads in the best case, and often cause
deadlocks.
2015-06-04 12:36:41 +02:00
Philippe Normand
53a149f5d4
gl/dispmanx: Fix build
2015-06-04 09:42:01 +02:00
Matthew Waters
050e12c62a
gl/window/dispmanx: fix compiler warning
2015-06-04 15:01:16 +10:00
Matthew Waters
fbbf1ac324
gl/window: use the default main loop implementation for all backends
...
fixes glimagsink being unable to display.
https://bugzilla.gnome.org/show_bug.cgi?id=750337
2015-06-04 12:16:35 +10:00
Julien Isorce
b7808270ca
glwindow_cocoa: use parent default implementation
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=750337
2015-06-03 21:24:59 +01:00
Jan Schmidt
840f63896f
glsyncmeta: Set new sync point when copying
...
Set a new sync point when copying instead of
transferring the (non-refcounted) GL sync object
from the source meta.
https://bugzilla.gnome.org/show_bug.cgi?id=750279
2015-06-03 00:50:29 +10:00
Jan Schmidt
0ce8d77e54
glsyncmeta: Add some debug output
2015-06-03 00:50:28 +10:00
Matthew Waters
ab2656ebe5
glmemory: provide compatibility definition for GLES2 for GL_RGBA8
2015-06-02 17:24:18 +10:00
Matthew Waters
d914cc6e72
gl: consolidate internal_rgba_format into glmemory
...
Expose some useful value format conversion functions available in
GstGLMemory.
2015-06-02 16:33:44 +10:00
Olivier Crête
10319757b4
aggregator: Document that the latency is in ns
2015-06-01 18:50:14 -04:00
Julien Isorce
742dba0c2a
glcontext_gpu_process: close the window when done
2015-06-01 14:09:54 +01:00
Julien Isorce
e9c2e93f3f
glwindow_gpu_process: avoid empty struct
2015-06-01 14:09:54 +01:00
Julien Isorce
d843b9e8c3
glwindow: move main loop/context creation back to init/finalize
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=750199
2015-06-01 14:09:34 +01:00
Sebastian Dröge
5b0c3ac153
gl: Fix compiler warning
...
gstglwindow_wayland_egl.c:246:41: error: unused variable 'surface_listener' [-Werror,-Wunused-const-variable]
static const struct wl_surface_listener surface_listener = {
^
2015-05-31 21:31:00 +02:00
Matthew Waters
360f0be2a8
glwindow: fix compiler error
...
gstglwindow.c:1118:544: error: 'return' with no value, in function returning non-void [-Werror]
g_return_if_fail (GST_GL_IS_WINDOW (window));
2015-05-31 16:53:14 +10:00
Matthew Waters
e385adc241
gl/wayland: implement setting the render rectangle
...
Places our subsurface at the rectangle provided position
2015-05-31 16:09:34 +10:00
Matthew Waters
fac0cdc7ac
glwindow: handle gst_video_overlay_set_render_rectangle
2015-05-31 16:04:13 +10:00
Matthew Waters
2442c240f5
gl/wayland: don't block the event loop after poll
...
Use the dispatch_pending set of functions which just run the currently
queued up events instead of potentially waiting for an event to occur.
2015-05-31 16:04:13 +10:00
Matthew Waters
de389e07dc
gl/wayland: implement basic video overlay support via subsurfaces
...
Currently does not position the subsurface relative to the parent surface at all
2015-05-31 16:04:13 +10:00
Matthew Waters
1dc0f40a35
gl/wayland: allow a NULL wl_event_queue
...
perform operations on the default wl_display event queue in that case
2015-05-31 16:04:13 +10:00
Matthew Waters
b39ccd3745
gl/utils: implement wayland display GstContext
...
requried for sharing GL contexts or subsurface support
2015-05-31 16:04:12 +10:00
Matthew Waters
be9739cd2f
gl/wayland: run each window on a separate queue
...
Based on patch by Julien Isorce <julien.isorce@collabora.co.uk>
https://bugzilla.gnome.org/show_bug.cgi?id=709747
2015-05-31 16:04:12 +10:00
Jan Schmidt
845256bf61
gl: Don't leak temp strings in _RGB_pixel_order()
...
Fix a memory leak of temporary strings when computing
swizzling of RGB formats.
2015-05-30 02:46:24 +10:00
Jan Schmidt
5543803acf
glfilter: Add transform_internal_caps() vfunc
...
Add a vfunc that is called by glfilter before it sets
caps features and intersects with the peer caps, and
move removing the size from caps into its default
implementation. Allows sub-classes to do more
sophisticated management of the size fields in case they
don't support arbitrary resizing or have distinct
preferences.
2015-05-30 02:31:39 +10:00
Jan Schmidt
b6002141ab
glfilter: Don't remove size fields from caps
...
Instead of removing size fields, set them to the full range
like videoscale does, so the caps are clearly unfixed in
all cases.
2015-05-30 02:31:39 +10:00