Commit graph

3569 commits

Author SHA1 Message Date
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