Wim Taymans [Wed, 2 Sep 2009 10:24:22 +0000 (12:24 +0200)]
audiortppay: more refactoring
Unify the sample/frame buffer handling code by making the functions plugable.
Wim Taymans [Wed, 2 Sep 2009 10:03:27 +0000 (12:03 +0200)]
audiortppayload: refactor some more
Refactor getting the packet min/max size and alignment code.
Refactor converting bytes to time.
change some variable to something shorter.
Wim Taymans [Wed, 2 Sep 2009 08:46:30 +0000 (10:46 +0200)]
audiortppayload: refactor and cleanup
Always use the adapter when we need to fragment the incomming buffer. Use more
modern adapter functions to avoid malloc and memcpy. The overall result is that
the code looks cleaner while it should be equally fast and in some case avoid a
memcpy and malloc.
Use the adapter timestamping functions for more precise timestamps in case of
weird disconts.
Cache some values instead of recalculating them.
Add gst_base_rtp_audio_payload_flush() to flush a certain amount of bytes from
the internal adapter.
API: GstBaseRTPAudioPayload::gst_base_rtp_audio_payload_flush()
Tim-Philipp Müller [Thu, 3 Sep 2009 15:56:55 +0000 (16:56 +0100)]
Update common
Wim Taymans [Thu, 3 Sep 2009 09:29:23 +0000 (11:29 +0200)]
basertppay: add property to disable perfect RTP time
Add a property to disable the generation of perfect RTP timestamps. By default
it is active.
API: GstBaseRTPPayload::perfect-rtptime
Wim Taymans [Wed, 2 Sep 2009 17:47:26 +0000 (19:47 +0200)]
basertppay: allow subclasses to influence RTP time
Allow subclasses to use the OFFSET field on RTP buffers to influence the way in
which RTP timestamps are generated. Usually timestamps are created from the
GStreamer timestamps on the buffer, which could result in imperfect RTP
timestamps.
Wim Taymans [Wed, 2 Sep 2009 17:44:49 +0000 (19:44 +0200)]
basertppay: add macro to cast
Wim Taymans [Tue, 1 Sep 2009 16:26:52 +0000 (18:26 +0200)]
audiopayload: code cleanups
Wim Taymans [Tue, 1 Sep 2009 16:08:14 +0000 (18:08 +0200)]
audiortppayload: don't check adapter
the adapter is never NULL so we don't need to check it.
Use _scale functions to avoid overflows.
Tim-Philipp Müller [Wed, 2 Sep 2009 23:14:02 +0000 (00:14 +0100)]
typefinding: move gio-based xdg mime typefinder from -bad to -base
Its purposes is mainly to avoid false positives (e.g. mp3 typefinder
reporting a 20% probability and somesuch). Won't be registered if
the gio plugin has been disabled via ./configure --disable-gio.
Tim-Philipp Müller [Tue, 1 Sep 2009 14:06:51 +0000 (15:06 +0100)]
subparse: GstAdapter is not a GstObject and should be freed with g_object_unref
Tim-Philipp Müller [Tue, 1 Sep 2009 14:02:37 +0000 (15:02 +0100)]
v4lsrc: fix timestamping for when we do not have a clock yet
Should fix #559049.
Tim-Philipp Müller [Tue, 1 Sep 2009 13:30:41 +0000 (14:30 +0100)]
v4lsrc: don't log not-yet-initialised integer value
Tim-Philipp Müller [Tue, 1 Sep 2009 13:28:48 +0000 (14:28 +0100)]
v4lsrc: avoid unnecessary run-time type checks in custom buffer finalize
And reflow code to be more indent friendly.
Jonas Holmberg [Tue, 1 Sep 2009 08:39:52 +0000 (10:39 +0200)]
basertppayload: Make instance init faster by not reading /dev/urandom 3 times
... which is the default seed when creating a new GRand. Because
GLib in older versions used buffered IO this would take a lot of time.
Instead use the global GRand for getting random numbers and keep the
three instance GRand for backward compatibility with a simple seed.
Fixes bug #593284.
Stefan Kost [Mon, 31 Aug 2009 19:48:01 +0000 (22:48 +0300)]
adder: improve caps filter functionality. Fixes #590146.
Also use the capsfilter if there is no src-peer as the caps constrain what
we can do. Don't create any_caps as a default, as we check for NULL to skip the
filtering. This is a (small) performance regression as we always intersect
otherwise.
Sebastian Dröge [Mon, 31 Aug 2009 09:10:55 +0000 (11:10 +0200)]
decodebin2: Post missing plugin messages before any error messages
Wim Taymans [Fri, 28 Aug 2009 17:06:57 +0000 (19:06 +0200)]
cddabasesrc: safely handle the indexes
Wim Taymans [Fri, 28 Aug 2009 17:06:44 +0000 (19:06 +0200)]
def: add new rtsp symbols
Wim Taymans [Fri, 28 Aug 2009 12:08:30 +0000 (14:08 +0200)]
basertppayload: whitespace fixes.
Marc-André Lureau [Thu, 27 Aug 2009 16:59:49 +0000 (18:59 +0200)]
Bug 593035 - set IN_CAPS for streamheader buffer
Sebastian Dröge [Wed, 26 Aug 2009 14:56:19 +0000 (16:56 +0200)]
playbin: The internally linked pad of the selector might be NULL in some cases
Sebastian Dröge [Wed, 26 Aug 2009 14:45:49 +0000 (16:45 +0200)]
playbin: Fix iterate internal linked pads functions for the stream selectors
This now used the new gst_iterator_new_single() function and as a side effect
fixes bug #592864.
Sebastian Dröge [Wed, 26 Aug 2009 07:08:53 +0000 (09:08 +0200)]
riff: Add support for AVF files
AVF is valid RIFF but has AVF0 has first fourcc instead of RIFF.
Fixes bug #593117.
Sebastian Dröge [Wed, 26 Aug 2009 07:08:12 +0000 (09:08 +0200)]
typefindfunctions: Detect AVF files as RIFF files too
AVF is valid RIFF but has AVF0 as first fourcc instead of RIFF.
Partially fixes bug #593117.
Sebastian Dröge [Fri, 21 Aug 2009 09:51:47 +0000 (11:51 +0200)]
audioresample: Add unit test for checking for timestamp drifts
This also checks for perfect timestamping and offsetting.
Sebastian Dröge [Fri, 21 Aug 2009 08:11:23 +0000 (10:11 +0200)]
audioresample: Fix drain processing
In case we have to convert internally don't process output length input samples
but history length input samples.
Sebastian Dröge [Fri, 21 Aug 2009 08:02:05 +0000 (10:02 +0200)]
audioresample: Improve debugging a bit in the unit test
Sebastian Dröge [Fri, 21 Aug 2009 08:00:49 +0000 (10:00 +0200)]
audioresample: On the first buffer we need discont handling
Otherwise we won't get upstream timestamps and everything and all
output buffers would have -1 timestamps.
Руслан Ижбулатов [Fri, 21 Aug 2009 04:23:39 +0000 (08:23 +0400)]
subparse: Remove dependency on regex.h as it's not used anyway
Fixes bug #592544.
Kipp Cannon [Fri, 21 Aug 2009 04:58:31 +0000 (06:58 +0200)]
audioresample: Fix buffer overflow when pushing the drain
Kipp Cannon [Fri, 21 Aug 2009 04:57:58 +0000 (06:57 +0200)]
audioresample: Fix timestamp drift
Fixes bug #591934.
David Schleef [Mon, 24 Aug 2009 18:34:35 +0000 (11:34 -0700)]
Remove Ronald Bultje from Authors field
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
Wim Taymans [Mon, 24 Aug 2009 13:06:28 +0000 (15:06 +0200)]
playbin2: fix refcounting of _get_sink()
g_value_set_object() increases the refcount of the sink, which is not needed
because the object should already be refcounted. Make sure this is always the
case and use g_value_take_object().
Fixes: #592884
Peter Kjellerstedt [Mon, 24 Aug 2009 12:39:16 +0000 (14:39 +0200)]
rtsp: Mark Transport as supporting multiple values.
Peter Kjellerstedt [Mon, 24 Aug 2009 11:58:17 +0000 (13:58 +0200)]
rtsp: Added missing Since tags.
Eero Nurkkala [Mon, 24 Aug 2009 11:27:55 +0000 (13:27 +0200)]
ringbuffer: Improve audiosink startup performance
When we start the ringbuffer, immediatly continue processing samples if the
writer prepared some for us.
Fixes #545807
Peter Kjellerstedt [Mon, 17 Aug 2009 09:53:43 +0000 (11:53 +0200)]
rtsp: Added new API for sending using GstRTSPWatch.
The new API to send messages using GstRTSPWatch will first try to send the
message immediately. Then, if that failed (or the message was not sent
fully), it will queue the remaining message for later delivery. This avoids
unnecessary context switches, and makes it possible to keep track of
whether the connection is blocked (the unblocking of the connection is
indicated by the reception of the message_sent signal).
This also deprecates the old API (gst_rtsp_watch_queue_data() and
gst_rtsp_watch_queue_message().)
API: gst_rtsp_watch_write_data()
API: gst_rtsp_watch_send_message()
Peter Kjellerstedt [Mon, 17 Aug 2009 09:46:32 +0000 (11:46 +0200)]
rtsp: Made gst_rtsp_watch_queue_data() thread safe.
Peter Kjellerstedt [Wed, 17 Jun 2009 13:37:53 +0000 (15:37 +0200)]
rtsp: Added gst_rtsp_connection_set_http_mode().
With gst_rtsp_connection_set_http_mode() it is possible to tell the
connection whether to allow HTTP messages to be supported. By enabling HTTP
support the automatic HTTP tunnel support will also be disabled.
API: gst_rtsp_connection_set_http_mode()
Peter Kjellerstedt [Tue, 16 Jun 2009 17:35:23 +0000 (19:35 +0200)]
rtsp: Allow gst_rtsp_connection_do_tunnel() to just setup decoding context.
If the second connection passed to gst_rtsp_connection_do_tunnel() is NULL
then just setup the base64 decoding context for the first connection.
Peter Kjellerstedt [Tue, 16 Jun 2009 17:04:54 +0000 (19:04 +0200)]
rtsp: Write as much as possible in gst_rtsp_source_dispatch().
Try to write as much as possible if there are multiple messages queued.
Peter Kjellerstedt [Tue, 16 Jun 2009 16:38:02 +0000 (18:38 +0200)]
rtsp: Add error_full callback to GstRTSPWatchFuncs.
The error_full callback is similar to the error callback, but allows for
better error handling. For read errors a partial message is provided to
help an RTSP server generate a more correct error response, and for write
errors the write queue id of the failed message is returned.
Peter Kjellerstedt [Mon, 17 Aug 2009 16:29:17 +0000 (18:29 +0200)]
rtsp: Made read_line() support LWS.
Rewrote read_line() to support LWS (Line White Space), the method used by
RTSP (and HTTP) to break long lines. Also added support for \r and \n as
line endings (in addition to the official \r\n).
Peter Kjellerstedt [Thu, 20 Aug 2009 12:12:50 +0000 (14:12 +0200)]
rtsp: Do not split headers which should not be split.
From RFC 2068 section 4.2: "Multiple message-header fields with the same
field-name may be present in a message if and only if the entire
field-value for that header field is defined as a comma-separated list
[i.e., #(values)]." This means that we should not split other headers which
may contain a comma, e.g., Range and Date.
Peter Kjellerstedt [Thu, 20 Aug 2009 12:12:09 +0000 (14:12 +0200)]
rtsp: Parse WWW-Authenticate headers correctly.
Due to the odd syntax for WWW-Authenticate (and Proxy-Authenticate) which
allows commas both to separate between multiple challenges, and within the
challenges themself, we need to take some extra care to split these headers
correctly.
Peter Kjellerstedt [Wed, 17 Jun 2009 19:46:27 +0000 (21:46 +0200)]
rtsp: Improve parse_line().
Make parse_line() handle keys with multiple values on one line correctly.
Peter Kjellerstedt [Wed, 17 Jun 2009 21:15:23 +0000 (23:15 +0200)]
rtsp: Rewrote setup_tunneling().
Rewrote setup_tunneling() to use normal GstRTSPMessages instead of hard
coded strings and duplicates of the message parsing code.
Peter Kjellerstedt [Mon, 24 Aug 2009 08:20:16 +0000 (10:20 +0200)]
rtsp: Rewrote gen_tunnel_reply().
Rewrote gen_tunnel_reply() to generate a normal GstRTSPMessage rather
than a hard coded string.
Peter Kjellerstedt [Mon, 24 Aug 2009 08:19:35 +0000 (10:19 +0200)]
rtsp: Ignore the Content-Length for POST requests.
The Content-Length for POST requests with an x-sessioncookie header should
be ignored as the length is bogus and only there to fool proxies.
Peter Kjellerstedt [Wed, 17 Jun 2009 18:52:48 +0000 (20:52 +0200)]
rtsp: Normalize lines (remove extra whitespace) before parsing.
Peter Kjellerstedt [Wed, 10 Jun 2009 11:11:31 +0000 (13:11 +0200)]
rtsp: Made parse_string() return a result.
This will catch parsing errors when a too long string is received.
Peter Kjellerstedt [Wed, 10 Jun 2009 09:43:31 +0000 (11:43 +0200)]
rtsp: Improved parsing of messages.
Do not abort message parsing as soon as there is an error. Instead parse
as much as possible to allow a server to return as meaningful an error as
possible.
Peter Kjellerstedt [Tue, 9 Jun 2009 15:54:20 +0000 (17:54 +0200)]
rtsp: Added support for HTTP messages
Peter Kjellerstedt [Tue, 9 Jun 2009 14:22:17 +0000 (16:22 +0200)]
rtsp: Added gst_rtsp_connection_create_from_fd().
API: gst_rtsp_connection_create_from_fd()
Peter Kjellerstedt [Tue, 9 Jun 2009 13:27:17 +0000 (15:27 +0200)]
rtsp: Add initial buffer support.
The initial buffer contains data for a connection which should be used
before starting to actually read anything from the socket.
Wim Taymans [Mon, 24 Aug 2009 11:15:06 +0000 (13:15 +0200)]
appsink: don't block in paused
When we are asked to unlock we should either leave the render function or call
the wait_preroll method to release the stream lock.
Fixes #592657
Wim Taymans [Mon, 24 Aug 2009 11:06:36 +0000 (13:06 +0200)]
docs: fix includes for appsrc/appsink
Peter Kjellerstedt [Mon, 24 Aug 2009 09:24:27 +0000 (11:24 +0200)]
rtsp: Add support for the Authentication-Info header.
The Authentication-Info header is defined in RFC 2617 (Digest Access
Authentication).
Tim-Philipp Müller [Thu, 20 Aug 2009 12:11:07 +0000 (13:11 +0100)]
oggmux: don't drop the streamheader field from the output caps
Revert previous 'fix' for bug #588717 and fix it properly, whilst
maintaining the streamheader field on the output caps. Also make
sure we don't leak header buffers we couldn't push when downstream
is unlinked. Add unit test for the presence of the streamheader
field on the output caps and for the issue from bug #588717.
Sebastian Dröge [Tue, 18 Aug 2009 19:45:31 +0000 (21:45 +0200)]
streamselector/inputselector: Use iterate internal links instead of deprecated get internal links
Peter Kjellerstedt [Wed, 19 Aug 2009 07:31:51 +0000 (09:31 +0200)]
rtsp: Avoid duplicated headers.
Remove any existing Session and Date headers before adding new ones
when sending a request. This may happen if the user of this code reuses
a request (rtspsrc does this when resending after authorization fails).
Peter Kjellerstedt [Tue, 18 Aug 2009 14:49:58 +0000 (16:49 +0200)]
rtsp: Corrected the HTTP digest authorization computation.
Do not use sizeof() on an array passed as an argument to a function and
expect to get anything but the size of a pointer. As a result only the
first 4 (or 8) bytes of the response buffer were initialized to 0 in
auth_digest_compute_response() which caused it to return a string which
was not NUL-terminated...
Sebastian Dröge [Tue, 18 Aug 2009 09:15:41 +0000 (11:15 +0200)]
playsink: Also send SEEK events directly to a subpicture sink
Sebastian Dröge [Tue, 18 Aug 2009 06:39:02 +0000 (08:39 +0200)]
playsink: If a custom text sink is used, send events to it too
Before, SEEK events would be sent to the video sink, which wouldn't
be linked in any way to the subtitle part of the pipeline and
subparse would never see the SEEK event. This would then seek
the audio/video but the subtitles would continue from the old
position instead.
Fixes bug #591664.
Sebastian Dröge [Tue, 18 Aug 2009 06:20:28 +0000 (08:20 +0200)]
uridecodebin: Make missing plugins emit a warning message, not an error message
The problem with an error message is, that it will stop playback completely
while it could be that only a audio decoder plugin is missing and the video
could be played with the available plugins.
See bug #591677.
Sebastian Dröge [Thu, 13 Aug 2009 15:42:07 +0000 (17:42 +0200)]
uridecodebin: Post a correct error message for unknown types
Before we had STREAM/WRONG_TYPE but it's really CORE/MISSING_PLUGIN
because a plugin is missing and nothing else is wrong.
Also make it an error instead of a warning.
Really fixes bug #591677.
Sebastian Dröge [Thu, 13 Aug 2009 13:48:00 +0000 (15:48 +0200)]
uridecodebin: Post a missing plugin message additional to the error message on unknown types
Fixes bug #591677.
Tim-Philipp Müller [Thu, 13 Aug 2009 09:59:35 +0000 (10:59 +0100)]
playbin2: fix error message string
Fixes #591577.
Mark Nauwelaerts [Wed, 5 Aug 2009 13:38:32 +0000 (15:38 +0200)]
riff: align API doc of gst_riff_parse_chunk with reality
Mark Nauwelaerts [Wed, 5 Aug 2009 13:36:30 +0000 (15:36 +0200)]
decodebin2: avoid assertion failure on empty/NULL caps
Sebastian Dröge [Wed, 12 Aug 2009 10:09:45 +0000 (12:09 +0200)]
typefindfunctions: Also detect SVG by the <svg> starting tag
Not all SVG images have the DOCTYPE specified.
Tim-Philipp Müller [Mon, 10 Aug 2009 19:18:24 +0000 (20:18 +0100)]
rtspconnection: don't use GLib-2.18 function
g_checksum_reset() was added only in GLib 2.18, but we still require
only 2.16, so work around that if we only have 2.16. Fixes #591357.
Sebastian Dröge [Mon, 10 Aug 2009 13:40:33 +0000 (15:40 +0200)]
streamheader: Fix caps leak in the vorbisenc unit test
Tim-Philipp Müller [Mon, 10 Aug 2009 13:14:30 +0000 (14:14 +0100)]
checks: fix stream header unit test hanging in gst_task_cleanup_all()
Set pipelines to NULL state and unref when done.
Sebastian Dröge [Mon, 10 Aug 2009 08:17:07 +0000 (10:17 +0200)]
rtsp: Use GLib's GChecksum instead of our own MD5 implementation
Mart Raudsepp [Mon, 10 Aug 2009 00:46:39 +0000 (03:46 +0300)]
navigation: Fix doc blurb typo for gst_navigation_send_key_event
Sebastian Dröge [Sun, 9 Aug 2009 10:13:16 +0000 (12:13 +0200)]
subparse: Allow . instead of , as millisecond delimiter in srt subtitles
Fixes bug #591207.
Tim-Philipp Müller [Sat, 8 Aug 2009 16:51:10 +0000 (17:51 +0100)]
Revert inlines that cause compiler warnings and are not needed anyway
Edward Hervey [Sat, 8 Aug 2009 13:54:57 +0000 (15:54 +0200)]
gst-libs: Remove dead assignments and resulting unused variables.
Edward Hervey [Sat, 8 Aug 2009 13:54:41 +0000 (15:54 +0200)]
ext: Remove dead assignments and resulting unused variables.
Edward Hervey [Sat, 8 Aug 2009 13:54:02 +0000 (15:54 +0200)]
gst: Remove dead assignments and resulting unused variables
Josep Torra [Fri, 7 Aug 2009 11:05:42 +0000 (13:05 +0200)]
docs: add draft for generic introduction of video acceleration APIs idea
Tim-Philipp Müller [Fri, 7 Aug 2009 07:53:44 +0000 (08:53 +0100)]
Revert "theora: Convert theoradec to libtheora 1.0 API"
This reverts commit
f1e142ac9dcfb754d85357b9077d5aee48559dd9.
Temporarily revert until we have a workaround for debian/ubuntu
packaging failure (see http://bugs.debian.org/528710).
Sebastian Dröge [Fri, 7 Aug 2009 07:32:00 +0000 (09:32 +0200)]
typefindfunctions: Add typefinders for many game sound console formats supported by gme
These are AY, GBS, GYM, KSS, SAP and VGM. SPC and NSF already had typefinders.
Tim-Philipp Müller [Thu, 16 Jul 2009 10:29:20 +0000 (11:29 +0100)]
oggmux: fix warning when we're not linked downstream and error out properly
Fix caps warning when there's no element linked downstream, and pass
not-linked flow return value correctly up the chain, so we error out
correctly. Fixes #588717.
David Schleef [Fri, 31 Jul 2009 21:59:03 +0000 (14:59 -0700)]
theora: Convert theoradec to libtheora 1.0 API
Sebastian Dröge [Thu, 6 Aug 2009 18:47:33 +0000 (20:47 +0200)]
textrender: Fix blitting of text over the output buffer and cairo painting
Sebastian Dröge [Thu, 6 Aug 2009 07:13:14 +0000 (09:13 +0200)]
textrender: Fix endianness problems (i.e. make it work again on big endian architectures)
Stefan Kost [Fri, 31 Jul 2009 11:27:28 +0000 (14:27 +0300)]
colorkey-test: fix xsync error
Siarhei Siamashka [Mon, 6 Jul 2009 20:06:50 +0000 (23:06 +0300)]
ffmpegcolorspace: support for direct conversion from uyvy422 to rgb formats
Stefan Kost [Tue, 14 Jul 2009 09:33:29 +0000 (12:33 +0300)]
playbin2: smarter sink selection. Fixes #588523
Don't do fallbacks if application specified a sink element. When doing the
fallback use configured default elements instead of hardcoded linux only
elements. Improve error messages accordingly.
Mark Nauwelaerts [Thu, 6 Aug 2009 10:18:36 +0000 (12:18 +0200)]
queue2: post error message when pausing task if so appropriate
If a downstream element returns an error while upstream has already
put all data into queue2 (including EOS), upstream will no longer
chain into queue2, so it is up to queue2 to perform some
EOS handling / message posting in such cases. See #589991.
Wim Taymans [Thu, 6 Aug 2009 10:58:58 +0000 (12:58 +0200)]
baseaudiosrc: change default slave method
Set the default slave method to the much better skew slaving algortihm.
Wim Taymans [Thu, 6 Aug 2009 10:01:10 +0000 (12:01 +0200)]
textoverlay: make buffer writable
Make the input buffer writable before changing its contents.
Tim-Philipp Müller [Thu, 6 Aug 2009 08:55:42 +0000 (09:55 +0100)]
typefinding: fix postscript typefinder probability
Two bytes for a rare format hardly warrants MAXIMUM typefinding
probability, POSSIBLE seems more appropriate.
Sebastian Dröge [Tue, 4 Aug 2009 12:55:06 +0000 (14:55 +0200)]
pango: Send queries from the srcpad directly to the video sinkpad
Sebastian Dröge [Tue, 4 Aug 2009 12:32:51 +0000 (14:32 +0200)]
subparse: Implement POSITION query
Sebastian Dröge [Tue, 4 Aug 2009 12:29:41 +0000 (14:29 +0200)]
subparse: Implement SEEKING query
John Millikin [Tue, 4 Aug 2009 12:14:53 +0000 (14:14 +0200)]
tag: Add support for ALBUM_ARTIST tag in vorbiscomments and ID3v2 tags
Require latest core for this.
Fixes bug #590430.