Benjamin M. Schwartz [Wed, 24 Feb 2010 03:16:39 +0000 (22:16 -0500)]
Add 4:2:2, 4:1:1, and 4:4:4 output support
Wim Taymans [Tue, 2 Mar 2010 12:21:24 +0000 (13:21 +0100)]
rtpsource: use payload size to estimate bitrate
Use the length of the payload for estimating the receiver bitrate so that it
matches the calculations done on the sender side. Together with the number of
packets one can scale the bitrate with the header overhead of the lower
transport.
Wim Taymans [Tue, 2 Mar 2010 11:39:20 +0000 (12:39 +0100)]
rtpsource: refactor bitrate estimation
Don't reuse the same variable we need for stats for the bitrate estimation
because we're updating it.
Refactor the bitrate estimation code so that both sender and receivers use the
same code path.
Tristan Matthews [Mon, 1 Mar 2010 21:40:27 +0000 (16:40 -0500)]
added bitrate estimation to receiver-side stats, fixes #611213
Wim Taymans [Mon, 1 Mar 2010 15:01:24 +0000 (16:01 +0100)]
h263pay: fix typo in debug
Tim-Philipp Müller [Sat, 6 Mar 2010 00:43:03 +0000 (00:43 +0000)]
Release 0.10.19
Tim-Philipp Müller [Sat, 6 Mar 2010 00:42:09 +0000 (00:42 +0000)]
Update .po files
Tim-Philipp Müller [Wed, 3 Mar 2010 20:29:30 +0000 (20:29 +0000)]
0.18.4 pre-release
Edward Hervey [Tue, 2 Mar 2010 17:29:41 +0000 (18:29 +0100)]
matroskademux: Make sure we don't send invalid newsegments
Fixes #611501
Edward Hervey [Tue, 2 Mar 2010 13:09:14 +0000 (14:09 +0100)]
matroskademux: Mark streams as being EOS at the right time.
This allows us to stop streaming only when all streams have gone past the
segment.stop and not before.
Fixes #611501
Sebastian Dröge [Fri, 26 Feb 2010 17:10:32 +0000 (18:10 +0100)]
matroskademux: Advance sparse streams only as much as required to keep the gap smaller than 500ms
Changing it to the newest timestamp that was ever pushed will
increase the segment start in 500ms jumps, which could be just
after the next sparse stream buffer. E.g.
Video at 1.0s, sparse stream at 0.5s would jump the
sparse stream to 1.0s. Now a new sparse stream buffer could
appear that has a timestamp of 0.9s and this would be
dropped for no good reason because of bad luck.
Tim-Philipp Müller [Wed, 24 Feb 2010 01:36:07 +0000 (01:36 +0000)]
0.10.18.3 pre-release
Alessandro Decina [Wed, 24 Feb 2010 01:05:49 +0000 (02:05 +0100)]
Make sure FLUSH_STOP is sent so not to leave downstream flushing.
Volker Grabsch [Tue, 23 Feb 2010 16:25:54 +0000 (17:25 +0100)]
configure: Use $PKG_CONFIG instead of pkg-config to fix cross compilation
Fixes bug #610839.
Sebastian Dröge [Tue, 23 Feb 2010 16:24:03 +0000 (17:24 +0100)]
rtpjitterbuffer: Reset skew detection after instantiating the jitterbuffer
...not only when going to READY. This sets high_level and friends to
a more useful value.
Sebastian Dröge [Tue, 23 Feb 2010 16:19:14 +0000 (17:19 +0100)]
rtpjitterbuffer: Return 100 if high-level is 0 instead of dividing by zero
Wim Taymans [Mon, 22 Feb 2010 11:24:14 +0000 (12:24 +0100)]
rtpmp4gdepay: avoid division by 0
Avoid a division by 0 when no constantDuration was specified and when out two
timestamps are equal.
Fixes #610265
Wim Taymans [Mon, 22 Feb 2010 17:20:46 +0000 (18:20 +0100)]
dvdepay: don't output frames until we have a header
Wait for the complete first 6 header DIF packets before outputting a frame.
Decoders need this info to correctly decode the data.
Fixes #610556
David Hoyt [Mon, 22 Feb 2010 19:55:29 +0000 (20:55 +0100)]
jpegdec: Fix invalid memory access by first checking and then reading
Fixes bug #610483.
Philippe Normand [Thu, 18 Feb 2010 08:05:50 +0000 (09:05 +0100)]
pulsesink: gst_pulsesink_get_mute: set result earlier.
In the cases where no buffer was process yet or the index is not
available, get_pulsesink_get_mute() would unconditionally return
FALSE.
https://bugzilla.gnome.org/show_bug.cgi?id=610337
Tim-Philipp Müller [Fri, 19 Feb 2010 12:35:29 +0000 (12:35 +0000)]
pkgconfig: fix gstreamer-plugins-good uninstalled .pc file
Fix gst-plugins-base reference/requirement. This caused spurious
problems with uninstalled -ugly/-bad not finding -good plugins in
their unit tests (when distchecking).
Tim-Philipp Müller [Fri, 19 Feb 2010 01:03:31 +0000 (01:03 +0000)]
0.10.18.2 pre-release
Tim-Philipp Müller [Fri, 19 Feb 2010 00:54:13 +0000 (00:54 +0000)]
Make git ignore shapewipe examples and tests
Tim-Philipp Müller [Fri, 19 Feb 2010 00:46:40 +0000 (00:46 +0000)]
flvdemux: minor micro-optimisation
We know these values don't change during the loop, but the compiler
doesn't and has to re-check them for every iteration.
Tim-Philipp Müller [Fri, 19 Feb 2010 00:39:50 +0000 (00:39 +0000)]
flvdemux: remove static keyword from variables that shouldn't be static
Multiple flvparse/flvdemux instances should be able to operate without
trampling over each other by accidentally re-using the same (static)
variables. (Spotted by Mark Nauwelaerts)
Tim-Philipp Müller [Tue, 16 Feb 2010 02:07:07 +0000 (02:07 +0000)]
docs: add Since: markers for new jitterbuffer properties
Robert Swain [Thu, 18 Feb 2010 17:20:24 +0000 (18:20 +0100)]
qtdemux: Fix off-by-one logic error in frame rate cap regression commit
Thiago Santos [Wed, 17 Feb 2010 19:27:33 +0000 (16:27 -0300)]
qtdemux: Use the correct duration when comparing segments
Do not confuse QtDemuxSegments with GstSegments when
comparing the total file duration with the segment duration
Fixes #610296
Robert Swain [Wed, 17 Feb 2010 17:06:29 +0000 (18:06 +0100)]
qtdemux: add durations modulo 1<<32
For calculating the durations of each sample, we are supposed to add each
duration modulo 1<<32 so make the elapsed time counter a uint32.
Fixes #610280
Anders Skargren [Tue, 16 Feb 2010 20:05:24 +0000 (21:05 +0100)]
multipartdemux: improve header mime-type parsing
Make the handing of the mime type within the "boundary" a bit less naive.
The standard for MIME allows parameters to follow the "type" / "subtype"
clause separated from the mime type by ';'.
Modifies the multipartdemuxer's header parsing so it doesnt assume
the whole line after "content-type:" is the mime type and thus makes it a bit
more resilient to finding absurd mime types in the case where parameters are
added.
Fixes #604711
Wim Taymans [Tue, 16 Feb 2010 18:53:09 +0000 (19:53 +0100)]
rtspsrc: avoid stopping NULL tasks
Check the task for NULL, it could be paused and set to NULL before.
Mark Nauwelaerts [Tue, 16 Feb 2010 15:22:28 +0000 (16:22 +0100)]
qtdemux: fix ALAC codec-data handling
ALAC codec-data apparently comes in (at least) two flavours (mov, mp4),
so use atom based parsing to retrieve required data, rather than
aiming for a specific offset.
See also #580731.
Mark Nauwelaerts [Tue, 16 Feb 2010 14:50:23 +0000 (15:50 +0100)]
qtdemux: fix debug message
Mark Nauwelaerts [Thu, 11 Feb 2010 18:39:04 +0000 (19:39 +0100)]
qtdemux: handle signed values in 3GPP location tag
Mark Nauwelaerts [Mon, 8 Feb 2010 20:35:53 +0000 (21:35 +0100)]
rtspsrc: fix typo in debug message
Mark Nauwelaerts [Tue, 16 Feb 2010 14:00:13 +0000 (15:00 +0100)]
avidemux: reset some more stream state after seek
In particular, fixes non-flushing seek.
Robert Swain [Tue, 16 Feb 2010 13:44:11 +0000 (14:44 +0100)]
qtdemux: Fix frame rate cap regression
Look for a non-zero min_duration during initialisation to avoid
incorrect frame rate caps.
Stefan Kost [Tue, 16 Feb 2010 08:13:17 +0000 (10:13 +0200)]
v4l2: log more details in buffer pool finalize
Helps to align with the loggin from libv4l.
Stefan Kost [Tue, 16 Feb 2010 08:11:40 +0000 (10:11 +0200)]
v4l2: init datastructures after pre-conditions checks
Stefan Kost [Tue, 16 Feb 2010 08:10:45 +0000 (10:10 +0200)]
jpegenc: add a fixme for handling other YUV variants
Brian Cameron [Tue, 16 Feb 2010 01:40:19 +0000 (01:40 +0000)]
matroska: fix GST_ELEMENT_ERROR usage
Fixes #610053.
Tim-Philipp Müller [Tue, 16 Feb 2010 00:50:15 +0000 (00:50 +0000)]
configure: fix up GST_CXXFLAGS properly
We don't want C specific flags in GST_CXXFLAGS, so base it on the
GST_CFLAGS that only contains the pkg-config CFLAGS but none of
the GST_OPTION_CFLAGS. Also, we only need the local includes once.
Fix typo as well (GST_FLAGS -> GST_CFLAGS).
Stefan Kost [Mon, 15 Feb 2010 21:13:46 +0000 (23:13 +0200)]
configure: base GST_CXXFLAGS on --cflags from pkg-config
pkg-config sets GST_CFLAGS and GST_LIBS. We need to use CFLAGS as a starting
point for for both C and CXX settings.
Wim Taymans [Wed, 20 Jan 2010 17:52:51 +0000 (18:52 +0100)]
rtpbin: remove use of ntp_ns_base
Wim Taymans [Wed, 20 Jan 2010 17:22:20 +0000 (18:22 +0100)]
rtpbin: remove more ntpnstime and cleanups
Remove some code where we pass ntpnstime around, we can do most things with the
running_time just fine.
Rename a variable in the ArrivalStats struct so that it's clear that this is the
current system time.
Wim Taymans [Wed, 20 Jan 2010 17:19:34 +0000 (18:19 +0100)]
rtpsource: use running_time for jitter
Use the running_time to calculate the jitter instead of the ntp time. Part of
the plan to get rid of ntpnsbase.
Wim Taymans [Wed, 20 Jan 2010 16:04:03 +0000 (17:04 +0100)]
rtpbin: change how NTP time is calculated in RTCP
Don't calculate the NTP time based on the running_time of the pipeline but from
the systemclock. This allows us to generate more accurate NTP timestamps in case
the systemclock is synchronized with NTP or similar.
Tim-Philipp Müller [Mon, 15 Feb 2010 12:12:36 +0000 (12:12 +0000)]
v4l2: printf format string fix
The compiler wants a cast here even though the type is already
typedefed as 64-bit integer (presumably because glib has typedefed
guint64 to unsigned long here).
Tim-Philipp Müller [Mon, 15 Feb 2010 10:33:02 +0000 (10:33 +0000)]
matroska: fix printf format string
Tim-Philipp Müller [Mon, 15 Feb 2010 00:50:10 +0000 (00:50 +0000)]
raw1394, matroska, rtpmanager: remove padding from structures
None of these element and class structures are in public headers,
so don't need padding.
Tim-Philipp Müller [Mon, 15 Feb 2010 00:47:11 +0000 (00:47 +0000)]
po: update for new translator comment
Tim-Philipp Müller [Mon, 15 Feb 2010 00:45:51 +0000 (00:45 +0000)]
pulsesink: add comment for translators for 'x by y' message
Fixes #609724.
Sebastian Dröge [Mon, 15 Feb 2010 00:28:44 +0000 (01:28 +0100)]
cairorender: Fix leaking of pad templates
Sebastian Dröge [Sun, 14 Feb 2010 23:50:27 +0000 (00:50 +0100)]
shapewipe: Fix unit test for latest changes
Now the alpha is multiplied with the already existing alpha
value instead of simply ignoring it and the luma/chroma values
are kept, even if the output is 100% transparent.
Sebastian Dröge [Sun, 14 Feb 2010 23:47:08 +0000 (00:47 +0100)]
shapewipe: Improve unit test output on errors
Sebastian Dröge [Sun, 14 Feb 2010 22:17:20 +0000 (23:17 +0100)]
Automatic update of common submodule
From 96dc793 to 44ecce7
Tim-Philipp Müller [Sat, 13 Feb 2010 23:28:06 +0000 (23:28 +0000)]
configure: bump -base requirement to git
For GST_RIFF_TAG_JUNQ.
Tim-Philipp Müller [Fri, 12 Feb 2010 16:11:30 +0000 (16:11 +0000)]
v4l2sink: change rank to NONE so it is never autoplugged
Edward Hervey [Sat, 13 Feb 2010 17:18:42 +0000 (18:18 +0100)]
flvdemux: Audio tags without any content are valid.
We silently ignore them instead of erroring out.
Edward Hervey [Sat, 13 Feb 2010 17:07:50 +0000 (18:07 +0100)]
flvdemux: Fix GST_CLOCK_DIFF usage.
It was previously checking for DIFF(a, b > 6 * GST_SECOND) instead of
the proper DIFF(a,b) > 6 * GST_SECOND
Edward Hervey [Sat, 13 Feb 2010 15:27:07 +0000 (16:27 +0100)]
flvdemux: Don't forget to reset the indexed variable when cleaning up
Edward Hervey [Sat, 13 Feb 2010 10:01:53 +0000 (11:01 +0100)]
flvdemux: Speedup GstIndex usage
Used the _add_associationv variant of GstIndex since we know how many
associations we're adding. Trims up to 50% from index generation time.
Note : It would be great if the index could be generated on the fly or
on request as opposed to being fully created at startup.
Wim Taymans [Fri, 12 Feb 2010 18:32:27 +0000 (19:32 +0100)]
jitterbuffer: don't resync to invalid timestamps
If we detect backward timestamps on the server, don't try to resync when we
don't have an input timestamp (such as when using RTSP over TCP) instead, do
nothing but assume the timestamp was ok, it will correct itself when time goes
forwards.
Wim Taymans [Fri, 12 Feb 2010 16:21:43 +0000 (17:21 +0100)]
rtpbin: fix typo
Wim Taymans [Fri, 12 Feb 2010 15:47:29 +0000 (16:47 +0100)]
jitterbuffer: start out active and not buffering
There is no need to set the latency in the jittebuffer in _init, we will set
that later when going to PAUSED.
Set the jitterbuffer active and not buffering when starting.
Wim Taymans [Wed, 27 Jan 2010 16:57:55 +0000 (17:57 +0100)]
rtpbin: more buffering work
When deactivating jitterbuffers when the buffering starts, keep the current
percent of the jitterbuffer and also set the jitterbuffer in the buffering state
so that we know when it's filled again.
Add property to get the buffering percentage of the jitterbuffer.
Wim Taymans [Wed, 14 Oct 2009 14:29:35 +0000 (16:29 +0200)]
rtpjitterbuffer: adjust latency in buffer mode
When we are in buffer mode, adjust the buffering low/high thresholds based on
the total configured latency. If we don't and there is a huge queue or element
with a big latency downstream we might drain the complete queue immediately and
start buffering again.
Wim Taymans [Mon, 12 Oct 2009 09:54:07 +0000 (11:54 +0200)]
jitterbuffer: add ts-offset to timestamp
Add the ts-offset to the buffer timestamp to get the final output timestamp of
the buffer.
Wim Taymans [Thu, 8 Oct 2009 17:23:53 +0000 (19:23 +0200)]
rtpbin: do more accurate buffer offsets
Return the next timestamp in the jitterbuffer.
Use the min-timestamp of the jitterbuffers to calculate an offset so that the
next timestamp is pushed with a timestamp equal to running_time.
Start producing timestamps from 0 in the buffering case too.
Wim Taymans [Thu, 8 Oct 2009 16:42:11 +0000 (18:42 +0200)]
rtpbin: only start buffering when < 100%
Only start buffering when the percentage message is < 100 %.
Wim Taymans [Tue, 6 Oct 2009 11:34:34 +0000 (13:34 +0200)]
rtpbin: keep track of elapsed pause time
Keep track of the time we spend pausing the jitterbuffers when they were
buffering and distribute this elapsed time to the jitterbuffers.
Also keep the latency in nanosecond precision.
Wim Taymans [Tue, 6 Oct 2009 11:33:15 +0000 (13:33 +0200)]
jitterbuffer: keep track of offset
Keep track of an outgoing offset that we add to each outgoing buffer to
compensate for PAUSE when buffering.
Adjust the offset when activating.
Wim Taymans [Tue, 6 Oct 2009 11:30:54 +0000 (13:30 +0200)]
jitterbuffer: report level using high watermark
Wim Taymans [Mon, 5 Oct 2009 19:31:59 +0000 (21:31 +0200)]
rtpbin: pass running_time to jitterbuffer pause
Pass the current running time to the jitterbuffer when pausing or resuming so
that it calculate the right offsets.
Small cleanups and comments.
Set the default rtspsrc latency to 2 seconds.
Wim Taymans [Mon, 5 Oct 2009 18:09:30 +0000 (20:09 +0200)]
rtpbin: add some comments
Wim Taymans [Mon, 5 Oct 2009 17:45:35 +0000 (19:45 +0200)]
rtpbin: more buffering updates
Add signal to pause the jitterbuffer. This will be emitted from gstrtpbin when
one of the jitterbuffers is buffering.
Make rtpbin collect the buffering messages and post a new buffering message with
the min value.
Remove the stats callback from jitterbuffer but pass a percent integer to
functions that affect the buffering state of the jitterbuffer. This allows us
then to post buffering messages from outside of the jitterbuffer lock.
Wim Taymans [Mon, 5 Oct 2009 11:32:17 +0000 (13:32 +0200)]
rtpbin: propagate buffer-mode property
Propagate buffer-mode property to the jitterbuffers.
Intercept BUFFERING messages in rtpbin
Wim Taymans [Thu, 1 Oct 2009 15:14:09 +0000 (17:14 +0200)]
jitterbuffer: do more buffering implementation
Add callback for buffering stats.
Configure the latency in the jitterbuffer instead of passing it with _insert.
Calculate buffering levels when pushing and popping
Post buffering messages.
Wim Taymans [Thu, 1 Oct 2009 10:46:21 +0000 (12:46 +0200)]
jitterbuffer: flesh out buffering mode some more
Add a buffering state to the jitterbuffer and wait until buffering ends before
pushing out packets.
Wim Taymans [Thu, 1 Oct 2009 10:09:58 +0000 (12:09 +0200)]
jitterbuffer: hook up the mode property
Expose a mode property on the jitterbuffer.
Fix the case where timestamps are -1 in the check for outgoing timestamps.
Wim Taymans [Thu, 1 Oct 2009 09:20:08 +0000 (11:20 +0200)]
jitterbuffer: add buffering mode options
Add getters and setters for different buffering modes that the jitterbuffer will
support. Default to the current slave mode.
Tim-Philipp Müller [Fri, 12 Feb 2010 15:54:37 +0000 (15:54 +0000)]
v4lsink: lower rank to MARGINAL
Robert Swain [Fri, 12 Feb 2010 15:06:45 +0000 (16:06 +0100)]
flvdemux: Obtain the index from the end of an flv file in push mode
Allows for better support of seeking in flv files when in push mode
Robert Swain [Thu, 21 Jan 2010 10:55:15 +0000 (11:55 +0100)]
avidemux: Drop video frames up to the desired keyframe after a seek
The audio packets in AVI are generally muxed ~0.5s before the
corresponding video packet. This changes causes downstream to only
receive packets with roughly corresponding timestamps.
Wim Taymans [Tue, 19 Jan 2010 17:35:49 +0000 (18:35 +0100)]
avidemux: more DISCONT handling
Add some debug in the DISCONT handling code.
When we receive a DISCONT in push mode, mark all streams as DISCONT.
Robert Swain [Tue, 19 Jan 2010 09:51:08 +0000 (10:51 +0100)]
avidemux: Fix _handle_seek_push () and new segement behaviour
Wim Taymans [Mon, 18 Jan 2010 16:13:06 +0000 (17:13 +0100)]
avidemux: cleanups
Make sure we reset the demuxer correctly wrt parsing the index.
Don't leak pending seek events.
Rename some methods to reflect what they do and to avoid confusion with similar
method names.
Try to make the seeking threadsafe by protecting the setup code with a lock.
Make sure we post errors when a seek fails.
Wim Taymans [Mon, 18 Jan 2010 10:45:38 +0000 (11:45 +0100)]
avidemux: rename some variables
seek_event -> seg_event
event_seek -> seek_event
Wim Taymans [Fri, 15 Jan 2010 17:00:46 +0000 (18:00 +0100)]
avidemux: take fallback duration from avih
When we have not parsed any indexes yet, we don't know the length of the streams
and we must take the length given in the avih as a fallback.
Avoid some typechecking.
Robert Swain [Fri, 4 Dec 2009 14:13:12 +0000 (15:13 +0100)]
avidemux: Push mode seeking support
Wim Taymans [Mon, 1 Feb 2010 15:04:41 +0000 (16:04 +0100)]
rtspsrc: cleanup properties
Use more default constants.
Use static strings param flag.
Init properties explicitly instead of letting gobject do this.
Stefan Kost [Fri, 12 Feb 2010 13:34:38 +0000 (15:34 +0200)]
speex: add missing include
Stefan Kost [Fri, 5 Feb 2010 11:28:53 +0000 (13:28 +0200)]
taginject: fix multi-value tag example
We need to use {} to specify a list.
Stefan Kost [Mon, 1 Feb 2010 12:43:04 +0000 (14:43 +0200)]
avi,wav: also handle JUNQ chunk in addition to JUNK
Wim Taymans [Thu, 4 Feb 2010 14:59:25 +0000 (15:59 +0100)]
rtppay: don't ignore result from set_outcaps
set_outcaps can fail and we need to propagate the result upstream.
Wim Taymans [Thu, 4 Feb 2010 14:36:24 +0000 (15:36 +0100)]
flvparse: fix confusing debug messages
Wim Taymans [Wed, 27 Jan 2010 12:28:13 +0000 (13:28 +0100)]
jitterbuffer: add some more debug info
Wim Taymans [Wed, 27 Jan 2010 12:26:46 +0000 (13:26 +0100)]
pulsesink: avoid segfault when shutting down
when we are shutting down, we might still receive state updates from pulseaudio
but since we are unparented we should not do anything with the NULL parent
anymore.
Wim Taymans [Tue, 26 Jan 2010 17:33:27 +0000 (18:33 +0100)]
videomixer: fix timestamp problems
When the pad with the highest framerate goes EOS, instead of not timestamping
output buffers, intepollate timestamps and durations from the last seen ones.
Fixes #608026
Sebastian Dröge [Fri, 12 Feb 2010 10:32:40 +0000 (11:32 +0100)]
docs: Update documentation