Commit graph

1735 commits

Author SHA1 Message Date
Wim Taymans
73d5ae1107 audiopayload: add support for buffer-lists 2010-01-06 13:39:14 +01:00
Olivier Crête
bc6179952b basertpaudiopayload: Respect ptime if it is given
If the ptime is given in the caps, respect it and force the minimum
and maximum sizes to be exactly the requested ptime.

https://bugzilla.gnome.org/show_bug.cgi?id=606050
2010-01-05 13:20:49 -05:00
Olivier Crête
a4b0f2a1bd rtpbasepayload: Store ptime from caps
https://bugzilla.gnome.org/show_bug.cgi?id=606050
2010-01-05 13:20:49 -05:00
Olivier Crête
21151ba940 basertppayload: Accept maxptime from caps
https://bugzilla.gnome.org/show_bug.cgi?id=606050
2010-01-05 13:20:49 -05:00
Wim Taymans
f7070b6bc6 rtcpbuffer: add helper functions for SDES types
Add functions to convert SDES names to their types and back. Will be used later
to set SDES items using a GstStructure.

See #595265
2009-12-22 20:15:28 +01:00
Tim-Philipp Müller
98fc463f31 docs: use 'Returns: xyz' rather than 'Returns xyz' to make gtk-doc happy 2009-12-21 07:57:42 +00:00
Tim-Philipp Müller
848a7f2868 baseaudiosink: increase default drift tolerance to fix glitches with WMA
Increase default drift tolerance to 40ms to avoid glitches with decoders
or formats where there's a lot of timestamp jitter for some reason or
another (in this case: asf/wma), at least until we implement timestamp
smoothing.
2009-12-20 23:19:41 +00:00
Tim-Philipp Müller
b529a33105 docs: mention that gst_tag_get_language_name() may return NULL 2009-12-13 18:43:56 +00:00
Tim-Philipp Müller
4cb197999e docs: misc. mixer docs improvements 2009-12-12 18:58:39 +00:00
Tim-Philipp Müller
f71c4167e0 docs: add short descriptions for API reference contents page 2009-12-12 18:17:32 +00:00
Tim-Philipp Müller
25227e16b5 tag: make internal language names table static 2009-12-12 17:43:26 +00:00
Tim-Philipp Müller
3361d3286d tag: don't use GLib 2.22 API
g_mapped_file_unref() was introduced in GLib 2.22, but we depend
only on GLib 2.18, so use g_mapped_file_free() when compiling
against older GLib versions until we bump the GLib dependency.
2009-12-12 17:41:44 +00:00
Tim-Philipp Müller
088c7c07a2 tag: add some utility functions for language codes and tags
Add some utility functions for language tags and ISO-639
codes. These are useful for both GUIs and elements. The
iso-codes package is used for language name translations
if available.

API: gst_tag_get_language_codes()
API: gst_tag_get_language_name()
API: gst_tag_get_language_code()
API: gst_tag_get_language_code_iso_639_1()
API: gst_tag_get_language_code_iso_639_2B()
API: gst_tag_get_language_code_iso_639_2T()
2009-12-12 15:48:37 +00:00
Sebastian Dröge
51e2cafe0e audiofilter: Use G_DEFINE_ABSTRACT_TYPE_WITH_CODE
...and fix code style a bit.
2009-11-26 10:38:29 +01:00
Sebastian Dröge
3949cba47d audiofilter: Add _CAST variants of the cast macros 2009-11-26 10:38:28 +01:00
Wim Taymans
75c5aed1ba audiosink: add adjustement when slaving
Our calibration against the pipeline clock is done with the adjusted
ringbuffer time, so take the adjustement into account. Fixes some audio dropouts
when reusing audio sinks after switching clocks and slaving methods in a
pipeline.
2009-11-25 10:26:16 -06:00
Stefan Kost
9e8db533a1 debug: fix format string that was missing a var 2009-11-21 17:47:26 +02:00
Wim Taymans
0e6b9e596d baseaudiosink: fix initial calibration
When we are calibrating the internal clock against the external clock take into
account the time offset applied to our internal clock because we will subtract
that in the render_function again.
2009-11-18 17:11:03 +01:00
Mark Nauwelaerts
0fb680f680 baseaudiosrc: fix 'uninitialized' compiler warning 2009-11-18 12:37:44 +01:00
Jan Schmidt
36711ab477 video: Add functions to create/parse still frame events.
Add a new video event to mark the start or end of a still-frame
sequence, and a parser function to identify and extract info from
such events.
API: gst_video_event_new_still_frame()
API: gst_video_event_parse_still_frame()

Fixes: #601942
2009-11-18 00:10:57 +00:00
Sreerenj B
f3b3dd33f3 rtsp: avoid crashing on SIGPIPE
Use send() instead of write() so that we can pass the MSG_NOSIGNAL flags to
avoid crashing with SIGPIPE when the remote end is not listening to us anymore.

Fixes #601772
2009-11-13 11:18:46 +01:00
Jan Schmidt
8c76ae5fa9 appsrc: Clear the EOS state on a seek.
Allow seeking back into the stream after it hits EOS.
2009-11-10 13:56:01 +00:00
Sebastian Dröge
27d4f9dca3 cddabasesrc: Never return a negative track number in get_uri() 2009-11-09 18:12:15 +01:00
Sebastian Dröge
acaeed6131 cddabasesrc: Don't set the track to 1 every time a device is set
Fixes bug #601104.
2009-11-09 18:12:15 +01:00
Wim Taymans
4f3f9a1054 basesrc: fix startup position in the ringbuffer
When we start and we need to produce the first sample, go to the next sample
that will be written into the ringbuffer instead of trying to go to sample 0.
We relied on rather small ringbuffer sizes to correctly go to the current
sample, which breaks whith large buffers.

Fixes #600945
2009-11-06 12:22:00 +01:00
Wim Taymans
d8942e2850 baseaudiosink: make drift tolerance configurable
Add drift-tolerance property (defaulting to 20ms) to handle resync after clock
drift or timestamp drift instead of relying on the latency-time value for clock
drift and 500ms for timestamp drift.
Remove warning about discont timestamp and simply resync. The warning is in some
cases not correct and is triggered more frequently now that we lower the
tolerance value.
2009-11-04 16:16:31 +01:00
Stefan Kost
f3db4e01b5 rtp: dump packets which we reject 2009-10-28 11:30:58 +02:00
Tim-Philipp Müller
6f4c1ac583 Remove GST_DEBUG_FUNCPTR where they're pointless
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-28 00:59:35 +00:00
Olivier Crête
e27c24b200 rtpaudiopayload: Only sent exact multiple of the frame size
Also align the maximum size with the frame size, not only the minimum
2009-10-23 13:56:05 +03:00
Tim-Philipp Müller
65765dffbf .gitignore: update after files got renamed 2009-10-17 21:11:10 +01:00
Wim Taymans
a87811f49a basertppayload: small comment fix 2009-10-16 10:59:39 +02:00
Peter Kjellerstedt
7bca2a0019 rtp: Correct timestamping of buffers when buffer_lists are used
The timestamping of buffers when buffer_lists are used failed if
a buffer did not have both a timestamp and an offset.
2009-10-16 10:51:22 +02:00
Stefan Kost
f1c32d0fbb build: fix previous commit to fully accomodate the glib-gen.mak changes
I also renamed glib_enum_prefix to glib_gen_prefix as we also use that for the
marshallers. Also rename the rtsp-marshal.list to work with the unified prefix.
2009-10-16 10:56:56 +03:00
Stefan Kost
a89c1de0ea build: use gst-glib-gen.mak to fix the glib build rules. Fixes #598114
The build rules in glib-gen.mak were using pattern rules in a non save way.
2009-10-16 10:23:09 +03:00
Tommi Myöhänen
02cbde648c baseaudiosrc: fix timestamp comparission, Fixes #597407 2009-10-13 19:17:49 +03:00
Patrick Radizi
48a44f470b rtsp: handle socket errors
gstrtspconnection.c:gst_rtsp_connection_receive() can hang when an error occured
on a socekt. Fix this problem by checking for error on 'other' socket after poll
return.

Fixes #596159
2009-10-12 15:48:46 +02:00
Wim Taymans
5dbaccabca audioclock: whitespace fixes 2009-10-12 15:47:28 +02:00
Mark Nauwelaerts
e18b42c0b6 tag: use BOM to recognize UTF-16/32 encoding and convert accordingly 2009-10-09 16:22:54 +02:00
Josep Torra
ccec231d2b audio: fix warnings building on macosx 2009-10-09 14:09:02 +02:00
Tim-Philipp Müller
92465ba8ac rtspconnection: we can use GLib 2.18 API unconditionally now 2009-10-07 10:32:17 +01:00
Tim-Philipp Müller
a52483e59e docs: clarify GstTuner docs in two places 2009-10-07 10:15:52 +01:00
Benjamin Otte
a27f439ab3 Update Since tags for NV12/NV21
They are added in 0.10.26 now, not 0.10.25
2009-10-07 09:58:27 +02:00
Benjamin Otte
1cf651f883 Add NV12 and NV21 formats 2009-10-07 09:54:07 +02:00
Benjamin Otte
92928134ca [video] Fix Y41B
Chroma components should be aligned on 4byte boundaries.

https://bugzilla.gnome.org/show_bug.cgi?id=595849
2009-10-07 09:54:07 +02:00
Sebastian Dröge
6d40818ec0 streamvolume: Define cbrt() if it's not available
Fixes build on Win32, bug #597537.
2009-10-07 07:28:15 +02:00
Wim Taymans
730eead9a9 rtsp: use CLOSE_SOCKET() instead of close()
Use CLOSE_SOCKET instead of directly calling close() because it does the right
thing for windows.

Fixes #597539
2009-10-06 22:37:00 +02:00
Sebastian Dröge
901dbc6ab4 cddabasesrc: Fix string leaks in the unit test and a leak in cddabasesrc 2009-09-17 17:00:10 +02:00
Jonathan Matthew
6781c4c9c5 cddabasesrc: ignore URI fragments that look like device paths
Rhythmbox uses cdda:// URIs of the form cdda://track#device, which
worked before the fix for bug #321532.

Also adds a check for negative track numbers and some unit tests for URI
parsing.

Fixes bug #595454.
2009-09-17 17:00:10 +02:00
Michael Smith
1f43f87023 vorbistag: don't ever return NULL in list of strings. 2009-09-15 15:55:34 -07:00
Sebastian Dröge
df9b8b57b3 introspection: Build pkgconfig before all libraries and set PKG_CONFIG_PATH
This way g-ir-scanner can find the gstreamer-*-0.10 pkg-config files.
2009-09-13 11:19:50 +02:00
Sebastian Dröge
6e23ea172f interfaces: API: Add GstStreamVolume interface
Fixes bug #567660.
2009-09-11 16:37:34 +02:00
Wim Taymans
8d2f20d1cb rtsp: properly fix the HTTP manual mode
When we're not parsing HTTP, return EPARSE when we get an HTTP
message.
2009-09-11 12:20:10 +02:00
Tim-Philipp Müller
794e03640d mixertrack: add READONLY and WRITEONLY flags
Should really have been READABLE and WRITABLE, but those are hard to
add whilst maintaining backwards compatibility. See #343615.

API: GST_MIXER_TRACK_READONLY
API: GST_MIXER_TRACK_WRITEONLY
2009-09-11 10:20:27 +01:00
Tim-Philipp Müller
e4e8417eeb ringbuffer: fix build against core that has debugging disabled
The macro is called GST_DISABLE_GST_DEBUG, not GST_DISABLE_DEBUG.
2009-09-11 10:03:56 +01:00
Sebastian Dröge
445311bff4 fft: Mark one function as const and add notes that the structs should be private in 0.11 2009-09-11 07:22:15 +02:00
Stefan Kost
312d7d8014 ringbuffer: add human readable format names when logging
Add string array with human readable names for format and type to be used in log
statements.
2009-09-10 23:01:36 +03:00
Wim Taymans
e2e7ae0129 basertppay: don't print RTP timestamps as clocktime
Don't try to print the RTP timestamp as a GstClockTime, it's just a guint32.

Fixes #594757
2009-09-10 18:21:08 +02:00
Wim Taymans
ca3b91b2d0 rtsp: don't return EPARSE
Don't blindly return EPARSE when http mode is disabled.
Restore old http mode after temporarily setting it to TRUE.
2009-09-10 14:04:53 +02:00
Wim Taymans
35cddfb1e3 baseaudiosink: add ugly backward compat hack
Check for pulsesink < 0.10.17 because it includes code that is now included in
baseaudiosink. Disable that code in baseaudiosink to be compatible with the
older version.
2009-09-10 12:40:01 +02:00
Wim Taymans
06be2b8632 baseaudiosink: take clock time in setcaps
Take the time of the clock so that the last_time field is set. This is important
for sinks that restart their internal ringbuffer after a caps change and need to
know the last know position.
2009-09-09 18:26:03 +02:00
Wim Taymans
451789735c audioclock: add some more debug 2009-09-09 18:26:03 +02:00
Wim Taymans
fe47c6c4d5 baseaudiosink: correct for clock reset
When going to NULL, we reset the ringbuffer so that it starts beck from 0. We
also make sure that the clock is updated with the elapsed time so that it
alsways increments even when the ringbuffer goes back to 0. When this happened
we need to adjust the sample position for the reset ringbuffer.

Fixes #594136
2009-09-09 16:19:32 +02:00
Wim Taymans
47550f6984 baseaudiosink: whitespace fixes 2009-09-09 16:17:02 +02:00
Wim Taymans
70f01fd797 ringbuffer: add more debug 2009-09-09 16:16:40 +02:00
Wim Taymans
42fad5a166 whitespace fixes 2009-09-09 10:25:33 +02:00
Tim-Philipp Müller
265e125993 videosink: add "show-preroll-frame" property
Add a property to disable rendering of video frames during preroll. This
will only work for videosinks that use the new ::show_frame() vfunc instead
of overriding basesink's preroll and render vfuncs directly.

API: GstVideoSink:show-preroll-frame
2009-09-08 18:20:22 +01:00
Tim-Philipp Müller
e2b4187fe3 video: add GstVideoSinkClass::show_frame()
Add ::show_frame() vfunc which maps to basesink's ::preroll and ::render
vfuncs and add some gtk-doc chunks.

API: GstVideoSinkClass::show_frame()
2009-09-08 18:20:02 +01:00
Tim-Philipp Müller
3bbbea6212 navigation: don't do stuff inside g_return_val_if_fail() statements
Or it will all fall apart if someone compiles with -DG_DISABLE_ASSERT.
2009-09-08 16:00:47 +01:00
Havard Graff
a14e730aad navigation: Fix compiler warning with MSVC
Fixes bug #594275.
2009-09-08 15:54:57 +02:00
Havard Graff
f710bec408 basertpdepayload: fix event forwarding 2009-09-08 15:10:59 +02:00
Havard Graff
f0f72088bc rtcpbuffer: add missing break in handling of GST_RTCP_TYPE_PSFB
Fixes #594258
2009-09-08 13:03:21 +02:00
Håvard Graff
058776bcf1 baseaudiosrc: improve slave skew resync
The old one did the mistake of not actually advancing the ringbuffer, it just
adjusted the segbase, introducing the whole lenght of the ringbuffer as an
extra delay in the pipeline.

Also make sure that the resync can never go back in time, producing the same
timestamps that has already been produced, as this can cause severe problems
for sinks and other synching mechanisms.

Fixes #594256
2009-09-08 12:59:20 +02:00
Sebastian Dröge
40aba9e0dc introduction: Fix out-of-tree build 2009-09-05 13:46:58 +02:00
Sebastian Dröge
ab17f5d3fa rtsp: Fix introspection build by ordering sources/headers in dependency order 2009-09-05 13:13:23 +02:00
Sebastian Dröge
c53499c62b audio: Remove debug echo 2009-09-05 13:09:17 +02:00
Sebastian Dröge
93e19acfec audio: Fix build of introspection data by using dependency order for the headers/sources 2009-09-05 13:08:19 +02:00
Sebastian Dröge
7e90e0846c introspection: Strip Gst prefix from all types/functions 2009-09-05 12:31:47 +02:00
Sebastian Dröge
7794caf9f8 introspection: Fix build if gir-repository is not installed 2009-09-05 11:49:41 +02:00
Sebastian Dröge
740bcd9479 video: Add gobject-introspection support 2009-09-05 11:37:14 +02:00
Sebastian Dröge
0c0ba97689 tag: Add gobject-introspection support 2009-09-05 11:35:34 +02:00
Sebastian Dröge
31b8e7fcee sdp: Add gobject-introspection support 2009-09-05 11:34:11 +02:00
Sebastian Dröge
d91f5000e1 libs: Add nodist headers and sources to the introspection files 2009-09-05 11:31:48 +02:00
Sebastian Dröge
e13a186b56 rtsp: Add gobject-introspection support 2009-09-05 11:28:59 +02:00
Sebastian Dröge
8001b380b1 rtp: Add gobject-introspection support 2009-09-05 11:25:42 +02:00
Sebastian Dröge
6ebc9414b6 riff: Add gobject-introspection support 2009-09-05 11:23:13 +02:00
Sebastian Dröge
9942cd57ef pbutils: Add gobject-introspection support 2009-09-05 11:20:51 +02:00
Sebastian Dröge
666bdf9dad netbuffer: Add gobject-introspection support 2009-09-05 11:17:07 +02:00
Sebastian Dröge
df2235beb5 interfaces: Add gobject-introspection support 2009-09-05 11:15:05 +02:00
Sebastian Dröge
b357cb9d2a fft: Add gobject-introspection support 2009-09-05 11:09:45 +02:00
Sebastian Dröge
a5f7c699ca cdda: Add gobject-introspection support
This is disabled for now until gobject-introspection is fixed
2009-09-05 11:09:39 +02:00
Sebastian Dröge
403f353bba audio: Add gobject-introspection support 2009-09-05 11:09:33 +02:00
Sebastian Dröge
61ae0059a4 app: Add gobject-introspection support 2009-09-05 11:09:28 +02:00
Wim Taymans
7a7663476f audiortppay: add some debugging 2009-09-03 18:53:19 +02:00
Wim Taymans
c1db9ebb20 audiortppay: handle gaps
Add various conversion functions between time<->bytes<->rtptime that will be
used later on.
Refactor the min/max packet length code so that it can be used for both
sample/frame based payloaders. Cache the returned values.
code cleanups.
When we discover a DISCONT buffer, make the outgoing RTP timestamps have the
same gap as the GStreamer timestamps gap.
2009-09-03 17:59:00 +02:00
Wim Taymans
3a3c6f309c audiortppay: fix frame duration calculations
Fix the calculation of the frame duration and rtp timestamps.
Add some debugging
2009-09-03 17:59:00 +02:00
Wim Taymans
bfc19462bb rtppay: add some debugging 2009-09-03 17:59:00 +02:00
Wim Taymans
bb91a7b47c audiortppay: use offsets for RTP timestamps
Have a custom sample/frame function to generate an offset that the base class
will use for generating RTP timestamps. This results in perfect RTP timestamps
on the output buffers.
Refactor setting metadata on output buffers.
Add some more functionality to _flush().
Handle DISCONT on the input buffers and set the marker bit and DISCONT flag on
the next outgoing buffer.
Flush the pending data on EOS.
2009-09-03 17:58:59 +02:00
Wim Taymans
c1ae0a2003 audiortppay: move function around 2009-09-03 17:58:59 +02:00
Wim Taymans
5808041f44 audiortppay: fix sample duration calculation 2009-09-03 17:58:59 +02:00
Wim Taymans
299ab7be0e audiortppay: more refactoring
Unify the sample/frame buffer handling code by making the functions plugable.
2009-09-03 17:58:59 +02:00
Wim Taymans
fb5037f727 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.
2009-09-03 17:58:59 +02:00
Wim Taymans
1c6b71af03 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()
2009-09-03 17:58:59 +02:00
Wim Taymans
50b9640d01 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
2009-09-03 11:29:23 +02:00
Wim Taymans
3a4edea56d 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.
2009-09-03 11:15:20 +02:00
Wim Taymans
5a479669d4 basertppay: add macro to cast 2009-09-03 11:15:20 +02:00
Wim Taymans
bc3c8a1564 audiopayload: code cleanups 2009-09-03 11:15:20 +02:00
Wim Taymans
3c29efa692 audiortppayload: don't check adapter
the adapter is never NULL so we don't need to check it.
Use _scale functions to avoid overflows.
2009-09-03 11:15:20 +02:00
Jonas Holmberg
ec91d508af 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.
2009-09-01 10:39:52 +02:00
Wim Taymans
008c760b6b cddabasesrc: safely handle the indexes 2009-08-28 19:06:57 +02:00
Wim Taymans
e40b262ab7 basertppayload: whitespace fixes. 2009-08-28 14:09:02 +02:00
Sebastian Dröge
72f3587f04 riff: Add support for AVF files
AVF is valid RIFF but has AVF0 has first fourcc instead of RIFF.

Fixes bug #593117.
2009-08-26 09:10:19 +02:00
Peter Kjellerstedt
8ce3612b71 rtsp: Mark Transport as supporting multiple values. 2009-08-24 14:39:16 +02:00
Peter Kjellerstedt
2882c22d95 rtsp: Added missing Since tags. 2009-08-24 13:58:50 +02:00
Eero Nurkkala
8ad8591e41 ringbuffer: Improve audiosink startup performance
When we start the ringbuffer, immediatly continue processing samples if the
writer prepared some for us.

Fixes #545807
2009-08-24 13:30:11 +02:00
Peter Kjellerstedt
066f9be5c9 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()
2009-08-24 13:19:46 +02:00
Peter Kjellerstedt
0af04aa4a8 rtsp: Made gst_rtsp_watch_queue_data() thread safe. 2009-08-24 13:19:46 +02:00
Peter Kjellerstedt
fb3b761af5 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()
2009-08-24 13:19:46 +02:00
Peter Kjellerstedt
d5b4b5d8af 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.
2009-08-24 13:19:46 +02:00
Peter Kjellerstedt
01d98fdb5d rtsp: Write as much as possible in gst_rtsp_source_dispatch().
Try to write as much as possible if there are multiple messages queued.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
e5ec74c7a9 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.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
ab8bea4555 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).
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
607209f121 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.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
08d3fe8561 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.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
efc8901a39 rtsp: Improve parse_line().
Make parse_line() handle keys with multiple values on one line correctly.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
db66ff4a62 rtsp: Rewrote setup_tunneling().
Rewrote setup_tunneling() to use normal GstRTSPMessages instead of hard
coded strings and duplicates of the message parsing code.
2009-08-24 13:19:45 +02:00
Peter Kjellerstedt
c18e2eec88 rtsp: Rewrote gen_tunnel_reply().
Rewrote gen_tunnel_reply() to generate a normal GstRTSPMessage rather
than a hard coded string.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
e1b3393d6b 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.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
11c8b811f3 rtsp: Normalize lines (remove extra whitespace) before parsing. 2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
5716cd102a rtsp: Made parse_string() return a result.
This will catch parsing errors when a too long string is received.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
fdd5a65632 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.
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
ca154010fe rtsp: Added support for HTTP messages 2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
dd7d0cfc45 rtsp: Added gst_rtsp_connection_create_from_fd().
API: gst_rtsp_connection_create_from_fd()
2009-08-24 13:19:44 +02:00
Peter Kjellerstedt
814eaa728a 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.
2009-08-24 13:19:44 +02:00
Wim Taymans
2c08c76383 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
2009-08-24 13:16:39 +02:00
Peter Kjellerstedt
41f1d9a7d9 rtsp: Add support for the Authentication-Info header.
The Authentication-Info header is defined in RFC 2617 (Digest Access
Authentication).
2009-08-24 11:24:27 +02:00
Peter Kjellerstedt
3c4fa9274f 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).
2009-08-19 09:31:51 +02:00
Peter Kjellerstedt
3b888cfe2a 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...
2009-08-18 16:50:58 +02:00
Mark Nauwelaerts
87e6775844 riff: align API doc of gst_riff_parse_chunk with reality 2009-08-12 13:39:14 +02:00
Tim-Philipp Müller
cb19626c8c 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.
2009-08-10 20:18:24 +01:00
Sebastian Dröge
79ade6ad68 rtsp: Use GLib's GChecksum instead of our own MD5 implementation 2009-08-10 10:19:01 +02:00
Mart Raudsepp
689a4d4c10 navigation: Fix doc blurb typo for gst_navigation_send_key_event 2009-08-09 20:52:40 -04:00
Tim-Philipp Müller
0021e6b765 Revert inlines that cause compiler warnings and are not needed anyway 2009-08-08 17:51:10 +01:00
Edward Hervey
9329b8be72 gst-libs: Remove dead assignments and resulting unused variables. 2009-08-08 15:54:57 +02:00
Wim Taymans
090808a295 baseaudiosrc: change default slave method
Set the default slave method to the much better skew slaving algortihm.
2009-08-06 12:58:58 +02:00
John Millikin
cd31b2e298 tag: Add support for ALBUM_ARTIST tag in vorbiscomments and ID3v2 tags
Require latest core for this.

Fixes bug #590430.
2009-08-06 06:43:38 +02:00
Sebastian Dröge
713f6ca8d5 cddabasesrc: Allow to specify the device name in the URI
The allowed URI scheme is now:
cdda://(device#)?track

Also allow every combination of uppercase and lowercase
characters for the protocol part.

Fixes bug #321532.
2009-08-06 06:43:34 +02:00
Philip Jägenstedt
1b4220bd03 appsrc: Clarify documentation about caps and linkage
Fixes bug #589095.
2009-08-06 06:43:34 +02:00
Olivier Crête
429d3555a2 audiofilter: Don't assert on slightly different caps
Plugins should not assert on incompatible caps, caps negotiation will
fail anyway.
2009-07-30 14:34:05 +01:00
Olivier Crête
4e88633de4 audiosink: Add stream-status messages
Fixes #587695
2009-07-20 12:54:37 +02:00
Olivier Crête
cc0da016f8 audiosrc: Add stream-status messages
See #587695
2009-07-20 12:54:37 +02:00