Age | Commit message (Collapse) | Author |
|
|
|
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;
|
|
Fix indent on this file and break some comment lines into two to make
it fit 80 chars per line
|
|
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
|
|
Plus new unit test.
https://bugzilla.gnome.org/show_bug.cgi?id=752112
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=751242
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=740575
|
|
The mp4 muxer now writes a place-holder mdat as a free
atom followed by a 0-byte mdat that covers the rest of the
file, making it possible to rewrite it as 64-bit, or leave
it as-is if nothing else is written afterward
|
|
caps or property
|
|
Makes source code smaller, and ensures we go through common initialization
path (like the one that sets up XML unit test output ...)
|
|
See also https://bugzilla.gnome.org/show_bug.cgi?id=738237
|
|
The calculations were a bit off everywhere, even before the changes done
recently to the delay for RTX of expected future packets. It only worked by
accident, but now the calculations are all correct again. Hopefully.
|
|
Both input streams in this test have a segment.start = 10s, so
output should start from 0 anyway.
Another test has both starting at non-0 segments, but the running
time of both streams should still start from 0
|
|
Adds a new simple test that verifies that data is properly muxed
and preserved. PTS, DTS, duration and caps are verified.
|
|
Added test suite for alpha element with test cases
1. alpha
2. chroma keying
https://bugzilla.gnome.org/show_bug.cgi?id=747595
|
|
Commit #1018aa made rtprtxsend handle buffer lists, breaking
the test which probes for buffers, but not buffer lists.
Use a utility function to run the probe callback on each buffer
in the list in turn and remove any buffers that are dropped.
|
|
Also verify that the multifilesink file messages are being correctly
posted to the bus
|
|
Use a GstBus and wait for EOS to finish the tests instead of
relying on sleeping
|
|
When not in fast-start or fragmented mode, we need to be able
to rewrite the size of the mdat atom, or else the output just
won't be playable - the mdat placeholder with size == 0 will
cover the rest of the file, including any moov atom we write out.
https://bugzilla.gnome.org/show_bug.cgi?id=708808
|
|
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726416
|
|
See https://bugzilla.gnome.org/show_bug.cgi?id=745539
|
|
The test had a function to print the error, but was not parsing it.
This was causing warning about dbg_info being used uninitialized. If
the test was testing any errors, this would have crashed.
|
|
Add a unit test for file splitting, and fix the leaks in the
splitmuxsink it found
|
|
|
|
Implement 2 new elements - splitmuxsink and splitmuxsrc.
splitmuxsink is a bin which wraps a muxer and takes 1 video stream,
plus audio/subtitle streams, and starts a new file
whenever necessary to avoid overrunning a threshold of either bytes
or time. New files are started at a keyframe, and corresponding audio
and subtitle streams are split at packet boundaries to match
video GOP timestamps.
splitmuxsrc is a corresponding source element which handles
the splitmux:// URL and plays back all component files,
reconstructing the original elementary streams as it goes.
|
|
Our ones were expired. The new ones were copied from libsoup's
tests files.
Also sets the property to use our own cert to validate the
server, otherwise the default system certs would be used
and it would fail.
|
|
They should always be built, while the speex elements are not.
Need to check for a smaller number of buffers then (7->4) because
speexenc will add 3 header buffers while alawenc will just output
as many buffers as it receives as input.
https://bugzilla.gnome.org/show_bug.cgi?id=742098
|
|
They should always be built, while the speex elements are not.
https://bugzilla.gnome.org/show_bug.cgi?id=742098
|
|
|
|
|
|
|
|
|
|
rtpmux behaves like a funnel in that it forwards whatever upstream is
sending buffers. So setting proxy caps doesn't make sense as the
upstream don't have to have compatible caps, thus resulting in an empty
caps set as a result of a caps query. Instead set fixed caps just
as funnel does.
https://bugzilla.gnome.org/show_bug.cgi?id=738722
|
|
These were renamed in GstRTPBasePayload in 1.0
|
|
These were renamed in GstRTPBasePayload in 1.0
|
|
The SOUP_SERVER_PORT property has been deprecated in recent libsoup
versions.
|
|
To avoid deprecation warnings
|
|
|
|
Avoids half-second sleep for no reason.
|
|
|
|
Check that vp8dec can properly accept a new caps when upstream
changes it
https://bugzilla.gnome.org/show_bug.cgi?id=734266
|
|
... and correspondingly unexpected buffer sizes.
|
|
Set output caps layout independently from input caps layout which can
be either non-interleaved or interleaved.
https://bugzilla.gnome.org/show_bug.cgi?id=733866
|
|
|
|
|
|
Actually look for error messages on the bus and fail if there
is one before the EOS message. Disable pull mode test which is
pointless as long as matroskaparse only supports push mode
(pull mode support has not been ported over to 1.0).
|