Thiago Santos
5c3a87c117
adaptivedemux: allow downloads of headers only
...
In order to get some subsegment information, subclasses might want
to download only the headers to have enough data (the index)
to decide where to start downloading from the subsegment.
2015-01-16 15:00:11 -03:00
Thiago Santos
f7e9a58c58
adaptivedemux: refactor common code to function
...
Reuse the same function when finishing downloading and signaling to
the download loop thread to get the next fragment or abort
2015-01-16 15:00:11 -03:00
Thiago Santos
5823f8b408
adaptivedemux: inform subclass when headers/index are being downloaded
...
This allows the subclasses to know if the chunks that are downloaded are
part of the header or of the index and will parse the parts that are
of their interest.
2015-01-16 15:00:11 -03:00
Vincent Penquerc'h
0b499484b4
uridownloader: a few leak fixes
2015-01-16 11:43:22 +00:00
Vincent Penquerc'h
59bd35aed1
fragment: fix caps and buffer leaks in get_property
2015-01-16 11:43:22 +00:00
Matthew Waters
8fef381417
glmemory: remove spurious gst_video_info_align
...
That will be taken care of by the calling code (typically a bufferpool).
The GstVideoAlignment is purely informational to compute plane data sizes.
2015-01-15 09:50:02 +11:00
Nirbheek Chauhan
4b9924557a
aggregator: Nitpick spacing/punctuation in debug logging
2015-01-14 19:21:31 +01:00
Vincent Penquerc'h
c73a5e0c54
h264parser: fix stack smashing
...
Ensure that we do not trust the bitstream when filling a table
with a fixed max size.
Additionally, the code was not quite matching what the spec says:
- a value of 3 broke from the loop before adding an entry
- an unhandled value did not add an entry
The reference algorithm does these things differently (7.3.3.1
in ITU-T Rec. H.264 (05/2003)).
This plays (apparently correctly) the original repro file, with
no stack smashing.
Based on a patch and bug report by André Draszik <git@andred.net>
2015-01-14 11:39:55 +00:00
Matthew Waters
d5c3693791
gl: split glcolorconvert usage from glupload
...
the separation allows the transfer operation to occur in a separate
thread/time which may increase performance in specific circumstances.
2015-01-14 22:22:13 +11:00
Matthew Waters
4ccf45823e
glmemory: offset the data pointer for upload for GstVideoAlignment
...
otherwise we attempt to read from the padding data
2015-01-14 22:22:13 +11:00
Matthew Waters
d1e923765b
glmemory: use pbo's for upload
2015-01-14 22:22:13 +11:00
Matthew Waters
8c2d5dac72
glupload: relax the GLMemory uploader check for input caps features
...
As there may be a sysmem caps features with GLMemory filled buffers.
e.g.
videotestsrc ! glimagesink
2015-01-14 22:22:13 +11:00
Nicola Murino
442451a30d
glcolorconvert: fix memleak
...
https://bugzilla.gnome.org/show_bug.cgi?id=741943
2015-01-13 15:20:34 +11:00
Nicola Murino
3c6d775766
glupload: fix some memory leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=741943
2015-01-13 15:19:39 +11:00
Matthew Waters
4c73e20553
glcontext: allow wrapped contexts to be utilised like non-wrapped contexts
...
Fill in the missing pieces like get_proc_address, the gl function vtable
2015-01-13 15:18:41 +11:00
Stefan Sauer
4732962c85
gitignore: ignore more files
2015-01-12 22:52:36 +01:00
Sebastian Dröge
fa5c433e7e
gl/cocoa: Disable hack for NSApp iteration with a special #define
...
The hack causes deadlocks and other interesting problems and it really
can only be fixed properly inside GLib. We will include a patch for
GLib in our builds for now that handles this, and hopefully at some
point GLib will also merge a proper solution.
A proper solution would first require to refactor the polling in
GMainContext to only provide a single fd, e.g. via epoll/kqueue
or a thread like the one added by our patch. Then this single
fd could be retrieved from the GMainContext and directly integrated
into a NSRunLoop.
https://bugzilla.gnome.org/show_bug.cgi?id=741450
https://bugzilla.gnome.org/show_bug.cgi?id=704374
2015-01-10 15:54:30 +01:00
Olivier Crête
9ba9873b1f
aggregator: Remove pointless atomic
...
It is only modified from the streaming thread
2015-01-09 22:08:08 -05:00
Olivier Crête
22ea83e7fa
aggregator: Fix query leak
2015-01-09 22:02:53 -05:00
Sebastian Dröge
713205fbe6
aggregator: Print jitter from clock waiting in the debug logs
2015-01-09 16:43:58 +01:00
Sebastian Dröge
1b2de14000
gl/cocoa: Don't init and clear static GMutex / GCond
...
We would potentially use it from the main loop later in
gst_gl_window_cocoa_init_nsapp() if it timed out before.
2015-01-08 09:36:24 +01:00
Luis de Bethencourt
75cc750efc
glfilter: remove logically dead code
...
Soon after setting two variables to 1, the code checks if their values are
different from each other. This would never be true. Removing this.
CID 1226443
2015-01-07 16:53:41 +00:00
Thiago Santos
c1251ab861
adaptivedemux: only update segment if we have a valid PTS
...
Otherwise we set the position to GST_CLOCK_TIME_NONE and it disrupts
bitrate switching
2015-01-07 09:30:40 -03:00
Thiago Santos
af78e2501c
adaptivedemux: prepare for supporting seeks in live streams
...
Add function to allow subclasses to specify seeking range for
live streams
https://bugzilla.gnome.org/show_bug.cgi?id=725435
2015-01-05 17:58:54 -03:00
Tim-Philipp Müller
fbd4cf9810
aggregator: don't use iterator when setting flush pending on pads
2015-01-04 17:25:45 +00:00
Tim-Philipp Müller
4da01dadcc
aggregator: check if pads are ready more efficiently
...
No need to use an iterator for this which creates a temporary
structure every time and also involves taking and releasing the
object lock many times in the course of iterating. Not to mention
all that GList handling in gst_aggregator_iterate_sinkpads().
2015-01-04 17:07:43 +00:00
Tim-Philipp Müller
3e38003218
aggregator: name vfunc arguments consistently
2015-01-04 12:59:19 +00:00
Tim-Philipp Müller
10d5e878d8
aggregator: add g-i transfer and scope annotations
2015-01-01 15:48:08 +00:00
Tim-Philipp Müller
82f74cd9e0
aggregator: register names of iterate_sinkpads functions with debug system
2015-01-01 14:10:05 +00:00
Tim-Philipp Müller
22d4c7a5c5
aggregator: reduce debug messages for taking/releasing logs to TRACE level
...
Don't spam debug log with this stuff.
2015-01-01 14:04:24 +00:00
Tim-Philipp Müller
6e30a98fd5
aggregator: move property member into private structure
...
Our locking (or lack thereof) while accessing this also
looks generally quite dodgy.
2014-12-31 18:18:03 +00:00
Tim-Philipp Müller
b00ea0cc08
aggregator: remove empty dispose function
2014-12-31 14:50:58 +00:00
Tim-Philipp Müller
ad40a65a01
aggregator: give private functions namespace prefix
...
Especially the GST_DEBUG_FUNCPTR ones.
2014-12-31 12:36:08 +00:00
Tim-Philipp Müller
d0068899bf
aggregator: fix up some docs comments in header
2014-12-31 12:35:06 +00:00
Tim-Philipp Müller
7b282513f3
aggregator: remove now-unused system clock member
2014-12-30 23:44:46 +00:00
Tim-Philipp Müller
c1f6ef5f53
aggregator: make GstAggregatorPadForeachFunc take an GstAggregatorPad
2014-12-30 19:22:01 +00:00
Tim-Philipp Müller
6fc474c30a
videoaggregator: update for aggregator start/stop vfunc change
2014-12-30 17:56:35 +00:00
Tim-Philipp Müller
b4d2deb6d6
aggregator: bring start/stop vfunc semantics in line with other baseclasses
...
Sub-class should not have to chain up to GstAggregator's start/stop
vfuncs, same as in GstBaseSrc, GstBaseSink, GstBaseTransform etc.
2014-12-30 17:55:05 +00:00
Tim-Philipp Müller
45ae4d7f9c
aggregator: remove pointless GST_DEBUG_FUNCPTR
...
Not useful for GObject vfuncs.
2014-12-28 18:26:49 +00:00
Tim-Philipp Müller
773e426616
aggregator: remove duplicate pad parent_class variable
...
G_DEFINE_TYPE already provides one, just need to use it.
2014-12-28 18:25:00 +00:00
Tim-Philipp Müller
813ada29ad
aggregator: add _CAST() variants for cast macros
2014-12-28 18:22:57 +00:00
Tim-Philipp Müller
83de85a2f3
aggregator: make padding larger
...
Esp. the class structures, can't have enough
spare space for virtual functions.
2014-12-28 01:13:33 +00:00
Nirbheek Chauhan
2a6446e519
aggregator: Log to the pad instead of the element
...
More correct way of doing the same thing as before
2014-12-27 11:06:09 +00:00
Sebastian Dröge
ba1b53113a
aggregator: Make sure that the minimum latencies are never GST_CLOCK_TIME_NONE
2014-12-27 09:49:43 +01:00
Sebastian Dröge
6449e3d897
aggregator: Wait for the minimum latency, not the maximum
...
The minimum latency is the latency we have to wait at least
to guarantee that all upstreams have produced data. The maximum
latency has no meaning like that and shouldn't be used for waiting.
2014-12-27 09:45:08 +01:00
Nirbheek Chauhan
46f857b314
aggregator: Clamp the min latency at the max if it's greater
2014-12-27 09:45:08 +01:00
Nirbheek Chauhan
3193094cbc
aggregator: Print the sinkpad name while logging latency queries
...
Very useful while debugging.
2014-12-27 09:45:08 +01:00
Nirbheek Chauhan
f3efb9e7d6
aggregator: Take the stream lock when iterating sink pads
...
When iterating sink pads to collect some data, we should take the stream lock so
we don't get stale data and possibly deadlock because of that. This fixes
a definitive deadlock in _wait_and_check() that manifests with high max
latencies in a live pipeline, and fixes other possible race conditions.
2014-12-27 09:45:08 +01:00
Thiago Santos
c65aeedb6f
adaptivedemux: check if element exists before setting it to null
...
Under certain error conditions it might happen that the element
has been freed already and trying to set it to NULL causes an
assertion
2014-12-23 10:08:57 -03:00
Thiago Santos
3dfab51b92
adaptivedemux: make sure task has stopped before freeing it
...
Otherwise the thread will be running and its memory will get freed.
This leads to memory corruption
2014-12-23 10:08:56 -03:00