Arun Raghavan [Tue, 7 Apr 2015 10:10:14 +0000 (15:40 +0530)]
osxaudio: Avoid making a duplicate structure in caps for mono/stereo case
For 1ch or 2ch devices, we just need to set the caps to allow both
options since CoreAudio will up/downmix appropriately.
Also fixes the condition for the 2ch case to be exact, rather than at
least 2 channels since the downmix will not take place in the >stereo
case.
Arun Raghavan [Mon, 6 Apr 2015 10:52:34 +0000 (16:22 +0530)]
osxaudio: Don't set the format on an initialized AudioUnit
We need to initialize the AudioUnit early to be able to probe the
underlying device, but according to the AudioUnitInitialize() and
AudioUnitUninitialize() documentation, format changes should be done
while the AudioUnit is uninitialized. So we explicitly uninitialize the
AudioUnit during a format change and reinitialize it when we're done.
Arun Raghavan [Mon, 6 Apr 2015 10:25:59 +0000 (15:55 +0530)]
osxaudio: Minor spelling fix (unitialize -> uninitialize)
Ilya Konstantinov [Sat, 21 Mar 2015 18:34:25 +0000 (20:34 +0200)]
osxaudio: Fix lockup in _audio_unit_property_listener
_audio_unit_property_listener is called either from a Core Audio thread
or as a result of a Core Audio API (e.g. AudioUnitInitialize)
from our own thread. In the latter case, osxbuf can be already locked
(GStreamer's mutex is not recursive).
We introduce the flag cached_caps_valid and use it instead of nullifying
cached_caps when we cannot lock on osxbuf.
https://bugzilla.gnome.org/show_bug.cgi?id=743758
Ilya Konstantinov [Thu, 12 Mar 2015 10:15:12 +0000 (12:15 +0200)]
osxaudio: Invalidate cached caps on format change
Listen for changes in hardware stream format and channel layout, and
invalidate cached caps (since they contain the preferred caps).
https://bugzilla.gnome.org/show_bug.cgi?id=743758
Ilya Konstantinov [Mon, 9 Mar 2015 21:34:06 +0000 (23:34 +0200)]
osxaudio: Overhaul of probing caps
- Probing caps is unified between source and sink
- Hardware stream format is now reported as preferred capabilities
(dynamically updated when hardware configuration changes)
- Get hardware channel layout from Remote IO just like from HAL
- More comprehensive mapping between AudioChannelLabel and
GstAudioChannelPosition
- Support for unpositioned channel layouts
- Announce stereo-mono upmixing/downmixing in caps
https://bugzilla.gnome.org/show_bug.cgi?id=743758
Ilya Konstantinov [Mon, 9 Mar 2015 21:15:56 +0000 (23:15 +0200)]
osxaudio: AudioUnitInitialize on open
Call AudioUnitInitialize upon open. Otherwise, we cannot get
(hardware) stream format nor channel layout from the outer scope.
Tim-Philipp Müller [Sun, 12 Jul 2015 13:27:15 +0000 (14:27 +0100)]
rtp: depayloaders: implement process_rtp_packet() vfunc
For more optimised RTP packet handling: means we don't
need to map the input buffer again but can just re-use
the mapping the base class has already done.
https://bugzilla.gnome.org/show_bug.cgi?id=750235
Tim-Philipp Müller [Wed, 27 May 2015 18:19:27 +0000 (19:19 +0100)]
rtpvrawdepay: implement process_rtp_packet() vfunc
For more optimised RTP packet handling: means we don't
need to map the input buffer again but can just re-use
the map the base class has already done.
https://bugzilla.gnome.org/show_bug.cgi?id=750235
Sebastian Dröge [Thu, 9 Jul 2015 21:13:32 +0000 (00:13 +0300)]
rtpjitterbuffer: Fix indention
Sebastian Dröge [Thu, 9 Jul 2015 20:59:10 +0000 (23:59 +0300)]
rtpjitterbuffer: Always estimate DTS from the current clock time
Estimating it from the RTP time will give us the PTS, so in cases of PTS!=DTS
we would produce wrong DTS. As now the estimated DTS is based on the clock,
don't store it in the jitterbuffer items as it would otherwise be used in the
skew calculations and would influence the results. We only really need the DTS
for timer calculations.
https://bugzilla.gnome.org/show_bug.cgi?id=749536
Thiago Santos [Thu, 9 Jul 2015 12:26:09 +0000 (09:26 -0300)]
gitignore: ignore rtph263 test
Thiago Santos [Thu, 9 Jul 2015 02:47:44 +0000 (23:47 -0300)]
rtpjitterbuffer: fix build error with gcc (Debian 4.9.2-21) 4.9.2
Replace static constants with macros to make gcc happy
CC elements/elements_rtpjitterbuffer-rtpjitterbuffer.o
elements/rtpjitterbuffer.c:387:1: error: initializer element is not constant
static const GstClockTime PCMU_BUF_DURATION = PCMU_BUF_MS * GST_MSECOND;
^
elements/rtpjitterbuffer.c:388:1: error: initializer element is not constant
static const guint PCMU_BUF_SIZE = 64000 * PCMU_BUF_MS / 1000;
^
elements/rtpjitterbuffer.c:390:5: error: initializer element is not constant
PCMU_BUF_CLOCK_RATE * PCMU_BUF_MS / 1000;
Thiago Santos [Thu, 9 Jul 2015 02:40:45 +0000 (23:40 -0300)]
rtpjitterbuffer: run indent and fix some comments
Fix indent on this file and break some comment lines into two to make
it fit 80 chars per line
Thiago Santos [Wed, 8 Jul 2015 18:02:24 +0000 (15:02 -0300)]
qtdemux: rework segment event handling for adaptive streaming
When a new time segment is received upstream is going to restart
with a new atom. Make the neededbytes and todrop variables
reflect that to avoid waiting too much or dropping the
initial bytes that contain the header.
Thiago Santos [Wed, 8 Jul 2015 15:35:55 +0000 (12:35 -0300)]
qtdemux: push data from adapter before starting new segment
The adapter might have data remaining from the previous segment,
push it all before clearing the adapter and starting a new segment.
It can accumulate data if it had pushed and got not-linked, returning
immediately without processing all the data. Before starting a new
segment this data should be handled.
Sebastian Dröge [Wed, 8 Jul 2015 16:59:13 +0000 (19:59 +0300)]
rtpjitterbuffer: Calculate DTS from the clock if we had none for the first packet after a reset
https://bugzilla.gnome.org/show_bug.cgi?id=749536
Havard Graff [Wed, 8 Jul 2015 19:08:36 +0000 (21:08 +0200)]
rtpjitterbuffer: fix gap-time calculation and remove "late"
The amount of time that is completely expired and not worth waiting for,
is the duration of the packets in the gap (gap * duration) - the
latency (size) of the jitterbuffer (priv->latency_ns). This is the duration
that we make a "multi-lost" packet for.
The "late" concept made some sense in 0.10 as it reflected that a buffer
coming in had not been waited for at all, but had a timestamp that was
outside the jitterbuffer to wait for. With the rewrite of the waiting
(timeout) mechanism in 1.0, this no longer makes any sense, and the
variable no longer reflects anything meaningful (num > 0 is useless,
the duration is what matters)
Fixed up the tests that had been slightly modified in 1.0 to allow faulty
behavior to sneak in, and port some of them to use GstHarness.
https://bugzilla.gnome.org/show_bug.cgi?id=738363
Stian Selnes [Tue, 30 Jun 2015 09:21:31 +0000 (11:21 +0200)]
Revert "rtpjitterbuffer: Fix expected_dts calc in calculate_expected"
This reverts commit
05bd708fc5e881390fe839803b53144393d95ab0.
The reverted patch is wrong and introduces a regression because there
may still be time to receive some of the packets included in the gap
if they are reordered.
Thiago Santos [Wed, 8 Jul 2015 02:53:02 +0000 (23:53 -0300)]
qtdemux: flush samples before adding more from moof
Avoids accumulating all samples from a fragmented stream that could
lead to a 'index-too-big' error once it goes over 50MB of data. It
could reach that before 2h of playback so it doesn't take that long.
As upstream elements are providing data in time format they should
be the ones that have more information about the full media index
and should be able to seek if possible.
Thiago Santos [Wed, 8 Jul 2015 02:56:12 +0000 (23:56 -0300)]
qtdemux: rename upstream_newsegment to upstream_format_is_time
upstream_newsegment isn't really clear on what it means, it is set
to TRUE when the upstream element sends a segment in TIME format, so
rename it to be more clear about it.
It is important to know this because it means that upstream has
a notion of time and qtdemux is likely being driven by an upstream
element that is reading from a higher level abstraction than a file,
such as a DASH, MSS or DLNA element.
Thiago Santos [Wed, 8 Jul 2015 00:31:08 +0000 (21:31 -0300)]
qtdemux: fix leak by flushing previous sample info from trak
In fragmented streaming, multiple moov/moof will be parsed and their
previously stored samples array might leak when new values are parsed.
The parse_trak and callees won't free the previously stored values
before parsing the new ones.
In step-by-step, this is what happens:
1) initial moov is parsed, traks as well, streams are created. The
trak doesn't contain samples because they are in the moof's trun
boxes. n_samples is set to 0 while parsing the trak and the samples
array is still NULL.
2) moofs are parsed, and their trun boxes will increase n_samples and
create/extend the samples array
3) At some point a new moov might be sent (bitrate switching, for example)
and parsing the trak will overwrite n_samples with the values from
this trak. If the n_samples is set to 0 qtdemux will assume that
the samples array is NULL and will leak it when a new one is
created for the subsequent moofs.
This patch makes qtdemux properly free previous sample data before
creating new ones and adds an assert to catch future occurrences of
this issue when the code changes.
Thiago Santos [Tue, 7 Jul 2015 19:46:33 +0000 (16:46 -0300)]
qtdemux: fix index size check and debug message
It is allocating samples_count + n_samples, not only n_samples
Sebastian Dröge [Wed, 8 Jul 2015 14:02:05 +0000 (17:02 +0300)]
rtpjitterbuffer: Calculate receive time if we don't have any
This is required to properly schedule packet loss timers and make
sure all our calculations work properly.
https://bugzilla.gnome.org/show_bug.cgi?id=749536
Sebastian Dröge [Wed, 8 Jul 2015 12:13:17 +0000 (15:13 +0300)]
rtpjitterbuffer: Handle seqnum gaps in TCP streams without erroring out or overflowing calculations
That is, handle DTS==GST_CLOCK_TIME_NONE correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=749536
Vineeth T M [Wed, 8 Jul 2015 11:31:42 +0000 (20:31 +0900)]
avidemux: fix event leak
when seek fails in avidemux, event is not being freed.
https://bugzilla.gnome.org/show_bug.cgi?id=752117
Stian Selnes [Wed, 8 Jul 2015 10:02:22 +0000 (12:02 +0200)]
rtph263depay: Make sure payload is large enough
Plus new unit test.
https://bugzilla.gnome.org/show_bug.cgi?id=752112
Vineeth TM [Tue, 7 Jul 2015 23:59:49 +0000 (08:59 +0900)]
rtpklvdepay: fix printf format compiler warning
v_len is of type guint64, but while print the value(16 + len_size + v_len)
G_GSIZE_FORMAT is being used instead of G_GUINT64_FORMAT
https://bugzilla.gnome.org/show_bug.cgi?id=752100
Tim-Philipp Müller [Tue, 7 Jul 2015 19:25:47 +0000 (20:25 +0100)]
docs: add new RTP elements to docs
Tim-Philipp Müller [Tue, 7 Jul 2015 19:07:31 +0000 (20:07 +0100)]
tests: rtp-payloading: add basic unit test for KLV payloading
Also make it so that the mtu is always set if specified, not
only in case of the rather weird bufferlist test code path.
This allows us to easily make the payloader fragment a payload
across multiple output packets by setting a small MTU on it.
Tim-Philipp Müller [Tue, 7 Jul 2015 18:58:42 +0000 (19:58 +0100)]
rtpklvdepay: improve start detection and handle fragmented KLV units
Tim-Philipp Müller [Sun, 5 Jul 2015 19:25:10 +0000 (20:25 +0100)]
rtp: add SMPTE 336M KLV metadata depayloader
http://tools.ietf.org/html/rfc6597
Tim-Philipp Müller [Sat, 9 Aug 2014 09:08:42 +0000 (10:08 +0100)]
rtp: add SMPTE 336M KLV metadata payloader
http://tools.ietf.org/html/rfc6597
Stefan Sauer [Tue, 7 Jul 2015 14:59:20 +0000 (16:59 +0200)]
docs: fix "Symbol name not found at the start of the comment block"
Add symbols or change comment into a regular comment.
Stefan Sauer [Tue, 7 Jul 2015 14:58:53 +0000 (16:58 +0200)]
docs: remove outdated doc strings
Stefan Sauer [Fri, 3 Jul 2015 21:10:40 +0000 (23:10 +0200)]
docs: add missing plugins and ensure master doc is sorted
Luis de Bethencourt [Tue, 7 Jul 2015 14:54:41 +0000 (15:54 +0100)]
Revert "imagefreeze: Remove impossible error condition"
This reverts commit
d46631c5c7312ad613397f8238c7a9714ae3ae94.
pad only handle EOS events but not EOS flow, and will push the buffer again
resulting in an assertion error. So we should not handle the buffer
and return EOS flow.
Tim-Philipp Müller [Tue, 7 Jul 2015 14:50:50 +0000 (15:50 +0100)]
rtpg729depay: unmap rtp buffer in error path
Tim-Philipp Müller [Tue, 7 Jul 2015 14:48:40 +0000 (15:48 +0100)]
rtpg729pay: fix buffer leak
The handle_buffer vfunc takes ownership of the input buffer.
Fixes elements/rtp-payloading under valgrind.
Tobias Mueller [Thu, 2 Jul 2015 06:52:43 +0000 (08:52 +0200)]
goom: Initialised variables to remove compiler warnings
goom_core.c: In function 'goom_update':
goom_core.c:685:5: error: 'param2' may be used uninitialized in this function [-Werror=maybe-uninitialized]
goom_lines_switch_to (goomInfo->gmline2, mode, param2, amplitude, couleur);
^
goom_core.c:684:5: error: 'param1' may be used uninitialized in this function [-Werror=maybe-uninitialized]
goom_lines_switch_to (goomInfo->gmline1, mode, param1, amplitude, couleur);
^
https://bugzilla.gnome.org/show_bug.cgi?id=752053
Tim-Philipp Müller [Tue, 7 Jul 2015 08:18:39 +0000 (09:18 +0100)]
rtph261pay: fix indentation
Jimmy Ohn [Mon, 6 Jul 2015 10:11:00 +0000 (19:11 +0900)]
rtph261pay: Fix uninitialized variable compiler error
endpos variable does not correctly understand in the
4.6.3 GCC version. So compile error appears when we do
compile rtph261pay using jhbuild.
This patch is fixed the compile error in 4.6.3 GCC version.
https://bugzilla.gnome.org/show_bug.cgi?id=751985
Jan Alexander Steffens (heftig) [Wed, 12 Nov 2014 11:08:58 +0000 (12:08 +0100)]
flvdemux: Handle seek flags properly
Allows for non-keyframe seeks.
https://bugzilla.gnome.org/show_bug.cgi?id=738570
Thiago Santos [Tue, 24 Feb 2015 13:50:52 +0000 (10:50 -0300)]
qtdemux: avoid looping reading the 'moof' atom forever
It gets stuck if it only finds a moof and no mfra/mfro or moov
atoms. Skip the moof to continue the parsing to have it either
play or error out.
https://bugzilla.gnome.org/show_bug.cgi?id=745089
Vineeth TM [Fri, 26 Jun 2015 04:24:17 +0000 (13:24 +0900)]
flacdec: improve error handling
for files which have corrupted header, libflac is not able to
process the metadata properly. We just try to ignore the error
and continue with the processing, since metadata parsing is not
making much of a difference to libflac
https://bugzilla.gnome.org/show_bug.cgi?id=751334
Hyunjun Ko [Mon, 6 Jul 2015 11:16:38 +0000 (20:16 +0900)]
ximagesrc: add meta transform function
ximage metadata can't be transformed or copied, but provide an empty
transformation function instead of NULL to allow unconditional calling
of metas' transform functions.
https://bugzilla.gnome.org/show_bug.cgi?id=751778
Stian Selnes [Mon, 16 Jun 2014 14:14:28 +0000 (16:14 +0200)]
rtph263pdepay: init debug category
https://bugzilla.gnome.org/show_bug.cgi?id=752012
Stian Selnes [Fri, 20 Jun 2014 08:59:14 +0000 (10:59 +0200)]
rtpv8depay: ignore reserved bit in payload descriptor
Draft 16 of "RTP Payload Format for VP8" states in section 4.2 that:
R: Bit reserved for future use. MUST be set to zero and MUST be
ignored by the receiver.
https://bugzilla.gnome.org/show_bug.cgi?id=751929
Stian Selnes [Sat, 4 Jul 2015 18:56:42 +0000 (20:56 +0200)]
rtph261pay: rtph261depay: Add documentation
https://bugzilla.gnome.org/show_bug.cgi?id=751982
Stefan Sauer [Fri, 3 Jul 2015 19:58:14 +0000 (21:58 +0200)]
Automatic update of common submodule
From f74b2df to 9aed1d7
Sebastian Dröge [Fri, 3 Jul 2015 12:29:16 +0000 (14:29 +0200)]
rtph261pay: Fix compiler warning
gstrtph261pay.c: In function 'gst_rtp_h261_pay_class_init':
gstrtph261pay.c:1003:17: error: variable 'gobject_class' set but not used [-Werror=unused-but-set-variable]
GObjectClass *gobject_class;
Sebastian Dröge [Fri, 3 Jul 2015 12:03:05 +0000 (14:03 +0200)]
rtph261depay: Let the base class push the buffer so it can deal with the flow return
Sebastian Dröge [Fri, 3 Jul 2015 12:11:35 +0000 (14:11 +0200)]
rtph261pay: Remove unused adapter
Sebastian Dröge [Fri, 3 Jul 2015 11:17:24 +0000 (13:17 +0200)]
speexpay: Directly attach payload to the output buffer instead of copying it
Sebastian Dröge [Fri, 3 Jul 2015 11:07:20 +0000 (13:07 +0200)]
sbcpay: Attach payload directly to the output instead of copying
Stian Selnes [Mon, 1 Dec 2014 13:18:40 +0000 (14:18 +0100)]
rtp: add H.261 RTP payloader and depayloader
Implementation according to RFC 4587.
Payloader create fragments on MB boundaries in order to match MTU size
the best it can. Some decoders/depayloaders in the wild are very strict
about receiving a continuous bit-stream (e.g. no no-op bits between
frames), so the payloader will shift the compressed bit-stream of a
frame to align with the last significant bit of the previous frame.
Depayloader does not try to be fancy in case of packet loss. It simply
drops all packets for a frame if there is a loss, keeping it simple.
https://bugzilla.gnome.org/show_bug.cgi?id=751886
Sebastian Dröge [Fri, 3 Jul 2015 10:18:52 +0000 (12:18 +0200)]
rtpmpvdepay: Don't forget to unmap the input buffer
Sebastian Dröge [Fri, 3 Jul 2015 10:14:47 +0000 (12:14 +0200)]
rtpmpvpay: Create buffer lists instead of pushing each buffer individually
Sebastian Dröge [Fri, 3 Jul 2015 10:03:59 +0000 (12:03 +0200)]
rtpmpapay: Use buffer lists instead of pushing each fragment individually
Sebastian Dröge [Fri, 3 Jul 2015 08:51:57 +0000 (10:51 +0200)]
rtpmp4apay: Create buffer lists and don't copy payload memory
Miguel París Díaz [Mon, 29 Jun 2015 14:14:18 +0000 (16:14 +0200)]
rtpjitterbuffer: Consider timers len to compare with RTP_MAX_DROPOUT
When there are a lot of small gaps, we can consider that there is
a big gap (too losses) to reset the buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=751636
Sebastian Dröge [Mon, 29 Jun 2015 13:53:52 +0000 (15:53 +0200)]
rtpjitterbuffer: If possible, always update the current time before looping over all timers
If we have a clock, update "now" now with the very latest running time we have.
If timers are unscheduled below we otherwise wouldn't update now (it's only updated
when timers expire), and also for the very first loop iteration now would otherwise
always be 0.
Also the time is used for the timeout functions, e.g. to calculate any times
for the next timeouts and we would otherwise pass too old times there.
https://bugzilla.gnome.org/show_bug.cgi?id=751636
Luis de Bethencourt [Thu, 2 Jul 2015 13:34:57 +0000 (14:34 +0100)]
v4l2transform: fix memory leak
tmp needs to be freed before going out of scope in 'done'.
CID #1308954
Sebastian Dröge [Thu, 2 Jul 2015 10:23:45 +0000 (12:23 +0200)]
rtph263ppay: Generate buffer lists and attach the payload directly instead of copying it
Sebastian Dröge [Thu, 2 Jul 2015 07:48:02 +0000 (09:48 +0200)]
rtph263pdepay: Simplify code a bit and do less direct memcpy and let GstBuffer do that for us
Sebastian Dröge [Thu, 2 Jul 2015 07:17:59 +0000 (09:17 +0200)]
rtph263pay: Stop using an adapter and directly use the buffer
We always pushed one buffer into the adapter, then handled exactly that one
buffer and flushed it from the adapter. Now also don't memcpy() the actual
payload but just attach the input buffer's data to the output buffer.
This code still needs some serious refactoring/rewriting.
Sebastian Dröge [Wed, 1 Jul 2015 19:57:28 +0000 (21:57 +0200)]
rtpgsmpay: Remove non-existing includes for now
git add -p mistake.
Sebastian Dröge [Wed, 1 Jul 2015 17:29:07 +0000 (19:29 +0200)]
rtpgstpay: Use the return value of gst_buffer_append()
Sebastian Dröge [Wed, 1 Jul 2015 17:19:13 +0000 (19:19 +0200)]
rtpgsmpay: Attach payload to the output buffer instead of copying it
Sebastian Dröge [Wed, 1 Jul 2015 15:58:56 +0000 (17:58 +0200)]
rtpg729pay: Attach payload directly to output buffers instead of copying
Sebastian Dröge [Wed, 1 Jul 2015 15:43:51 +0000 (17:43 +0200)]
rtpg723pay: Attach payload buffer to the output instead of copying
Sebastian Dröge [Wed, 1 Jul 2015 15:30:39 +0000 (17:30 +0200)]
rtpdvdepay: Map the output buffer once instead of once every 80 bytes
Jimmy Ohn [Wed, 1 Jul 2015 12:46:46 +0000 (21:46 +0900)]
avidemux: fix return type of index_entry_offset_search()
It's a compare function and may return a negative value,
so should for correctness and consistency return a signed
integer.
https://bugzilla.gnome.org/show_bug.cgi?id=751780
Miguel París Díaz [Wed, 1 Jul 2015 12:12:57 +0000 (14:12 +0200)]
rtpjitterbuffer: refactor handle_next_buffer
The goal of this patch is making handle_next_buffer function
more readable avoiding unnecesary gotos and adding other
cosmetic changes.
Sebastian Dröge [Wed, 1 Jul 2015 13:40:25 +0000 (15:40 +0200)]
rtpac3pay: Attach the payload to the output buffer instead of copying it
Might also want to produce buffer lists here if needed.
Sebastian Dröge [Wed, 1 Jul 2015 13:38:47 +0000 (15:38 +0200)]
rtp: Fix indention
Sebastian Dröge [Wed, 1 Jul 2015 10:37:11 +0000 (12:37 +0200)]
rtp: Add examples with VTS/ATS for VP8/OPUS
Let's have an example with modern codecs.
Sebastian Dröge [Tue, 30 Jun 2015 16:11:33 +0000 (18:11 +0200)]
rtph264pay: Use GST_WARNING_OBJECT() instead of GST_WARNING()
Sebastian Dröge [Tue, 30 Jun 2015 12:06:20 +0000 (14:06 +0200)]
vp8depay: Don't lock/map every non-keyframe buffer twice
Just copy the complete header instead of first looking at the first byte
and then at the remaining 10 bytes.
Luis de Bethencourt [Mon, 29 Jun 2015 15:05:44 +0000 (16:05 +0100)]
v4l2: document fallthrough cases
Pacify coverity and document fallthrough cases in switch statements.
CID #1308948, #1308947, #1308946
Sebastian Dröge [Mon, 29 Jun 2015 08:36:58 +0000 (10:36 +0200)]
Revert "rtpjitterbuffer: If we have an immediate timeout, don't try to find an earlier timeout"
This reverts commit
0c21cd7177ea883c710999147ddcedb19004d182.
If we have multiple immediate timers, we want to first handle the one with the
lowest sequence number... which would be broken now.
Instead of this we should just use a GSequence for the timers, and have them
sorted first by timestamp, and for equal timestamps by sequence number. Then
we would always only have to take the very first timer from the list and never
have to look at any others.
Sebastian Dröge [Mon, 29 Jun 2015 08:14:05 +0000 (10:14 +0200)]
rtpjitterbuffer: If we have an immediate timeout, don't try to find an earlier timeout
If we have lots of such immediate timeouts, we would otherwise have quadratic
runtime in the number of timeouts.
Thiago Santos [Fri, 19 Jun 2015 21:01:03 +0000 (18:01 -0300)]
splitmuxsrc: sticky events are sent automatically from the pad
No need to send them explicitly from the element
https://bugzilla.gnome.org/show_bug.cgi?id=751240
Thiago Santos [Fri, 19 Jun 2015 21:00:40 +0000 (18:00 -0300)]
splitmuxsrc: make sure to push sticky events before adding pad
It allows the caps to be set on the pad before being added for
dynamic autoplugging to work.
https://bugzilla.gnome.org/show_bug.cgi?id=751240
Hyunjun Ko [Thu, 25 Jun 2015 15:05:29 +0000 (00:05 +0900)]
rtspsrc: Add new ntp-time-source property and deprecate use-pipeline-clock property
Enable to use new ntp-time-source property of rtpbin
https://bugzilla.gnome.org/show_bug.cgi?id=751496
Hyunjun Ko [Thu, 25 Jun 2015 14:19:58 +0000 (23:19 +0900)]
rtpbin/session: fix description
https://bugzilla.gnome.org/show_bug.cgi?id=751496
Luis de Bethencourt [Thu, 25 Jun 2015 09:57:25 +0000 (10:57 +0100)]
docs: decodebin2 -> decodebin
Luis de Bethencourt [Thu, 25 Jun 2015 09:47:06 +0000 (10:47 +0100)]
deinterlace: update example pipeline
Update reference to decodebin2 to decodebin
Luis de Bethencourt [Thu, 25 Jun 2015 09:45:35 +0000 (10:45 +0100)]
deinterlace: remove dead assignments
Values in fields_required and same_buffer are overwritten before used. Removing
assignment
Tim-Philipp Müller [Thu, 25 Jun 2015 09:06:07 +0000 (10:06 +0100)]
mikmod: remove ancient unported plugin
This hasn't been touched in 11 years, and
clearly no one's been missing it.
Gilbok Lee [Tue, 23 Jun 2015 11:15:13 +0000 (20:15 +0900)]
qtdemux: does not detect orientation
Most files don't contain the values for transposing the coordinates
back to the positive quadrant so qtdemux was ignoring the rotation
tag. To be able to properly handle those files qtdemux will also ignore
the transposing values to only detect the rotation using the values
abde from the transformation matrix:
[a b c]
[d e f]
[g h i]
https://bugzilla.gnome.org/show_bug.cgi?id=738681
Sebastian Dröge [Wed, 24 Jun 2015 22:04:16 +0000 (00:04 +0200)]
Back to development
Sebastian Dröge [Wed, 24 Jun 2015 21:30:41 +0000 (23:30 +0200)]
Release 1.5.2
Sebastian Dröge [Wed, 24 Jun 2015 20:56:12 +0000 (22:56 +0200)]
Update .po files
Sebastian Dröge [Wed, 24 Jun 2015 09:15:00 +0000 (11:15 +0200)]
po: Update translations
Nicolas Dufresne [Tue, 23 Jun 2015 22:42:59 +0000 (18:42 -0400)]
qtmux: Correctly test each segments
In presence of gaps, qtdemux will emit multiple segments. The
second segment start should match the CTTS.
https://bugzilla.gnome.org/show_bug.cgi?id=751361
Nicolas Dufresne [Tue, 23 Jun 2015 21:54:31 +0000 (17:54 -0400)]
qtmux: Correctly calculate the elst media start
The media start has nothing to do with the shift we have applied
but with the value of the first PTS. This is defined as:
Dt(0) = 0
Ct(0) = Dt(0) + CTTS(0)
So the media start is always the first CTTS.
https://bugzilla.gnome.org/show_bug.cgi?id=751361
Thiago Santos [Tue, 23 Jun 2015 14:49:32 +0000 (11:49 -0300)]
qtdemux: accumulate previous edts entries into segment.base
Allows playing edts editted files with proper synchronization of
streams. This patch fixes the regression introduced by
bf95f93c0189aa04f18e264b86b6527e431c5d53 that was added to fix
segment seeks handling.
Having the accumulated_base separated from the main segment.base
allows handling both segment seeks and edts editted files.
https://bugzilla.gnome.org/show_bug.cgi?id=751361
Thiago Santos [Tue, 23 Jun 2015 03:56:16 +0000 (00:56 -0300)]
qtdemux: improve some debug messages
Those messages are about the stream, use the pad as the
debug object to make it clear from the logs
https://bugzilla.gnome.org/show_bug.cgi?id=751361
Thiago Santos [Tue, 23 Jun 2015 01:22:09 +0000 (22:22 -0300)]
qtmux: store last_dts of the first buffer
Buffers need not to start at running-time 0 so the last_dts needs
to be the value of the first buffer's dts as it is used to compute
the duration of the buffers. If it was left at 0 the first buffer
would have a larger duration when it shouldn't
https://bugzilla.gnome.org/show_bug.cgi?id=751361