Nicolas Dufresne
4f3c33af3a
glmemory: Handle custom stride with OPENGL3
...
https://bugzilla.gnome.org/show_bug.cgi?id=740900
2014-12-19 11:45:35 -05:00
Sebastian Dröge
30ce523d59
videoaggregator: Don't try to map NULL buffers
2014-12-18 22:04:38 +01:00
Sebastian Dröge
af46a58cae
videoaggregator: Make sure to always update the pad's videoinfo together with buffers
...
Otherwise the videoinfo and the buffer content can go out of sync.
2014-12-18 22:03:04 +01:00
Sebastian Dröge
06a4e80be9
aggregator: Add function to allow subclasses to set their own latency
...
For audiomixer this is one blocksize, for videoaggregator this should
be the duration of one output frame.
2014-12-17 19:51:32 +01:00
Sebastian Dröge
d4c4af699e
aggregator: Add a timeout parameter to ::aggregate()
...
When this is TRUE, we really have to produce output. This happens
in live mixing mode when we have to output something for the current
time, no matter if we have enough input or not.
2014-12-17 18:41:41 +01:00
Sebastian Dröge
852b08340e
aggregator: Some minor cleanup
2014-12-16 17:33:01 +01:00
Matthew Waters
8bf53a1226
aggregator: make the src pad task drive the pipeline for live pipelines
...
This removes the uses of GAsyncQueue and replaces it with explicit
GMutex, GCond and wakeup count which is used for the non-live case.
For live pipelines, the aggregator waits on the clock until either
data arrives on all sink pads or the expected output buffer time
arrives plus the timeout/latency at which time, the subclass
produces a buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=741146
2014-12-16 16:58:57 +01:00
Matthew Waters
a7e86751bf
videoaggregator: always try to use newer buffers
...
instead of dropping them for being too old. This ensures that
the newest buffer is always used for rendering
2014-12-16 16:49:49 +01:00
Thibault Saunier
aa25d0ab4c
videoaggregator: Hide some more fields from the API
...
+ Add some documentation
2014-12-12 11:49:42 +01:00
Thiago Santos
75b0bac7f8
adaptivedemux: fix seek event handling
...
Properly do seeking and avoid only seeking when the segment was updated.
It would cause seeks after the stream was EOS to fail, for example.
https://bugzilla.gnome.org/show_bug.cgi?id=738920
2014-12-11 21:09:26 -03:00
Wang Xin-yu (王昕宇)
15eab1ed01
glfilter: fix position/texcoord attrib index usage
...
https://bugzilla.gnome.org/show_bug.cgi?id=741231
2014-12-11 19:41:23 +11:00
Matthew Waters
f021549294
gl: fixup vao and vbo usage for legacy GL
2014-12-11 19:41:23 +11:00
Thiago Santos
c8fa688d26
adaptivedemux: check the return from update_manifest correctly
...
It is a GstFlowReturn and not a boolean
2014-12-10 18:23:02 -03:00
Thiago Santos
d30ec9f9f7
adaptivedemux: do not try to unlock not locked mutex
...
A misplaced unlock was causing an assertion for playback with a
set stop time
2014-12-08 08:53:00 -03:00
Thiago Santos
aba9d86d08
gst-libs: build order: uridownloader before adaptivedemux
...
Otherwise make install fails
2014-12-08 08:24:17 -03:00
Thiago Santos
66f40b798d
adaptivedemux: release threads waiting for manifest update on shutdown
...
For live streams, also unblock threads that might be waiting for a manifest
update when stopping the pipeline.
Also add some more debug messages
2014-12-04 01:48:07 -03:00
Thiago Santos
a7712c2983
adaptivedemux: use gst_task_stop instead of gst_task_pause
...
To avoid race conditions with gst_task_stop(); gst_task_join() with
another thread doing gst_task_pause(), the joining thread would be
waiting for the task to stop but it would never happen. So just
use gst_task_stop() everywhere to prevent more mutexes
2014-12-04 01:48:07 -03:00
Thiago Santos
87df15a214
adaptivedemux: fix deadlock when stopping streams
...
Remember to unlock the manifest's lock when leaving the download task.
2014-12-04 01:48:07 -03:00
Philippe Normand
c4ba73e39b
glsyncmeta: add G_END_DECLS
2014-12-04 01:36:38 +11:00
Thiago Santos
92fd73ab5f
adaptivedemux: remove unused error variable
...
CID #1256556
2014-12-03 10:06:09 -03:00
Thiago Santos
d9944506c8
adaptivedemux: remove more get_duration checks
...
Subclasses must implement get_duration function. If they do not know
the duration they can return GST_CLOCK_TIME_NONE
2014-12-03 09:45:58 -03:00
Thiago Santos
9afed503ed
adaptivedemux: all subclasses must implement get_duration
...
CID #1256557
2014-12-03 09:42:39 -03:00
Thiago Santos
e11c311c31
adaptivedemux: make sure to always stop the stream on EOS
...
For On-Demand streams, always stop the tasks for streams that reached
EOS
2014-12-03 09:42:39 -03:00
Julien Isorce
230022fe62
glcontext: try cgl before glx
...
It was already done by commit
f506e80686
but it has been broken by commit
45ec777cea
2014-12-03 08:02:58 +00:00
Edward Hervey
87694c2232
gst-libs: Fix dependency build
...
adaptivedemux depends on uridownloader and video depends on base
2014-12-01 10:32:30 +01:00
Thiago Santos
df66909129
adaptivedemux: reworking live manifest update wait
...
Check if the stream is live before checking if it is EOS as a live
stream might be considered EOS when it just needs to wait for a manifest
update to proceed with the next fragments
2014-11-30 21:56:25 -03:00
Thiago Santos
66202d4c1b
adaptivedemux: fix manifest update locking
...
To avoid unlocking a not locked mutex
2014-11-30 21:56:25 -03:00
Thiago Santos
5f3cce2e58
adaptivedemux: Fix segment for manifests that won't start at 0
...
For live streams, the manifest might start at an advanced position. Avoid
using segment start=0 to have playback start immediately
2014-11-30 21:56:25 -03:00
Thiago Santos
023b284c2d
adaptivedemux: also clear flushing state on pads before restarting
...
During flushing seeks the flushing flow return will propagate up to the
source element and all pads are going to have the flushing flag set.
So before restarting also remove that flag together with the EOS one.
We don't do that when pushing the flush stop event because our event
handler for the proxypad will drop all events.
2014-11-30 21:56:03 -03:00
Thiago Santos
9ec9f3f119
adaptivedemux: add adaptivedemux base class
...
https://bugzilla.gnome.org/show_bug.cgi?id=735848
2014-11-30 21:56:01 -03:00
Matthew Waters
90a2477b9e
glcontext: require GL_ARB_ES2_compatibility for opengl3
...
until we generate gl3 compliant shaders
https://bugzilla.gnome.org/show_bug.cgi?id=740012
2014-11-30 00:44:46 +11:00
Sebastian Dröge
8a8444ebe7
videoaggregator: Failure to map a video frame is not just a warning
2014-11-28 10:22:44 +01:00
Matthew Waters
e653ae9fc2
gl: fixup compat definition for GLuint64 for OS X
2014-11-28 13:04:21 +11:00
Matthew Waters
b0faa2dd77
gl: add compat definition for GLuint64 for android
...
../../../../gst-libs/gst/gl/glprototypes/sync.h:41:23: error: unknown type name 'GLuint64'
GLuint64 timeout))
2014-11-28 11:57:25 +11:00
Danny Song
d6489ee96c
basecamerasrc: fix typo in docs
...
https://bugzilla.gnome.org/show_bug.cgi?id=740815
2014-11-28 00:13:22 +00:00
Matthew Waters
3e92a8ef53
glsync: fix build with desktop gl
2014-11-28 11:11:43 +11:00
Matthew Waters
57898fec2a
gl: fix various build errors without desktop gl
2014-11-28 10:59:46 +11:00
Matthew Waters
f67190d3ca
gldisplay: fix build error
...
gstgldisplay.c:234:541: error: 'return' with no value, in function returning non-void [-Werror]
g_return_if_fail (GST_IS_GL_DISPLAY (display));
2014-11-28 10:03:18 +11:00
Matthew Waters
3c1e77eb31
gldisplay: implement runtime GL api filtering
...
Needed so that the pipeline/application can limit the choice of GL api
to what it supports
2014-11-28 09:14:26 +11:00
Matthew Waters
6bd1150ca8
gl: remove the use of glu
2014-11-28 09:14:26 +11:00
Matthew Waters
f2af65ee2d
gl: add a sync meta for synchronizing across GL contexts
...
A context can create a GLsync object that can be waited on in order
to ensure that GL resources created in one context are able to be
used in another shared context without any chance of reading invalid
data.
This meta would be placed on buffers that are known to cross from
one context to another. The receiving element would then wait
on the sync object to ensure that the data to be used is complete.
2014-11-28 09:14:25 +11:00
Matthew Waters
480d3f97eb
glprototypes: add sync function definitions
2014-11-28 09:14:25 +11:00
Matthew Waters
6d39e04992
glfilter: add a gl3 code path using vao's and vbo's
2014-11-28 09:14:25 +11:00
Matthew Waters
5ff5f8c1ee
glframebuffer: add support for gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
a32f29f2ce
glcolorconvert: add support for gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
fca0bc97a4
glshader add support for gl3
2014-11-28 09:14:25 +11:00
Matthew Waters
2c24b97cf0
glx: ask for a GL3 core context
2014-11-28 09:14:25 +11:00
Sebastian Dröge
1200f2f94b
videoaggregator: Minor cleanup
2014-11-27 21:23:36 +01:00
Sebastian Dröge
fbf7595ca8
videoaggregator: Copy over more fields from the relevant video-info
...
gst_video_info_set_format() will reset the complete video-info, but
we want to keep values like the PAR, colorimetry and chroma site.
Otherwise we risk setting different values on the srcpad caps than
what is actually inside the buffers.
2014-11-27 20:34:25 +01:00
Sebastian Dröge
b301cb1fc9
videoaggregator: Directly use the converters video-info instead of recalculating it
2014-11-27 20:25:29 +01:00
Sebastian Dröge
11740d78b1
videoaggregator: Do source pad negotiation only from the aggregated function
...
Otherwise we might negotiate from the sinkpad streaming threads at
the same time as on the srcpad streaming thread, and then all kinds
of crazy bugs happen that don't make any sense at all.
2014-11-27 19:54:10 +01:00
Thibault Saunier
a61d2e4e07
videoconvert: Hide all conversion related fields
...
And do not delay the setting of the conversion_info
https://bugzilla.gnome.org/show_bug.cgi?id=740768
2014-11-27 19:10:58 +01:00
Thibault Saunier
9d8055186d
videoaggregator: Expose vmethods to set converters and prepare/clean frames
...
This gives more flexibility to the subclasses and permits to remove the
GstVideoAggregatorClass->disable_frame_conversion ugly API.
WARNING: This breaks the API as it removes the disable_frame_conversion
field
API:
+ GstVideoAggregatorClass->find_best_format
+ GstVideoAggregatorPadClass->set_format
+ GstVideoAggregatorPadClass->prepare_frame
+ GstVideoAggregatorPadClass->clean_frame
- GstVideoAggregatorClass->disable_frame_conversion
https://bugzilla.gnome.org/show_bug.cgi?id=740768
2014-11-27 19:10:58 +01:00
Thibault Saunier
c7b7f98df2
videoaggregator: Let a full renegotiation happen after removing the last pad
...
With the current code, we will end up setting the preferred downstream
format as the srcpad format, and it might not be accepted by the next
sinkpad to be added. We should instead let the next sinkpad reconfigure
everything.
2014-11-27 19:10:58 +01:00
Sebastian Dröge
082c12b8e2
glcolorconvert: Unref buffer with the correct function
2014-11-27 18:09:58 +01:00
Sebastian Dröge
b6ba579fa0
glmemory: Handle failure of memory allocation gracefully
2014-11-27 18:09:14 +01:00
Sebastian Dröge
f2dc9b2b8f
glmemory: Use g_try_malloc() in the appropriate places
...
g_malloc() aborts if allocation fails, it's pointless to check against NULL
afterwards. That's why g_try_malloc() exists.
2014-11-27 18:06:26 +01:00
Wang Xin-yu (王昕宇)
15c0d5c21b
glcolorconvert: support RGB16/BGR16 video format download
...
https://bugzilla.gnome.org/show_bug.cgi?id=740801
2014-11-27 10:08:11 +01:00
Matthew Waters
2d97e03c54
gl/wayland: implement resizing the window using the right mouse button
2014-11-27 13:03:21 +11:00
Matthew Waters
1d7c4f4344
glfilter: support fixed dimensions on both sides of the element
...
Fixes:
width=320,height=240 ! glfilter ! width=800,height=600
width=230,height=240 ! glfilter ! width=600
... ! glfilter ! width=800
2014-11-27 01:32:21 +11:00
Sebastian Dröge
3d38dff076
videoaggregator: Also sync pad properties to the controller if conversion is disabled
2014-11-26 13:06:21 +01:00
Julien Isorce
3fb3758e7d
codecparsers: fix some compiler warnings
...
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1
"warning: comparison is always true due to limited
range of data type"
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=740673
2014-11-25 23:05:15 +00:00
Julien Isorce
857456b7ba
mpegts: fix some compiler warnings
...
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1
"warning: comparison is always true due to limited
range of data type"
https://bugzilla.gnome.org/show_bug.cgi?id=740674
2014-11-25 10:23:43 +01:00
Ramprakash Jelari
aea08e86a5
glcontext: Fix unused variable warning by moving declaration where it is actually used
2014-11-24 14:16:58 +01:00
Ramprakash Jelari
f0e418b629
dvbsection: Fix format string compiler warning
2014-11-24 12:51:34 +01:00
Ramprakash Jelari
cbe46c0373
mpegtsdescriptor: Fix format string compiler warning
...
gstmpegtsdescriptor.c:778:16: warning: format specifies type 'unsigned long' but the argument has type 'int' [-Wformat]
2014-11-24 12:32:37 +01:00
Sebastian Dröge
0f753b7099
glupload: Fix valid compiler warning
...
gstglupload.c:442:32: error: if statement has empty body [-Werror,-Wempty-body]
if (upload->texture_ids[i]);
^
2014-11-24 11:32:33 +01:00
Philippe Normand
c08a461fa4
gl: ship the gstglcontext_egl.h header
...
It is required by gsteglimagememory.h.
https://bugzilla.gnome.org/show_bug.cgi?id=740611
2014-11-24 21:24:27 +11:00
Tim-Philipp Müller
1a613c5d4e
gl: shadervariables: make parsing of floats locale-independent
...
Floating point numbers are written differently in different
locales, e.g. in many countries 1/2 = 0,5 instead of 0.5, and
strtod will not be able to parse "0.5" correctly in such a
locale.
2014-11-24 10:02:33 +00:00
Matthew Waters
59085936b8
glshadervariables: also trim \r as well as \n
2014-11-24 02:52:24 +11:00
Matthew Waters
810d38c29f
glupload: rearchitecture for non GLMemory inputs/outputs
...
Allows other memory types to be implemented/returned/used by the caller.
2014-11-23 17:13:36 +11:00
Sebastian Dröge
4ad6984662
aggregator: Unblock events/queries immediately if the pad is flushing
...
https://bugzilla.gnome.org/show_bug.cgi?id=740376
2014-11-19 17:17:44 +01:00
Sebastian Dröge
ce69180862
aggregator: Drop serialized events/queries if the pad is flushing
...
https://bugzilla.gnome.org/show_bug.cgi?id=740376
2014-11-19 17:17:44 +01:00
Sebastian Dröge
a31faecb8b
aggregator: Block serialized events/queries until the pad has consumed all buffers
...
Otherwise the caps of the pad might change while the subclass still works with
a buffer of the old caps, assuming the the current pad caps apply to that
buffer. Which then leads to crashes and other nice effects.
https://bugzilla.gnome.org/show_bug.cgi?id=740376
2014-11-19 17:06:52 +01:00
Sebastian Dröge
6c0d01ce17
videoaggregator: Don't output 0-duration buffers at the segment end
...
https://bugzilla.gnome.org/show_bug.cgi?id=740376
2014-11-19 17:06:52 +01:00
Sebastian Dröge
3e27c5592f
aggregator: Fix typo in debug output
2014-11-19 17:04:45 +01:00
Matthew Waters
f4a10c64c8
videoaggregator: fix up QoS handling for live sources
...
Only attempt adaptive drop when we are not live
https://bugzilla.gnome.org/show_bug.cgi?id=739996
2014-11-17 22:39:07 +11:00
Matthew Waters
051955e5fa
aggregator: add _get_latency() for subclass usage
...
API: gst_aggregator_get_latency
https://bugzilla.gnome.org/show_bug.cgi?id=739996
2014-11-17 22:39:07 +11:00
Vineeth T M
aafc0d509c
glcontext: build errors when GST_GL_HAVE_OPENGL is 0
...
Moving variables within #if GST_GL_HAVE_OPENGL, which are not going to be used otherwise.
and which are needed only when OpenGl is present
https://bugzilla.gnome.org/show_bug.cgi?id=740235
2014-11-17 22:39:07 +11:00
Matthew Waters
4afad4ecd3
glfilter: add read-only context property
2014-11-17 18:50:28 +11:00
Sebastian Dröge
236ffa69be
gl/cocoa: Only use convertRectToBacking on OSX >= 10.7
...
It does not exist before and older versions also don't have
support for HiDPI displays anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=740201
2014-11-16 11:00:57 +01:00
Sebastian Dröge
9492db96d1
gl: Use numeric OSX version instead of the macro
...
The macro is not defined on older OSX versions and evaluates to 0.
https://bugzilla.gnome.org/show_bug.cgi?id=740201
2014-11-16 11:00:57 +01:00
Gwenole Beauchesne
8c76b5897a
codecparsers: h264: fix derivation of MaxPicNum variable.
...
The logic to compute the MaxPicNum variable was reversed. In paricular,
MaxPicNum is double MaxFrameNum only if field_pic_flag is set to 1.
https://bugzilla.gnome.org/show_bug.cgi?id=739291
2014-11-14 09:36:27 +01:00
Sebastian Dröge
402e1a067a
gl/cocoa: Don't override the application delegate
...
Otherwise interesting things will happen in Cocoa applications, like
infinite event loops that block the NSApplication loop forever.
This was only needed for GNUStep and thus can safely be removed now.
2014-11-13 12:01:25 +01:00
Sebastian Dröge
13c8517570
gl/cocoa: Remove GNUStep support
...
Until gcc and GNUStep properly support Objective-C blocks and other
"new" features of Objective-C we can't properly support them without
making the code much more ugly.
https://bugzilla.gnome.org/show_bug.cgi?id=739152
2014-11-13 12:01:19 +01:00
Hyunjun Ko
a2e2507dbe
gl: Correct invalid comment text
2014-11-12 11:29:41 +11:00
Julien Isorce
7d0de0577a
gl: do not raise a critical msg if the backend does not handle window events
...
Fix "assertion 'window_class->handle_events != NULL' failed"
if not using a X11 window.
2014-11-12 00:07:06 +00:00
Matthew Waters
36ade75f4a
gl: remove the width/height fields from the caps to support frame resizing
...
It was previously only occuring with sysmem caps features
https://bugzilla.gnome.org/show_bug.cgi?id=739334
2014-11-11 14:23:55 +11:00
Aurélien Zanelli
6511a7282b
h264parser: fix GstH264ParserResult documentation typo
...
https://bugzilla.gnome.org/show_bug.cgi?id=739906
2014-11-10 23:37:37 +00:00
Sebastian Dröge
da0369c66c
gstglconfig: Put gstglconfig.h into $(libdir)/gstreamer-1.0/include
...
It's architecture dependent and should not be placed into the include
directory as the assumption is that all those headers are architecture
independent.
https://bugzilla.gnome.org/show_bug.cgi?id=739767
2014-11-07 12:00:29 +01:00
Matthew Waters
775ba4ff0b
glutils: only attempt getting the app context when we don't already have a display
...
avoids querying/messaging the world on each frame
2014-11-06 18:47:34 +11:00
Matthew Waters
1800ffb34a
glcontext: fail context creation if glGetString returns NULL
2014-11-06 18:46:48 +11:00
Lubosz Sarnecki
6702811e14
glimagesink: implement gst_video_overlay_handle_events
...
https://bugzilla.gnome.org/show_bug.cgi?id=736035
2014-11-06 16:04:11 +11:00
Olivier Crête
484f0a0cd3
insertbin: Add doc for the ignored user-data in action signals
2014-11-03 20:45:03 -05:00
Julien Isorce
0a207c95dc
gl/cocoa: use NSAutoreleasePool to free resize data
...
Otherwise when resizing the window you will also get messages like:
class NSConcreteMapTable autoreleased with no pool in place - just leaking
class NSConcreteValue autoreleased with no pool in place - just leaking
class NSConcreteValue autoreleased with no pool in place - just leaking
class __NSCFDictionary autoreleased with no pool in place - just leaking
2014-11-03 23:24:33 +00:00
Julien Isorce
4307449449
gl/cocoa: include gl3.h to have GL_CONTEXT_PROFILE_MASK
2014-11-03 23:08:09 +00:00
Julien Isorce
2b487ef62b
gl/cocoa: make sure to turn on frame rectangle changes notifications
...
Default value of property postsFrameChangedNotifications is YES
but it is worth to explicitly enable it.
2014-11-03 23:07:34 +00:00
Julien Isorce
a259391c10
gl/cocoa: fix uncaught exception 'unrecognized selector sent to instance'
...
Need to set the ':' as the reshape method now takes one parameter.
For the story, the GstGLNSView was previously inheriting from
NSOpenGLView which has a reshape function without any parameter.
Now the GstGLNSView inherits from NSView and we re-use the reshape
function manually.
2014-11-03 23:02:17 +00:00
Julien Isorce
11661ceca9
gl/cocoa: fix compiler warning
...
Use the reshape function after being defined. The other way
would have been to declare the reshape function in the header.
gstglwindow_cocoa.m: In function '-[GstGLNSView drawRect:]':
gstglwindow_cocoa.m:555: warning: 'GstGLNSView' may not respond to '-reshape'
gstglwindow_cocoa.m:555: warning: (Messages without a matching method signature
gstglwindow_cocoa.m:555: warning: will be assumed to return 'id' and accept
gstglwindow_cocoa.m:555: warning: '...' as arguments.)
2014-11-03 22:59:41 +00:00
Sebastian Dröge
9f09b6ff0b
videoaggregator: Swap source/destination parameters of gst_video_converter_frame()
2014-11-03 16:13:23 +01:00