Olivier Crête
de1fb842e6
srtpdec: Pass is_rtcp to setcaps function
2013-11-19 19:10:06 -05:00
Olivier Crête
8c76d7c77e
srtp: Implement SRTCP demultiplexing
...
Separate multiplexed RTP and RTCP if they arrive
on the rtp_sink pad.
2013-11-19 18:34:08 -05:00
Sebastian Dröge
898966a44c
daala: Fix compilation
2013-11-19 00:38:45 +01:00
Thiago Santos
27b0086e4a
mssdemux: do not try to deinit the downloadrate while it is used
...
This can cause an assertion or deadlocks.
2013-11-15 12:01:55 -03:00
Thiago Santos
fe77ee47c9
mssdemux: also consider /manifest
...
The spec says /Manifest, but /manifest is easily found on some
services, so handle that, too.
https://bugzilla.gnome.org/show_bug.cgi?id=710223
2013-11-15 12:01:54 -03:00
Matthieu Bouron
5e5bc19cca
eglglessink: fix non-egl display context query
2013-11-13 15:50:17 +01:00
Thiago Santos
d59af97930
hlssink: do not lose ref to the multifilesink
...
It is needed to update location properties and it was being lost on
state changes, causing issues if the pipeline was to be reused
2013-11-07 12:50:55 -03:00
Thiago Santos
805e313cce
hlssink: make sure it is handled as a sink
...
It only gets the sink flag set when it adds the multifilesink, that
happens in null->ready and it might be too late. Set the flag
explicitly on the constructor.
https://bugzilla.gnome.org/show_bug.cgi?id=711086
2013-11-07 12:50:55 -03:00
Sebastian Dröge
19b5092685
eglglessink: Query upstream first to get a EGLDisplay
2013-11-04 19:59:10 +01:00
L. Sorin
15717842e4
curl: curlsftpsink - new libcurl-based sink element for SFTP
...
Note: SFTP = SSH File Transfer Protocol
The sink acts as a client and uploads data to the SFTP server.
https://bugzilla.gnome.org/show_bug.cgi?id=709795
2013-11-01 17:20:04 +01:00
Reynaldo H. Verdejo Pinochet
980f5b4702
cdaudio: Remove cdaudio plugin
...
This element is being removed due to it been
considered obsolete and the functionaily it
provides no longer needed.
Details on the decision can be found here:
https://bugzilla.gnome.org/show_bug.cgi?id=711223
Fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=711232
2013-11-01 07:21:56 -07:00
Reynaldo H. Verdejo Pinochet
2285d4440b
cdaudio: port to 1.X
...
https://bugzilla.gnome.org/show_bug.cgi?id=711223
2013-10-31 13:25:46 -07:00
Andoni Morales Alastruey
e5385db3c9
eglglessink: remove unused functions in the eagl backend
...
https://bugzilla.gnome.org/show_bug.cgi?id=711159
2013-10-30 16:36:04 +01:00
Alex Ashley
58072914fa
hlsdemux: fix memory leak in gst_hls_demux_get_next_fragment
...
This patch fixes three memory leaks in hlsdemux, one that occurs
during normal operation and two that occur during error conditions.
The gst_hls_demux_get_next_fragment function calls
gst_fragment_get_buffer which increments the reference count
on the buffer but gst_hls_demux_get_next_fragment never calls unref on
the buffer. This means that the reference count for each downloaded
fragment never gets to zero and so its memory is never released.
This patch adds a call to gst_buffer_unref after the flags have been
updated on the buffer.
There is a leak-on-error in gst_hls_demux_decrypt_fragment if it fails
to download the key file. If the key fails to download, null is
returned without doing an unref on the encrypted fragment. The
semantics of gst_hls_demux_decrypt_fragment is that it takes ownership
of the encrypted fragment and releases it before returning.
There is a leak-on-error in gst_hls_src_buf_to_utf8_playlist in the
unlikely event that the gst_buffer_map fails. In the "happy path"
operation of gst_hls_src_buf_to_utf8_playlist the buffer gets an unref
before the function returns, therefore the error condition must do the
same.
https://bugzilla.gnome.org/show_bug.cgi?id=710881
2013-10-25 23:12:25 -03:00
Olivier Crête
2046ba220f
pitch: Fix inverted condition in setcaps
2013-10-12 16:04:25 -04:00
Thiago Santos
9a50ca5fbc
hlsdemux: Small improvement on always valid if condition
...
No need to check for !cancelled as the above if guarantees it
to be true
2013-10-03 09:15:37 -03:00
Thiago Santos
72e05dfd7c
hlsdemux: Do not call _stop holding the updates lock
...
It will cause a deadlock and the calers for _get_next_fragment
will already call _stop if required when _get_next_fragment fails.
Fixes #690148
2013-10-03 09:15:37 -03:00
Greg Rutz
6819d1a206
dashdemux: Improve if cause readability
...
Fixed up the error-handling code when downloading fragments.
Modifed the error-handling code to use positive logic when
testing for cancellation of the download loop.
https://bugzilla.gnome.org/show_bug.cgi?id=701404
2013-10-03 09:15:37 -03:00
Thiago Santos
b8dd95e219
dashdemux: actually return true on latency query
...
Do not forget to set the return for latency query
2013-10-03 09:15:37 -03:00
Alex Ashley
42fd04ce48
dashdemux: stop fetching live fragments that don't yet exist
...
There is an issue for live streams where download_loop will keep
downloading segments until it gets a 404 error for a segment
that has not yet been published. This is a problem because this
request for a segment that doesn't exist will propagate all the
way back to the origin server(s). This means that dashdemux causes
extra load on the origin server(s) for segments that aren't yet
available.
This patch uses availabilityStartTime, period
and the host's idea of UTC to decide if a fragment is available to
be requested from an HTTP server and filter out requests for fragments
that are not yet available.
https://bugzilla.gnome.org/show_bug.cgi?id=701404
2013-10-03 09:15:37 -03:00
Sebastian Dröge
c57be26ed9
openjpeg: Port OpenJPEG plugin to the 2.0 API
2013-10-02 20:07:16 +02:00
Tim-Philipp Müller
2d29f22338
opencv: don't unref NULL caps in finalize
...
Fixes gst-inspect-1.0 -a and generic states unit test.
2013-09-29 23:43:23 +01:00
Sebastian Dröge
3d5e214f83
eglglessink: Port iOS part to 1.0
2013-09-28 20:36:21 +02:00
Javier Jardón
a1cc9ca4de
hlssink: Use floats for the EXTINF duration values
...
https://bugzilla.gnome.org/show_bug.cgi?id=708851
2013-09-28 13:20:08 +02:00
Javier Jardón
203f527653
hlssink: Write EXT-X-VERSION tag in the playlist file
...
https://bugzilla.gnome.org/show_bug.cgi?id=708851
2013-09-28 13:20:08 +02:00
Alex Ashley
0bdf13c36a
hlsdemux: Fix dereferencing of NULL pointer
...
On some live HLS streams, gst_hls_demux_switch_playlist causes
assertion failures because it tried to dereference a NULL fragment.
This is because g_queue_peek_tail sometimes was returning NULL and
this case was not being checked.
This patch does two things:
* move the g_queue_peek_tail inside the semaphore protection
* check if q_queue_peek_tail returns NULL
https://bugzilla.gnome.org/show_bug.cgi?id=708849
2013-09-28 13:14:01 +02:00
Sebastian Dröge
fef9ef6a8e
dash/smoothstreaming: Remove unused debug category with the same name
...
It caused static linking to fail.
2013-09-19 20:09:59 +02:00
Sebastian Dröge
6cfbda3b7e
eglglessink: Fix static linking for Android by passing --tag=CC to libtool
2013-09-19 16:44:48 +02:00
Sebastian Dröge
ad0252fc04
eglglessink: Update for new GstContext API
2013-09-18 23:09:05 +02:00
Olivier Crête
b92791d102
hlsdemux: Reset GstUriDownloader cancellation when restarting to play
2013-09-17 17:41:39 -04:00
Iain Lane
fd4cb22ae4
modplug: Specify directory when including stdafx.h
...
modplug stopped exposing their directory in their pcfile, meaining
consumers accessing the headers directly fail to build.
75e9b16698
/
2013-09-10 11:08:24 +02:00
Julien Isorce
3a84875294
eglglessink: change pool->sink->last_buffer to pool->last_buffer
...
So that GstEGLImageBufferPool does not depend on GstEglGlesSink
The goal is still to move it into gstegl lib
2013-09-04 13:32:14 +01:00
Julien Isorce
fdaa26e1c8
eglglessink: buffer pool does not need to maintain a ref on the display
...
Because it does not use it and also it may not know it when
we create the pool
2013-09-04 13:32:14 +01:00
Julien Isorce
d16583d771
eglglessink: add GstEGLImageBufferPoolSendBlockingAllocate callback
...
The goal here is to prepare GstEGLBufferPool to be moved into
gstegl lib. So it has to not depend on 'gst_eglglessink_queue_object'
2013-09-04 13:32:14 +01:00
Julien Isorce
c0ca9bc422
eglglessink: prepare gst_egl_adaptation_allocate_eglimage to be moved
...
into gstegl lib or splited between gstegl lib and gstgl lib
because it both depends on egl and gl
So it has to not depend on GstEglAdaptationContext
2013-09-04 13:32:14 +01:00
Sebastian Dröge
8e5f0e37f8
soundtouch: Fix compilation with soundtouch 1.4.0
...
It used FLOAT_SAMPLES/INTEGER_SAMPLES #defines instead of ones properly
prefixed with a namespace.
https://bugzilla.gnome.org/show_bug.cgi?id=707390
2013-09-03 17:36:53 +02:00
Sebastian Dröge
576b4826c8
soundtouch: Allow compilation against float and integer version of the library
...
https://bugzilla.gnome.org/show_bug.cgi?id=707270
2013-09-02 10:29:49 +02:00
Josep Torra
47c35ee52e
dashdemux: Fix warnings when building in OS X Snow Leopard
...
gstdashdemux.c:1753: warning: format '%llu' expects type 'long long unsigned int', but argument 8 has type 'long unsigned int'
gstdashdemux.c:2224: warning: format '%llu' expects type 'long long unsigned int', but argument 9 has type 'guint64'
gstdashdemux.c:2224: warning: format '%llu' expects type 'long long unsigned int', but argument 10 has type 'guint64'
2013-08-30 21:52:35 +02:00
Josep Torra
0b54b0568d
dashdemux: Fix warnings when building in OS X Snow Leopard
...
gstmpdparser.h:530: warning: type qualifiers ignored on function return type
gstmpdparser.c:4177: warning: type qualifiers ignored on function return type
2013-08-30 21:36:19 +02:00
Tim-Philipp Müller
8293594397
dfbvideosink: make "layer-mode" property an enum
...
https://bugzilla.gnome.org/show_bug.cgi?id=703520
2013-08-29 15:46:14 +01:00
Tim-Philipp Müller
f79448552a
dfbvideosink: don't use deprecated GLib thread API
...
https://bugzilla.gnome.org/show_bug.cgi?id=703520
2013-08-29 14:48:28 +01:00
Kazunori Kobayashi
90020e21df
dfbvideosink: port to 1.0
...
including the following supports and fixes:
* Create DirectFB surfaces from GstBufferPool
* Add NV12 pixel format support
* Don't use the cursor in the exclusive mode
- EnableCusor() can be only used when the administrative mode is set
in DirectFB 1.6.0 and later.
* Support multiple plane rendering for planar color formats
- This accommodates the chroma plane offsets of the framebuffer
in planar formats.
* Invoke SetConfiguration regardless of video mode setting in setcaps()
- SetConfiguration() method should be invoked regardless of
the result of gst_dfbvideosink_get_best_vmode(), since the two are
unrelated.
* Disable DirectFB signal handler
- "--dfb:no-sighandler" option is passed to DirectFBInit().
This prevents DirectFB from trying to kill the process and allows
GStreamer's termination sequence to proceed normally.
https://bugzilla.gnome.org/show_bug.cgi?id=703520
2013-08-29 14:37:48 +01:00
Sebastian Dröge
f7db01b0e1
webpdec: Some cleanup and minor fixes
2013-08-26 10:22:06 +02:00
Sreerenj Balachandran
499d515a9f
webp: Add WebP image decoder plugin
...
https://bugzilla.gnome.org/show_bug.cgi?id=706285
2013-08-26 10:18:16 +02:00
Nicola Murino
e481ecbf22
facedetect: new property to control bus messages updates
...
https://bugzilla.gnome.org/show_bug.cgi?id=655622
2013-08-23 13:12:28 +02:00
Sebastian Dröge
21ea46568b
opencv: Fix indention
2013-08-23 12:01:32 +02:00
Sebastian Dröge
5e25d41b84
opencv: Port to non-deprecated GMutex/GCond API
2013-08-23 12:01:07 +02:00
Miguel Casas-Sanchez
fbb5dd38c7
opencv: Add disparity-map calculation element
...
https://bugzilla.gnome.org/show_bug.cgi?id=704760
2013-08-23 11:58:21 +02:00
Tim-Philipp Müller
b8f9d674be
srtpdec: fix buffers being dropped due to shadowed variable
...
Spotted by gstblub@gmail.com .
https://bugzilla.gnome.org/show_bug.cgi?id=706091
2013-08-16 19:48:03 +01:00
Chris Bass
7f21226956
dashdemux: offset segment numbers by startNumber
...
For SegmentTemplate elements containing a startNumber attribute, the
`number' member of GstMediaSegments should be offset by the value of
startNumber; however, this is not currently the case. As a result, the
first URI(s) requested by the download loop will be wrong.
This commit ensures that segment numbers will be offset by startNumber
when one is present in a SegmentTemplate element.
https://bugzilla.gnome.org/show_bug.cgi?id=705661
2013-08-16 11:15:47 -03:00
Chris Bass
19a45554bf
dashdemux: remove incorrect timestamp scaling.
...
When using a SegmentTemplate element, the timestamps of the buffers
output by dashdemux are incorrect, causing problems downstream.
The reason is that GstMediaSegment start times are calculated (in
gst_mpdparser_get_chunk_by_index) by multiplying segment index by
segment duration and then scaling the result according the `timebase'
attribute from the MPD. However, the segment duration is already a
GstClockTime (i.e., it has already been scaled according to the timebase
from the MPD and converted to a nanosecond value), so multiplying it by
the segment index will give the correct timestamp without the need for
any further scaling.
https://bugzilla.gnome.org/show_bug.cgi?id=705679
2013-08-16 10:22:21 -03:00
Sebastian Dröge
2e8af6973f
ext: Use new flush vfunc of video codec base classes and remove reset implementations
2013-08-15 15:46:58 +02:00
Thiago Santos
1b1332cb6d
mssdemux: use gst_data_queue_push_force for adding events to queue
...
This prevents locking on startup when a stream only has a single buffer
for one of the streams and mssdemux decides to push an EOS event right
after it.
2013-08-13 12:44:41 -03:00
Thiago Santos
2db211e243
dashdemux: use push_force when adding events to the dataqueue
...
This prevents deadlocks on startup on files that have only a very
large buffer for a stream and the queue is filled and will lock on
the eos event that is pushed after the buffer. As no buffers have yet
been pushed to other streams, the pipeline locks on preroll
2013-08-13 11:49:54 -03:00
Olivier Crête
d346e75606
srtp: Let packets through without touching them if no crypto or auth is set
2013-08-12 12:27:33 -04:00
Olivier Crête
a10e800dfd
srtpdec: Refactor code a bit
...
Simplify the error handling case and get the packet push out of the if()
2013-08-12 12:27:16 -04:00
Olivier Crête
04bd37dd67
srtpdec: Don't error on invalid packet, just drop it
2013-08-12 11:57:04 -04:00
Andoni Morales Alastruey
28609ca93c
hlsdemux: add support for redirections
2013-08-12 16:41:52 +02:00
Thiago Santos
ac07f8577b
dashdemux: properly error out when manifest has no streams
...
Post an error message when the manifest is parsed and no valid streams
are found be activated and used.
Fixes #704308
2013-07-30 22:06:38 -03:00
Sebastian Dröge
f2b14c68d5
midi: Fix handling of the SEGMENT query
2013-07-29 12:17:57 +02:00
Edward Hervey
97426a1caa
all: Fix for GST_DISABLE_GST_DEBUG
...
Where applicable, remove methods that don't do anything different than
the default implementation.
2013-07-29 09:42:12 +02:00
David Schleef
ec35c36536
celt: remove, replaced by opus.
2013-07-28 14:24:25 -07:00
Edward Hervey
f2a10e415e
mpg123: Remove dead assignment
...
harder ? :)
2013-07-27 06:39:15 +02:00
David Schleef
0f53ba8aed
ladspa: initialize debug category earlier
...
You know, before it's used.
2013-07-26 13:21:05 -07:00
Sebastian Dröge
b9124cad88
hlsdemux: Implement pkcs7 unpadding
...
Every encrypted fragment will be a multiple of 128 bits, the last byte
contains the number of bytes that were added as padding in the end
and should be removed.
https://bugzilla.gnome.org/show_bug.cgi?id=701673
2013-07-23 13:30:52 +02:00
Sebastian Dröge
5b702b894e
mssdemux: Add support for group-id in the stream-start event
2013-07-23 10:33:31 +02:00
Sebastian Dröge
b5e7ed0428
resindvd: Add support for group-id in the stream-start event
2013-07-23 10:33:31 +02:00
Sebastian Dröge
e63094abd5
hlsdemux: Add support for group-id in the stream-start event
2013-07-23 10:33:31 +02:00
Sebastian Dröge
493ee3383a
dash: Add support for group-id in the stream-start event
2013-07-23 10:33:31 +02:00
Alex Ashley
ed16c9c560
hls: fix for assert failure when using encrypted HLS streams
...
When using an HLS encrypted stream, an assertion failure is thrown:
(gst-launch-1.0:31028): GLib-GObject-WARNING **: cannot register
existing type `GstFragment'
(gst-launch-1.0:31028): GLib-CRITICAL **: g_once_init_leave: assertion
`result != 0' failed
Eventually tracked this down to the call gst_fragment_new()
in function gst_hls_demux_decrypt_fragment.
The GstFragment class is defined in ext/hls/gstfragment.c and in
gst-libs/gst/uridownloader/gstfragment.c. Having two class definitions
with the same name causes the assert failure when trying to allocate
GstFragment. Deleting the version from hls and editing the
Makefile.am solves this assert failure.
https://bugzilla.gnome.org/show_bug.cgi?id=704555
2013-07-22 14:55:17 +01:00
Sebastian Dröge
e56efddd4a
resindvd: Send stream-start event before anything else on the mpeg demuxer srcpads
2013-07-22 09:19:06 +02:00
Miguel Casas-Sanchez
7c2177b19f
grabcut: Add GrabCut segmentation element
...
https://bugzilla.gnome.org/show_bug.cgi?id=702722
2013-07-17 11:28:28 +02:00
Thiago Santos
ec630db32f
dashdemux: fix typo in check_queue_full function
...
It should return True when the queue IS full
Fixes #704226
2013-07-15 10:05:59 -03:00
Thiago Santos
1472dd3d58
dashdemux: implement queue full check function
...
Checks if the queue is full according to max buffering time
set by the user
https://bugzilla.gnome.org/show_bug.cgi?id=701404
2013-07-09 01:18:54 -03:00
Thiago Santos
95c2638ba5
dashdemux: minor refactor
...
Split one very large function into 2 smaller but still large functions.
Also change the if conditions to positive checks to improve readability.
2013-07-09 00:47:07 -03:00
Thiago Santos
5a5e66ec90
dashdemux: handle live playback resync
...
During a live stream it is possible for dashdemux to lag behind on a
slow connection or to rush ahead of the connection os too fast.
For the first case it is necessary to jump some segments ahead to be able to
continue playback as old segments are usually deleted from the server.
For the later, dashdemux should wait a little before attempting another
download do give time to the server to produce a new segment
2013-07-08 23:40:14 -03:00
Thiago Santos
b316d8a677
dashdemux: fix template based segment generation
...
When using a template based segment list, do not try to
contruct a finite segment list for the limits of the available periods.
We might not know when the period ends (for live streams) and we can
always create the segment on demand when requested by dashdemux,
avoiding use of some memory and cpu when re-creating this list.
2013-07-08 23:39:49 -03:00
Thiago Santos
a8a355108a
dashdemux: use more appropriate data structures for parsing
...
Replaces the 2 likely larger lists with more appropriate structures
to improve performance.
Replaces S nodes GList for a GQueue, this reduces latency to startup
because of traversing the list just append an element.
Replaces the processed media segments GList for a GPtrArray as it is
constantly acessed by index during playback.
2013-07-08 23:39:49 -03:00
Thiago Santos
b8fc98849a
dashdemux: answer to latency queries
...
Set live if stream is live and also add to the max latency the
max internal buffering
2013-07-08 23:39:49 -03:00
Thiago Santos
9a38127467
dashdemux: prevent assertion when duration is unknown
...
Duration from segment being unknown is a issue from the MPD and not
a programming issue, so the assert isn't useful here. Instead check
and return an error code so the caller can fallback to alternatives
2013-07-03 19:11:45 -03:00
Thiago Santos
3030c25aed
dashdemux: Fix event leak when parsing manifest fails
...
Always remember to unref the event before proceeding, in both success
and failure cases
2013-07-03 19:11:11 -03:00
Thiago Santos
788757dc1f
dashdemux: various cleanups
...
Removing unused function, replacing // comments with /* */ and
replacing some GST_WARNING with GST_INFO/_DEBUG as they are meant
to be
2013-07-03 15:34:41 -03:00
Alex Ashley
5ad2a2d161
dashdemux: Change first fragment selection for live streams
...
When dashdemux selects its first fragment, it always selects the
first fragment listed in the manifest. For on-demand content,
this is the correct behaviour. However for live content, this
behaviour is undesirable because the first fragment listed in the
manifest might be some considerable time behind "now".
The commit uses the host's idea of UTC and tries to find the
oldest fragment that contains samples for this time of day.
https://bugzilla.gnome.org/show_bug.cgi?id=701509
2013-07-03 15:34:30 -03:00
Thiago Santos
5c480dfc13
dashdemux: only generate index segment uri if there is a template
...
Simple fix to avoid an assertion.
2013-07-03 10:23:45 -03:00
Greg Rutz
5920ee2777
dashdemux: Implement inheritance for certain MPD elements
...
According to the MPEG-DASH spec, certain elements (i.e.
SegmentBase, SegmentTemplate, and SegmentList) should inherit
attributes from the same elements in the containing AdaptationSet
or Period.
Updated the SegmentBase, SegmentTemplate, and SegmentList parsers
to properly inherit attributes from the corresponding elements in
AdaptationSet and/or Period.
https://bugzilla.gnome.org/show_bug.cgi?id=702677
2013-07-03 10:23:45 -03:00
Greg Rutz
5e0ed52880
dashdemux: Properly detect presence of xml attributes
...
Convert all xml attribute/content parsing functions to return a
boolean value indicating whether or not the attribute/content was
present. We need this finer-grained control in order to properly
implement the inheritance policies described in the spec
Also fixed several memory leak conditions when handling errors in
the xml attribute/content parsing functions.
https://bugzilla.gnome.org/show_bug.cgi?id=702677
2013-07-03 10:23:45 -03:00
Thiago Santos
467b22c567
dashdemux: change debug message from warning to info
...
It isn't a warning/issue.
2013-07-03 10:23:45 -03:00
Thiago Santos
94c6497dfa
dashdemux: protect from access to empty list data
...
Check if the list has elements before trying to access the last one
and causing a segfault
2013-07-03 10:23:45 -03:00
Thiago Santos
0a88daaf8e
dashdemux: protect against failed header downloads
...
Avoids criticals when downloaded fragment is NULL
2013-07-03 10:23:45 -03:00
Olivier Crête
3f26bb9154
dashdemux: Handle case without an initialization segment
...
If no initialization segment is defined, then don't print a
critical or a warning, just ignore it.
https://bugzilla.gnome.org/show_bug.cgi?id=701961
2013-07-02 01:30:24 -03:00
Thiago Santos
4c89fab390
dash: save 1 or 2 string copies when getting fragment uris
...
Only create new string if required, saving maybe 1 or 2 str copies per
fragment.
2013-07-01 18:52:08 -03:00
Thiago Santos
aa1fe88a08
dashdemux: each fragment can have its own index
...
Return index URI/range to dashdemux from the mpdparser to be able
to download and deliver them downstream for playback.
2013-07-01 18:52:08 -03:00
Thiago Santos
d68fffc217
dashdemux: handle top-level index urls
...
Parse and provide access to top-level index segments if available.
dashdemux should push those whenever a header is pushed.
Fixes #700489
2013-07-01 18:52:08 -03:00
Arthur Shipkowski
54d87f071c
dashdemux: Fix critical error output when Initialization has no URL
...
Issue evinced by
http://yt-dash-mse-test.commondatastorage.googleapis.com/car-20120827-manifest.mpd
which produces output like ** (gst-launch-1.0:8060): CRITICAL **:
gst_mpdparser_get_initializationURL: assertion `InitializationURL->sourceURL
!= NULL' failed
https://bugzilla.gnome.org/show_bug.cgi?id=700489
2013-07-01 18:51:30 -03:00
Thiago Santos
d9c324c6c7
dashdemux: prevent crash by checking if the segment node is present
...
Do not try to access range data if there is no segment node
2013-07-01 14:35:02 -03:00
Thiago Santos
d0befd39f0
dash: use same debug category for dashdemux and the mpd parser
...
Makes debugging easier
2013-07-01 14:22:02 -03:00
Thiago Santos
4f17112392
dashdemux: add support for range based segments
...
Use the mediaRange information and pass it to the uridownloader
to correctly download only the segment ranges indicated in the
MPD
https://bugzilla.gnome.org/show_bug.cgi?id=702206
2013-07-01 14:22:01 -03:00
Olivier Crête
ad7ffe64a6
srtp: Don't require a key if both auth and cipher are null
2013-06-28 20:35:16 -04:00
Olivier Crête
47a6118fbc
srtp: Move the enums to the common header
...
The types are used in both the encoder and decoder
2013-06-28 20:35:15 -04:00
Olivier Crête
4d7a186513
srtp: Remove unused code
2013-06-28 20:13:38 -04:00
Greg Rutz
45111f2efe
dashdemux: Cleanup memory allocation/deallocation
...
Ensure that g_free/xmlFree is used correctly based on how the
memory was allocated.
When deallocating GLists, there were many places that were using
g_list_foreach and g_list_free. Converted these occurrences to
call g_list_free_full.
Add NULL checks to all xmlFree calls since the documentation does
not guarantee that passing NULL is safe
In places where we are strdup'ing memory allocated by libxml2,
changed those calls to use xmlMemStrdup().
There were several places where we were missing g_slice_free when
deallocating a top-level node structure.
https://bugzilla.gnome.org/show_bug.cgi?id=702837
2013-06-25 20:53:17 -03:00
Sebastian Dröge
21ccbbffe5
daaladec: Add decoder element
2013-06-23 11:32:42 +02:00
Sebastian Dröge
da47131cd6
daalaenc: Add encoder element
2013-06-23 11:32:42 +02:00
Sebastian Dröge
07053e5c53
daala: Initial version of a Daala plugin
2013-06-23 11:32:42 +02:00
Edward Hervey
f88f1d0a35
srtp: Fix dist
...
The enums should not be dist-ed and instead be re-generated when
compiling.
2013-06-23 09:06:29 +02:00
Benjamin Gaignard
3fc6f1d9b7
wayland: Add support for RGBx and RGBA formats
...
Wayland interface could offer two buffers pixels formats: WL_SHM_FORMAT_XRGB8888 and WL_SHM_FORMAT_ARGB8888.
Update waylandsink to support them and check if the format is really available.
https://bugzilla.gnome.org/show_bug.cgi?id=702112
2013-06-18 14:03:13 +02:00
Tim-Philipp Müller
67e71d7931
opencv: fix CFLAGS order and add plugins base libs includes to CXXFLAGS
...
https://bugzilla.gnome.org/show_bug.cgi?id=702297
2013-06-18 12:47:34 +01:00
Alban Browaeys
90b51562ab
opencv: fixes build by moving the c++ header to gstsegmentation.cpp
...
Fixes:
In file included from gstsegmentation.h:51:0,
from gstopencv.c:42:
/usr/include/opencv2/video/background_segm.hpp:47:16: fatal error: list:
No such file or directory
#include <list>
^
compilation terminated.
https://bugzilla.gnome.org/show_bug.cgi?id=702297
2013-06-18 13:37:26 +02:00
Patricia Muscalu
0d6fc0215c
curlsmtpsink: removed an incorrect assert
...
https://bugzilla.gnome.org/show_bug.cgi?id=702036
2013-06-11 21:08:28 +02:00
Miguel Casas-Sanchez
c313e1d3b8
opencv: add foreground/background segmentation element
...
Add an element to the opencv plugin for foregroung/background image
sequence segmentation, using one out of 3 algorithms.
https://bugzilla.gnome.org/show_bug.cgi?id=701421
2013-06-11 14:32:43 +02:00
Olivier Crête
5732c53c81
dashdemux: Make gst-indent happy
2013-06-10 18:01:09 -04:00
Sebastian Dröge
aad0992ae6
eglglessink: Remove workaround for a bug in the RPi EGL implementation
...
It's fixed in the latest firmware since a few weeks.
2013-06-08 14:49:34 +02:00
Arthur Shipkowski
3d50af3e4b
dashdemux: Fix issue with get returning a value for max-buffering-time
...
It was not properly divided by GST_SECONDS. Also fix issue with
max-buffering-time being multiplied by GST_SECONDS every time the
property is retrieved.
https://bugzilla.gnome.org/show_bug.cgi?id=700487
2013-06-07 22:58:33 -03:00
Sebastian Dröge
a7889b05b3
dash: Add to Makefile.am for make dist
2013-06-05 18:01:10 +02:00
Stefan Sauer
3d72bc2bd9
ladspa: fix typos in launch examples
2013-05-28 10:27:17 +02:00
Stefan Sauer
f65bdac49b
ladspa: use the registry cache for plugin details
...
Split the introspection and registration part. This way we only need to open all
plugins when updating the registry. When reading the registry we can register
the elements entierly from the cache.
2013-05-28 10:27:17 +02:00
Miguel Casas-Sanchez
407f3e1856
opencv: Add colour image enhancement element based on Retinex algorithm
...
Add colour image enhancement element based on Retinex algorithm. Two types
exist, namely basic and multiscale; both are described in this article:
Rahman, Zia-ur, Daniel J. Jobson, and Glenn A. Woodell. "Multi-scale retinex
for color image enhancement." Image Processing, 1996. Proceedings.,
International Conference on. Vol. 3. IEEE, 1996
Visually speaking the result looks a bit funny, but is pretty invariable to
lightning changes, which is good for some applications, like image
segmentation.
https://bugzilla.gnome.org/show_bug.cgi?id=700977
2013-05-27 11:27:20 +02:00
Patricia Muscalu
8303561bd9
curlsmtpsink: terminate transfer thread properly
...
If no EOS has been sent, the curl readfunc callback will
return ABORT. The media file in that case will not be properly
finalized.
https://bugzilla.gnome.org/show_bug.cgi?id=700886
2013-05-24 23:47:50 +01:00
Miguel Casas-Sanchez
ac4efd2914
opencv: Add skin color detection element
...
https://bugzilla.gnome.org/show_bug.cgi?id=700654
2013-05-23 11:05:28 +02:00
David Schleef
127fcf05a7
flitetestsrc: audio format is "S16" not "s16"
2013-05-18 14:02:18 -07:00
Thiago Santos
d434f36245
dashdemux: send stream start event
...
Removes warnings about strict sticky events ordering
2013-05-17 21:23:55 -03:00
Thiago Santos
750137c4be
mssdemux: fix wma pro caps creation
...
WmaPro is actually wmaversion 3, and can also be found by the
WMAP fourcc.
Some manifests also contain the block_align field as "PacketSize"
in the audio track description, the libav decoders require it
to be present in caps.
Fixes #699921
2013-05-17 12:08:10 -03:00
Thiago Santos
504142ea93
mssdemux: fix assertions when a stream caps can't be created
...
Fixes two assertions related to cleanup for a pad that couldn't
be exposed because the caps couldn't be identified from the
Manifest
Fixes #699921
2013-05-17 11:37:30 -03:00
Thiago Santos
ef66e39d03
eagl: fix handling of surface dimension changes
...
Detect when the eagl surface changed its dimension (when the user rotates
the device for example) and adapt the egl internals to draw to that,
preventing that ios resizes the image again when drawing.
This is particularly harmful when eagl would scale down a image
to draw and the ios screen would scale it back up because the
surface is now bigger than when the element was configured.
2013-05-16 15:16:30 -03:00
Thiago Santos
27d726fbfa
mssdemux: parse block_align, channels and rate from waveformatex if possible
...
wma v2 expects block_align, channels and rate fields set to its caps.
This isn't present direclty on the manifests, so mssdemux should parse
it from the waveformatex structure
https://bugzilla.gnome.org/show_bug.cgi?id=699924
2013-05-16 15:00:39 -03:00
Thiago Santos
f74f9cd3ab
mssdemux: add bitrate info to audio streams
...
bitrate info is always present on the QualityLevel xml node as part
of the adaptive selection processing, put it into caps as some
decoders require it (avdec_wmav2 for example)
https://bugzilla.gnome.org/show_bug.cgi?id=699924
2013-05-16 15:00:39 -03:00
Thiago Santos
62860f4fa9
mssdemux: send stream id and newsegment before pushing data
...
Fixes sticky events ordering warnings when data is pushed
https://bugzilla.gnome.org/show_bug.cgi?id=699924
2013-05-16 15:00:39 -03:00
Olivier Crête
220f075423
dashdemux: Announce correct mpegts caps
2013-05-15 22:24:29 -04:00
Nicolas Dufresne
4c4fc14afc
mimic: Ensure segment is sent before caps and buffer
...
https://bugzilla.gnome.org/show_bug.cgi?id=700420
2013-05-15 19:30:40 -04:00
Sebastian Dröge
9e2aee01a8
kateenc: Delay segment event until we have caps
2013-05-15 10:12:09 +02:00
Sebastian Dröge
d997c5db0e
katedec/tiger: Don't queue sticky events that would come before CAPS
2013-05-15 10:02:29 +02:00
Sebastian Dröge
c4fe52e33e
kateparse: Fix event handling
...
Internal state should only be reset on FLUSH_STOP, not FLUSH_START.
Also forward pre-caps events immediately and don't queue them.
2013-05-15 09:47:21 +02:00
Sebastian Dröge
1c16489af7
hls: Use GstURIDownloader from the library for now to keep everything in a usable state
2013-05-15 09:21:21 +02:00
Nicolas Dufresne
d45623f532
ladspa: Fix compilation issue when lrdf is enabled
...
https://bugzilla.gnome.org/show_bug.cgi?id=700328
2013-05-14 19:52:47 +01:00
Juan Manuel Borges Caño
30d7908df2
openal: improved port to 1.0
...
https://bugzilla.gnome.org/show_bug.cgi?id=698013
2013-05-13 23:48:01 +01:00
Tim-Philipp Müller
0c1f059245
dirac: remove old dirac-research library based codec
...
It's not developed any more and replaced by the
libschroedinger-based elements in gst-plugins-good.
(The libschroedinger 1.0.9 release notes state "This
is an exciting release: most of the encoding tools in
dirac-research have been ported over to Schrödinger, so
now schro has the same or better compression efficiency
as dirac-research.")
2013-05-12 23:51:32 +01:00
Tim-Philipp Müller
020c93b973
ofa: port to 1.0
2013-05-12 23:42:06 +01:00
Tim-Philipp Müller
0c23ac0565
musicbrainz: remove trm element which is not useful any more
...
TRM IDs are MusicBrainz' old audio fingerprinting system from
Relatable, they were phased out in favour of MusicIPs PUIDs.
https://wiki.musicbrainz.org/History:TRM
2013-05-12 20:57:25 +01:00
Tim-Philipp Müller
b3e70d30cf
neonhttpsrc: add support for SCHEDULING query
2013-05-12 18:52:56 +01:00
Tim-Philipp Müller
e1f4f5ccaa
neonhttpsrc: add iradio-mode property and post icy metadata as tags
2013-05-12 18:52:56 +01:00
Tim-Philipp Müller
ca3a83a60d
neonhttpsrc: port to 1.0
2013-05-12 18:52:55 +01:00
Sebastian Dröge
275e104be6
egl: Add destroy notify instead of always calling eglTerminate() on the display
...
In some scenarios, for example in QtWebKit, might be difficult to obtain full
control on the egl display and it might be only accessible indirectly via
eglGetCurrentDisplay().
https://bugzilla.gnome.org/show_bug.cgi?id=700058
2013-05-10 12:50:05 +02:00
Tim-Philipp Müller
0d7967e25e
dashdemux: rename src template from src%d to src_%u
2013-05-08 23:17:08 +01:00
Thiago Santos
573a4d440c
dash: remove superfluous files
...
Authors and license are at the top of the source files
2013-05-08 18:59:31 -03:00
Thiago Santos
919cb34fee
dash: do not use deprecated glib mutex API
2013-05-08 18:14:46 -03:00
Thiago Santos
34e1b59eca
dashdemux: fixing compiler warnings about print formats
2013-05-08 18:14:46 -03:00
Thiago Santos
5855511ba4
dash: enable in configure/makefiles
...
It was intentionally disabled up to this point to prevent
compile failures as dashdemux development commits were all for
0.10 up to here
2013-05-08 18:14:46 -03:00
Thiago Santos
9f190cdff7
dashdemux: port to 1.0
2013-05-08 18:14:46 -03:00
Thiago Santos
b338cc0d34
dashdemux: Fix another wrong assertion
...
Also adds a couple log messages for easier debugging
2013-05-08 18:14:46 -03:00
Thiago Santos
3472efda75
dashdemux: remove wrong asserts
...
Those asserts should be the contrary that they are. And also
the surround functions should already check that. Removing them.
2013-05-08 18:14:46 -03:00
Wim Taymans
665d59edba
dashdemux: only start timestamp from 0 for live stream
...
We only want to adjust the timestamps so that they start from 0 for live
streams. Non-live streams already start from 0 and after a seek we actually want
to timestamp to be the position we seek to.
2013-05-08 18:14:45 -03:00
Wim Taymans
4f9f0b84cf
dashdemux: make timestamps start from 0
...
Non-live streams should timestamp buffers with a running-time starting from
0. Since we already push a 0 -> -1 segment, bring the timestamps to 0
by subtracting the initial timestamp.
2013-05-08 18:14:45 -03:00
Wim Taymans
4ab58e0fb1
dashdemux: also send newsegment on startup
2013-05-08 18:14:45 -03:00
Wim Taymans
cfcaa23959
dashdemux: small cleanup
2013-05-08 18:14:43 -03:00
Thiago Santos
afccf149af
dashdemux: live stream playback crashfix
2013-05-08 18:14:42 -03:00
Thiago Santos
d9baed8302
dash: mpdparser: do not cleanup xml lib too early
...
The xmlCleanupParser function seems to cleanup all statically
allocated libxml variables, making it unusable. We can't guarantee
that dashdemux won't need it anymore, so better not call it.
2013-05-08 18:14:42 -03:00
Thiago Santos
14feeb3ccb
dashdemux: reimplementing live streams manifest updates
...
Manifest updates should be done periodically for live streams,
this patch makes the demuxer create a new manifest client for
the new version and transfers the stream position to the new
one, discarding the old one afterwards.
2013-05-08 18:14:42 -03:00
Thiago Santos
b01a3729c0
dash: mpdparser: allow periods without start time for live streams
...
Live streams can have undefined start times for the periods and
mpdparser can let that pass instead of erroring out
2013-05-08 18:14:41 -03:00
Thiago Santos
cff4498f7c
dash: mpdparser: use guint64 for timestamps
...
The timestamps can be pretty big, so use guint64 for them
2013-05-08 18:14:41 -03:00
Thiago Santos
a53fd87508
dashdemux: mpd parsing: fix query parameter parsing
...
Try harder to detect URL parameters and split them to accomodate
the fragment url in the concat:
base-url + fragment-url + url-parameters
2013-05-08 18:14:41 -03:00
Thiago Santos
4ca530f2fe
dashdemux: plug some leaks
...
Add some missing free/unrefs spotted by valgrind
2013-05-08 18:14:41 -03:00
Thiago Santos
c82606a600
dashdemux: remove unused mutexes
2013-05-08 18:14:41 -03:00
Thiago Santos
737d328bb5
dashdemux: properly reset stream status after a flush
...
The stream eos/end of period status must also be reset after a flushing
seek. This makes seeking after EOS work.
2013-05-08 18:14:41 -03:00
Andre Moreira Magalhaes (andrunko)
fbbf713e45
dashdemux: keep a list of streams periods
...
Keep a list of streams per period so that the download loop can keep
downloading while the stream loop is still pushing old period's data.
2013-05-08 18:14:41 -03:00
Andre Moreira Magalhaes (andrunko)
b9272dc0e6
dashdemux: Properly parse base uri from mpd.
2013-05-08 18:14:40 -03:00
Andre Moreira Magalhaes (andrunko)
6ecb58c4f8
dashdemux: Remove unused members.
2013-05-08 18:14:40 -03:00
Andre Moreira Magalhaes (andrunko)
497500dbfe
dashdemux: Only send newsegment on seek.
2013-05-08 18:14:40 -03:00
Thiago Santos
3bc62ccc51
dashdemux: send segments that overwrite previous ones
...
This is only done for seeks, so it is fine
2013-05-08 18:14:40 -03:00
Andre Moreira Magalhaes (andrunko)
2b83b4410c
dashdemux: switch bitrates without switching pads
2013-05-08 18:14:40 -03:00
Andre Moreira Magalhaes (andrunko)
11697b9968
dashdemux: Remove unusued method.
2013-05-08 18:14:40 -03:00
Andre Moreira Magalhaes (andrunko)
daea47d3f4
dashdemux: Set stream need_header after seek and has_data_queued to FALSE when flushing stream.
2013-05-08 18:14:40 -03:00
Thiago Santos
4a9d7f0a9f
dashdemux: do not pause/start the stream loop on playing/paused changes
...
The demuxer shouldn't care about paused/playing, it should act the
same in both states
2013-05-08 18:14:39 -03:00
Thiago Santos
2fe509d50a
dashdemux: remove property that isn't used anymore
...
Remove some pieces of code that are from an old property
that isn't used anymore
2013-05-08 18:14:39 -03:00
Thiago Santos
460542daaf
dashdemux: add a downloadrate utility
...
A small struct that keeps a short history of fragment download bitrates
to have an average measure of N last fragments instead of using only
the last downloaded bitrate
2013-05-08 18:14:39 -03:00
Thiago Santos
28449ce7d1
dashdemux: sprinkling some more log
2013-05-08 18:14:39 -03:00
Thiago Santos
94dcb60127
dashdemux: change bitrates based on the stream bitrate
...
Do not use a global bitrate as the sizes of the fragments matter
when calculating the download rate as the connection setup time is
also being taken into the download duration, a smaller fragment
will have a lower bitrate than a larger one.
This avoids switching the bitrates for streams frequently because
of bitrate mismatches
2013-05-08 18:14:39 -03:00
Thiago Santos
770df6277a
dashdemux: refactor to use the uridownloader lib instead of internal copy
2013-05-08 18:14:39 -03:00
Andre Moreira Magalhaes (andrunko)
5efedbff0a
dashdemux: Make sure switch_pads won't leak any pad.
2013-05-08 18:14:39 -03:00
Andre Moreira Magalhaes (andrunko)
e92531c8f6
dashdemux: Properly stop download and stream tasks where appropriate.
2013-05-08 18:14:39 -03:00
Thiago Santos
288903a203
dashdemux: avoid an assertion when stopping the pipeline
...
Avoids asserting when dataqueues are setting to flushing due
to a pipeline stop during a pad switch.
2013-05-08 18:14:39 -03:00
Thiago Santos
83c0e1e25d
dashdemux: download the next fragment with smaller timestamp
...
Instead of downloading 1 fragment per stream per download loop,
select the stream with the earlier timestamp and get a fragment
only for that one.
The old algorithm would lead to problems when the fragment durations
were too different for streams.
2013-05-08 18:14:39 -03:00
Thiago Santos
dbd6bde9d1
dashdemux: track segments in the demuxer
...
Use a GstSegment to track the current segment information in the
demuxer.
2013-05-08 18:14:38 -03:00
Thiago Santos
39924c60a1
dashdemux: remove buffering message emission from dashdemux
...
dashdemux shouldn't emit the buffering message as that can pause
the pipeline. It has no proper knowledge of the downstream buffering
status so it can pause the pipeline when it isn't necessary. It should
have an internal buffer for downloading the streams ahead of playback,
but that shouldn't make it able to stop the pipeline for buffering.
A particular case in which this is bad is when a pad switch happens
(changing bitrates for example), the new pads dashdemux creates
will get linked to demuxers and new queues will be created,
these queues are initially empty and dashdemux will quickly
drain its buffers by pushing them to those queues. So it
would have no more buffers internally and would emit a
buffering message with a low ratio, causing the pipeline
to pause when it wouldn't be necessary.
2013-05-08 18:14:35 -03:00
Thiago Santos
10b5d4d1cc
dashdemux: removing unused code
...
Cleaning up by removing unused code and variables
2013-05-08 18:14:35 -03:00
Thiago Santos
0d9b5923af
dashdemux: re-enable and fix adaptive switching
...
It is still unstable, but at least it works when the switches aren't
happening after every fragment
2013-05-08 18:14:34 -03:00
Thiago Santos
2d85107299
dashdemux: correctly signal EOS on manifest end
...
Put EOS on the streams queues after the last fragment from the
last period for each stream. This way we keep it serialized
with the buffers and it will work when streams have different
ending times
2013-05-08 18:14:34 -03:00
Thiago Santos
a19c689dfa
dashdemux: detect end-of-period correctly
...
Detect end of period when there are no more buffers on any of the
streams
2013-05-08 18:14:34 -03:00
Thiago Santos
3a055ac2d1
dashdemux: Use the smallest queue value to define buffering state
...
The smallest queue should be used to prevent blocking the download
thread when a stream has too much data buffered, leaving the other
streams starving from fragments
2013-05-08 18:14:34 -03:00
Thiago Santos
9777fc5cb5
dash: fix parsing of streams to get correct fragment durations
...
Use the current stream base time instead of the 0th stream base time
to get default duration for fragments.
2013-05-08 18:14:34 -03:00
Thiago Santos
54542a6000
dashdemux: block waiting for buffers instead of busy wait
...
Make the streaming loop block waiting for buffers on the queues instead
of busy waiting eating cpu continuously on a queue length check
2013-05-08 18:14:34 -03:00
Thiago Santos
80c6973319
dashdemux: fix seeking on multiple streams
...
Each stream has its own durations and timestamps, the fragment number
is different for each stream when seeking, so the seek has to be done
for all streams, rather than on a single stream and propagated to
others
2013-05-08 18:14:34 -03:00
Thiago Santos
7330225ac8
dashdemux: Replace GQueue by GstDataQueue
...
GstDataQueue has proper locking and provides functions to limit the
size of the queue. Also has blocking calls that are useful to
our multithread scenario in Dash.
2013-05-08 18:14:34 -03:00
Thiago Santos
27b1abbda3
dashdemux: move the buffers queues to the streams
...
Store the buffers separately for each stream, this is clearer than
having a queue with a list of buffers. It also allows easier selection
of buffers to push in later refactors
2013-05-08 18:14:34 -03:00
Thiago Santos
1556d8cb03
dashdemux: refactor streams data to its own struct
...
Keeps code more organized and similar to what other demuxers
usually do
2013-05-08 18:14:33 -03:00
Thiago Santos
f46ba44e99
dash: do not try to print a pointer as a string
2013-05-08 18:14:33 -03:00
Thiago Santos
f27bb684f7
dashdemux: Remove timing code that delays pushing of fragments
...
Fragments should be pushed ASAP as downstream should be responsible for
doing the syncrhonization and proper buffering.
This has the great side effect of fixing most of the seeking A/V sync issues.
2013-05-08 18:14:33 -03:00
Thiago Santos
a1447a8ede
dash: fixing build warnings
...
Also running through gst-indent
2013-05-08 18:14:33 -03:00
Louis-Francis Ratté-Boulianne
6acf2fba8f
gstdashdemux: add need_header member to know whether the initialization fragment should be pushed
2013-05-08 18:14:33 -03:00
Louis-Francis Ratté-Boulianne
0bed9a6646
dashdemux: don't wait for the whole duration of a fragment when seeking
2013-05-08 18:14:33 -03:00
Louis-Francis Ratté-Boulianne
489d7a174c
dashdemux: switch pads and send header file when a newsegment event is sent
2013-05-08 18:14:33 -03:00
Louis-Francis Ratté-Boulianne
04004cdf65
dashdemux: various fixes
2013-05-08 18:14:33 -03:00
David Corvoysier
c901f610c2
Applied gst-indent
2013-05-08 18:14:33 -03:00
David Corvoysier
582aa51fd6
Replaced URL pointing to obsolete Klagenfurt MPD by a new one
2013-05-08 18:14:33 -03:00
Gianluca Gennari
c988ee3a4b
mpdparser: fix escape sequence in URL template resolving
2013-05-08 18:14:33 -03:00
Gianluca Gennari
470c860ffa
mpdparser: do not switch pads when bitstreamSwitching = true
2013-05-08 18:14:32 -03:00
Gianluca Gennari
e0c55050e1
dashdemux: complete support for manifest file updates
2013-05-08 18:14:32 -03:00
Gianluca Gennari
7092a9c1ac
dashdemux: add support for manifest file updates
...
- the MPD file is updated in the download loop (only if we have a "dynamic" MPD and minimumUpdatePeriod is valid);
- properly LOCK/UNLOCK the GstMpdClient;
2013-05-08 18:14:32 -03:00
Gianluca Gennari
7371b7997b
dashdemux: new API to set/get segment index and period index
...
TODO: rework segment selection to support Representations or Adaptation Sets with segments not aligned
2013-05-08 18:14:32 -03:00
Gianluca Gennari
e7fad847bb
dashdemux: new API to load the stream Period with a given index
...
this avoids to fiddle with stream internals in the code
2013-05-08 18:14:32 -03:00
Gianluca Gennari
9d43e33319
dashdemux: implement seeking across Periods
2013-05-08 18:14:32 -03:00
David Corvoysier
f7c6403432
Applied gst-indent
2013-05-08 18:14:32 -03:00
David Corvoysier
e323c099a0
By default, do not forward pad queries upstream, because it may have unforessen side-effects (forwarding the new 1.0 GST_CAPS query would prevent pad linking for instance)
2013-05-08 18:14:32 -03:00
Olivier Blin
d058a7f2b2
plugin: register as dashdemux instead of fragmented
...
This fixes conflicts with the HLS plugin, which is also named
fragmented.
When building its registry, gstreamer was picking one or the other
between hls and dashdemux.
2013-05-08 18:14:31 -03:00
Gianluca Gennari
895e804a86
dashdemux: check if we have received the MPD file in the proper way
2013-05-08 18:14:31 -03:00
Gianluca Gennari
8f13f246e0
mpdparser: silence warning
2013-05-08 18:14:31 -03:00
Olivier Blin
0b5eb519e7
dashdemux: fix printing buffering time and download rate/size
...
This was broken on armv7.
2013-05-08 18:14:31 -03:00
Olivier Blin
bd2784ffbb
dashdemux: fix unused-but-set variable
2013-05-08 18:14:30 -03:00
Olivier Blin
cbebb01f23
dashdemux: use new gst_mpd_client_get_next_fragment_duration API
...
This fixes build that has been broken by commit
fb9aeac6552021b176a4c4bd07265e02a0b70e0f.
gst_mpd_client_get_target_duration has been removed, and
gst_mpd_client_get_next_fragment_duration should be used instead.
2013-05-08 18:14:29 -03:00
Gianluca Gennari
f728e424b2
dashdemux: remove FIXME comment
...
pad switching across multiple periods works perfectly fine now
and it is done only when there is a change in the CAPS
2013-05-08 18:14:29 -03:00
Gianluca Gennari
e96cc18ab9
dashdemux: send new-segment events to all pads
2013-05-08 18:14:27 -03:00
Gianluca Gennari
9387365fc9
dashdemux: reworked the API to retrieve fragment timestamp, fragment duration and media presentation duration
...
This was necessary to support variable-duration Fragments.
in the new API:
- gst_mpd_client_get_current_position returns the timestamp of the NEXT fragment to download;
- gst_mpd_client_get_next_fragment_duration returns the duration of the next fragment to download;
- gst_mpd_client_get_media_presentation_duration returns the mediaPresentationDuration from the MPD file;
also there is a new internal parser function:
- gst_mpd_client_get_segment_duration extracts the constant segment duration from the MPD file
(only used when there is no SegmentTimeline syntax element in the current representation)
In gst_mpd_client_get_next_fragment, we set the timestamp/duration of the fragment just downloaded
copying the values from the corresponding GstMediaSegment.
TODO: rework SEEKING to support seeking across different Periods.
2013-05-08 18:14:25 -03:00
Gianluca Gennari
dc5d7d258e
dashdemux: use effective segment duration to reschedule the streaming task
...
do not assume segment duration is constant
Conflicts:
ext/dash/gstdashdemux.c
2013-05-08 18:14:22 -03:00
Gianluca Gennari
cfcd9ffac6
dashdemux: reworked gst_dash_demux_get_buffering_time() to return the effective buffering time
...
do not assume the Fragment duration is constant
2013-05-08 18:14:16 -03:00
Gianluca Gennari
0abd777257
dashdemux: complete support for Media Presentations with several Periods
...
- Periods are played in sequence, from PeriodStart to PeriodEnd
- seamless switching from one Period to the next one works fine;
- the 'new-segment' generation is broken, so if we need to switch pads for a new Period there is a crash;
2013-05-08 18:14:10 -03:00
Gianluca Gennari
9d09e99ebe
mpdparser: initial support for Media Presentations made of several Periods
...
- build a list of the available Periods with their start and duration time
- add the list of GstStreamPeriod in the GstMpdClient data struct
- remove cur_period from GstMpdClient and introduce an API to get the current GstStreamPeriod
- several API clean-ups
2013-05-08 18:14:10 -03:00
Olivier Blin
ba3bd1c69a
mpdparser: support BaseURL for SegmentURL using mediaRange
...
This is used in big_buck_bunny_CappedVBR_Multirate_4s_0_AudioVideo_MainProfile.mpd
2013-05-08 18:14:10 -03:00
Olivier Blin
767a5ebed0
mpdparser: factorize adding range parameter to URL
2013-05-08 18:14:08 -03:00
Gianluca Gennari
53f383eff0
dashdemux: reworked caps detection
...
also reworked the API to extract audio/video parameters from the manifest file
(mimeType, width, height, rate, num channels)
2013-05-08 18:14:06 -03:00
Gianluca Gennari
fe05060044
dashdemux: do not send bogus duration messages when mediaPresentationDuration is unknown
2013-05-08 18:14:03 -03:00
Gianluca Gennari
fba69179e4
mpdparser: support SegmentTimeline syntax also for list-based media segment generation
2013-05-08 18:14:03 -03:00
Gianluca Gennari
362b5e9446
mpdparser: add support for SegmentTimeline syntax elements
...
build the list of segments to be played using the SegmentTimeline syntax, if present
bugfixes:
- for dynamic MPD files, when mediaPresentationDuration is not present use minimumUpdatePeriod instead
- do not add a spurious '$' when building an URL from a template like "$Bandwidth$/init.mp4v"
- introduce gst_mpd_client_add_media_segment() to avoid code duplication
2013-05-08 18:14:03 -03:00
David Corvoysier
41733d8296
Fixed wrong index in fragments
2013-05-08 18:14:03 -03:00
Gianluca Gennari
8e9ba056d7
mpdparser: fix memory leak in gst_mpd_client_get_next_fragment_set()
...
we have to free next_fragment_uri
2013-05-08 18:14:03 -03:00
David Corvoysier
cf0ab8e1f3
Removed unused function
2013-05-08 18:14:03 -03:00
David Corvoysier
84c8de8ab6
Seek event handling cleanup
2013-05-08 18:14:02 -03:00
Gianluca Gennari
b580ee8cd7
dashdemux: fix playing of single-segment media streams
...
other fixes:
- fixed a buffering bug: now we stop buffering when we reach the end of manifest
- now gst_mpd_client_get_target_duration() always returns a valid duration
(in case of single-segment streams, we return either Period duration or mediaPresentation duration)
TODO: support SegmentTimeline
2013-05-08 18:14:02 -03:00
Gianluca Gennari
5ade664680
uridownloader: deleted useless declaration of gst_uri_downloader_free()
2013-05-08 18:14:00 -03:00
Gianluca Gennari
122f10669f
uridownloader: when possible, reuse existing element to download a new URI
...
previously a new element was allocated for each media segment, and it was never freed
2013-05-08 18:14:00 -03:00
Gianluca Gennari
5b830c3c91
dashdemux: unref caps in function need_add_header()
2013-05-08 18:13:58 -03:00
Gianluca Gennari
3726ff73ad
dashdemux: fix extraction of SegmentTemplate->initialization in gst_mpd_client_get_next_header()
...
now the following MPD files are properly supported:
http://dash.edgesuite.net/adobe/hdworld_dash/HDWorld-1600.mpd
http://dash.edgesuite.net/adobe/hdworld_dash/HDWorld.mpd
2013-05-08 18:13:58 -03:00
Gianluca Gennari
cd84aaa9aa
dashdemux: fix memory leak in gst_dash_demux_get_next_header()
2013-05-08 18:13:58 -03:00
David Corvoysier
95ee452625
We now only accept actual manifest files, and not any XML file
2013-05-08 18:13:58 -03:00
David Corvoysier
763f4c3fc3
Added a typefind helper for DASH: this commit should be reverted as soon as a proper patch has been submitted to gst-plugins-base
2013-05-08 18:13:57 -03:00
David Corvoysier
29c62f4780
Fixed state machine (again)
2013-05-08 18:13:57 -03:00
David Corvoysier
a7ad12e208
Code refactoring
2013-05-08 18:13:57 -03:00
David Corvoysier
f4756f7cb0
Fixed state machine
2013-05-08 18:13:57 -03:00
David Corvoysier
7f2207732b
Improve consistency of the tasks shutdown code
2013-05-08 18:13:57 -03:00
David Corvoysier
28aaff747c
Added missing g_list_free
2013-05-08 18:13:57 -03:00
David Corvoysier
30fece810f
Do not answer to URI queries
2013-05-08 18:13:56 -03:00
David Corvoysier
0e2c3ffc0b
Try queries upstream if we cannot process them
2013-05-08 18:13:56 -03:00
David Corvoysier
089daeba1b
Renamed demux->next_stream in demux->next_push
2013-05-08 18:13:56 -03:00
David Corvoysier
943f4fa152
Inlined one-line utility funciton that was called only once
2013-05-08 18:13:56 -03:00
David Corvoysier
3cb7b12cbe
Fixed regression after the introduction of the multi-screen support, preventing the pipeline from stopping properly
2013-05-08 18:13:56 -03:00
David Corvoysier
6f5d6f91ff
Modified log level of shutdown message
2013-05-08 18:13:56 -03:00
David Corvoysier
90be873ee1
Comments: We don't select a single representation, but a representation for each stream Code: cleanup of gst_get_next_fragment (also renamed in gst_get_next_fragment_set)
2013-05-08 18:13:56 -03:00
David Corvoysier
d3c4c48923
Removed debug trace
2013-05-08 18:13:56 -03:00
David Corvoysier
6be9a30ad8
Added introduction and general design notes
2013-05-08 18:13:56 -03:00
David Corvoysier
35c04708ba
Fixed wrong comment
2013-05-08 18:13:56 -03:00
David Corvoysier
6255b2762f
Documented gst_dash_demux_download_loop
2013-05-08 18:13:55 -03:00
David Corvoysier
5b6bede189
Commented gst_dash_demux_stream_loop
2013-05-08 18:13:55 -03:00
David Corvoysier
b9d6796cb5
Commented needs_pad_switch
2013-05-08 18:13:55 -03:00
David Corvoysier
54fcbf89f1
Documented the representation switch mechanism
2013-05-08 18:13:55 -03:00
David Corvoysier
7764efb761
Replaced references to playlist (HLS) by references to manifest (DASH)
2013-05-08 18:13:55 -03:00
David Corvoysier
ad22e0da6d
Renamed gst_dash_demux_switch_playlist to gst_dash_demux_select_representation and added comments
2013-05-08 18:13:55 -03:00
David Corvoysier
204ea9fc67
Removed obsolete comment
2013-05-08 18:13:55 -03:00
David Corvoysier
ae32818105
Applied gst-indent
2013-05-08 18:13:55 -03:00
David Corvoysier
28215b9e12
Updated README
2013-05-08 18:13:55 -03:00
Gianluca Gennari
b4057976be
mpdparser: support MPD files with SegmentBase elements encoded inside a SegmentList element
...
also properly support MPD files without any Initialization segment
2013-05-08 18:13:55 -03:00
Gianluca Gennari
375634f669
mpdparser/dashdemux: fixed get_width, get_height, get_audio_rate, get_num_audio_channels API functions
...
the actual values now can be extracted also from the AdaptationSet element;
checking NULL structs for better robustness;
2013-05-08 18:13:55 -03:00
Gianluca Gennari
98a41f2c9e
mpdparser: added support for single-segment streams with the URL encoded in the baseURL syntax element
2013-05-08 18:13:54 -03:00
Gianluca Gennari
779bf29879
mpdparser: added lang attribute to ProgramInformation node
2013-05-08 18:13:52 -03:00
Gianluca Gennari
94644fa82e
mpdparser: added support for Accessibility, Role, Rating, Viewpoint elements to AdaptationSet node
...
those are DescriptorType elements, so they are just parsed and dumped for now;
2013-05-08 18:13:50 -03:00
Gianluca Gennari
416ea67979
mpdparser: support multiple ProgramInformation nodes
...
now we keep a list of ProgramInformation nodes for each Period node
2013-05-08 18:13:48 -03:00
Gianluca Gennari
dd198bc86d
mpdparser: fixed parsing of SegmentList syntax element, and eliminated Represention node list from Period node
...
SegmentList nodes are allowed into Period, AdaptationSet or Representation nodes
and there is at most 1 element, so no need to keep a list;
Period nodes cannot have any Represention elements, as AdaptationSet nodes are mandatory;
this breaks compatibility with some legacy DASH test sequences.
2013-05-08 18:13:48 -03:00
Gianluca Gennari
8e3092661a
mpdparser: fixed return with no value
...
gstmpdparser.c: In function ‘gst_mpdparser_get_list_and_nb_of_audio_language’:
gstmpdparser.c:2891: warning: ‘return’ with no value, in function returning non-void
2013-05-08 18:13:48 -03:00
Gianluca Gennari
7330bbfa7a
mpdparser.c/.h: changed license from dual MIT/LGPL 2.0 to LGPL 2.1
...
uniformed licencinsing to the other libraries in the dashdemux project
2013-05-08 18:13:48 -03:00
hzakari
ec44485510
Optimize the two functions that return the number and the list of languages in a single function
2013-05-08 18:13:48 -03:00
Hamid ZAKARI
fab388c9fd
Add the headers to the adaptationsets segments if any one of these changed representation
2013-05-08 18:13:46 -03:00
Hamid ZAKARI
713d02b81a
Support Multi languages (need a decodebin2 patch)
2013-05-08 18:13:45 -03:00
Hamid ZAKARI
a4ac4a3117
Remove the "TODO" comment
2013-05-08 18:13:45 -03:00
David Corvoysier
3c937636ee
Renamed LICENSE into COPYING
2013-05-08 18:13:44 -03:00
David Corvoysier
79dc12cc05
Updated authors
2013-05-08 18:13:44 -03:00
David Corvoysier
6fc0db0e0b
Initial import of gstdashdemux sources
2013-05-08 18:13:43 -03:00
Tim-Philipp Müller
43fea50c8a
smoothstreaming: pass width, height, channels and rate as integer
...
g_ascii_strtoull() returns a long long integer, but we need to
pass a normal int to gst_structure_set() for fields of G_TYPE_INT,
so cast appropriately.
2013-05-08 15:42:01 +01:00
Tim-Philipp Müller
99c1dce8db
smoothstreaming: fix WMV caps
...
Makes this show at least a picture:
http://playready.directtaps.net/smoothstreaming/TTLSS720VC1/To_The_Limit_720.ism/Manifest
2013-05-08 10:55:16 +01:00
Thiago Santos
4711da22e9
mssdemux: fixing compiler warnings about print formats
2013-05-07 21:09:49 -03:00
Thiago Santos
4545f4bf4e
smoothstreaming: port to 1.0
2013-05-07 21:09:49 -03:00
Thiago Santos
001da5a239
mssdemux: remove already fixed TODO comment
2013-05-07 21:09:49 -03:00
Thiago Santos
210f6c510c
mssdemux: replace gst_value_deserialize with simpler function
...
The deserialization was only used to convert hex strings into
GstBuffers. Replace gst_value_deserialize with a simpler, direct
function.
2013-05-07 21:09:49 -03:00
Thiago Santos
1458500850
mssdemux: fix newsegment event leak
2013-05-07 21:09:48 -03:00
Thiago Santos
e541ec7e63
mssdemux: replace unused parameter
...
The buffer parameter wasn't being used, it was only to signal if
a buffer was downloaded and advance to the next fragment in the
manifest.
Replace the buffer with a boolean that has the same effect and is
safer
2013-05-07 21:09:48 -03:00
Wim Taymans
6d56eba653
mss: avoid GValue leak
2013-05-07 21:09:48 -03:00
Louis-Francis Ratté-Boulianne
f0b6b79461
mssdemux: fix a small memory leak
2013-05-07 21:09:48 -03:00
Louis-Francis Ratté-Boulianne
00400a838b
mssdemux: avoid streaming to fail when download is cancelled
...
When download was failing repeatedly, it was causing streaming to fail even though it was cancelled on purpose (stopping tasks).
2013-05-07 21:09:48 -03:00
Thiago Santos
b579cb1ddc
mssdemux: removing unused functions
2013-05-07 21:09:48 -03:00
Thiago Santos
1d28c574cf
mssdemux: switch bitrates without switching pads
2013-05-07 21:09:48 -03:00
Andre Moreira Magalhaes (andrunko)
c8367a346c
mssdemux: Check if pads are valid before removing.
2013-05-07 21:09:48 -03:00
Thiago Santos
bf0ea5d561
mssdemux: add a maximum error count for downloads
...
mssdemux will tolerate a few download errors before emitting an
error message to the bus
2013-05-07 21:09:48 -03:00
Thiago Santos
255eb4b161
mssdemux: use streams bitrate individually
...
connection setup times seem to matter when measuring the download
rate of different streams. Streams with longer fragments have a
*relatively* lower connection setup time and achieve higher bitrates.
Using the average seems unfair here, so use each stream's measured bitrate
to select its best quality option.
2013-05-07 21:09:48 -03:00
Thiago Santos
52c97834df
mssdemux: use downloadbitrate utility for measuring bitrate
...
downloadbitrate keeps a short history of bitrates and helps
tracking the current average download bitrate for mssdemux
2013-05-07 21:09:48 -03:00
Andre Moreira Magalhaes (andrunko)
68308b3e54
mssdemux: Properly compute new bitrate and use bitrate_limit.
2013-05-07 21:09:48 -03:00
Andre Moreira Magalhaes (andrunko)
706b127daa
mssdemux: Avoid a possible division by zero
2013-05-07 21:09:48 -03:00
Andre Moreira Magalhaes (andrunko)
28beb2ebd7
mssdemux: Add missing object param to GST_DEBUG|INFO_OBJECT calls
2013-05-07 21:09:48 -03:00
Thiago Santos
2219a3a1cc
mssdemux: add bitrate-limit property
...
It allows the plugin to use its own downloading bitrate measures
as a feedback to select the best streams bitrate for the current
network scenario
2013-05-07 21:09:48 -03:00
Thiago Santos
a0a05b2941
mssdemux: use the shared uridownloader lib instead of an internal copy
2013-05-07 21:09:47 -03:00
Andre Moreira Magalhaes (andrunko)
12e9432847
mssdemux: Do not block on reset.
...
We need to cancel the downloader for each stream before joining the main download task, otherwise
the download task will block until all the stream tasks finish.
2013-05-07 21:09:47 -03:00
Louis-Francis Ratté-Boulianne
8ab3d09f81
mssdemux: handle FLUSH events by resetting the demuxer state
2013-05-07 21:09:47 -03:00
Louis-Francis Ratté-Boulianne
4a630f86f8
mssdemux: add conditions to prevent some crashes
2013-05-07 21:09:47 -03:00
Louis-Francis Ratté-Boulianne
218f2dee0c
mssdemux: use standard glib methods
2013-05-07 21:09:47 -03:00
Louis-Francis Ratté-Boulianne
44d02efee0
mssdemux: fix some memory leaks and use right free function
2013-05-07 21:09:47 -03:00
Louis-Francis Ratté-Boulianne
b064910895
mssdemux: don't stop a task from inside the loop
...
Only pause the task
2013-05-07 21:09:47 -03:00
Louis-Francis Ratté-Boulianne
0239d77999
mssdemux: log manifest content for debugging
2013-05-07 21:09:47 -03:00
Louis-Francis Ratté-Boulianne
ea5f2718bf
mssdemux: make codec private data from manifest attributes with AAC-LC
...
When the codec is AAC-LC, some server implementation (e.g. Microsoft IIS) doesn't add the CodecPrivateData attribute. The element needs to re-create the codec data from the Quality Level attributes (channels and sampling rate).
2013-05-07 21:09:47 -03:00
Louis-Francis Ratté-Boulianne
3ebb842388
mssdemux: only try to reload the manifest for live streams
...
There is no way to know if a live stream is really finished, so try to reload the manifest and check if there are more fragments to download. Else just let know it's the EOS.
2013-05-07 21:09:47 -03:00
Thiago Santos
7cb3a367f6
mssdemux: add some documentation
...
Adds a little bit of docs explaning the internals of mssdemux
2013-05-07 21:09:47 -03:00
Thiago Santos
46efc08809
mssdemux: add max-queue-size-buffers property
...
Indicates how much buffering should be done internally in
mssdemux
2013-05-07 21:09:47 -03:00
Thiago Santos
23ad760e3a
mssdemux: stop tasks faster
...
Issue a cancel to the downloaders so they stop earlier
2013-05-07 21:09:47 -03:00
Thiago Santos
aa1713068a
mssdemux: implement live streams handling
...
Live streams force the demuxer to keep reloading the Manifest from
time to time, as the new fragments are being added as they are recorded.
The demuxer should also try to keep up and detect when it had to skip
fragments, marking the discont flag when that happens.
Curiously, the spec doesn't seem to mention when/how a live stream is supposed
to end, so keep trying downloads until the demuxer errors out.
2013-05-07 21:05:12 -03:00
Thiago Santos
0704f15103
mssdemux: do not leak fragments
2013-05-07 21:05:12 -03:00
Thiago Santos
21872e78b8
mssdemux: fix issue on fragment timestamping parsing
...
Use guint64 as the fragments can start at very high numbers,
specially on live streams
2013-05-07 21:05:12 -03:00
Thiago Santos
0a4c077d2e
mssdemux: error out when upstream doesn't implement URI query
...
Error out when upstream doesn't answer to URI query and mssdemux
doesn't know the URI to fetch the fragments from
2013-05-07 21:05:12 -03:00
Thiago Santos
1116eee681
mssdemux: push newsegments with same start time on bitrate switches
...
This keeps sinks working in sync after a bitrate switch
2013-05-07 21:05:12 -03:00
Thiago Santos
c2ae981e6d
mssdemux: rewriting pad tasks so that buffers are pushed by ts order
...
Use pad tasks to download data and an extra task that gets the earlier
buffer (with the smallest timestamp) and pushes on the corresponding
pad.
This prevents that the audio stream rushes ahead on buffers as its
fragments should be smaller
2013-05-07 21:05:12 -03:00
Thiago Santos
fba63178fe
mssdemux: some fixes to bitrate switching
...
Removes a possible deadlock from bitrate switching when the pad
that requested the switch blocks on its pad-push
2013-05-07 21:05:12 -03:00
Thiago Santos
6ca10e6c1b
mssdemux: refactoring fragment download to its own function
...
Makes code clearer and helps changing the download part of the
code to its own thread
2013-05-07 21:05:11 -03:00
Thiago Santos
da4fad2f6f
mssdemux: implement bitrate switching
...
When connection-speed changes, signal that we might need a bitrate
switch. During the switch, a new pad group is added and the old one
is drained and removed.
New pads also need to push newsegments before starting to stream
2013-05-07 21:05:11 -03:00
Thiago Santos
b9aec0ad0d
mssdemux: add connection-speed property
...
This speed limits the maximum bitrate of streams. Currently it
is only read when starting the pipeline, but it should be used
for switching bitrates during playback to adapt to network
changes.
2013-05-07 21:05:11 -03:00
Thiago Santos
4b6900999a
mssdemux: add an 'active' flag to manifest stream
...
mssdemux should set the streams it has exposed as active so that
the manifest won't use the non-active streams to compute total bitrates
or providing fragments
2013-05-07 21:05:11 -03:00
Thiago Santos
4726115e83
mssdemux: signal no-more-pads when finished exposing pads
...
This makes decodebin/playbin mechanism know it can start playing
when buffering is finished
2013-05-07 21:05:11 -03:00
Thiago Santos
eec8164d9c
mssmanifest: Keep the stream qualities list sorted by bitrate
...
This will help making adaptive streaming chose the best rate
for a particular connection speed
2013-05-07 21:05:11 -03:00
Thiago Santos
013c11f7dd
mssdemux: also consider fourcc AVC1 as H264
...
H264 can be represented by both fourccs H264 and AVC1, use both.
2013-05-07 21:05:11 -03:00
Thiago Santos
4293cfa763
mssmanifest: add support for VC-1 and WmaPro formats parsing
...
VC-1 should map to WMV3 and WmaPro to WMA2
2013-05-07 21:05:11 -03:00
Thiago Santos
3f2409f7e2
mssdemux: do not try to expose unknown streams
...
When the stream can't have its caps detected, better not to expose it.
If no streams are known, signal an error about no playable streams to
the application
2013-05-07 21:05:11 -03:00
Thiago Santos
b2ba96bb85
mssmanifest: do not set codec_data when it is empty
...
Some manifests contain empty codec datas, better not set them
2013-05-07 21:05:11 -03:00
Thiago Santos
9b3f67c5b0
mssdemux: set timestamp and duration to fragment buffers
...
We can get those from the manifest and helps downstream to know
the fragment start time after a seeking operation
2013-05-07 21:05:11 -03:00
Thiago Santos
ebd0862ac1
mssmanifest: fix typo
...
Fix typo that was making the advance fragment function return a wrong
flow return in case it was already EOS
2013-05-07 21:05:11 -03:00
Thiago Santos
cb7e3d1f3b
mssdemux: initial implementation of seek event handling
...
Adds basic handling for seek in time events. Needs to cooperate
with the downstream qtdemux so that it forwards the seeks and
the corresponding newsegments
2013-05-07 21:05:11 -03:00
Thiago Santos
33d872916b
mssdemux: handle src pad queries fir duration and latency
...
Add a src pad query handler to get the duration from the manifest
and report it upstream.
Also adds a simple handler for latency queries
2013-05-07 21:05:11 -03:00
Thiago Santos
0f1ef317f0
mssdemux: add some more error handling
...
Post error in some more scenarios:
* when the manifest has no streams
* when getting the fragment url fails
2013-05-07 21:05:11 -03:00
Thiago Santos
3f15c9b05a
mssdemux: add timescale to the caps
...
This is important for downstream to properly timestamp the samples
The default value is 10000000, but this can be set in the stream
or at the top-level manifest entry
2013-05-07 21:05:10 -03:00
Thiago Santos
68d2719c9f
mssdemux: parse the fps from h264 codec data if possible
...
Use h264 codec parsing lib to extract the fps from the manifest's
codec data as it doesn't seem to provide it anywhere else
2013-05-07 21:05:10 -03:00
Thiago Santos
af4c690995
mssdemux: correctly add h264 codec data to caps
...
Need to construct an avcc atom from the codecdata read from MSS
manifests to make h264 decoders/parsers accept it
2013-05-07 21:05:10 -03:00
Thiago Santos
edea61b758
mssdemux: add the correct caps to the outgoing stream
...
mssdemux outputs a quicktime variant, named mss-fragment
2013-05-07 21:05:10 -03:00
Thiago Santos
32d8a72bfc
mssdemux: set caps to buffers before pushing
...
Also update to the latest gstfragment API that provides
the fragment as a whole buffer.
2013-05-07 21:05:10 -03:00
Thiago Santos
91dd173f3c
mssdemux: improve state changing
...
Keep a ref on pad to prevent it being unreffed while the mssdemux
streams are still using it. Also reset the element when going to
ready instead of when going to null.
2013-05-07 21:05:10 -03:00
Thiago Santos
b4f994d47c
mssdemux: adds mininum error handling
...
This should care for basic scenarios of errors and EOS to allow
the pipeline to stop correctly
2013-05-07 21:05:10 -03:00
Thiago Santos
96522f474c
mssdemux: mssmanifest: prevent accessing null stream fragment
...
Move the access to the stream fragment data after the check
if the fragment exists to prevent a segfault
2013-05-07 21:05:10 -03:00
Thiago Santos
ca4e5c34cb
smoothstreaming: refactor structure names and implement url fetching
...
Use shorter names for the MSS manifest helper structure and functions.
Also continues the implementation of the stream fetching and pushing loop.
Now it uses the base url correctly and already fetches and pushes the fragments
downstream
2013-05-07 21:05:10 -03:00
Thiago Santos
7ceb023682
mssdemux: initial implementation of the pad loop
...
The loop will fetch a new fragment and push on its srcpad. Each
stream has its own loop
2013-05-07 21:05:10 -03:00
Thiago Santos
6b63a7dc81
mssdemux: more manifest parsing and helper functions
...
Now the mss manifest is able to generate the files urls
2013-05-07 21:05:10 -03:00
Thiago Santos
5291985efe
mssdemux: pad exposing initial implementation
...
Does some basic parsing of the stream caps and adds a pad for
each stream detected in the manifest
2013-05-07 21:05:10 -03:00
Thiago Santos
72b05c0051
mssdemux: add manifest parsing
...
Continued implementing:
1) parse the manifest with libxml2
2) detect stream types
2013-05-07 21:05:10 -03:00
Thiago Santos
95e87fbee9
smoothstreaming: stubs for mssdemux
...
Just the stubs for mssdemux element.
Also add some useful code from hlsdemux that we intend to reuse
2013-05-07 21:05:10 -03:00
Thiago Santos
ef25e05b7c
smoothstreaming: build directory stubs for new plugin
...
Initial build structure for MS' Smooth Streaming plugin
Conflicts:
ext/Makefile.am
2013-05-07 20:02:41 -03:00
Stefan Sauer
7aeed2d79d
ladspa: sync controlled parames in filters and sinks
2013-05-03 21:46:53 +02:00
Sebastian Dröge
a845d6d0db
ladspa: Add $(GMODULE_NO_EXPORT_LIBS) for gmodule
2013-05-03 16:55:00 +02:00
Juan Manuel Borges Caño
70e208d08e
ladspa: improved port to gstreamer 1.0
...
Fixes : #698927
2013-05-03 12:36:44 +02:00
Tim-Philipp Müller
9056e775a9
kate: fix buffer leak in katetag
...
Makes unit test valgrind clean.
https://bugzilla.gnome.org/show_bug.cgi?id=697071
2013-04-27 12:28:58 +01:00
Tim-Philipp Müller
de3bd76051
kate: minor cleanup
2013-04-27 12:06:28 +01:00
Sebastian Dröge
9f25db0981
eglglessink: Use gst_egl_display_get() instead of passing a GstEGLDisplay to EGL functions
2013-04-24 09:40:24 +02:00
Tim-Philipp Müller
4b256e729e
tests: fix remaining kate tests
...
https://bugzilla.gnome.org/show_bug.cgi?id=697071
2013-04-23 01:17:56 +01:00
Thiago Santos
b40c9ff39a
eglglessink: eagl: fix eagl reuse by not releasing the context
...
It seems EAGL expects the application to simply ignore unused
EAGL contexts as the resources for it would be released when a new
context is set as the current one. Also move the egl extensions
querying to after a context is set to prevent crashes.
This makes the EAGL version of eglglessink reusable.
2013-04-19 08:45:02 +02:00
Sebastian Dröge
baa9754f6f
eglglessink: Give only SECONDARY rank
...
If available we still prefer xvimagesink.
2013-04-18 15:27:11 +02:00
Josep Torra
87f2bae822
eglglessink: fixes 'makes integer from pointer without a cast' warning
2013-04-18 12:54:31 +02:00
Josep Torra
1190a79b19
eglglessink: silence warnings building for RPI related to 'vcos_*'
2013-04-18 12:53:28 +02:00
Josep Torra
9a88d737fc
eglglessink: fix warnings building on the RPI
2013-04-18 12:35:55 +02:00
Sebastian Dröge
a8cca17027
eglglessink: Fix GstContext refcounting some more
2013-04-17 13:48:28 +02:00
Sebastian Dröge
f398742608
eglglessink: Fix GstContext refcounting
2013-04-17 13:16:27 +02:00
Sebastian Dröge
e8ad67f2b4
eglglessink: Update for GLTextureUploadMeta and EGL API changes
2013-04-17 10:51:18 +02:00
Sebastian Dröge
92e9988a40
eglglessink: Reorder surface queries
...
Otherwise wrong values can be returned.
2013-04-16 22:51:18 +02:00
Sebastian Dröge
118f8f33ef
eglglessink: Properly set a debug category for the adaption layers
2013-04-16 22:25:19 +02:00
Sebastian Dröge
9fdec0f83b
eglglessink: Get the EGL/GLES extensions at the right position
2013-04-16 22:25:02 +02:00
Sebastian Dröge
0fe6fbd677
eglglessink: Fix compiler warning
...
gstegladaptation_egl.c: In function 'gst_egl_adaptation_create_native_window':
gstegladaptation_egl.c:868:3: error: format '%p' expects argument of type 'void *', but argument 8 has type 'EGLNativeWindowType' [-Werror=format=]
GST_DEBUG_OBJECT (ctx->element, "Using window handle %p", window);
^
2013-04-16 22:14:09 +02:00
Thiago Santos
149cb5a7cf
eglglessink: refactor to allow eagl support
...
Put EGL specific code to a separate file and create the same functions
for EAGL, the Apple's specific EGL implementaton.
At this point, the EAGL version wasn't compiled or tested as there isn't
any simple documented way to build 1.0 for iOS. This code for the EAGL
version is still the 0.10 version, some updates should be made when 1.0
is buildable for iOS.
2013-04-16 16:04:35 -03:00
Thiago Santos
0fafdf8db1
eglglessink: refactor egl functions/data to a separate file
...
This is part of the changes required to make
eglglessink work with both EGL and Apple's EAGL
2013-04-16 15:58:12 -03:00
Sebastian Dröge
0f10fb622e
eglglessink: Print EGL/GLES extensions after we are actually initialized enough
2013-04-16 16:30:08 +02:00
Sebastian Dröge
e51cd4fe2f
gst: Add better support for static plugins
2013-04-15 15:59:22 +02:00
David Schleef
2b160f516a
mpg123: Add conditional on API version for new enum
2013-04-15 00:25:16 -07:00
Sebastian Dröge
611ab7f744
eglglessink: Fix compiler warnings
...
gsteglglessink.c: In function 'gst_eglglessink_fill_texture':
gsteglglessink.c:1815:3: error: format '%d' expects argument of type 'int', but argument 11 has type 'gsize' [-Werror=format]
gsteglglessink.c: In function 'gst_eglglessink_configure_caps':
gsteglglessink.c:2850:3: error: format '%p' expects argument of type 'void *', but argument 8 has type 'EGLNativeWindowType' [-Werror=format]
2013-04-15 08:48:19 +02:00
Tim-Philipp Müller
1dd53d64e8
kate: only send decoder output caps once or when the format changes
...
and not for every single buffer. And also send a caps
event for spu output.
https://bugzilla.gnome.org/show_bug.cgi?id=697071
2013-04-15 00:54:10 +01:00
Tim-Philipp Müller
a3ad6eaf2d
kate: fix decoder output caps
...
It's either pango-markup or utf8, never both at the same time.
https://bugzilla.gnome.org/show_bug.cgi?id=697071
2013-04-15 00:54:00 +01:00
Tim-Philipp Müller
46f979a839
kate: mark header buffers as such
2013-04-15 00:54:00 +01:00
Tim-Philipp Müller
8da7230c88
kateenc: save current input format in setcaps
2013-04-15 00:54:00 +01:00
Tim-Philipp Müller
b8d4b6f3bd
kate: fix printf format strings and disable tiger element
2013-04-15 00:54:00 +01:00
Brendan Long
b261bd516f
kate: port Kate subtitles to 1.0
...
https://bugzilla.gnome.org/show_bug.cgi?id=697071
2013-04-15 00:53:48 +01:00
Olivier Crête
4a9c3d4f16
srtpdec: Don't stop on invalid buffer
2013-04-09 21:37:25 -04:00
Olivier Crête
3bf994eb3b
srtpdec: Cleaner stream cleanup
2013-04-09 21:37:25 -04:00
Olivier Crête
4b89870a58
srtpdec: Don't crash on invalid cipher
2013-04-09 21:37:24 -04:00
Tim-Philipp Müller
5beefc66cd
ext: printf format fixes in debug and error messages
2013-04-08 17:40:14 +01:00
Todd Agulnick
71743d13c4
handdetect: fix build on OS/X
...
gsthanddetect.h:84: error: expected specifier-qualifier-list before 'uint'
https://bugzilla.gnome.org/show_bug.cgi?id=697305
2013-04-05 09:41:26 +01:00
Edward Hervey
725f8dc1f7
rsvg: Bump minimum requirement to 2.36.0
...
And handle header changes in 2.36.2
2013-04-03 14:57:23 +02:00
David Schleef
94ed6caec4
rtmpsrc: Implement basesrc->unlock()
...
This fixes ->NULL transition problems if librtmp is stuck in a
recv or send call that never returns.
2013-04-01 19:53:01 -07:00
Sebastian Dröge
1acde42b6e
eglglessink: Use the EGLImage and GstVideoGLTextureUploadMeta caps features
2013-04-01 10:22:07 +02:00
Edward Hervey
e6041b9974
rsvg: Don't include rsvg-cairo.h directly
...
Including it directly is now deprecated
2013-04-01 09:13:16 +02:00
Luciana Fujii Pontello
9097da30e8
rsvg: Port to 1.0
...
Also port the decoder to the GstVideoDecoder
2013-03-31 19:23:30 +02:00
Sebastian Dröge
95f819109f
eglglessink: Use gst_element_get_context() wherever possible
2013-03-31 11:47:01 +02:00
Sebastian Dröge
ce9b6e5afb
eglglessink: Implement GstContext handling
2013-03-29 16:38:34 +01:00
Sebastian Dröge
9e2af116f6
eglglessink: Use a separate texture for the custom textures
2013-03-29 16:11:56 +01:00
Sebastian Dröge
3233c6163a
eglglessink: Add support for GstVideoGLTextureUploadMeta
2013-03-29 16:07:23 +01:00
Olivier Crête
c42ac5b450
srtp: Update example pipelines
2013-03-28 14:35:48 -04:00
Tim-Philipp Müller
a028a05054
sbc: port encoder to GstAudioEncoder
...
https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-03-27 22:40:56 +00:00
Tim-Philipp Müller
ca9daee444
sbc: port decoder to GstAudioDecoder
...
https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-03-27 22:40:56 +00:00
Tim-Philipp Müller
fecddde2c2
sbc: import sbc decoder/encoder from bluez and port to 1.0
...
https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-03-27 22:40:56 +00:00
Tim-Philipp Müller
89bbcdea39
Merge SBC decoder and encoder from bluez
...
https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-03-27 22:40:55 +00:00
Tim-Philipp Müller
50643d6192
sbc: remove parser in favour of new GstBaseParse-based sbcparse in -good
2013-03-27 22:21:30 +00:00
Wim Taymans
91f4b15490
sbc: sbcdec: make decoder more performant
...
Use an adapter to accumulate input buffers.
Decode all input in one output buffer when possible to reduce the amount of push
operations.
2013-03-27 22:21:17 +00:00
Wim Taymans
dcb57780ef
sbc: sbcdec: skip the frame on decoding error
2013-03-27 22:21:17 +00:00
Wim Taymans
a559bb7060
sbc: sbcdec: set DISCONT on outgoing buffers.
2013-03-27 22:21:17 +00:00
Wim Taymans
beaeeafb4d
sbc: sbcdec: handle DISCONT and timestamps
...
Reset state on discont.
Interpollate timestamps.
2013-03-27 22:21:17 +00:00
Arun Raghavan
32154c5ae6
sbc: audio: Make the sbcdec element copy buffer metadata
...
Makes sure we don't lose timestamps, etc.
2013-03-27 22:21:17 +00:00
Wim Taymans
7e65f96acb
sbc: enc: sbc_get_frame_duration is in milliseconds
2013-03-27 22:21:17 +00:00
Wim Taymans
9581e704b6
sbc: dec: chain up to parent before downward state change
2013-03-27 22:21:17 +00:00
Arun Raghavan
c6f6cc736f
sbc: audio: Fix a leak in sbcdec
2013-03-27 22:21:17 +00:00
Arun Raghavan
dace80cc41
sbc: audio: Initialise SBC data before use in sbcparse element
2013-03-27 22:21:17 +00:00
Anderson Lizardo
6979975963
sbc: Fix trivial coding style issues on pointer declarations and casting
...
Avoid using C++ style pointer declarations like "char* ptr", as most
BlueZ code uses "char *ptr".
2013-03-27 22:21:17 +00:00
Syam Sidhardhan
142a5fb637
sbc: audio: Fix newline before EOF
2013-03-27 22:21:17 +00:00
Lucas De Marchi
b31ee7bffc
sbc: Fix common misspelled words
...
Accounting of misspelled words, as detected by codespell:
acording 2
ancilliary 1
appropiate 1
atribute 1
cant 1
comming 2
gracefull 1
lenght 1
mispelled 1
occured 1
occurences 1
ocurred 3
prefered 1
presense 1
reponse 1
seperate 1
succesful 1
successully 1
sucessfull 1
sucessfully 1
2013-03-27 22:21:17 +00:00
Marcel Holtmann
5514d457a1
sbc: audio: Remove workaround for compiler warnings
2013-03-27 22:21:17 +00:00
Marcel Holtmann
df140f7852
sbc: Add pragma based workaround for GStreamer warnings
2013-03-27 22:21:17 +00:00
Marcel Holtmann
1ddbdc3e7a
sbc: Update copyright information
2013-03-27 22:21:16 +00:00
Luiz Augusto von Dentz
d4fd8f3ecd
sbc: Remove unused variable.
2013-03-27 22:21:16 +00:00
Luiz Augusto von Dentz
c985a85cf2
sbc: Remove unused variable.
2013-03-27 22:21:16 +00:00
Marcel Holtmann
db16c0332c
sbc: Fix signed/unsigned comparison issue within GStreamer plugin
2013-03-27 22:21:16 +00:00
Siarhei Siamashka
3f994a84bb
sbc: Use native byte order for audio in GStreamer and ALSA plugins
...
This fixes endianness inconsistency between default SBC
configuration and GStreamer/ALSA.
2013-03-27 22:21:16 +00:00
Marcel Holtmann
a3bf74686a
sbc: Update copyright information
2013-03-27 22:21:16 +00:00
Marcel Holtmann
54f6cd0218
sbc: First attempt in fixing compiler warnings (still needs cleanup)
2013-03-27 22:21:16 +00:00
Marcel Holtmann
57f6f2655d
sbc: Assign variables after declarations
2013-03-27 22:21:16 +00:00
Johan Hedberg
7ae0c70682
sbc: More coding style fixes
2013-03-27 22:21:16 +00:00
Luiz Augusto von Dentz
266cfb11b4
sbc: Fix runtime warnings of gstreamer plugin.
2013-03-27 22:21:16 +00:00
Luiz Augusto von Dentz
834a9b193b
sbc: Update gstreamer plugin to use new sbc API.
2013-03-27 22:21:16 +00:00
Luiz Augusto von Dentz
ccf5d9ea7e
sbc: Make use of parameters selected in alsa plugin and fix auto selection.
2013-03-27 22:21:16 +00:00
Marcel Holtmann
5be53d24ab
sbc: Update copyright information
2013-03-27 22:21:16 +00:00
Luiz Augusto von Dentz
937066575a
sbc: Add bitpool property and others fixes for gstreamer plugin.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
10325f3604
sbc: Enable gstreamer plugin to use autoconnect flag.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
2a5e58f44f
sbc: Fixes gstreamer caps and code cleanup.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
ad24bafb62
sbc: Fix gtreamer payloader sending fragmented frames.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
84dcb6bb34
sbc: Add mp3 support for gstreamer plugin.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
76c77b1c60
sbc: Make a2dpsink to act like a bin and split the payloader.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
6a34433dd8
sbc: Code cleanup.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
742f952688
sbc: Integrate new ipc API implementation.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
2a21d83ce0
sbc: Add sbc_reinit.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
946d564292
sbc: Fix bug in sbcenc when changing encoder parameters.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
97fcf537cd
sbc: Make sbc codec to write directly in application buffers and so avoiding memcpys.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
6f87580cfa
sbc: Fix sbc negotiation and improves buffer handling by using GstAdapter.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
5672836c61
sbc: Fix buffers timestamps in sbcenc.
2013-03-27 22:21:15 +00:00
Luiz Augusto von Dentz
a2152f6c12
sbc: Add bitpool capability.
2013-03-27 22:21:15 +00:00
Marcel Holtmann
f2441fe654
sbc: Some more coding style changes
2013-03-27 22:21:15 +00:00
Marcel Holtmann
d1062c97d1
sbc: Don't forget to include the config options
2013-03-27 22:21:15 +00:00
Marcel Holtmann
cd3e730aeb
sbc: Fix coding style issues
2013-03-27 22:21:14 +00:00
Luiz Augusto von Dentz
8f8ccc0f12
sbc: Fix coding style issues.
2013-03-27 22:21:14 +00:00
Luiz Augusto von Dentz
01b0530663
sbc: Fixes sbcparser element.
2013-03-27 22:21:14 +00:00
Luiz Augusto von Dentz
f88c9d5555
sbc: Fixes for gstsbcenc.
2013-03-27 22:21:14 +00:00
Luiz Augusto von Dentz
c5668f1e45
sbc: Add gstsbcutil.c and gstsbcutil.h.
2013-03-27 22:21:14 +00:00
Marcel Holtmann
e590dc56dc
sbc: Force LITTLE_ENDIAN instead of BYTE_ORDER for now
2013-03-27 22:21:14 +00:00
Marcel Holtmann
85874338ff
sbc: Implement full parsing support
2013-03-27 22:21:14 +00:00
Marcel Holtmann
5488f2bf13
sbc: Add mode property to the encoder
2013-03-27 22:21:14 +00:00
Marcel Holtmann
fa031b3fe0
sbc: Implement full encoding support
2013-03-27 22:21:14 +00:00
Marcel Holtmann
1f88ce2dca
sbc: Fix class variable naming
2013-03-27 22:21:14 +00:00
Marcel Holtmann
7a231ada07
sbc: Limit the supported output rates
2013-03-27 22:21:14 +00:00
Marcel Holtmann
36f952b627
sbc: Implement full decoding support
2013-03-27 22:21:14 +00:00
Marcel Holtmann
974757b2f7
sbc: Add SBC encoder and decoder skeletons for GStreamer
2013-03-27 22:21:14 +00:00
Olivier Crête
ed7f675966
srtp: Fix filter handling in caps negotiation to keep filter content
2013-03-25 13:48:56 -04:00
Wim Taymans
c2966fce30
fluidsynth: rename to fluiddec
...
Rename the fluidsynth plugin to fluidsynthmidi and the decoder
to fluiddec to avoid conflicts with buzztard.
2013-03-22 15:24:20 +01:00
Wim Taymans
2bd4712efd
fluidsynth: fix debug of segment structure
2013-03-22 13:48:26 +01:00
Wim Taymans
f5230ab8ec
fluidsynth: handle discont
2013-03-22 13:48:03 +01:00
Wim Taymans
87041064f8
fluidsynth: reset on flush and state change
2013-03-22 12:16:45 +01:00
Wim Taymans
d09a72029c
fluidsynth: add properties
...
Add properties.
Try to find a good default soundfont when not specified.
2013-03-22 11:04:10 +01:00
Wim Taymans
30585c8f8e
fluidsynth: log midi tick event
2013-03-22 08:54:54 +01:00
Wim Taymans
64498c576b
fluidsynth: redirect logging to gst logging functions
2013-03-22 08:54:32 +01:00
Wim Taymans
a6e5a26be2
fluidsynth: improve debug
2013-03-21 18:17:40 +01:00
Wim Taymans
5256b6bf89
fluidsynth: produce more accurate timestamps
2013-03-21 17:05:36 +01:00
Wim Taymans
76080b78af
fluidsynth: add more debug
2013-03-21 14:57:43 +01:00
Wim Taymans
73824e0ea7
fluidsynth: add fluidsynth midi renderer
...
Add a fluidsynth element that converts midi events into raw
float samples.
2013-03-21 07:21:41 +01:00
Tim-Philipp Müller
f479401fd3
Dist hls as well
2013-03-20 15:25:55 +00:00
Wim Taymans
66d0d86e78
wildmidi: fix event and query handler
...
Call the default implementation for unknown events and queries.
Fix event leak.
2013-03-19 13:54:00 +01:00
Alessandro Decina
d2d6798087
Make the hls plugin depend on gnutls and move to ext/hls/
...
gnutls is used to implement AES decryption
2013-03-19 10:54:18 +01:00
Wim Taymans
4a44dc5ecf
port wildmidi
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696041
2013-03-19 10:15:05 +01:00
Jose Antonio Santos Cadenas
ea2332c466
srtp: fix compilation warning returning NULL in case of error
...
https://bugzilla.gnome.org/show_bug.cgi?id=695897
2013-03-15 11:04:39 +00:00
Jose Antonio Santos Cadenas
2347c4e711
srtp: use constant AES_128_ICM instead of AES_ICM that is not found
...
https://bugzilla.gnome.org/show_bug.cgi?id=695897
2013-03-15 11:04:29 +00:00
Sebastian Dröge
86363b4f39
eglglessink: Add support for different EGLImage orientations
2013-03-13 13:02:07 +01:00
Sebastian Dröge
d5f15cf3a2
eglglessink: Add RGBA to the caps again
2013-03-13 11:10:02 +01:00
Olivier Crête
4eb960d6c3
srtp: Add SRTP plugin based on libsrtp
...
In large part the work of Gabriel Millaire
2013-03-12 20:01:50 -04:00
Sebastian Dröge
71768daceb
eglglessink: Make sure the buffer is released to the pool if it's the last used one
2013-03-12 19:36:12 +01:00
Sebastian Dröge
bd8963f591
eglglessink: There are only two GLSL programs, not three
2013-03-07 11:58:25 +01:00
Sebastian Dröge
0931724767
eglglessink: gst_buffer_pool_config_get_allocator() does *not* return a new reference to the allocator
...
Different to gst_query_get_n_allocation_params() which does
2013-03-07 11:51:06 +01:00
Sebastian Dröge
c4fc3428eb
eglglessink: Fix allocation of RGBA textures
2013-03-06 17:53:18 +01:00
Sebastian Dröge
a50700404a
eglglessink: Make sure to set the NO_SHARE flag on the EGLImage memories
...
See https://bugzilla.gnome.org/show_bug.cgi?id=695203
2013-03-06 10:53:59 +01:00
Sebastian Dröge
ebe5849443
eglglessink: Always use an RGBA configuration
2013-03-05 12:47:07 +01:00
Sebastian Dröge
a2e89b0858
eglglessink: Properly negotiate an allocator
2013-03-03 12:31:05 +01:00
Sebastian Dröge
a47f52bb96
egl: Mark memory as not mappable if it isn't
2013-03-03 12:31:05 +01:00
Sebastian Dröge
106a0f09af
eglglessink: Store a reference to the last_buffer if using EGLImages
2013-03-03 12:31:05 +01:00
Sebastian Dröge
196223b810
eglglessink: Fix compiler warning on RPi
2013-03-03 12:31:05 +01:00
Sebastian Dröge
e852f18e93
eglglessink: Port to new EGL library
2013-03-03 12:31:04 +01:00
Sebastian Dröge
f9eccfe015
egl: Move configure checks around and re-use for eglglessink plugin
2013-03-03 12:31:04 +01:00
Sebastian Dröge
ec19fa930c
eglglessink: Fix GST_ERROR_OBJECT() parameters
2013-03-03 12:29:24 +01:00
Tim-Philipp Müller
dec865b2ff
opencv: use pkgdatadir locally to construct path for custom haar cascades
...
https://bugzilla.gnome.org/show_bug.cgi?id=685655
2013-03-01 00:14:54 +00:00
Sreerenj Balachandran
757e7c25bf
opencv: port handdetect element to 1.0 and add to build
...
https://bugzilla.gnome.org/show_bug.cgi?id=685655
2013-03-01 00:14:54 +00:00
Andol Li
7faa44057e
opencv: add handdetect plugin, initial implementation
...
The handdetect plugin is for detecting hand gestures using
opencv.
It was created in the course of the Google Summer of Code.
https://bugzilla.gnome.org/show_bug.cgi?id=685655
2013-03-01 00:14:54 +00:00
Sebastian Dröge
4f638c720a
eglglessink: gst_video_sink_center_rect() takes the structs itself instead of pointers as first parameters
2013-02-28 12:04:50 +01:00
Sebastian Dröge
31bed4c27d
eglglessink: Fix aspect-ratio issues caused by scaling on RPi
2013-02-28 11:29:24 +01:00
Sebastian Dröge
d875858167
eglglessink: Close the dispman display on RPi after usage
2013-02-13 15:22:37 +01:00
Sebastian Dröge
3876a7f9e6
eglglessink: For RPi, initialize bcm_host in plugin_init()
2013-02-13 15:22:37 +01:00
Julian Scheel
f337777eb5
eglglessink: Add bcm/Raspberry Pi support.
...
This adds a video platform backend for the dispmanx display manager used by
broadcom and the Raspberry Pi.
Signed-off-by: Julian Scheel <julian@jusst.de>
2013-02-13 12:38:31 +01:00
Tim-Philipp Müller
fced457ad4
swfdec: remove
...
The swfdec project is dead, and this plugin was
never really useful because of the way swf works.
Remove it before someone accidentally ports it.
2013-02-11 23:29:59 +00:00
Tim-Philipp Müller
e3afe460a4
Add cog to cruft list and remove some more leftover files
2013-02-11 22:50:15 +00:00
David Schleef
3cddc007cb
cog: remove cog plugin
...
Everything has been merged into other elements.
2013-02-11 12:30:29 -08:00
Wim Taymans
6c4029357c
opusdec: clear the state of the decoder
...
Set the channels and rate back to their default values in _stop because they
are used to renegotiate when needed.
See https://bugzilla.gnome.org/show_bug.cgi?id=692950
2013-02-11 11:12:35 +01:00
Marc Leeman
b28870150b
rsvgoverlay: deprecated GStaticMutex -> GMutex
...
Element needs porting though.
https://bugzilla.gnome.org/show_bug.cgi?id=693322
2013-02-09 19:41:29 +00:00
Wim Taymans
de648b8832
opuspay: fix timestamps
...
Copy timestamps to payloaded buffer.
Avoid input buffer memory leak.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692929
2013-01-31 12:33:23 +01:00
Tim-Philipp Müller
32893dd95e
opusenc: fix crash when setting "cbr" property when encoder is not running yet
...
https://bugzilla.gnome.org/show_bug.cgi?id=692698
2013-01-28 14:12:56 +00:00
Patricia Muscalu
4202eeff7d
curltlssink: set correct level of SSL for the transfer
...
https://bugzilla.gnome.org/show_bug.cgi?id=692010
2013-01-22 10:55:14 +00:00
Arnaud Vrac
8d837cbac4
assrender: reenable unit tests and up rank to primary again
2013-01-22 00:24:52 +00:00
Arnaud Vrac
143c0cbd45
assrender: use overlay composition to blit subtitles on video frames
...
Re-uses existing blitting code and also means we can support
a lot more video formats out of the box, hence avoid unnecessary
pixel format or colour space conversions.
https://bugzilla.gnome.org/show_bug.cgi?id=692012
2013-01-22 00:24:31 +00:00
Arnaud Vrac
5f91366553
assrender: render overlay composition if supported downstream
...
This allows rendering ASS subtitles on top of video when
using hardware-accelerated video decoders based on e.g.
VA-API or VDPAU.
https://bugzilla.gnome.org/show_bug.cgi?id=678389
https://bugzilla.gnome.org/show_bug.cgi?id=692012
2013-01-22 00:24:25 +00:00
Arnaud Vrac
30222d6080
assrender: add wait-text property
...
This is the same property as in the pango element, to allow waiting for
text on the text pad before rendering the video.
https://bugzilla.gnome.org/show_bug.cgi?id=692012
2013-01-22 00:24:20 +00:00
Arnaud Vrac
c78714ced3
assrender: fix some subtitles being ignored
...
https://bugzilla.gnome.org/show_bug.cgi?id=692012
2013-01-22 00:24:17 +00:00
Arnaud Vrac
c16d41d709
assrender: refactor code to avoid duplication
...
https://bugzilla.gnome.org/show_bug.cgi?id=692012
2013-01-22 00:24:13 +00:00
Arnaud Vrac
61976b7aa7
assrender: proxy allocations on video pad
...
Forward allocation queries on video sink pad instead
of discarding them.
This allows the upstream elements to use the allocation
parameters or pools from the downstream elements like
videosink.
https://bugzilla.gnome.org/show_bug.cgi?id=692012
2013-01-22 00:24:06 +00:00
Olivier Crête
81b452ba5d
dtmf/spandsp: Move dtmfdetect to use libspandsp
...
Remove our copy of the tone_detect.c file and use the original
from libspandsp. Also move the element to the spandsp plugin.
2013-01-09 20:05:16 -05:00
Tim-Philipp Müller
4c76427ba7
resindvd: handle non-utf8 dvd disc titles better
...
Maybe something based on the code in bug #688367
and the language encodings would work even better
though (now it will try things based on the locale).
https://bugzilla.gnome.org/show_bug.cgi?id=690097
2013-01-07 10:37:53 +00:00
Tim-Philipp Müller
8436a7d8ae
jasper: remove jasper jpeg2000 plugin, replaced by openjpeg plugin
...
libjasper isn't really maintained any longer, we probably
don't want to port this.
2013-01-07 10:36:45 +00:00
Sebastian Dröge
1b88d7cada
eglglessink: Don't return EGLImages that we just rendered from the buffer pool
...
Mapping them will fail because they're still internally used.
2013-01-03 17:28:49 +01:00
Sebastian Dröge
2aefc09248
eglglessink: Handle copying of GstMemory properly
...
We have to use the default video meta mapping functions.
2013-01-03 15:22:38 +01:00
Sebastian Dröge
b244151f85
eglglessink: Make sure to always use the correct GstMemory for buffers from our pool
2013-01-03 12:08:39 +01:00
Sebastian Dröge
e8b4815783
eglglessink: Don't forget to call the platform specific EGLImage free function
2013-01-03 11:07:06 +01:00
Sebastian Dröge
c6d9191abe
eglglessink: Make sure to wait for the right object to be dequeued
2013-01-03 10:43:43 +01:00
Sebastian Dröge
79144b7cea
eglglessink: Remove packed YUV support
...
This will not allow zero-copy because the same
EGLImage would need to be used for two different
textures with a different format.
2013-01-02 16:10:20 +01:00
Sebastian Dröge
9e1faac4df
eglglessink: Log in the performance category if we map/copy EGLImages to normal memory
2013-01-01 12:05:03 +01:00
Sebastian Dröge
1ad5e5b329
eglglessink: Catch errors from glEGLImageTargetTexture2DOES()
2013-01-01 10:48:53 +01:00
Sebastian Dröge
1fbea3e39d
eglglessink: Upload textures in GstBaseSink::prepare() already
...
This gives more time for the texture to be uploaded as it happens
before syncing to the running time. When the running time is reached
only eglSwapBuffers() is necessary.
2013-01-01 10:48:53 +01:00
Sebastian Dröge
2cae6df5e5
eglglessink: Downgrade a GST_ERROR to a GST_DEBUG
2012-12-31 15:59:05 +01:00
Sebastian Dröge
9f14fd5cce
eglglessink: Make last_flow handling more threadsafe
2012-12-31 15:59:05 +01:00
Sebastian Dröge
4df3e56c9a
eglglessink: Add support for allocating EGLImages on Mali
...
This allows to decoders and other upstream elements to do
zero-copy to the sink.
2012-12-31 15:59:04 +01:00
Sebastian Dröge
6748198668
eglglessink: Fix indention
2012-12-30 11:32:29 +01:00
Sebastian Dröge
6140bc7f8c
eglglessink: Return the last_flow immediately if it wasn't GST_FLOW_OK
2012-12-30 11:32:02 +01:00
Sebastian Dröge
fa6cddcf45
eglglessink: Fix copy&paste mistake
2012-12-30 11:29:49 +01:00
Sebastian Dröge
be5486231b
eglglessink: Improve EGL/GL error handling a bit
2012-12-30 11:25:13 +01:00
Sebastian Dröge
d643ff961e
eglglessink: Don't access the video frame data if not necessary
2012-12-30 11:25:13 +01:00
Sebastian Dröge
83612e7d19
eglglessink: Configure caps from the setcaps function already
2012-12-30 11:25:13 +01:00
Sebastian Dröge
e454e9a862
eglglessink: Bind the OpenGL ES API in the render thread too
2012-12-28 20:07:34 +01:00
Sebastian Dröge
46c7bbfeb5
eglglessink: Some refactoring as preparation for platform specific rendering
2012-12-28 20:07:34 +01:00
Sebastian Dröge
823f490fe8
eglglessink: Add some more comments
2012-12-28 20:07:34 +01:00
Sebastian Dröge
6b8188f9f6
eglglessink: Only use the GstVideoFrame if we have a buffer
2012-12-28 20:07:34 +01:00
Sebastian Dröge
31a3ef2f82
eglglessink: Add configure parameter to chose the EGL window system
...
Only needed for creating native windows.
2012-12-28 20:07:34 +01:00
Sebastian Dröge
0304518d1d
eglglessink: Add support for Mali fbdev EGL driver
2012-12-28 20:07:30 +01:00
Sebastian Dröge
079f5e83ea
eglglessink: Add support for video meta and arbitrary strides
2012-12-26 17:25:36 +01:00
Sebastian Dröge
7a08bb8429
eglglessink: Fix width/height swap in last commit
2012-12-26 15:58:55 +01:00
Sebastian Dröge
673d262fe7
eglglessink: Remove debug function call from previous commit
2012-12-26 15:46:40 +01:00
Sebastian Dröge
17bf9dfd70
eglglessink: Fix handling of GstVideoOverlay::set_render_rect() and crop metadata
2012-12-26 14:39:03 +01:00
Sebastian Dröge
b126c62e31
eglglessink: Add a cast from EGLNativeWindowType to Window to fix a compiler warning
2012-12-26 10:54:38 +01:00
Sebastian Dröge
4789db8930
eglglessink: Fix a crash on GstVideoOverlay::expose()
2012-12-26 10:39:52 +01:00
Sebastian Dröge
3c2574998b
eglglessink: Fix crash when closing internal X11 window
2012-12-26 10:34:21 +01:00
Sebastian Dröge
7efa7b9698
eglglessink: Add proper check for X11
2012-12-26 10:21:34 +01:00
Joe Konno
8a63face0e
waylandsink: do not default to a fullscreen canvas
...
Defer certain canvas particulars to the player (or the Wayland
compositor). Before this change, a fullscreen canvas was always
requested. This may not be desirable in all cases.
https://bugzilla.gnome.org/show_bug.cgi?id=690442
2012-12-23 15:58:05 +00:00
Sebastian Dröge
fe38fc2b5a
openjpegdec: Only use 10 bit YUV formats for exactly 10 bit images, not <= 16 bit
...
And use the generic converter to AYUV64 for everything else.
2012-12-23 09:51:42 +01:00
Sebastian Rasmussen
3d1ca76725
openjpegenc/-dec: print openjpeg logs for debug tracing
2012-12-19 11:24:02 +01:00
Thijs Vermeir
05dfea2689
opus: use appropriate printf format for gsize
2012-12-18 16:56:28 +01:00
Sebastian Dröge
680c13f993
openjpegenc: Add some properties
2012-12-18 15:44:56 +01:00
Sebastian Dröge
da8f8270c3
openjpegdec: Don't crash if colorspace is not provided on the caps
...
g_str_equal() is *not* NULL-safe
2012-12-18 15:43:37 +01:00
Sebastian Dröge
d70e43a069
openjpegdec: Improve robustness against formats with different settings per component
2012-12-17 17:19:54 +01:00
Sebastian Dröge
8b33b17748
openjpegdec: Properties won't be needed in the decoder
2012-12-17 17:13:22 +01:00
Sebastian Dröge
ed33db79cd
openjpegenc: Fix data pointer incrementing
2012-12-17 17:12:04 +01:00
Sebastian Dröge
2ea8ede145
openjpegenc: Optimize image filling functions a bit
2012-12-17 17:06:29 +01:00
Sebastian Dröge
43ff27ba34
openjpegdec: Add missing shifts
2012-12-17 17:02:47 +01:00
Sebastian Dröge
bff020e9e4
openjpegdec: Optimize frame filling functions a bit
2012-12-17 16:57:14 +01:00
Sebastian Dröge
7faf96eb14
openjpeg: Correct template caps a bit
2012-12-16 20:50:34 +01:00
Sebastian Dröge
cb5dcaba76
openjpeg: Handle the num-components field in the caps
2012-12-16 20:50:34 +01:00
Sebastian Dröge
8547618f96
openjpeg: Add support for the colorspace field in the caps
2012-12-16 20:50:34 +01:00
Sebastian Dröge
e9fc332e25
openjpeg: Add JPEG2000 encoder element
2012-12-16 20:50:34 +01:00
Sebastian Dröge
e1416c11a4
openjpeg: Add OpenJPEG based JPEG2000 decoder
2012-12-16 20:50:34 +01:00
Sebastian Dröge
0b3cce4890
mms: Fix format string for off_t/goffset
...
Fixes bug #690033 .
2012-12-11 10:58:54 +00:00
Alessandro Decina
62879bdd38
rtmpsrc: disable seeking if the configured url specifies live=true
...
Disable seeking when live=true is set in the location URL (eg:
"rtmp://example.net/stream live=true")
2012-12-01 17:11:43 +01:00
Tim-Philipp Müller
caa9014bce
resindvd, frei0r: link to libgmodule-2.0 in plugins that use g_module_* API
...
Probably needed for other plugins as well.
2012-11-30 20:01:16 +00:00
Sebastian Dröge
b80764e8b7
eglglessink: Use new GType for GThread instead of just G_TYPE_POINTER
2012-11-12 11:48:38 +01:00
Tim-Philipp Müller
9e1b75fda3
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Tim-Philipp Müller
fa20fba1a2
opencv: fix warnings and build against opencv 2.4.x
...
gstpyramidsegment.c: In function 'gst_pyramid_segment_chain':
gstpyramidsegment.c:307:3: error: implicit declaration of function
'cvPyrSegmentation' [-Werror=implicit-function-declaration]
gstpyramidsegment.c:307:3: error: nested extern declaration of
'cvPyrSegmentation' [-Werror=nested-externs]
https://bugzilla.gnome.org/show_bug.cgi?id=687237
2012-11-03 13:52:08 +00:00
Sebastian Dröge
c3f94f14f0
eglglessink: Use more constants instead of hardcoding values
2012-11-02 11:29:54 +01:00
Sebastian Dröge
b0bad3ca15
eglglessink: Post stream-status messages for our render thread
2012-11-01 13:51:09 +01:00
Sebastian Dröge
8786262fff
eglglessink: If pushing an item on the queue fails, free it
...
Otherwise we're going to leak the item.
2012-10-31 13:55:47 +01:00
Carlos Rafael Giani
701fd9b336
mpg123: removed unnecessary finalize function
...
https://bugzilla.gnome.org/show_bug.cgi?id=687176
2012-10-30 10:15:14 +00:00
Jan Schmidt
41b08e2948
mpg123: Fix leaks from not chaining up in the finalize function
2012-10-30 10:20:09 +11:00
Sebastian Dröge
ac420ff0de
eglglessink: Stop using deprecated GLib thread API
2012-10-25 14:28:49 +02:00
Sebastian Dröge
4dd39a3856
assrender: Handle GAP events
2012-10-25 14:05:49 +02:00
Sebastian Dröge
1e1d4da87c
eglglessink: Add support for crop metadata
2012-10-25 14:05:48 +02:00
Sebastian Dröge
187350329a
eglglessink: Port to 1.0
2012-10-25 14:05:48 +02:00
Carlos Rafael Giani
e6b05111d3
opusdec: fixed buffer unmapping bug
...
When the decoder received a NULL buffer, it tried to
unmap a not mapped buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=686829
2012-10-25 01:20:23 +01:00
Carlos Rafael Giani
a84677a7a0
mpg123: added gtkdoc section
...
https://bugzilla.gnome.org/show_bug.cgi?id=686595
2012-10-24 13:43:23 +01:00
Carlos Rafael Giani
8ba422839a
mpg123: fixed bug with last frame, disabled internal resampler & chatter
...
* The last MP3 frame wasn't being pushed when base class was draining
* Made sure mpg123 cannot ever use its (crude) internal resampler
* Disabled mpg123 stderr output
https://bugzilla.gnome.org/show_bug.cgi?id=686595
2012-10-24 13:43:16 +01:00
Carlos Rafael Giani
2de930689c
mpg123: cleaned up comments, formatting, and logging lines
...
also replaced mpg123decoder->handle != NULL checks with asserts
https://bugzilla.gnome.org/show_bug.cgi?id=686595
2012-10-24 11:59:19 +01:00
Sebastian Rasmussen
1c71fd351a
curlsmtpsink: add comment describing function
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686774
2012-10-24 11:29:47 +01:00
Tim-Philipp Müller
0a57441908
pitch: fix for start times > 0
...
Fixes buffering and playback of streams that start with
a non-0 timestamp in totem (which has a 'pitch' element
before pulsesink).
Example URI: http://lobostv.lobocast.org.es:8004/lobostv.ogg
Still breaks with chained oggs, on second chain.
https://bugzilla.gnome.org/show_bug.cgi?id=686391
2012-10-22 21:46:56 +01:00
Wim Taymans
50140388d2
opuspay: remove pointless caps serialization
...
Remove the caps serialization in the rtp caps. the spec nor the receiver
does anything with it.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686547
2012-10-22 12:11:02 +02:00
Sreerenj Balachandran
54e05ee4aa
wayland: update to wayland-protocol 0.99
...
https://bugzilla.gnome.org/show_bug.cgi?id=686520
2012-10-20 13:09:03 +01:00
Sebastian Dröge
888fe99fa4
eglglessink: Don't try to render expose() if no caps are known yet
2012-10-19 12:02:05 +02:00
Sebastian Dröge
4dc028a2a3
eglglessink: Fix expose
2012-10-19 10:38:06 +02:00
Sebastian Dröge
c9b17f28f6
eglglessink: Make compilable on desktop Linux with MESA too
2012-10-18 14:35:52 +02:00
Sebastian Dröge
6fb5a9b716
eglglessink: Integrate into the build system
...
Conflicts:
ext/Makefile.am
2012-10-18 14:35:49 +02:00
Sebastian Dröge
ebb99f27ac
eglglessink: Fix debug output
2012-10-18 14:35:20 +02:00
Sebastian Dröge
61db9ad941
eglglessink: Also clear the surface once when the buffer content is preserved
2012-10-18 14:35:20 +02:00
Sebastian Dröge
147edd1fc2
eglglessink: Only draw black borders if the default swap behaviour of the surface is to destroy the buffer
2012-10-18 14:35:20 +02:00
Sebastian Dröge
a025c80b4c
eglglessink: Remove unused label
2012-10-18 14:35:20 +02:00
Reynaldo H. Verdejo Pinochet
5bdf1ec099
eglglessink: Factor display region reset to its own func
2012-10-18 14:35:20 +02:00
Reynaldo H. Verdejo Pinochet
c3a12d737e
eglglessink: Always Reset display_region.* at EGL/GLES ctx wipe
2012-10-18 14:35:20 +02:00
Reynaldo H. Verdejo Pinochet
ac037ce319
eglglessink: Factor ELG/GLES context cleanup into its own func
2012-10-18 14:35:20 +02:00
Reynaldo H. Verdejo Pinochet
ab81bd8f1e
eglglessink: Drop drafted fast rendering path logic
2012-10-18 14:35:20 +02:00
Sebastian Dröge
9e8ad1097b
eglglessink: Also update header file
2012-10-18 14:35:20 +02:00
Sebastian Dröge
f5043f5d64
eglglessink: Provide the texture positions to the shader on every frame too
2012-10-18 14:35:20 +02:00
Sebastian Dröge
9941466ab4
eglglessink: Draw black borders and also use a single GL buffer for all vertices
...
Fixes weird artifacts outside the video frame on
Qualcomm Snapdragon chipsets and should be faster
than glClear() on the complete area all the time.
2012-10-18 14:35:20 +02:00
Sebastian Dröge
a65ed4d7c1
eglglessink: Fix memory leak
2012-10-18 14:35:20 +02:00
Sebastian Dröge
f7a0da4da9
eglglessink: Remove useless debug output added for debugging earlier
2012-10-18 14:35:20 +02:00
Sebastian Dröge
0ac17bcbc2
eglglessink: Make window setting/handling a bit more threadsafe
2012-10-18 14:35:19 +02:00
Sebastian Dröge
e766bd1e0a
eglglessink: Print window handle after setting it
2012-10-18 14:35:19 +02:00
Reynaldo H. Verdejo Pinochet
32861ab0a7
eglglessink: Move DAR query & store to surface init
...
The DAR (display's pixel aspect ratio) should remain a
constant at runtime so there's no point on repeatedly
query and store this value. Doing it at surface setup
should be enough. As an added bonus this change should
make rendering a bit faster.
2012-10-18 14:35:19 +02:00
Sebastian Dröge
406630a294
eglglessink: Don't signal the GCond too often
2012-10-18 14:35:19 +02:00
Sebastian Dröge
82dc2a3544
eglglessink: Add myself as author
2012-10-18 14:35:19 +02:00
Sebastian Dröge
87a028a0a4
eglglessink: Make sure to always reset the display region in start()
2012-10-18 14:35:19 +02:00
Sebastian Dröge
28fe3f7888
eglglessink: Also commit missing changes to the header file
2012-10-18 14:35:19 +02:00
Sebastian Dröge
610e33b049
eglglessink: Also include $(GST_BASE_CFLAGS)
2012-10-18 14:35:19 +02:00
Sebastian Dröge
caf9d1febd
eglglessink: Fix race condition
2012-10-18 14:35:19 +02:00
Sebastian Dröge
99f738bbc0
eglglessink: Refactor rendering and all context specific GL things into a separate thread
...
Also fixes some threading related problems.
2012-10-18 14:35:19 +02:00
Sebastian Dröge
11ec917ee0
eglglessink: Re-add accidentially reverted commit
2012-10-18 14:35:19 +02:00
Sebastian Dröge
ba3274c8f0
eglglessink: Remove unneeded flow_lock
...
Use the object lock in the few places necessary, everything
else is protected by other things already.
Also store the context directly inside the instance struct
instead of allocating some memory for it.
2012-10-18 14:35:19 +02:00
Sebastian Dröge
2b3279c9b5
eglglessink: Fix debug output and constant names
2012-10-18 14:35:19 +02:00
Sebastian Dröge
1f0bf75075
eglglessink: start()/stop() is called in READY<->NULL in basesink
...
But this should be called in PAUSED<->READY.
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
d2dcecfc8a
eglglessink: Fix for outbound DAR reported by EGL
...
Some EGL implementations don't honor the spec
requirement of returning DAR values as w/h *
EGL_DISPLAY_SCALING.
This changeset:
- Fixes rendering on the Samsung Galaxy III
- Fixes wrong check on required 1.2 EGL version
- Reorders the code a bit.
2012-10-18 14:35:18 +02:00
Sebastian Dröge
dde62cee8e
eglglessink: Fix crashes if there are no EGL or GLES extensions
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
a317f6936c
eglglessink: Fix crash at element instantiation
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
af009b7de7
eglglessink: GLSL: Save one extra texture lookup
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
0ed02803f7
eglglessink: GLSL: Minor named index access tweak xyz -> rgb
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
5c2b1dc631
eglglessink: GLSL: Assorted fixes to optimized code
...
- Don't copy over opos as it's already a vec2
- Fix index order access at frag_YUY2_YVYU_UYVY_prog
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
73d865091c
eglglessink: GLSL: Planar YUV converters optimization
...
- Use consts for the transform's offset and cofficients values
- Use dot product instead of mult and add
- Avoid unneeded texture lookups
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
846e77871b
Geglglessink: LSL: Optimize frag_YUY2_YVYU_UYVY_prog
...
- Avoid repeatedly performing the texture lookup
- Use consts for the transform's offset and cofficients values
- Use the dot product instead of the explicit mult and add
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
eb8f7d63d5
eglglessink: GLSL: Drop unneded nxy vec2
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
bb0b872644
eglglessink: Fix missing double quotation mark in GLSL code
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
a95834a491
eglglessink: GLSL: Optimize frag_AYUV_prog
...
- Avoid repeatedly performing the texture lookup
- Use consts for the transform's offset and cofficients values
- Use the dot product instead of the explicit mult and add
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
a7a2dcc433
eglglessink: Documentation: GstEglGlesSink struct
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet
38ca631a7a
eglglessink: Documentation: GstEglGlesBuffer struct (DRAFT)
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
c27c11582e
eglglessink: Documentation: GstEglGlesImageFmt struct
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
945b11fd02
eglglessink: Documentation: GstEglGlesRenderContext struct
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
d97b3dba60
eglglessink: Assorted doc and reordering fixes
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
031b6a57ac
eglglessink: Documentation: Element properties
...
Brief explanatory comments plus some reordering
to group default setting of properties and runtime
flags values.
2012-10-18 14:35:17 +02:00
Sebastian Dröge
81463a1cb7
eglglessink: Add support for YVYU
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
95a223a030
eglglessink: Documentation: GLSL Shaders
...
Brief explanatory comments plus some rerdering
to group packed/planar converters.
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
731be48dac
eglglessink: Documentation: Element overview
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
1eef329725
eglglessink: Refactor REORDER shader.
...
Avoid unneededly calling texture2D() 3 consecutive times.
2012-10-18 14:35:17 +02:00
Sebastian Dröge
c91238a2af
eglglessink: Fix handling of caps changes by only releasing what needs to be released
...
And not terminating the display connection
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
310e5111b7
eglglessink: Move display_region reset to locked section
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
884e5fa173
eglglessink: Reset display_region dims at caps renego
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
f28f5df29e
eglglessink: Cosmetics
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet
c255aa5dd4
eglglessink: Don't access local value from struct
2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet
2ab9de8e4f
eglglessink: Terminate display connection at caps renego
2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet
734ac85bb4
eglglessink: Cosmetics
2012-10-18 14:35:16 +02:00
Sebastian Dröge
e022fc5389
eglglessink: Only attach the context once to the streaming thread
2012-10-18 14:35:16 +02:00
Sebastian Dröge
09b3518bae
eglglessink: Make the context current for the thread and unbind it again around every use
...
This fixes some crashes and leaking of our context into other
OpenGL code on the same thread.
2012-10-18 14:35:16 +02:00
Sebastian Dröge
113253b292
eglglessink: Improve cleanup
2012-10-18 14:35:16 +02:00
Sebastian Dröge
70d077acd8
eglglessink: Remove unused label
2012-10-18 14:35:16 +02:00
Sebastian Dröge
f058b5d78b
eglglessink: Allow setting a NULL handle
2012-10-18 14:35:16 +02:00
Sebastian Dröge
fc0dc0055a
eglglessink: Revert "Do not update_surface_dims() once per frame"
...
This reverts commit 82103376ede2bc7c63dd699f5982168660f67852.
We have to update the surface dimensions on every frame to
make sure that we get notified about updates. This happens
for example if the Android window gets re-layouted because
a widget takes more space than before.
2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet
a818d5c771
eglglessink: Do not update_surface_dims() once per frame
...
And.. Upgrade debug message to warging on weird DAR.
Correct fix to avoid spaming with this message
once per each frame is avoid calling update_surface_dims()
at render_and_display(). This is handled at egl surface
init.
2012-10-18 14:35:16 +02:00
Sebastian Dröge
162f63e064
eglglessink: And downgrade another warning too
2012-10-18 14:35:16 +02:00
Sebastian Dröge
7307ddd54b
eglglessink: Downgrade GST_WARNING to GST_DEBUG
2012-10-18 14:35:16 +02:00
Sebastian Dröge
8dabfbfca8
eglglessink: Add some {} to if statements make them work as expected
2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet
20a05726b3
eglglessink: Drop stale defines for max frame size
2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet
a3530d9a3d
eglglessink: Small commentary fixes here an there
2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet
2b706d3fbe
eglglessink: Avoid setting height or width twice
2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet
eeb3b84d07
eglglessink: Use PAR/DAR to set viewport
2012-10-18 14:35:15 +02:00
Sebastian Dröge
c3fb44aef3
eglglessink: Correctly resize if the surface dimensions change
2012-10-18 14:35:15 +02:00
Sebastian Dröge
3fcea0dc5e
eglglessink: Update surface dimensions on every buffer
2012-10-18 14:35:15 +02:00
Sebastian Dröge
2b2ae0fd6f
eglglessink: More consistent naming of shader related variables
2012-10-18 14:35:15 +02:00
Sebastian Dröge
1ad253b9b7
eglglessink: Some variable name cleanup
2012-10-18 14:35:15 +02:00
Sebastian Dröge
e8f4829c13
eglglessink: Remove default-width/height properties
...
These are completely unneeded
2012-10-18 14:35:15 +02:00
Sebastian Dröge
985a185ffc
eglglessink: Fix double free()
2012-10-18 14:35:15 +02:00
Sebastian Dröge
b5b98fc874
eglglessink: Don't leak EGL/ES render context
2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet
bab81de275
eglglessink: Put EGL/GLES context vars on their own struct
2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet
5526737ec8
eglglessink: Small TODO reformatting
2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet
e8ed9e1097
eglglessink: Add TODO file
2012-10-18 14:35:15 +02:00
Sebastian Dröge
2323c40f1b
eglglessink: Correctly implement ::expose()
...
We don't need the past buffer for this, the old one is still available
as texture and we just need to draw our rectangle again.
2012-10-18 14:35:15 +02:00
Sebastian Dröge
18e473307f
eglglessink: Allow setting another window for the next time we reconfigure everything
2012-10-18 14:35:14 +02:00
Sebastian Dröge
aa463f0274
eglglessink: Also unref current caps after usage
2012-10-18 14:35:14 +02:00
Sebastian Dröge
c2de59b19c
eglglessink: Implement support for caps changes
2012-10-18 14:35:14 +02:00
Sebastian Dröge
d91621d2ce
eglglessink: More cleanup and making the element reusable
2012-10-18 14:35:14 +02:00
Sebastian Dröge
56b711bd29
eglglessink: Properly init/release resources when going from NULL->READY and the other way around
2012-10-18 14:35:14 +02:00
Sebastian Dröge
15c93da54e
eglglessink: Generate the sink caps exactly once
2012-10-18 14:35:14 +02:00
Sebastian Dröge
ad6e314a6e
eglglessink: Fix code style a bit to stop confusing indent
2012-10-18 14:35:14 +02:00
Sebastian Dröge
4e637ddb7b
eglglessink: Fix support for YUY2 and UYVY
2012-10-18 14:35:14 +02:00
Sebastian Dröge
9e094541b0
eglglessink: Some property cleanup
2012-10-18 14:35:14 +02:00
Sebastian Dröge
25eb488f30
eglglessink: Add support for the remaining RGB formats
2012-10-18 14:35:14 +02:00
Sebastian Dröge
11368b49b2
eglglessink: Add support for Y444, Y42B and Y41B, just because it's so easy
2012-10-18 14:35:14 +02:00
Sebastian Dröge
d98d5c657e
eglglessink: Add some simple TODOs
2012-10-18 14:35:14 +02:00
Reynaldo H. Verdejo Pinochet
98b9862167
eglglessink: Lock while altering display region coords
2012-10-18 14:35:14 +02:00
Reynaldo H. Verdejo Pinochet
a2fce44139
eglglessink: Fix _get_compat_format_from_caps() logic
...
It's a getter so it shouldn't messing with the sink context.
Adding insult to injury it was setting selected_fmt without
locking.
The associated changes to the buffer functions are merely
make-it build fixes. Those functions are barely drafted
and in WIP state.
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
47d0505f40
eglglessink: Drop unneded initial set to NULL
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
0c681dc2a6
eglglessink: Minor formatting and comment fixes
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
63d8cd88c7
eglglessink: Clean-up gl/egl allocations at _stop()
...
Also, conditionaly destroy window if the sink created its own.
2012-10-18 14:35:13 +02:00
Sebastian Dröge
99765c3333
eglglessink: Add support for NV12 and NV21
...
Also YUY2 and UYVY but this is disabled for now as it
doesn't work completely yet. Something is wrong with
the chroma.
2012-10-18 14:35:13 +02:00
Sebastian Dröge
72d05a681f
eglglessink: Add support for I420 and YV12 color formats
2012-10-18 14:35:13 +02:00
Sebastian Dröge
d3995c1a7b
eglglessink: Preparations for supporting multiple textures for more YUV formats
2012-10-18 14:35:13 +02:00
Sebastian Dröge
3f734aafc7
eglglessink: Use the attrib locations as really used inside the shader
2012-10-18 14:35:13 +02:00
Sebastian Dröge
24261a4fe7
eglglessink: Really decouple vertex and texture positions in the shader
2012-10-18 14:35:13 +02:00
Sebastian Dröge
dafcdb0da3
eglglessink: Decouple texture and vertex positions
2012-10-18 14:35:13 +02:00
Sebastian Dröge
cb034b2ecd
eglglessink: Reorder vertex value order to make a bit more sense
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
8018681187
eglglessink: Handle frame scaling to fill surface
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
90d5b76dc5
eglglessink: Draft set_render_rectangle() from the xOverlay interface
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
f8b69a7c7f
eglglessink: Remove stale comment
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
1c008e95b3
eglglessink: Move VBO setup to setcaps
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
d56d126031
eglglessink: Don't do context ops at render
...
We don't need to repeatedly call
eglMakeCurrent() while using the
same context anyway.
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
ca74f676fd
eglglessink: Don't clear surface color at render
2012-10-18 14:35:12 +02:00
Sebastian Dröge
9e23d0fc87
eglglessink: Rename shader variables to make more sense
2012-10-18 14:35:12 +02:00
Sebastian Dröge
d42d5e1139
eglglessink: Add support for AYUV
2012-10-18 14:35:12 +02:00
Sebastian Dröge
c4643491c4
eglglessink: Reorder caps a bit to make more sense
2012-10-18 14:35:12 +02:00
Sebastian Dröge
6adf608c99
eglglessink: Set rank to PRIMARY
2012-10-18 14:35:12 +02:00
Sebastian Dröge
1c58d921ff
eglglessink: Add support for RGBA
2012-10-18 14:35:12 +02:00
Sebastian Dröge
930b4c179e
eglglessink: Correctly generated caps for the supported formats
2012-10-18 14:35:12 +02:00
Sebastian Dröge
f9a5fc255d
eglglessink: Add ::get_caps() vfunc that returns the actually supported caps
2012-10-18 14:35:12 +02:00
Sebastian Dröge
86ebf86433
eglglessink: Also require a configuration with EGL_SURFACE_TYPE containing EGL_WINDOW_BIT
2012-10-18 14:35:12 +02:00
Sebastian Dröge
7e8cc569dd
eglglessink: Fix compiler warnings
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
19c3b4d892
eglglessink: Clear surface to black by default
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
19739bfb74
eglglessink: Make sure we get a config we can use with GLES2
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
24b926a6cc
eglglessink: set_window_handle() has been tested to work now
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
7ac284b1a1
eglglessink: Avoid autoscaling by default
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
a81b036355
eglglessink: Avoid repeatedly setting 2D resizing params
...
Moved to initial texture setup so it hapens
just once while on the same context.
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
a96fa541ee
eglglessink: Avoid initializing EGL at _set_window_handle()
...
_start() should take care of that.
This change asumes _setcaps() will
happen always after _start() is
done.
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
ead20f4f0b
eglglessink: Don't ask for a window if we already have one
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
22eb374b57
eglglessink: Fix EGL attribs var naming
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
c2cf1fa639
eglglessink: Fix slow path rendering on Android
...
Specify missing and mandatory params for npot
Before calling glTexImage2D.
In particular, _WRAP_T and _WRAP_S need to be
set to GL_CLAMP_TO_EDGE to avoid all-black
rendering with npot sized frames.
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
f33167f95b
eglglessink: Add test on usable eglconfigs returned
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
303a346fc2
eglglessink: Drop stale error_locked label
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
5763c8d308
eglglessink: Cleanup stale code comments
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
391137a20e
eglglessink: GlViewPort() should use actual surface size
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
f707961183
eglglessink: Avoid reiniting EGL after the first time
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
75fe18200a
eglglessink: Use correct template caps
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
e439c01382
eglglessink: Fix missing texture setup bits
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
68eac71910
eglglessink: Add error checking on eglSwapBuffers
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
f8dcc8aaa5
eglglessink: Fix stale&wrong 0.5 alpha blend
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
12d66a7d54
eglglessink: Add float precision specifier to fragment shader
...
This is required by GLES and fixes compilation of fragment
shader prog.
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
28aadcad4e
eglglessink: Add log reporting at shader compilation failure
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
b4887425cc
eglglessink: Add some missing checks on shader ops
...
- Check whether there is shader compiler support
and bail out otherwise.
- Add checks on compile and linking ops
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
2a84a72fe7
eglglessink: Fix setup chain logic
...
Mostly a procedural reordering. Idea is to avoid
trying to setup a surface without a display.This
change relies on the asumption that:
1.- set_window_handle() can happen at any time
2.- setcaps will never get called before _start()
is done.
If both conditions are meet the new procedure
should work as expected.
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
40d6cc2099
eglglessink: WIP: Reorder locking
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
289f388085
eglglessink: Fix xOverlay logic
...
Several fixes dealing with correct window
creation and set_handle() ops. Tested on
X11/mesa with internal window creation.
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
9e18b29be2
eglglessink: Actually test EGL configs before claiming support
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
59b1870ac1
eglglessink: Caps nego EGL fixes
...
- Fix alloc lol on format list: Asked for 2 slices and used 3.
- Reordered display & context init logic to prepare for actual
config checking before claiming support for a given format.
Change deals basically with setting up EGL display at start()
and choose an EGL config only at setcaps time.
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
a8f60690aa
eglglessink: Caps nego. Start extending RGB support to a set.
2012-10-18 14:35:10 +02:00
Sebastian Dröge
bd28c42fae
eglglessink: Fix build of static plugin
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
a83dae1b54
eglglessink: Drop wrong format test on _setcaps (draft leftover)
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
75d4bf420a
eglglessink: Support RGB24 by default
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
1d77bf6c0f
eglglessink: Instrument EGL error reporting
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
b8c83f98b7
eglglessink: Correctly return GstFlowReturn from render_and_display()
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
cca08a02a1
eglglessink: Move VBO setup to it's own function
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
3fce24549f
eglglessink: Fix render_and_display logic
...
Switch procedure according to enabled rendering path
2012-10-18 14:35:09 +02:00