Sebastian Dröge [Wed, 15 May 2013 08:18:01 +0000 (10:18 +0200)]
opus: Fix event handling in unit test
Sebastian Dröge [Wed, 15 May 2013 08:14:33 +0000 (10:14 +0200)]
kate: Fix event handling in unit test
Sebastian Dröge [Wed, 15 May 2013 08:12:09 +0000 (10:12 +0200)]
kateenc: Delay segment event until we have caps
Sebastian Dröge [Wed, 15 May 2013 08:02:29 +0000 (10:02 +0200)]
katedec/tiger: Don't queue sticky events that would come before CAPS
Sebastian Dröge [Wed, 15 May 2013 07:47:21 +0000 (09:47 +0200)]
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.
Sebastian Dröge [Wed, 15 May 2013 07:42:58 +0000 (09:42 +0200)]
vo{amr,aac}enc: Fix event handling in unit test
Sebastian Dröge [Wed, 15 May 2013 07:41:54 +0000 (09:41 +0200)]
faad/faac: Fix event handling in unit test
Sebastian Dröge [Wed, 15 May 2013 07:20:45 +0000 (09:20 +0200)]
hls: Use GstURIDownloader from the library for now to keep everything in a usable state
Nicolas Dufresne [Tue, 14 May 2013 18:32:19 +0000 (14:32 -0400)]
ladspa: Fix compilation issue when lrdf is enabled
https://bugzilla.gnome.org/show_bug.cgi?id=700328
Tim-Philipp Müller [Mon, 13 May 2013 23:14:34 +0000 (00:14 +0100)]
nsf: remove nsf plugin, replaced by gme plugin
https://bugzilla.gnome.org/show_bug.cgi?id=648021
Juan Manuel Borges Caño [Wed, 17 Apr 2013 00:18:58 +0000 (02:18 +0200)]
openal: improved port to 1.0
https://bugzilla.gnome.org/show_bug.cgi?id=698013
Tim-Philipp Müller [Sun, 12 May 2013 23:08:42 +0000 (00:08 +0100)]
tests: blacklist some more tests from the generic state change test
Tim-Philipp Müller [Sun, 12 May 2013 23:06:10 +0000 (00:06 +0100)]
bluez: add debug category for avdtp utils
Tim-Philipp Müller [Sun, 12 May 2013 22:51:32 +0000 (23:51 +0100)]
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.")
Tim-Philipp Müller [Sun, 12 May 2013 21:41:32 +0000 (22:41 +0100)]
ofa: port to 1.0
Tim-Philipp Müller [Sun, 12 May 2013 19:32:23 +0000 (20:32 +0100)]
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
Tim-Philipp Müller [Sun, 12 May 2013 17:51:52 +0000 (18:51 +0100)]
neonhttpsrc: add support for SCHEDULING query
Tim-Philipp Müller [Sun, 12 May 2013 17:47:32 +0000 (18:47 +0100)]
neonhttpsrc: add iradio-mode property and post icy metadata as tags
Tim-Philipp Müller [Sun, 12 May 2013 17:28:18 +0000 (18:28 +0100)]
neonhttpsrc: port to 1.0
David Schleef [Sat, 11 May 2013 19:07:03 +0000 (12:07 -0700)]
intervideosrc: Fix timestamp generation
Tim-Philipp Müller [Sat, 11 May 2013 18:41:22 +0000 (19:41 +0100)]
rfbsrc: post error messages on errors
David Schleef [Sat, 11 May 2013 00:30:48 +0000 (17:30 -0700)]
videofilters: Add videodiff element
David Schleef [Sat, 27 Apr 2013 18:56:48 +0000 (11:56 -0700)]
y4mdec: set timestamps when restriding buffer
David Schleef [Mon, 15 Apr 2013 07:24:23 +0000 (00:24 -0700)]
videomark/detect: rename to simplevideomark[detect]
David Schleef [Sat, 13 Apr 2013 22:16:04 +0000 (15:16 -0700)]
videomark/detect: port to 1.0
Tim-Philipp Müller [Fri, 10 May 2013 23:36:06 +0000 (00:36 +0100)]
rfbsrc: fix rfbdecoder new/free asymetry and wrong free in error case
If rfb_decoder_new() allocates the decoder sructure, rfb_decoder_free()
should free the structure. We should not free the decoder when an
error occurs during connection - it holds lots of configuration/state
and will be freed later in finalize.
Tim-Philipp Müller [Fri, 10 May 2013 23:29:40 +0000 (00:29 +0100)]
rfbsrc: make authentication handshake safe for multiple instances
Move DES key into context struct.
Tim-Philipp Müller [Fri, 10 May 2013 22:09:30 +0000 (23:09 +0100)]
rfbsrc: remove GPL-licensed source file
and replace the 1% of it that we need with new code, so we
don't have to change the runtime license of rfbsrc to GPL.
Aleix Conchillo Flaque [Fri, 10 May 2013 16:49:46 +0000 (09:49 -0700)]
rfbsrc: use glib gio sockets for network access
https://bugzilla.gnome.org/show_bug.cgi?id=700038
Aleix Conchillo Flaque [Thu, 9 May 2013 23:41:32 +0000 (16:41 -0700)]
rfbsrc: port to 1.0
https://bugzilla.gnome.org/show_bug.cgi?id=700038
Sebastian Dröge [Fri, 10 May 2013 10:49:06 +0000 (12:49 +0200)]
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
Josep Torra [Fri, 10 May 2013 09:48:46 +0000 (11:48 +0200)]
egl: Allow being used in C++ code
Tim-Philipp Müller [Wed, 8 May 2013 22:17:08 +0000 (23:17 +0100)]
dashdemux: rename src template from src%d to src_%u
Thiago Santos [Wed, 8 May 2013 21:22:39 +0000 (18:22 -0300)]
dash: remove superfluous files
Authors and license are at the top of the source files
Thiago Santos [Thu, 2 May 2013 17:11:54 +0000 (14:11 -0300)]
dash: do not use deprecated glib mutex API
Thiago Santos [Tue, 23 Apr 2013 15:08:07 +0000 (12:08 -0300)]
dashdemux: fixing compiler warnings about print formats
Thiago Santos [Wed, 8 May 2013 14:14:15 +0000 (11:14 -0300)]
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
Thiago Santos [Thu, 18 Apr 2013 10:41:09 +0000 (07:41 -0300)]
dashdemux: port to 1.0
Thiago Santos [Thu, 11 Apr 2013 12:12:26 +0000 (09:12 -0300)]
dashdemux: Fix another wrong assertion
Also adds a couple log messages for easier debugging
Thiago Santos [Wed, 10 Apr 2013 21:09:19 +0000 (18:09 -0300)]
dashdemux: remove wrong asserts
Those asserts should be the contrary that they are. And also
the surround functions should already check that. Removing them.
Wim Taymans [Wed, 13 Mar 2013 14:55:03 +0000 (15:55 +0100)]
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.
Wim Taymans [Fri, 8 Mar 2013 14:04:48 +0000 (15:04 +0100)]
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.
Wim Taymans [Fri, 8 Mar 2013 13:59:59 +0000 (14:59 +0100)]
dashdemux: also send newsegment on startup
Wim Taymans [Fri, 8 Mar 2013 13:57:39 +0000 (14:57 +0100)]
dashdemux: small cleanup
Thiago Santos [Fri, 22 Feb 2013 20:00:27 +0000 (17:00 -0300)]
dashdemux: live stream playback crashfix
Thiago Santos [Fri, 22 Feb 2013 19:46:22 +0000 (16:46 -0300)]
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.
Thiago Santos [Fri, 22 Feb 2013 19:40:36 +0000 (16:40 -0300)]
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.
Thiago Santos [Wed, 20 Feb 2013 15:49:25 +0000 (12:49 -0300)]
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
Thiago Santos [Tue, 19 Feb 2013 22:35:34 +0000 (19:35 -0300)]
dash: mpdparser: use guint64 for timestamps
The timestamps can be pretty big, so use guint64 for them
Thiago Santos [Tue, 19 Feb 2013 04:26:25 +0000 (01:26 -0300)]
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
Thiago Santos [Mon, 18 Feb 2013 17:02:48 +0000 (14:02 -0300)]
dashdemux: plug some leaks
Add some missing free/unrefs spotted by valgrind
Thiago Santos [Mon, 18 Feb 2013 17:01:27 +0000 (14:01 -0300)]
dashdemux: remove unused mutexes
Thiago Santos [Thu, 14 Feb 2013 20:39:35 +0000 (17:39 -0300)]
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.
Andre Moreira Magalhaes (andrunko) [Wed, 13 Feb 2013 04:13:23 +0000 (02:13 -0200)]
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.
Andre Moreira Magalhaes (andrunko) [Wed, 13 Feb 2013 00:54:32 +0000 (22:54 -0200)]
dashdemux: Properly parse base uri from mpd.
Andre Moreira Magalhaes (andrunko) [Wed, 13 Feb 2013 00:53:16 +0000 (22:53 -0200)]
dashdemux: Remove unused members.
Andre Moreira Magalhaes (andrunko) [Tue, 12 Feb 2013 20:50:51 +0000 (18:50 -0200)]
dashdemux: Only send newsegment on seek.
Thiago Santos [Fri, 8 Feb 2013 05:55:05 +0000 (02:55 -0300)]
dashdemux: send segments that overwrite previous ones
This is only done for seeks, so it is fine
Andre Moreira Magalhaes (andrunko) [Thu, 7 Feb 2013 23:58:37 +0000 (21:58 -0200)]
dashdemux: switch bitrates without switching pads
Andre Moreira Magalhaes (andrunko) [Thu, 7 Feb 2013 18:22:13 +0000 (16:22 -0200)]
dashdemux: Remove unusued method.
Andre Moreira Magalhaes (andrunko) [Thu, 7 Feb 2013 16:09:44 +0000 (14:09 -0200)]
dashdemux: Set stream need_header after seek and has_data_queued to FALSE when flushing stream.
Thiago Santos [Thu, 7 Feb 2013 06:09:28 +0000 (03:09 -0300)]
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
Thiago Santos [Wed, 6 Feb 2013 16:31:18 +0000 (13:31 -0300)]
dashdemux: remove property that isn't used anymore
Remove some pieces of code that are from an old property
that isn't used anymore
Thiago Santos [Tue, 5 Feb 2013 20:38:06 +0000 (17:38 -0300)]
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
Thiago Santos [Tue, 5 Feb 2013 17:24:45 +0000 (14:24 -0300)]
dashdemux: sprinkling some more log
Thiago Santos [Tue, 5 Feb 2013 17:22:51 +0000 (14:22 -0300)]
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
Thiago Santos [Tue, 5 Feb 2013 03:45:06 +0000 (00:45 -0300)]
dashdemux: refactor to use the uridownloader lib instead of internal copy
Andre Moreira Magalhaes (andrunko) [Tue, 5 Feb 2013 03:29:28 +0000 (01:29 -0200)]
dashdemux: Make sure switch_pads won't leak any pad.
Andre Moreira Magalhaes (andrunko) [Tue, 5 Feb 2013 00:58:32 +0000 (22:58 -0200)]
dashdemux: Properly stop download and stream tasks where appropriate.
Thiago Santos [Fri, 1 Feb 2013 05:12:25 +0000 (02:12 -0300)]
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.
Thiago Santos [Fri, 1 Feb 2013 05:10:15 +0000 (02:10 -0300)]
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.
Thiago Santos [Fri, 1 Feb 2013 03:37:33 +0000 (00:37 -0300)]
dashdemux: track segments in the demuxer
Use a GstSegment to track the current segment information in the
demuxer.
Thiago Santos [Fri, 1 Feb 2013 03:33:00 +0000 (00:33 -0300)]
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.
Thiago Santos [Wed, 30 Jan 2013 20:31:04 +0000 (17:31 -0300)]
dashdemux: removing unused code
Cleaning up by removing unused code and variables
Thiago Santos [Wed, 30 Jan 2013 20:27:47 +0000 (17:27 -0300)]
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
Thiago Santos [Tue, 29 Jan 2013 18:58:50 +0000 (15:58 -0300)]
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
Thiago Santos [Tue, 29 Jan 2013 16:08:27 +0000 (13:08 -0300)]
dashdemux: detect end-of-period correctly
Detect end of period when there are no more buffers on any of the
streams
Thiago Santos [Tue, 29 Jan 2013 16:04:01 +0000 (13:04 -0300)]
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
Thiago Santos [Tue, 29 Jan 2013 14:22:52 +0000 (11:22 -0300)]
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.
Thiago Santos [Tue, 29 Jan 2013 04:06:52 +0000 (01:06 -0300)]
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
Thiago Santos [Mon, 28 Jan 2013 22:43:46 +0000 (19:43 -0300)]
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
Thiago Santos [Mon, 28 Jan 2013 21:52:04 +0000 (18:52 -0300)]
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.
Thiago Santos [Mon, 28 Jan 2013 15:28:29 +0000 (12:28 -0300)]
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
Thiago Santos [Mon, 28 Jan 2013 13:46:27 +0000 (10:46 -0300)]
dashdemux: refactor streams data to its own struct
Keeps code more organized and similar to what other demuxers
usually do
Thiago Santos [Fri, 25 Jan 2013 16:04:15 +0000 (13:04 -0300)]
dash: do not try to print a pointer as a string
Thiago Santos [Fri, 25 Jan 2013 15:45:18 +0000 (12:45 -0300)]
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.
Thiago Santos [Fri, 25 Jan 2013 12:36:35 +0000 (09:36 -0300)]
dash: fixing build warnings
Also running through gst-indent
Louis-Francis Ratté-Boulianne [Wed, 23 Jan 2013 21:43:12 +0000 (16:43 -0500)]
gstdashdemux: add need_header member to know whether the initialization fragment should be pushed
Louis-Francis Ratté-Boulianne [Wed, 23 Jan 2013 18:20:25 +0000 (13:20 -0500)]
dashdemux: don't wait for the whole duration of a fragment when seeking
Louis-Francis Ratté-Boulianne [Wed, 23 Jan 2013 18:19:21 +0000 (13:19 -0500)]
dashdemux: switch pads and send header file when a newsegment event is sent
Louis-Francis Ratté-Boulianne [Wed, 16 Jan 2013 18:58:52 +0000 (13:58 -0500)]
dashdemux: various fixes
David Corvoysier [Thu, 20 Dec 2012 08:04:28 +0000 (09:04 +0100)]
Applied gst-indent
David Corvoysier [Tue, 18 Dec 2012 10:21:22 +0000 (11:21 +0100)]
Replaced URL pointing to obsolete Klagenfurt MPD by a new one
Gianluca Gennari [Mon, 17 Dec 2012 14:46:32 +0000 (15:46 +0100)]
mpdparser: fix escape sequence in URL template resolving
Gianluca Gennari [Mon, 17 Dec 2012 14:39:10 +0000 (15:39 +0100)]
mpdparser: do not switch pads when bitstreamSwitching = true
Gianluca Gennari [Mon, 17 Dec 2012 14:19:33 +0000 (15:19 +0100)]
dashdemux: complete support for manifest file updates
Gianluca Gennari [Mon, 17 Dec 2012 14:12:58 +0000 (15:12 +0100)]
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;
Gianluca Gennari [Mon, 17 Dec 2012 14:04:45 +0000 (15:04 +0100)]
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
Gianluca Gennari [Mon, 17 Dec 2012 14:00:52 +0000 (15:00 +0100)]
dashdemux: new API to load the stream Period with a given index
this avoids to fiddle with stream internals in the code
Gianluca Gennari [Mon, 17 Dec 2012 13:54:42 +0000 (14:54 +0100)]
dashdemux: implement seeking across Periods