Sreerenj Balachandran
e6e0702821
codecparser: h265: Fix nal unit size checking
...
The EOS and EOB nals have the size 2 which is the size of
nal unit header itself. The gst_h265_parser_identify_nalu()
is not required to scan start code again in this case.
In other cases, for a valid nalunit the minimum required size
is 3 bytes (2 byte header and at least 1 byte RBSP payload)
2015-04-30 21:47:38 +02:00
Sreerenj Balachandran
af7ff2bd95
codecparser: h265: Calculate crop rectangle dimensions
2015-04-30 21:46:31 +02:00
Sreerenj Balachandran
877e69c9ec
codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
...
An SEI Nal can have more than one SEI message.
Change in API: the gst_h265_parser_parse_sei()
2015-04-30 21:45:39 +02:00
Matthew Waters
87d8270f30
gl: readd glupload/download onto element pads
...
Allows insertion of gl elements into non-gl pipelines without converter
(upload/download) elements.
https://bugzilla.gnome.org/show_bug.cgi?id=743974
2015-04-30 11:26:33 +10:00
Sreerenj Balachandran
8407622c93
codecparser: h265: Fix the number of tile rows/columns parsing
...
The possible minimum value for num_tile_columns_minus1 and num_tile_rows_minus1
is zero (7.4.3.3).
https://bugzilla.gnome.org/show_bug.cgi?id=748641
2015-04-29 19:16:48 +02:00
Edward Hervey
38c97f5fa5
adaptivedemux: Fix comparision logic
...
We can't answer the SEEKING query if we do *not* have the manifest
2015-04-29 15:41:07 +02:00
Jan Schmidt
1de2e2bc39
glupload: Make upload method static caps non-const.
...
Retrieving a GstStaticCaps does a one time internal
initialisation and caches it - they can't be stored as
const structures.
2015-04-29 02:52:40 +10:00
Matthew Waters
17084a4608
glmemory: remove uneeded unref
...
The call to _gl_mem_alloc_data will unref and NULLify 'dest' for us.
We just need to return.
https://bugzilla.gnome.org/show_bug.cgi?id=744246
2015-04-28 20:47:55 +10:00
Matthew Waters
0b7f65bbc3
glupload: provide the sink template caps that could be used
...
https://bugzilla.gnome.org/show_bug.cgi?id=746399
2015-04-28 20:13:48 +10:00
Xavier Claessens
5bfaaf4c74
egl: Use maximum bits per color instead of minimum
...
https://bugzilla.gnome.org/show_bug.cgi?id=748425
2015-04-27 10:45:48 -04:00
Matthew Waters
bd940327ef
gl: unref display/other-context in the correct place
...
Otherwise state changes from PLAYING->READY->PAUSED will cause there to
to be no display configured on the element.
https://bugzilla.gnome.org/show_bug.cgi?id=748405
2015-04-27 15:20:56 +10:00
Sreerenj Balachandran
989643ff7c
codecparsers: h265: add helpers to convert quantization matrices
...
Add utility functions to convert quantization matrices from zig-zag scan
order into raster scan order and vice-versa
https://bugzilla.gnome.org/show_bug.cgi?id=747613
2015-04-26 21:46:25 +02:00
Sreerenj Balachandran
a86e7c1c1f
codecparser: h265: skip byte alignment bits while parsing slice header
...
Skip the byte alignment bits as per the logic of byte_alignment()
provided in hevc specification. This will fix the calculation of
slice header size.
https://bugzilla.gnome.org/show_bug.cgi?id=747613
2015-04-26 21:45:31 +02:00
Sreerenj Balachandran
b17a026eb7
codecparser: h265: Fix the NumDeltaPocs calculation
...
Always use the equation provided in spec (7-57) for finding
the NumDeltaPocs
https://bugzilla.gnome.org/show_bug.cgi?id=747613
2015-04-26 21:45:08 +02:00
Sreerenj Balachandran
333ba075a5
codecparser: h265: Fix the NumPocTotalCurr calculation
...
The NumPocToalCurr should be calculated for all B and P slices.
https://bugzilla.gnome.org/show_bug.cgi?id=747613
2015-04-26 21:44:25 +02:00
Sreerenj Balachandran
889cc8ee31
codecparser: h265: Fix nal size calculation for EOS and EOB
...
https://bugzilla.gnome.org/show_bug.cgi?id=747613
2015-04-26 21:43:40 +02:00
Sebastian Dröge
e7aa25ca6f
glfilter: De-camelcase onInitFBO() vfunc
2015-04-26 21:42:03 +02:00
Sebastian Dröge
c638477c48
glfilter: Remove onStart/onStop vfuncs, and unused onReset()
...
onStart/onStop are just duplicates of the basetransform ones, onReset
was never called but was used everywhere when stop should've been used.
2015-04-26 21:39:06 +02:00
Matthew Waters
1fce7dc228
glbasefilter: Unref other context in finalize, and display in READY->NULL
...
https://bugzilla.gnome.org/show_bug.cgi?id=748405
2015-04-26 20:33:41 +02:00
Tim-Philipp Müller
699452ef31
Remove obsolete Android build cruft
...
This is not needed any longer.
2015-04-26 18:59:32 +01:00
Sebastian Dröge
235506e912
adaptivedemux: Only answer the duration query in non-live mode
2015-04-26 19:08:35 +02:00
Sebastian Dröge
6c8eeb448d
adaptivedemux: Don't claim to be live when answering the LATENCY query
...
Even for "live" streams we are not live in the GStreamer meaning of the word.
We don't produce buffers that are timestamped based on their "capture time"
and our clock, but just based on whatever timestamps the stream might contain.
Also even if we wanted to claim to be live, that wouldn't work well as we
would have to return GST_STATE_CHANGE_NO_PREROLL when going from READY to
PAUSED, which we can't. We first need data to know if we are "live" or not.
2015-04-23 17:47:18 +02:00
Sebastian Dröge
0cd3938345
adaptivedemux: Allow subclasses to override how a new manifest would be downloaded
2015-04-23 17:47:18 +02:00
Sebastian Dröge
c1f98daa74
adaptivedemux: Expose downloader
...
This allows subclasses to use it and share connections if possible.
2015-04-23 17:47:18 +02:00
Sebastian Dröge
3c639d3235
adaptivedemux: Don't stop all tasks and streams from the update task on errors
...
It will deadlocks as we will then join() the update task from itself. Instead
just post an actual error message on the bus and only stop the update task.
The application is then responsible for shutting down the element, and thus
all the other tasks and everything, based on the error message it gets.
2015-04-21 22:04:56 +02:00
Matthew Waters
ab9eb432fb
glwindow: track context activation properly
...
We only need to deactivate/reactivate the context iff it was already
active.
2015-04-21 12:55:24 +10:00
Matthew Waters
6cb6d8f9e8
gldisplay: synchronize the searching and creation of GstGLContext's
...
Ootherwise we could end up with multiple elements in different chains
each creating a context. Fixes context creation with glvideomixer.
2015-04-21 12:55:24 +10:00
Guillaume Desmottes
89e2a5fe75
videoaggregator: fix caps leak when early returning
...
https://bugzilla.gnome.org/show_bug.cgi?id=747993
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2015-04-17 14:45:05 +01:00
Matthieu Bouron
93d2e67cbc
glcontext: Make gst_gl_context_egl_activate fail if the old surface could not be destroyed
...
https://bugzilla.gnome.org/show_bug.cgi?id=746251
2015-04-17 14:39:11 +02:00
Matthieu Bouron
8ebc715fbf
glcontext: Make gst_gl_context_egl_activate fail if the surface could not be created
...
Also add some error logging.
2015-04-16 11:47:00 +02:00
Sebastian Dröge
2fe6fe12cf
glcolorconvert: Fix last commit
2015-04-11 19:35:48 +02:00
Sebastian Dröge
a557a546ac
gl: Remove iOS/EAGL workaround for R/RG textures
...
This should be unneeded now after https://bugzilla.gnome.org/show_bug.cgi?id=732507
2015-04-11 19:17:00 +02:00
Sebastian Dröge
b10cdc8536
glcolorconvert: Add correct check for RG/R textures in glcolorconvert too
...
https://bugzilla.gnome.org/show_bug.cgi?id=732507
2015-04-11 19:14:34 +02:00
Anton Obzhirov
6a2e986f07
glbasefilter: avoid segfault when gl platform is not available
...
https://bugzilla.gnome.org/show_bug.cgi?id=747124
2015-04-10 12:15:29 -03:00
Sebastian Dröge
9592a0c32f
videoaggregator: Remove broken timestamps-going-backwards check
...
This would've also triggered if for some reason the segment was updated
in such a way that PTS went backwards, but the running time increased. Like
what happens when non-flushing seeks are done.
We're doing a proper buffer-from-the-past check a few lines below based on the
running time, which is the only time we should care about here.
2015-04-08 19:31:43 -07:00
Reynaldo H. Verdejo Pinochet
7fb02dc918
aggregator: document gap handling behavior
...
https://bugzilla.gnome.org/show_bug.cgi?id=746249
2015-04-03 18:17:35 -03:00
Reynaldo H. Verdejo Pinochet
ca2de787db
aggregator: drop stale white space at warning
2015-04-03 18:17:35 -03:00
Reynaldo H. Verdejo Pinochet
931fbf5e12
aggregator: implement gap handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=746249
2015-04-03 18:17:35 -03:00
Olivier Crête
43d4d3c5ca
aggregator: Unify downstream flow return and flushing
...
Also means that having a non-OK downstream flow return
wakes up the chain functions.
https://bugzilla.gnome.org/show_bug.cgi?id=747220
2015-04-02 15:59:27 -04:00
Olivier Crête
b9a422d8d0
aggregator: Flushing is always in pad lock, no need to atomics
...
The usage of atomics was always doubtful as it was used to release a
GCond
https://bugzilla.gnome.org/show_bug.cgi?id=747220
2015-04-02 15:59:27 -04:00
Olivier Crête
d1bae20802
aggregator: Reset pending_eos on pad flush
...
https://bugzilla.gnome.org/show_bug.cgi?id=747220
2015-04-02 15:59:27 -04:00
Olivier Crête
38d8db801a
aggregator: Unify code to set a pad flushing
...
https://bugzilla.gnome.org/show_bug.cgi?id=747220
2015-04-02 15:59:27 -04:00
Alessandro Decina
6981a8d15b
libgstgl: fix rendering on iOS
...
Stop assuming that the handle has been set by the time ->create_context is
called. After bc7a7259f3
set_window_handle always
happens after ->create_context in fact.
See also https://bugzilla.gnome.org/show_bug.cgi?id=745090
2015-04-02 18:29:39 +11:00
Olivier Crête
5a6024850c
aggregator: Query latency on first incoming buffer.
...
And keep on querying upstream until we get a reply.
Also, the _get_latency_unlocked() method required being calld
with a private lock, so removed the _unlocked() variant from the API.
And it now returns GST_CLOCK_TIME_NONE when the element is not live as
we think that 0 upstream latency is possible.
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-04-01 22:39:26 -04:00
Edward Hervey
0360a62135
introspection: Don't use g-ir-scanner cache at compile time
...
It pollutes user directories and we don't need to cache it
https://bugzilla.gnome.org/show_bug.cgi?id=747095
2015-03-31 15:42:03 +02:00
Thiago Santos
66b01c9a0c
adaptivedemux: do not try to advance fragment if there is none
...
It might return OK from subclasses and it could cause a bitrate
renegotiation. For DASH and MSS that is ok as they won't expose
new pads as part of this but it can cause issues for HLS as
it will expose new pads, leading to pads that will only have EOS
that cause decodebin to fail
https://bugzilla.gnome.org/show_bug.cgi?id=745905
2015-03-27 16:22:57 -03:00
Nirbheek Chauhan
dceb8aefd1
videoaggregator: Document why buffer_vinfo is needed
2015-03-24 14:54:33 +01:00
Nirbheek Chauhan
802a29eb48
videoaggregator: Check if there's a previous buffer to 'keep'
...
If we want to keep a previous buffer but there's no previous buffer, we actually
need more data instead.
2015-03-24 14:54:33 +01:00
Philippe Normand
14ac40f106
gl/dispmanx: surfaceless EGL context support
...
Show the DispmanX window only if there's no shared external GL context
set up. When a window is required by the context a transparent
DispmanX element is created and later on made visible by the ::show
method.
https://bugzilla.gnome.org/show_bug.cgi?id=746632
2015-03-24 11:12:05 +00:00
Julien Isorce
e1e17dcadb
glwindow: remove unused gl_thread field
2015-03-22 19:12:15 +01:00
Julien Isorce
d35e3b8481
gldisplay: fix GThread leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=746541
2015-03-22 19:03:19 +01:00
Matthew Waters
0ee027b6ee
gl/docs: update some doc comments
2015-03-18 10:13:25 -07:00
Olivier Crête
0656c2fc67
aggregator: Be more aggressive with invalid replies to our latency query
...
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-03-16 14:31:50 -04:00
Matthew Waters
78c82328ee
gldisplay: tentative proper context collision detection
...
Fixes
tee name=t ! queue ! gliamgesink t. ! queue ! glimagesink
2015-03-15 14:43:10 +00:00
Víctor Manuel Jáquez Leal
d925e7fd19
glupload: move meta-data copy into gst-gl library
...
In some upload implementations the out buffer has more than one references,
turning the buffer not writable, so it won't be possible to modify its
meta-data.
This patch moves the meta-data copy before increasing the reference of the out
buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=746173
2015-03-14 19:53:02 +00:00
Matthew Waters
48f8b5b46b
glmemory: fix the slight difference between EXT_rg and ARB_rg
...
GL_EXT_texture_rg doesn't take sized formats for the internalformat
parameter of TexImage* but GL_ARB_texture_rg and GL(ES)3 do.
https://bugzilla.gnome.org/show_bug.cgi?id=732507
2015-03-14 18:59:27 +00:00
Matthew Waters
fa61e8e4ce
glsyncmeta: make context to wait and set sync explicit
...
otherwise we may wait on a sync object in same context by accident
2015-03-14 16:53:46 +00:00
Julien Isorce
802bf79998
gl: add GstGLDisplayCocoa
...
https://bugzilla.gnome.org/show_bug.cgi?id=746012
2015-03-14 08:38:03 +00:00
Julien Isorce
90f0cfceb7
gl/cocoa: do not terminate loop in gst_gl_window_cocoa_close
...
It is now done in _finalize.
Fix regression introduced by
"gl/window: create the main loop/context on init/finalize"
bc7a7259f3
2015-03-14 07:49:14 +00:00
Julien Isorce
2d593b4c26
gl: avoid overwriting display and context to NULL
...
It happens when the application provides display
and/or context.
2015-03-13 18:30:30 +00:00
Matthew Waters
a29a18cc3a
glshader: attribute locations are -1 on error
2015-03-13 17:41:17 +00:00
Neos3452
40a4530c5d
glshader: prevent from getting attributes without vertex shader
...
It doesn't make sense to query for vertex attributes without a vertex
shader. Moreover this is causing a crash on OSX.
https://bugzilla.gnome.org/show_bug.cgi?id=746168
2015-03-13 17:35:18 +00:00
Matthew Waters
773f9fa6ff
glupload: unref the bufferpool
2015-03-13 12:40:04 +00:00
Matthew Waters
34485c9976
gl: get the context from basemixer/basefilter
2015-03-13 12:30:20 +00:00
Matthew Waters
91b7642c48
gl: retreive the gldisplay/app gl context as soon as possible
...
fixes the usage of gst_gl_display_filter_gl_api
2015-03-13 12:30:20 +00:00
Julien Isorce
daef98e3e6
glcolorconvert: cache indices in a buffer object
2015-03-12 18:19:57 +00:00
Matthew Waters
66ccdab09a
gl/cocoa: avoid deadlock when creating context on the main thread.
...
Make window/view creation async so that it is possible to
gst_gl_context_create from the main thread.
2015-03-12 16:45:51 +00:00
Matthew Waters
ef0bd30c87
gl: store the list of contexts within gldisplay
...
Removes the reliance on the allocation query to propogate GL contexts.
Allows thread safely getting a context for the a specific thread.
2015-03-12 16:45:51 +00:00
Matthew Waters
cebdf84c81
glcontext: store the thread current context
2015-03-12 16:45:51 +00:00
Matthew Waters
5a867ddc47
glfilter: don't use the library upload/convert objects
2015-03-12 16:45:50 +00:00
Matthew Waters
0c800027ba
glupload: implement propose_allocation pool handling for glmemory upload
2015-03-12 16:45:50 +00:00
Matthew Waters
ecdc5568c4
gl: add a new glbasefilter class below glfilter
...
It deals with propagating the gl display/contexts throughout the
application/pipeline
2015-03-12 16:45:50 +00:00
Matthew Waters
41e3b32866
glutils: expose running a query on a set of src/sink pads
2015-03-12 16:45:50 +00:00
Matthew Waters
56253d8dce
glfilter: advertise resize in the caps negotiation properly
2015-03-12 10:16:15 +00:00
Matthew Waters
e3723cbde8
glcolorconvert: we don't do resizing of the video frames
...
As we cannot do accurate texel sampling then due to the texture
coordinates being interpolated based on the output frame size.
2015-03-12 09:47:31 +00:00
Nirbheek Chauhan
74a9cd58cd
videoaggregator: While aggregating, sync values for all pads before converting frames
2015-03-12 09:47:50 +00:00
Matthew Waters
49b00e44ed
gl/x11: don't XGetWindowAttributes every XEvent
...
fixes a deadlock in xcb where the X window may not exist.
https://bugzilla.gnome.org/show_bug.cgi?id=745633
2015-03-11 18:56:06 +00:00
Matthew Waters
efe0564f22
gl/window: hopefully fixup compile warnings on android/ios
2015-03-11 14:51:15 +00:00
Jan Schmidt
13ed5ab3c8
glfilter: Remove redundant check for clearing context on reset.
...
The context is already cleared a few lines above.
2015-03-12 01:33:03 +11:00
Jan Schmidt
f150cf2d2e
Remove a bunch of silly ';;' typos at the end of lines
2015-03-12 01:33:03 +11:00
Matthew Waters
bc7a7259f3
gl/window: create the main loop/context on init/finalize
...
Avoids races setting the window handle from the main thread.
https://bugzilla.gnome.org/show_bug.cgi?id=745633
2015-03-11 13:52:15 +00:00
Matthew Waters
ee637bef1e
aggregatory: don't redefine GST_FLOW_CUSTOM_SUCCESS
2015-03-11 13:52:15 +00:00
Mathieu Duponchelle
a8604bc4f8
adaptivedemux: fix get_presentation_offset check.
...
And return 0 isntead of FALSE.
https://bugzilla.gnome.org/show_bug.cgi?id=745455
2015-03-10 15:31:21 +01:00
Mathieu Duponchelle
b4d8c04f08
adaptivedemux: [API]: get_presentation_offset virtual method.
...
Asks the subclass for a potential time offset to apply to each
separate stream, in dash streams can have "presentation time offsets",
which can be different for each stream.
https://bugzilla.gnome.org/show_bug.cgi?id=745455
2015-03-10 15:17:37 +01:00
Nicolas Dufresne
7a3b34de79
glfilter: Don't chain downstream pool
...
Chaining a downstream pool would lead to two owner of the same
pool. In dynamic pipeline, if one owner is removed from the pipeline
the pool will be stopped, and the rest of the pipeline will fail
since the pool will now be flushing. Also fix proposed pool caching,
filter->pool was never set, never unrefed.
https://bugzilla.gnome.org/show_bug.cgi?id=745705
2015-03-06 19:25:16 -05:00
Sebastian Dröge
938d172fc2
gldownload: Simplify caps feature setting code
2015-03-06 18:54:24 +01:00
Sebastian Dröge
b81823e7db
gl: Remove format info in glcolorconvert's transform_caps function instead of on every caller
...
... and let glmixer actually transform the caps it is supposed to transform
instead of inventing new caps.
2015-03-06 18:53:13 +01:00
Sebastian Dröge
50d2d9ac08
Revert "videoaggregator: Create new caps from the video-info"
...
This reverts commit 78215be0df
.
because it broke glvideomixer with custom caps features.
2015-03-06 18:53:13 +01:00
Sebastian Dröge
90967b3d45
glupload: Simplify caps feature setting code
2015-03-06 18:53:13 +01:00
Sebastian Dröge
78215be0df
videoaggregator: Create new caps from the video-info
...
In case the original caps were missing some optional fields like
interlace-mode. We assume default values for those everywhere,
but they can still cause negotiation to fail if a downstream element
expects the field to be there and at a specific value.
2015-03-06 14:36:26 +01:00
Edward Hervey
1172e2875d
gldisplay: Only use debugging if we have valid values
...
The debug category won't have been created/activated if it's not a
valid display
2015-03-05 19:09:49 +01:00
Nicolas Dufresne
34402920d2
glfilter: Get rid of uploader if caps have changed
...
We need to update the uploader format if that caps have changed.
https://bugzilla.gnome.org/show_bug.cgi?id=745549
2015-03-03 14:05:21 -05:00
Edward Hervey
4220fe41be
gl: Fix context leaks
...
Introduced by a12ca13750
2015-03-03 17:36:06 +01:00
Julien Isorce
74c294892d
gl/cocoa: register only one custom nsapp loop
...
Otherwise the pipeline stalls when running
more than one glimagesink with gst-launch.
Also only register the custom nsapp loop
when setting up the nsapp from gstgl.
2015-03-02 07:49:26 +00:00
Julien Isorce
4801db552d
gl/cocoa: instead of class_init use g_once to setup nsapp
2015-03-02 07:44:52 +00:00
Julien Isorce
8a0a71ff03
gl/cocoa: check for deprecated constants prior to OSX 10.10
2015-03-02 07:44:25 +00:00
Nicolas Dufresne
283aca3b51
glbufferpool: Fix offset for odd height
...
We also need to recalculate the offset, since otherwise the frame
mapping will be forward two lines in the U and V planes (I420) due
to gst_video_info_align() round up the Y plane to a even number of
lines.
https://bugzilla.gnome.org/show_bug.cgi?id=745054
2015-03-01 09:43:32 -05:00
Nicolas Dufresne
04377cfc5e
glmemory: Support offset when downloading
...
Make sure we support offset and video alignment when downloading too.
This is currently not used (plane_start is always 0), but it makes
the code correct if we want to use that later.
2015-02-28 15:01:59 -05:00
Nicolas Dufresne
8c0fcef818
glmemory: Provide correct size on upload
...
Provide the right size to GL when uploading. Using maxsize is wrong
since we offset the data point with the memory offset and video
alignement offset.
https://bugzilla.gnome.org/show_bug.cgi?id=744246
2015-02-28 14:32:40 -05:00
Nicolas Dufresne
e9bec9ec0e
glmemory: Provide correct size on download
...
Provide the right size to GL when downloading. This fixes downloading
from GLMemory that where created for libav.
https://bugzilla.gnome.org/show_bug.cgi?id=744246
2015-02-28 14:32:40 -05:00