Commit graph

4640 commits

Author SHA1 Message Date
Matthew Waters
874b578d05 gtk: implement basic wayland GL support 2015-06-15 14:41:05 +10:00
Matthew Waters
4796cef882 glmixerbin: implement proper dynamic pad removal
https://bugzilla.gnome.org/show_bug.cgi?id=750881
2015-06-13 18:47:13 +10:00
Nicolas Dufresne
c72213ff8b glimagesink: Don't do pool caching
We now know that pool caching can cause renegotiation issues
when an element in the pipeline change from passthrough to not
passthrough. As it's not needed, don't cache existing pools.

https://bugzilla.gnome.org/show_bug.cgi?id=748344
2015-06-12 20:14:37 -04:00
Florin Apostol
b23e4452a2 dashdemux: fixed segfault for missing default namespace
Added a check for a_node->ns before accessing a_node->ns->href in
gst_mpdparser_get_xml_node_namespace. This could happen if the xml
is missing the default namespace.

https://bugzilla.gnome.org/show_bug.cgi?id=750866
2015-06-12 22:45:51 +02:00
Thibault Saunier
7634a77611 gtk: Do not try to activate a NULL GLContext
At that point in the code nothing guarantees it exists
2015-06-12 15:40:29 +02: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
b97f2e6e6a gtk: implement video aspect-ratio handling
For both the software and the GL sink's.

Doesn't deal with the pixel-aspect-ratio field at all yet.
2015-06-12 15:17:30 +10:00
Matthew Waters
adce0220a8 gtk: fix a couple of typos 2015-06-12 12:40:50 +10:00
Matthew Waters
d99b7d4219 gtkglsink: reset the context/display in READY_TO_NULL
Fixes context propagation in pipelines with upstream GL elements.
2015-06-12 12:32:06 +10:00
Alex Ashley
5beeccdba2 dashdemux: fix error calculating large presentationTimeOffset values
If the presentationTimeOffset attribute of a DASH manifest contains
a value that is larger than 2^32, gstmpdparser incorrectly calculates
the stream's presentation time offset. This is due to two bugs:

1: Using gst_mpdparser_get_xml_prop_unsigned_integer rather than
   gst_mpdparser_get_xml_prop_unsigned_integer_64 to parse the
   attribute
2: gst_mpd_client_setup_representation multiplying the value by
   GST_SECOND and then dividing by timescale

https://bugzilla.gnome.org/show_bug.cgi?id=750804
2015-06-11 19:41:11 +02:00
Nicolas Dufresne
b14fea7fb8 gstgtk: Allow doing gst-inspect-1.0 on these elements
This patch allow going gst-inspect-1.0 on these elements removing
ugly crash that was previously occurring. The method consist of
making the widget creation as lazy as possible. This way we don't
endup doing gtk_init() before the application. We also ref_sink()
the widget, so we don't crash if the parent widget is discarded,
and cleanly error out with GL if the widget has no parent window,
because calling gtk_widget_realized() can only be done if the widget
has been parented to a window).
2015-06-11 12:41:49 -04:00
Matthew Waters
cd2669fad1 gl: move basesink properties from glimagesinkbin to glsinkbin 2015-06-12 00:34:58 +10:00
Sebastian Dröge
e8a97877b4 gl: Use gst_object_ref_sink() for gl{filter,mixer,src}bin too 2015-06-11 15:22:04 +02:00
Sebastian Dröge
c1b43742bf glsinkbin: Use gst_object_ref_sink() for consistency with the video-sink property on playbin 2015-06-11 15:17:55 +02:00
Thibault Saunier
59e298a6fb gtk: Do not try to initialize display if we have not have a GLContext yet 2015-06-11 15:07:24 +02:00
Matthew Waters
23fb666dd7 Implement gtk sinks
two sinks are provided.  gtksink which is a cairo/software based renderer
and gtkglsink which utilises the GL support in gtk and gstreamer.
2015-06-11 22:01:03 +10:00
Sebastian Dröge
1a15c2e426 dash: Add $(GST_PLUGINS_BASE_LIBS) to LIBADD
https://bugzilla.gnome.org/show_bug.cgi?id=750619
2015-06-09 12:12:25 +02:00
Jimmy Ohn
1270afae44 hlsdemux: Fix wrong gst-launch command in the description
Fix wrong gst-lauch command in the description.
This patch may help people to get right testing results using the script.

https://bugzilla.gnome.org/show_bug.cgi?id=750143
2015-06-05 12:21:41 -03:00
Luis de Bethencourt
e04ced027e dfbvideosink: remove ignored assignments
Remove assignments to DFBResult res that are never read.
2015-06-05 14:49:38 +01: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
Thiago Santos
0a63fa7a01 hlsdemux: drop TODO that doesn't need a solution
Connection speed is only checked at that point in hlsdemux so there
is no real need to refactor it.

https://bugzilla.gnome.org/show_bug.cgi?id=749328
2015-06-05 09:43:31 -03:00
Thiago Santos
581d8c0b8d Revert "hlsdemux: Simplify logic in process_manifest"
This reverts commit 4ca3a22b6b.

The connection-speed=0 is used as a special value in the property
of hlsdemux to mean 'automatic' selection, m3u8.c doesn't need
to know about that as it should be as simple as possible.

So this patch hides this automatic selection documented in hlsdemux
into m3u8 logic and I think the gets harder to understand the code.

It also makes the hlsdemux unit tests work again

https://bugzilla.gnome.org/show_bug.cgi?id=749328
2015-06-05 09:43:10 -03:00
Sebastian Dröge
9bcddde9bc mpdparser: Fix inverted logic introduced in last commit 2015-06-05 14:33:57 +02:00
Sebastian Dröge
15de547760 mpdparser: Calculate the number of segments we have when a segment template instead of a list is used
Otherwise we would just continue downloading new files forever until we get
404 for the first one, and then error out instead of going EOS.
2015-06-05 14:11:47 +02:00
Sebastian Dröge
ec226e856d Revert "mpdparser: Don't consider streams with a known media presentation duration as live"
This reverts commit 37011e5198.

This change was actually completely unnecessary, the streams in question are
marked as static and are not considered live anyway.
2015-06-05 13:28:39 +02:00
Sebastian Dröge
37011e5198 mpdparser: Don't consider streams with a known media presentation duration as live 2015-06-05 13:21:55 +02:00
Jose Antonio Santos Cadenas
adcf3f48a5 srtp: Allow getting ssrc of more package types than RR and SR
This allows decrypting reduce size packages. See RFC 5506

https://bugzilla.gnome.org/show_bug.cgi?id=750326
2015-06-05 10:19:51 +02:00
Sebastian Dröge
2b207c0b65 mpdparser: Don't crash in debug output if stream->segments is NULL 2015-06-04 15:58:46 +02:00
Tim-Philipp Müller
4238f62975 libde265dec: fix up plugin name and decoder description 2015-06-04 12:53:57 +01:00
Sebastian Dröge
64a2dcf582 mpdparse: Clamp seek times to the availabilityStartTime
Otherwise we will seek to negative times, which are interpreted as unsigned
integers later.
2015-06-04 13:36:05 +02:00
Sebastian Dröge
f9ada426d4 mpdparser: Improve debug output a bit when advancing segments 2015-06-04 13:13:39 +02:00
Sebastian Dröge
1ba8f82b94 opusdec: If channel/rate negotiation fails, fall back to stereo and 48kHz 2015-06-04 11:54:24 +02:00
Sebastian Dröge
bd8b25f08b opusparse: Set up default header with 48kHz sample rate instead of 0 2015-06-04 11:52:40 +02:00
Sebastian Dröge
96ee9b274c opusdec: gst_structure_fixate_field_nearest_int() only works if the structure has this field
Just set the rate/channels directly if the caps don't have this field.
2015-06-04 11:45:05 +02:00
Sebastian Dröge
60047b6b92 mpdparser: Use 64 bit integer format strings when passing a 64 bit integer
Otherwise we'll only get half of its bits printed on 32 bit architectures.

For this, promote the %d-style format strings to something that accepts
64 bit integers with G_GINT64_MODIFIER.
2015-06-04 11:05:07 +02:00
Sebastian Dröge
1be223fdc3 mpdparse: Validate format strings before using them
Using format strings from an untrusted source without validation is
calling for problems, and at least allows to remotely crash your application.
If not worse.
2015-06-04 10:47:07 +02:00
Sebastian Dröge
88d8dfd9c6 mpdparser: Add the startNumber as offset to the segment index when using a template 2015-06-03 20:03:59 +02:00
Santiago Carot-Nemesio
f530aac115 dtlsdec: Fix critical warning "got data flow before stream-start event"
Forward sticky events on requested src pad.

https://bugzilla.gnome.org/show_bug.cgi?id=750348
2015-06-03 17:12:49 +02:00
Reynaldo H. Verdejo Pinochet
79d9c34205 zbar: don't ignore zbar_scan_image() errors 2015-06-02 12:27:10 -03: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
Edward Hervey
86c500a47a rtmpsink: Initialize GstMapInfo
Avoids doing a call to unmap with it uninitialized

CID #1302834
2015-06-01 13:56:03 +02:00
Reynaldo H. Verdejo Pinochet
1246d93f3e zbar: add frame sample to barcode message
New attach-frame property enables barcode frame
dumping when set to true.

https://bugzilla.gnome.org/show_bug.cgi?id=747557
2015-05-31 20:01:10 -03:00
Matthew Waters
fac0cdc7ac glwindow: handle gst_video_overlay_set_render_rectangle 2015-05-31 16:04:13 +10:00
Vivia Nikolaidou
fba7c97135 rtmpsink: Do not crash when receiving buffers after GST_FLOW_ERROR
If the RTMP URI is invalid, the rtmpsink will return GST_FLOW_ERROR.
If it still receives buffers after that, it shouldn't crash.

https://bugzilla.gnome.org/show_bug.cgi?id=750104
2015-05-30 00:25:37 +10:00
Thiago Santos
53451500ee dashdemux: avoid assertion when splitting buffer
Pass size=-1 as is if that is the case instead of subtracting
the offset. Otherwise we have an invalid size passed for that
buffer.
2015-05-29 09:02:42 -03:00
Santiago Carot-Nemesio
ed21506896 dtlssrtpdec: Release requested pads
https://bugzilla.gnome.org/show_bug.cgi?id=750036
2015-05-28 22:46:47 +02:00
Santiago Carot-Nemesio
29c17a96f7 dtlsdec: Remove unnecessary ref/unref operations
https://bugzilla.gnome.org/show_bug.cgi?id=750036
2015-05-28 22:46:47 +02:00
Santiago Carot-Nemesio
665031751d dtlsdec: Fix release request pad function
Don't unref the pad reference we don't own and just remove the pad.

https://bugzilla.gnome.org/show_bug.cgi?id=750036
2015-05-28 22:46:47 +02:00
Edward Hervey
04b010a883 hlsdemux: Search more when advancing fragment
In live situations, it is not uncommon for the current fragment to end
up out of the (updated) play range (lowest/highest sequence). But the next
fragment to play *is* present in the play range.

When advancing, if we can't find the current GstM3U8MediaFile, don't abort
straight away. Instead, look if a GstM3U8MediaFile with the next sequence value
is present, and if so switch to it.

https://bugzilla.gnome.org/show_bug.cgi?id=750028
2015-05-28 14:56:36 +02:00
Julien Isorce
b377112ee3 gl: add GstGLContextGPUProcess backend
It builds its GL vtable from a proc address provided
by the application.
2015-05-27 17:22:40 +01:00