Commit graph

1647 commits

Author SHA1 Message Date
Tim-Philipp Müller
073201b329 build: Makefile.am cleanups
Mostly add $(GST_BASE_CFLAGS) where it was missing, but also fix up
order of flags and libs if needed (see docs/random/moving-plugins).
2010-03-18 21:34:24 +00:00
Benjamin Otte
cccfeaa59c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 14:32:00 +01:00
Mark Nauwelaerts
5a082af3aa pulse: use #ifdef rather than #if conditionals 2010-03-18 12:44:53 +01:00
Benjamin Otte
c76e72a7f5 Add -Wundef to configure flags
and fix the resulting warnings
2010-03-17 21:33:28 +01:00
Benjamin Otte
1055aaa9cb Add -Wredundant-decls warning flag
Also fix compile issues
2010-03-17 19:35:10 +01:00
Benjamin Otte
3342b1679e Add -Wmissing-declarations -Wmissing-prototypes warning flags
And fix all the warnings.
2010-03-17 18:23:28 +01:00
Stefan Kost
b892d23090 soup: also use g_value_set_static_string() here for static strings 2010-03-16 23:41:43 +02:00
Руслан Ижбулатов
bc873f7133 pngenc: Use png_get_io_ptr() instead of accessing io_ptr directly
Fixes #612700 (for the last time!)
2010-03-16 15:20:21 +01:00
Sebastian Dröge
fdc7b73675 speexdec: Use speex_stereo_state_init() instead of the deprecated initialization macro
Fixes bug #612777.
2010-03-15 14:16:58 +01:00
Sebastian Dröge
a7a0afa5c4 cairotextoverlay: Don't render text outside the frame boundaries
Fixes bug #611986.
2010-03-15 13:41:56 +01:00
Руслан Ижбулатов
43e3e5c0d7 pngenc: Call png_jmpbuf() instead of accessing png_struct_ptr directly
Fixes #612700 (again)
2010-03-14 20:09:32 +01:00
Руслан Ижбулатов
0ce782383f pngenc: Call png_error() instead of using longjmp() directly.
Fixes #612700
2010-03-13 06:13:00 +01:00
Tim-Philipp Müller
954064a8d6 souphttpsrc: fix metadata writable warnings
Set metadata on buffer first, when the refcount is still 1, and only
ref again afterwards.
2010-03-11 15:25:55 +00:00
Mark Nauwelaerts
4abf31067f speexdec: adapt to new oggdemux
Remove all granulepos hacks and simply use upstream timestamps.
2010-03-10 11:48:06 +01:00
Mark Nauwelaerts
972ce3006b speexdec: refactor granulepos hacks 2010-03-10 11:48:06 +01:00
Benjamin Otte
2a5f368bc7 png: fractions don't allow doubles 2010-03-09 19:15:07 +01:00
Tim-Philipp Müller
de56a874ae flacdec: don't send second newsegment event in framed mode, fixes long playback delay
Don't send another newsegment event if the upstream muxer/parser has already
sent one (otherwise the sink will wait for $duration before starting playback).
Fixes long delay until playback starts with flac-in-ogg files.

Fixes #610959.
2010-03-08 17:10:31 +00:00
David Hoyt
ad05705afb jpegdec: Fix invalid memory access by first checking and then reading
Fixes bug #610483.
2010-02-22 20:55:29 +01:00
Philippe Normand
3ab666762f 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
2010-02-22 20:49:03 +01:00
Stefan Kost
45522aab46 jpegenc: add a fixme for handling other YUV variants 2010-02-16 10:15:22 +02:00
Tim-Philipp Müller
63c86ac3d8 raw1394, matroska, rtpmanager: remove padding from structures
None of these element and class structures are in public headers,
so don't need padding.
2010-02-15 00:50:10 +00:00
Tim-Philipp Müller
3f2a803c48 pulsesink: add comment for translators for 'x by y' message
Fixes #609724.
2010-02-15 00:45:51 +00:00
Sebastian Dröge
c78b3b1332 cairorender: Fix leaking of pad templates 2010-02-15 01:28:44 +01:00
Stefan Kost
f70dbd0eb7 speex: add missing include 2010-02-12 15:35:30 +02:00
Wim Taymans
55b5e2e3f3 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.
2010-02-12 13:53:57 +01:00
Sebastian Dröge
27b203b030 flacdec: Only flush the FLAC decoder if it wasn't created right before
If the FLAC decoder is flushed, its state will be set to frame-sync mode,
which will sync to the next *audio* frame and makes it ignore all headers.
This prevented tags and everything else to show up when using flacdec
in push mode.

Fixes bug #608843.
2010-02-12 10:54:18 +01:00
Mark Nauwelaerts
c2eedfcceb speexdec: initialize stereo decoding state 2010-02-02 16:54:09 +01:00
Stefan Kost
a9f5bbe1ff jpeg: don't directly access message, some message have args
This caused bogus messages, such as reported in bug #607471.
2010-02-02 17:23:49 +02:00
David Hoyt
2514421c13 png: fix compilation with libpng 1.4
png_set_gray_1_2_4_to_8() has been deprecated for a while and was
finally removed in libpng 1.4.x. Use png_set_expand_gray_1_2_4_to_8()
instead.

Fixes #608629.
2010-02-02 00:04:34 +00:00
Mark Nauwelaerts
77509c80c9 speexdec: free some more when resetting
Fixes #608255.
2010-01-27 17:05:52 +01:00
Mark Nauwelaerts
c529145e4b speexenc: prevent invalid arithmetic if not setup yet
Fixes #608255.
2010-01-27 17:05:04 +01:00
Stefan Kost
8576a11dae Revert "v4l2src: don't deref NULL"
This reverts commit 3d9d34bd60.
2010-01-25 17:21:13 +02:00
Stefan Kost
3d9d34bd60 v4l2src: don't deref NULL
Error out when the pool gets shutdown.
2010-01-25 14:16:22 +02:00
Michael Smith
e5b6c1324b jpegenc: when creating an overflow buffer, copy timestamps. 2010-01-23 15:32:48 -08:00
Peter van Hardenberg
701c7d4b2a jpegenc: enlarge buffer if libjpeg tells us it's out of space. Fixes buffer
overflow on some high-quality, low-resolution jpeg encodes.
2010-01-21 17:26:23 -08:00
Sebastian Dröge
34d9da8a02 apev2mux: Don't call constructors directly, this leads to compiler errors with gcc 4.5 2010-01-13 09:18:27 +01:00
Mark Nauwelaerts
47dc716790 flacenc: fix seekpoints property copy-and-paste documentation 2010-01-08 18:04:35 +01:00
Mark Nauwelaerts
fe1128e40b flacenc: optionally add a seek table
API: GstFlacEnc:seekpoints

Fixes #351595.
2010-01-08 17:43:37 +01:00
Mark Nauwelaerts
a76af918d0 flacdec: really use upstream timestamp if there is one
See/fixes #603471.
2010-01-06 14:14:28 +01:00
Robert Weidlich
5479255130 shout2send: Add 'public' property
Adds a property to set 'public' flag on libshout, making
the stream listed on the server's stream directory.

Fixes #605269
2010-01-04 09:28:36 -03:00
Mark Nauwelaerts
636738d9f2 flacdec: use a single decoder field for both push and pull mode 2009-12-23 19:39:56 +01:00
Mark Nauwelaerts
d6633d6edc flacdec: fix possible hanging in pull mode seeking
A seek in multi-sink pipeline typically leads to several seek events in a row,
which could lead to sending several newsegments in a row without intermediate
flushing.  These would then accumulate, distort rendering times and as such
lead to 'hanging'.
2009-12-23 19:39:54 +01:00
Sebastian Dröge
648f0f0b50 ladspa: Remove the sources from gst-plugins-good
It's disabled anyway and the latest version of it is in
gst-plugins-bad. Fixes bug #603779.
2009-12-04 14:43:41 +01:00
Thiago Santos
8cb3452ac4 shout2: Convert delay correctly
Use GST_MSECOND to convert delay in msecs to nanosecs

Fixes #603547
2009-12-02 13:33:20 -03:00
Wim Taymans
384c4a2495 jpegdec: reset segment info after flush
Reset the segment info after a flush. We use the segment for handling QoS and if
we don't reset the segment, QoS is basically disabled after a flushing seek.
2009-12-01 19:25:04 +01:00
Wim Taymans
4519bdc983 shout2: use gstpoll for timeouts
Use our own GstPoll based timeout instead of the shout sleep so that we can
interrupt when doing a state change and shutting down.

Fixes #602887
2009-11-28 19:23:26 +01:00
Stefan Kost
b753e177fb jpegenc: fix spelling in comment 2009-11-24 15:51:21 +02:00
Sebastian Dröge
59a53cfd36 wavpackparse: After pushing a frame, update last_stop to the end of the frame
This improves position reporting, especially because of the fact that
WavPack frames are usually 0.5-1.0 seconds long.
2009-11-19 16:10:55 +01:00
Sebastian Dröge
9f5adb2ca3 wavpackparse: Allow pulling the last WavPack frame of a file
Because of a >= instead of a >, that last frame of a WavPack file
would never be parsed in pull mode.
2009-11-19 16:10:55 +01:00
Wim Taymans
0694be2a82 pulsesink: use acquired flag when checking valid state
Use the acquired field of the ringbuffer in get_time to know when we are in an
invalid state. We don't clear the rate flag when releasing the ringbuffer so
this values is not usable.

Avoids some error messages being posted because the pulseaudio connection is
down.
2009-11-18 17:27:19 +01:00
Wim Taymans
f85cf3e200 pulsesink: implement some more callbacks
Implement some more callbacks for debugging purposes.
2009-11-18 12:01:52 +01:00
Tim-Philipp Müller
7af7d93b27 jpegdec: free temporary buffer when changing state to NULL
Free temporary allocations in the state change function and not
only when the object is finalised.
2009-11-09 15:20:00 +00:00
Tim-Philipp Müller
26e7fe27d7 jpegdec: only allocate as much temporary memory as needed for indirect decoding
When we can't decode directly into the output buffer, make our temp buffers
only as big as needed instead of allocating for the worst case scenario (well,
we still alloc more than strictly needed for some cases, but significantly
less than before).
2009-11-09 15:18:58 +00:00
Tim-Philipp Müller
2270d3359a pulsesink: printf format fix 2009-11-05 23:46:58 +00:00
Tim-Philipp Müller
f50f516eca raw1394: printf format fixes 2009-11-05 23:44:27 +00:00
Stefan Kost
e3e910e971 jpegdec: don't allocate big arrays on the stack
Add the arrays to the instance data and allocate on first use.
2009-11-03 17:49:24 +02:00
Sebastian Dröge
3f541452c4 pulsesink: Only set the volume on stream connection if pulse >= 0.9.20 is available
In older versions the volume set during stream connection had
no defined sematic and usually it was a relative volume. What
was needed for our use case is an absolute volume though, otherwise
the volume will be always decreased on stream connection if it's
less than 100%.
Since pulse 0.9.20 that volume is always an absolute volume if
flat volumes are used and relative otherwise, which is the same
as for pa_context_set_sink_input_volume().

Relevant pulse changesets:
http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=f27a50691c8fe45bac7dd6b21fac91a359def3a1
http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=2501687579e359d5032a4d165b2ffc8f5b1b8ba6
2009-10-30 09:27:59 +01:00
Priit Laes
34a7a90f57 cacasink: minor cleanups for header.
Use G_BEGIN_DECLS macros, remove unused variables and fix typo.
See #599018.
2009-10-22 02:03:12 +01:00
Priit Laes
45042dffbc cacasink: exit properly when invalid driver has been selected.
See #599018.
2009-10-22 02:03:01 +01:00
Bastien Nocera
a1ac55c7a5 Fix the StreamVolume interface not being advertised
gst_pulsesink_interface_supported() was missing a check for it.

https://bugzilla.gnome.org/show_bug.cgi?id=598933
2009-10-19 15:36:20 +01:00
Lennart Poettering
e4d6a2aa2c pulse: never apply volume more than once
Generally decisions on the volume of the stream should be done inside of
PA, not inside of Gst. Only PA knows how volumes translate between
devices and s on.

This patch makes sure that all volumes set via the volume property are
only applied *once* to the underlying stream. After applying them the
client side will not store them anymore. This should make sure that
really only user-triggered volume changes are forwarded to server, but
the client never tries to save/restore the volume internally.

Fixes bug #595231.
2009-10-18 10:15:59 +02:00
Sebastian Dröge
92fd59024b pulsesink: Initialize gettext for the translated strings in plugin_init() 2009-10-17 09:00:00 +02:00
Lennart Poettering
89b0c2fc4f pulse: use 'performer' as a fallback for 'artist' tag 2009-10-17 08:48:23 +02:00
Lennart Poettering
76c8ca4b00 pulse: when constructing a stream title from tag data make sure it is translatable 2009-10-17 08:48:23 +02:00
Lennart Poettering
fd75286dd1 pulse: loop while connecting to server
pthread does not guarantee that there are no spurious condition variable
wakeups, neither does pa_threaded_mainloop_xxx() which is a wrapper
around it. So we need to loop around the _wait() function to make sure
we get the right wakeup.

Also, unify the order of the wait loops across the file.
2009-10-17 08:48:23 +02:00
Lennart Poettering
48c3bd303f pulse: mainloop creation can fail too, so handle that 2009-10-17 08:48:23 +02:00
Lennart Poettering
3188f5699b pulse: adjust CHECK_DEAD_GOTO macro to glib style 2009-10-17 08:48:23 +02:00
Lennart Poettering
d64200f46b pulse: make a few things smaller by making them bitfields 2009-10-17 08:48:21 +02:00
Tim-Philipp Müller
c83ea23a03 jpegdec: fix branch hints
Remove inappropriate branching hints and add some new ones.
2009-10-16 13:41:45 +01:00
Tim-Philipp Müller
4fb3f2519c jpegdec: fix regression in indirect decode path
Revert variable name back to what it was before the G_LIKELY was
added (in commit 69c24fb9). The code works better that way.
2009-10-16 13:36:42 +01:00
Tim-Philipp Müller
0c92e70f6c jpegdec: fix regression with certain formats
Fix regression introduced by previous commit (#598517).
2009-10-16 13:00:12 +01:00
Tim-Philipp Müller
30cb82da96 jpegdec: don't use decompress structure members we shouldn't be using 2009-10-16 13:00:12 +01:00
Tim-Philipp Müller
19b4f66014 jpegdec: remove some unused members from jpegdec instance structure 2009-10-16 13:00:12 +01:00
René Stadler
f9274226e8 pulsesink: set desired minreq value to segsize/latency-time
If we let the daemon decide freely by passing -1, we end up always getting 20ms.
We want to set this value because in some cases we want to select a higher
latency-time in order to save power.

Fixes #597601
2009-10-14 12:05:14 +02:00
Tim-Philipp Müller
87bd79f4ba jpegdec: fix bogus warning about discont flag on first buffer
The very first buffer should always have the DISCONT flag set, no
need to warn about that. Only warn if we get a DISCONT buffer in
non-packetised mode and we already have some data.
2009-10-13 01:10:59 +01:00
Tim-Philipp Müller
6ae6af9dab jpegdec: fix crash for unusual vertical chroma subsampling factors
Fixes #597351.
2009-10-13 01:10:59 +01:00
Josep Torra
c581e6f205 jpegdec: fixes warning building in snow leopard 2009-10-10 00:37:08 +02:00
Stefan Kost
f1fe1f52fd flac: apparently on some platforms a FLAC__uint64!=guint64 2009-10-09 14:37:32 +03:00
Stefan Kost
f41d7e7bd5 build: don't cast, but use the right format specified instead
This correct some of the previous macos fixes.
2009-10-09 13:54:24 +03:00
Josep Torra
696e350c7b dv: fix warnings on macosx 2009-10-09 12:40:47 +02:00
Josep Torra
133ebe76a3 flac: fix warnings on macosx 2009-10-09 12:25:19 +02:00
Josep Torra
6320de853b annodex: fix warnings in macosx 2009-10-09 12:19:35 +02:00
Stefan Kost
e0cdd879b4 build: fprintf, sprintf, sscanf need stdio.h 2009-10-07 14:03:20 +03:00
René Stadler
15c6175044 pulsesrc: guard fragment size with a lower limit based on latency-time
In case that the pulse daemon runs the source device at a relatively low fixed
fragment size compared to the requested latency-time, configure the ring buffer
segsize to the largest integer multiple of the fragment size that is still
smaller than or equal to the requested latency-time.

Fixes bug #597463.
2009-10-06 20:54:20 +03:00
Stefan Kost
86b8935b07 jpegdec: comment/logging cleanups and more branch guides 2009-10-06 17:46:49 +03:00
René Stadler
ccddf0643d pulse: rename pa_buffer_attr variables
Makes it much easier to see what is going on and is a lot less error prone.
2009-10-02 23:21:02 +03:00
Christian F.K. Schaller
e2623815d1 Update makefile with missing header file 2009-09-30 18:06:07 +01:00
Stefan Kost
b1feeee166 jpegdec: don't leak output buffers on decoding errors
The setjmp handles libjpeg error. Free the outputbffer if we don't need it.
2009-09-30 09:19:48 +03:00
Tim-Philipp Müller
477cb58640 jpegdec: fix 'unused variable' compiler warning when compiling with GST_DISABLE_GST_DEBUG 2009-09-29 00:01:59 +01:00
Stefan Kost
69c24fb991 jpeg: handle more libjpeg return values, add some more branch hints
Also remove unused size variable in _chain().
2009-09-28 17:25:35 +03:00
Alessandro Decina
195883b30a Fix compile warnings with gcc 4.0.1. 2009-09-22 15:04:36 +02:00
Stefan Kost
253f43203d jpegdec: add a G_UNLIKELY and put perf-cat log to code path that copies 2009-09-21 16:07:50 +03:00
Mark Nauwelaerts
50c41acdff speexdec: allow for unknown varying number of frames per buffer
In particular, this caters for RTP payloads with multiple frames
per packet.
2009-09-18 14:46:38 +02:00
Mark Nauwelaerts
35f9efac88 speexdec: use correct sample size in conversions 2009-09-18 14:46:38 +02:00
Mark Nauwelaerts
f4482e4ae3 speexenc: fix buffer time and duration for multiple frames per packet 2009-09-18 14:46:38 +02:00
Sebastian Dröge
317d6e18a2 pulsesrc: Don't dereference NULL pointers
pa_stream_get_timing_info() can return NULL.

Fixes bug #595220.
2009-09-15 10:05:51 +02:00
David Henningsson
bb787f1030 pulsesink: Don't dereference NULL pointers
pa_stream_get_timing_info() can return NULL.

Fixes bug #595220.
2009-09-15 10:05:51 +02:00
Wim Taymans
ccda761562 pulsesink: handle stream events
Handle stream events and request a PAUSE/PLAY state change from the application
when we receive a CORK/UNCORK event.
2009-09-14 16:05:30 +02:00
David Schleef
903c79e767 dvdemux: Use values from decoder structure directly
Don't store the same values in the GstDvDemux.  This
fixes a bug where dvdemux would detect a stream as PAL
instead of NTSC, and silently parse it wrong.
2009-09-13 19:59:45 -07:00
David Schleef
29173242bb dvdemux: Add code to parse SMPTE time codes
Code to convert time codes to/from timestamps and frame numbers.
2009-09-13 13:22:35 -07:00
David Schleef
1b57f19509 dvdemux: Fix detection of new media
There are 5 or 6 AAUX source control packs in a frame, and any
of them could have REC_ST cleared, indicating a recording start
point.  libdv only checks the first.
2009-09-13 12:34:07 -07:00
Edward Hervey
b1dab0fce1 dvdemux: Set DISCONT flag on buffers when REC_ST flag is set.
Also add a few branch prediction macros
2009-09-12 19:26:56 +02:00
Sebastian Dröge
0c50816aaa pulsesink: Implement GstStreamVolume interface 2009-09-11 16:38:03 +02:00
Sebastian Dröge
7fb6ad6d4c pulsesink: Implement mute property 2009-09-11 16:38:03 +02:00
Wim Taymans
d4316e74fc gdkpixbufsink: fix docs refering to send-messages 2009-09-11 13:33:31 +02:00
Wim Taymans
9fb92af2df pixbufsink: add post-messages property
Add post-messages and deprecate send-messages as the former is more
descriptive of what actually happens.
2009-09-11 13:20:06 +02:00
David Schleef
3dc2c2472c dv1394src: Add a clock based on isochronous cycle counter
Partial fix for #169383.
2009-09-09 18:19:56 -07:00
Wim Taymans
42ee5e22a2 pulsesink: remove ringbuffer reset compensation
Remove the code to deal with a ringbuffer reset as this code is now in the base
class.
Bump the -base requirement as we need the new baseaudiosink code to function
properly.
2009-09-09 16:25:06 +02:00
Wim Taymans
75a48e238a pulsesink: whitespace fixes 2009-09-09 16:24:49 +02:00
Wim Taymans
ca7bec0d65 pulse: small cleanups
Add some debug info
Fix the state changes
2009-09-08 19:34:09 +02:00
David Schleef
55d2754098 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.
2009-09-05 20:53:10 -07:00
Edward Hervey
65d90baf84 jpegdec: Avoid unnecessary processing until we have a full picture.
This is for non-packetized mode, when we know the upstream size in bytes.
2009-09-03 17:40:20 +02:00
Stefan Kost
0541c44add speexenc: small taglist handling cleanup
Don't eventualy leak the list and instead assert (like in other elements).
2009-09-03 14:48:14 +03:00
Stefan Kost
e82e16480d pulsesink: also guard reseting subscribe callback with ifdefs
It is conditionaly set, so do the same when unsetting.
2009-09-02 23:14:20 +03:00
Tim-Philipp Müller
d875e72b02 flactag, wavparse: GstAdapter is not a GstObject 2009-08-31 13:07:53 +01:00
Wim Taymans
abee4f1d64 pulsesink: don't use relative seeks
Don't use relative seeks, it's too hard to track where we are after a flush
etc.

fixes #593015
2009-08-25 17:33:04 +02:00
Wim Taymans
08808f7f32 pulsesrc: don't discard the result of _set_caps()
Use the result of gst_pad_set_caps() instead of assuming success.

See #590678
2009-08-24 16:22:47 +02:00
Tim-Philipp Müller
68c4019057 smokeenc: don't crash when compiled against libjpeg7
Set parameters so that we don't crash with libjpeg7. Based on
Stefan Kost's fix for jpegenc. Fixes #591951.
2009-08-17 17:08:45 +01:00
Zaheer Merali
8dd9583357 dvdec: set bottom field first on PAL interlaced content, not top field first
DV interlaced content is always bottom field first. Fixes #591712.
2009-08-14 13:34:53 +01:00
Edward Hervey
d522f94f98 dv1394src: Fix element for live usage... which has been broken for 2 years :(
This is a live source, therefore:
* Use GST_FORMAT_TIME as the default format
* set_timestamp to True
* properly implement query latency.

This allows expected live usage like : playbin2 uri=dv://
2009-08-10 09:58:34 +02:00
Edward Hervey
3fd4cdcc43 raw1394: Remove unneeded variable 2009-08-10 09:58:34 +02:00
Sebastian Dröge
153ae910a0 wavpack: Use GLib GChecksum instead of our own MD5 implementation
This requires GLib 2.16 but that version is already required by core anyway.
2009-08-10 09:54:16 +02:00
Sebastian Dröge
c42f0ad5b6 souphttpsrc: Use SOUP_METHOD_GET instead of "GET" string
Fixes bug #590970.
2009-08-06 21:24:14 +02:00
Wim Taymans
b32ef1d51e pulsesrc: set the default slave method to skew
Set the default slave method to the much better skew algorithm. This is the
default in the new base class but we override this here as well for the
upcomming release.
2009-08-06 13:03:13 +02:00
Tim-Philipp Müller
1425c46e20 pulsesrc: fix compilation with --disable-gst-debug 2009-08-06 10:21:38 +01:00
Jonathan Tellier
dbf4d8a910 pulsesrc: initialize the probe with the server
When creating a new probe, pass the server instead of the device string.

fixes #590401
2009-08-03 13:32:12 +02:00
Tim-Philipp Müller
a3c393248a pulsesink: don't do logic within g_assert() statements
Otherwise that code will just be expanded to nothing when compiled
-DG_DISABLE_ASSERT (PS: why is mainloop_start() called in the init
function and not when changing state to READY?)
2009-08-02 11:49:17 +01:00
Tim-Philipp Müller
cee10cb439 flacdec: send newsegment event when operating push-based and unframed
For some reason flac doesn't call our metadata callback when we operate
in push mode with unframed input, but that's where we set up the
newsegment event (since that's where we'd get the duration from the
stream info header), so we didn't send a newsegment event at all in this
case. Hack around this by storing a generic newsegment event for now
which will be used if we don't replace it with a better one that
includes the duration.
2009-08-01 17:07:42 +01:00
Tim-Philipp Müller
3cf8790906 flacdec: small cleanups
Remove some callback indirections which are no longer needed because
there's only one decoder object type now. Also remove unused variable.
2009-08-01 16:48:36 +01:00
Tim-Philipp Müller
e8badc0686 flacdec: use gst_adapter_copy() to avoid unnecessary buffer merges
gst_adapter_peek() will merge buffers as needed, which we can avoid
here since we're doing a memcpy anyway and then flush the copied
data from the adapter right away.
2009-08-01 15:22:49 +01:00
Tim-Philipp Müller
33b686974e flacdec: repair some broken indenting 2009-08-01 12:30:32 +01:00
Edward Hervey
4e6fcd2345 soup: Use "GET" instead of SOUP_METHOD_GET. Fixes build with libsoup-2.7.*
This is due to a quality API change in libsoup 2.7. SOUP_METHOD_* are now
integers and not strings... they could have changed the names.
2009-07-31 18:35:12 +02:00
Stefan Kost
a07a575209 jpeg: use longer macro names to not clash with some stupid windows defines
libjpeg headers pull some windows system inlcudes (on windows) that contain a
define for DEFAULT_QUALITY.
2009-07-30 17:57:53 +03:00
Wim Taymans
9c341347ba pulse: conditionally compile newer stuff
configured_sink/source_usec in the timing_info is only since 0.9.11 so
conditionally compile this information.

fixes #590038
2009-07-29 12:13:20 +02:00
Wim Taymans
2d88251d9d pulsesrc: cleanups
Keep track of the paused state of the source and leave the read function when
paused.
don't wait for a latency update when the delay is not yet known but simply
return 0 instead of blocking.
Keep track of the corked state of the stream.
Fix the state changes.
2009-07-28 18:34:15 +02:00
Wim Taymans
19233e9671 pulsesrc: set maxlength always to -1 2009-07-28 18:34:15 +02:00
Wim Taymans
1a89388f97 pulsesrc; cleanups, report real latency
Add some more debug info
Avoid some type casts
Report the real latency to the application.
2009-07-28 18:34:15 +02:00
Mark Nauwelaerts
7a89fb0468 jpegdec: when scanning for 0xff marker ends, ensure desired result
Otherwise, any non 0xff byte at end of data would be mistaken for
a tag byte, and in case of a frame_len 0 tag subsequently lead to an
infinite loop.
2009-07-28 16:18:38 +02:00
Wim Taymans
2308999849 pulsesink: avoid using ivalid stream indexes
when we get an invalid stream index from pulse because we were just starting,
avoid using it for getting and setting the volume.

Fixes #589365
2009-07-27 11:51:39 +02:00
Stefan Kost
23967b03a7 jpeg: make encoder work with libjpeg v7
We have to specify do_fancy_downsampling = FALSE in the encoder with did not exist before.
2009-07-24 10:50:13 +03:00
Sebastian Dröge
169283dfc2 flacdec: Implement SEEKING query
Fixes bug #589423.
2009-07-23 12:07:33 +02:00
Colin Guthrie
4efca7b68e pulsesink: Fix a couple error messages that mentioned incorrect function names.
Fixes #589459.
2009-07-23 10:54:45 +01:00
Tim-Philipp Müller
375976c847 flacdec: fix intermittent FLAC__STREAM_DECODER_ABORTED errors when seeking
When seeking in a local flac file (ie. operating pull-based), the decoder
would often just error out after the loop function sees a DECODER_ABORTED
status. This, however, is the read callback's way of telling our loop
function that pull_range failed and streaming should stop, in this case
because of the flush-start event that the seek handler pushed upstream
from the seeking thread. Handle this slightly better by storing the last
flow return from pull_range, so the loop function can evaluate it properly
when it encounters a DECODER_ABORTED and take the right action.

Fixes #578612.
2009-07-21 19:58:04 +01:00
Stefan Kost
11c93fc1df jpeg: code cleanups for encoder
Remove some disabled code in encoder. Try #if 0'ed code and add comments about
why it is disabled. Move idct-method enum to jpeg.c and use in both encoder and
decoder. Add idct-method property to encoder.
2009-07-21 10:04:36 +03:00
Wim Taymans
b3c55f5ce5 pulsesink: set some values to their defaults
Set the minreq and maxlength buffer attributes to -1 to let puleseaudio select a
sensible value.
2009-07-20 19:09:19 +02:00
Wim Taymans
8bfd80e5a2 pulsesink: don't wait for posted message
We can't wait for the ENTER/LEAVE messages to be be posted because the base
class sometimes calls the start method with the object lock, which would block
the message posting.
Instead, just assume that the message will be posted soon and continue. We'll
have to fix this in the base class.
2009-07-20 19:07:19 +02:00
Wim Taymans
e914f5254a pulsesink: use relative seeks
Use relative seeks because I was told that absolute seeks don't work.
2009-07-20 19:07:19 +02:00
Sebastian Dröge
9d9d08622b cairorender: Add support for ARGB/BGRA input
Note that videotestsrc outputs 100% transparent video
which will result in white output from cairorender.
2009-07-20 08:08:22 +02:00
Sebastian Dröge
bdb1e59d77 cairorender: Add to the documentation 2009-07-17 13:49:21 +02:00
Sebastian Dröge
7ba6ef6672 cairorender: Return not-negotiated if we have no caps 2009-07-17 13:42:49 +02:00
Sebastian Dröge
52f17631d9 cairorender: Fix caps and colorspace handling 2009-07-17 13:41:19 +02:00
Sebastian Dröge
12fbfabb6a cairorender: Use correct mimetypes for PDF and SVG 2009-07-17 13:30:02 +02:00
Sebastian Dröge
644e113064 cairorender: Remove pull mode, it only adds complexity but not advantages 2009-07-17 13:24:28 +02:00
Sebastian Dröge
5d0787aa20 cairorender: Fix caps negotiation and cairo surface creation 2009-07-16 21:55:31 +02:00
Sebastian Dröge
28bee12728 cairorender: Correctly set srccaps 2009-07-16 21:42:21 +02:00
Sebastian Dröge
13f23f81e8 cairorender: Move instance/class struct definitions to the header 2009-07-16 21:31:43 +02:00
Sebastian Dröge
0b990f3f6c cairorender: Add Lutz' copyright to the file header 2009-07-16 21:30:00 +02:00
Lutz Mueller
596f53c84a cairo: Add cairo-based PDF/PS/SVG encoder element
Fixes bug #331420.
2009-07-16 21:27:45 +02:00
Sebastian Dröge
598e0c8cc6 flacenc: Optionally write a PADDING block
The size of the PADDING block is specified by a new
"padding" property.

Fixes bug #588483.
2009-07-16 20:44:40 +02:00
Sebastian Dröge
226a125056 souphttpsrc: Only assume seekability if the server provides Content-Length
Previously seekability way always assumed until the first seek actually
failed. Now we assume that all servers are not seekable unless they provide
a Content-Length header. If a seek fails after that we continue to
assume no seekability. Fixes bug #585576.
2009-07-16 19:35:44 +02:00
Arnout Vandecappelle
07c454d61e souphttpsrc: don't try to authenticate if no username/password is set. 2009-07-16 17:14:15 +02:00
Olivier Crête
dbb8a331de pulsesink: Emit stream-status leave message
Fixes #587695
2009-07-14 18:52:15 +02:00
Olivier Crête
b2e9f0a7c9 pulsesink: Emit stream-status enter message
Emit stream-status messages for the pulse thread.
Don't use our own GCond for signaling but simply use the pulse mainloop
mechanisms for synchronisation.
See #587695
2009-07-14 18:44:21 +02:00
Wim Taymans
b0643b745a pulsesink: debug the latency update values 2009-07-14 18:15:59 +02:00
Wim Taymans
ab3bed81a5 pulsesink: add 24bit sample formats
Add check for pulseaudio 0.9.15 and enable 24bits samples in that case.
2009-07-14 16:14:34 +02:00
Edward Hervey
f2ba1229ba flacdec: Don't send empty string tags 2009-07-01 08:40:40 +02:00
Stefan Kost
6d0007372b pulsesink: include "1.0=100%" in volume and change upper limit
Upper volume limmit was 1000. That appear unneceasrily high. It would also cause
sever distortion if accidentialy used. Now its 10 (~ +15db) which is also in
sync with volume and playbin2.
2009-06-30 14:53:25 +03:00
Wim Taymans
ce7a24cbd9 pulse: some more trivial cleanups 2009-06-29 15:39:43 +02:00
Wim Taymans
53e19e71f1 pulse: trivial cleanups 2009-06-29 15:38:49 +02:00
Wim Taymans
1e98580204 pulsesink: clear ringbuffer when asked to
Since we map the ringbuffer to the pulseaudio internal ringbuffer, flush the
pulseaudio buffer when we are asked to clear the ringbuffer.
This avoids some leftover audio after a seek.
2009-06-29 15:21:37 +02:00
Stefan Kost
d260a92dce souphttpsrc: free memory in finalize
finalize is called only once. no need to clear pointers there. dispose is for
unreffing.
2009-06-24 17:45:42 +03:00
Edward Hervey
ef02d1da1d raw1394: sprinkle branch likeliness macros accross the code. 2009-06-24 12:37:38 +02:00
Tim-Philipp Müller
d0056049d3 dvdemux: post container-format tag
Also merge the two almost identical _add_*_pad() functions into one.
2009-06-22 10:49:02 +01:00
Tim-Philipp Müller
42936a73e6 dvdemux: don't screw up first audio buffer
Query the audio format, esp. dvdemux->num_channels, before we use that
variable to allocate the initial buffer. That way we don't accidentally
push a zero-sized buffer as first audio buffer.
2009-06-22 10:49:02 +01:00
Wim Taymans
b8e88710e1 pulseink: don't leak device_description
don't leak the device_description.
some cleanups.
2009-06-19 16:00:51 +02:00
Tim-Philipp Müller
e2ac5edc4b souphttpsrc: reset session state when stopping
Increases the chances that the element is actually reusable.
2009-06-16 08:58:31 +01:00
Tim-Philipp Müller
185957c98b souphttpsrc: log response and request headers and fix some broken indenting 2009-06-16 08:58:31 +01:00
Tim-Philipp Müller
dea67f3d96 pulsesink: ref custom ring buffer class and type in class_init
Hack around thread-safety issues in GObject and our racy _get_type()
functions (we could easily fix the _get_type() functions, but we still
need to hack around the GObject class races until we require a newer
GLib version, I think).
2009-06-15 15:51:32 +01:00
Tim-Philipp Müller
7ade32216f Remove a few old example apps from the 0.8 days
Some have been replaced by newer ones, others are demoing elements that
don't exist any longer (not in -good anyway), and others have not been
touched in many years and it seem pointless to keep them around.

Removing these files makes sure we don't have any code in our repository
that uses Gtk+ symbols which are to be removed for GNOME3, and as such
will make some script that greps for this kind of stuff give us a clean
bill of code health. Fixes #585757.
2009-06-14 19:19:19 +01:00
Wim Taymans
0bd984c52f pulsesink: handle border cases in resampler 2009-06-11 19:18:52 +02:00
Stefan Kost
85ba1b3e6a pulsesink: only notify if all checks passed
Replace goto done: with return, as those are checks when we don't want to flag a
pending notify.
2009-06-04 17:43:15 +03:00
Stefan Kost
44956f98d7 pulsesink: check pointer before accessing
Move existing check a few lines up, so that we check before accessing fields.
2009-06-03 18:23:53 +03:00
Stefan Kost
f77650c024 pulsesink: rename gst_pulse_sink_get_time to gst_pulsesink_get_time
Rename internal method for consistency.
2009-06-03 18:21:12 +03:00
Stefan Kost
2af7977e1d pulsesink: use values from pa_stream_get_buffer_attr()
We were putting the requested values back into ringbuffer spec, instead of
using the queried values.
2009-06-03 18:19:22 +03:00
Jan Schmidt
d9544bcc44 pngdec: Avoid possible overflow in calculations
A malformed (or simply huge) PNG file can lead to integer overflow in
calculating the size of the output buffer, leading to crashes or buffer
overflows later. Fixes SA35205 security advisory.
2009-06-02 13:44:39 +01:00
Tim-Philipp Müller
552793473f flacenc: some more logging - dump header packets
Also, the final fixing up of the headers is expected and not something
we should warn about.
2009-06-02 00:48:00 +01:00
Tim-Philipp Müller
53be1d33ca flacenc: never ever pass values >36bits to _set_total_samples_estimate()
Let's be paranoid and make sure we never pass a number that takes up
more than 36 bits to _set_total_samples_estimate(), since libFLAC
expects all the other bits to be zero, and if this is not the case
neighbouring fields in the global stream info header may get messed
up inadvertently, so that flac -d refuses to decode the stream.
See #584455.
2009-06-02 00:46:42 +01:00
Thomas Vander Stichele
0de1f5357d Address bad FLAC sample length encoding of #5844455
Commit df707c6664
introduced an obvious bug in the sample length calculation,
using the wrong macro for conversion.
2009-06-01 22:33:02 +02:00
John Keeping
32491d5a51 pngdec: match g_malloc() with g_free()
Matching g_malloc() with a g_free() is important when a custom allocator is
installed.
Fixes #583803
2009-05-25 16:33:35 +02:00
Zeeshan Ali (Khattak)
1d6fd4b6dd souphttpsrc: Set caps for audio/L16 content-type
When "Content-Type" header is "audio/L16", we need to set the caps on the
outgoing buffers so that downstream elements can have means to detect the
stream type and handle it appropriately. Tested with HTTP stream provided
by pulse-audio's http module (git master).
2009-05-22 00:55:08 +03:00
Zeeshan Ali (Khattak)
cd0e75ac1a souphttpsrc: Rename icy_caps to src_caps 2009-05-22 00:55:08 +03:00
Philippe Normand
a0de8567ca jpegdec: bump max size to 65535x65535
Remove artificial jpeg image limits.
Fixes #583048.
2009-05-21 23:39:13 +02:00
Jan Schmidt
cf584105c6 pulsesink: Convert an erroneous assertion
Occasionally, we get a change callback for an old stream, triggering
the assertion unnecessarily. Just ignore such callbacks.
2009-05-21 21:16:14 +01:00
Olivier Crête
ca25de8f77 pulse: Print a warning on under/overflows 2009-05-21 22:05:11 +02:00
Tim-Philipp Müller
8accf2704b flacdec: fix buffer leak
gst_buffer_replace() will take its own ref, so we still have
to unref the buffer if we don't need it any longer.
2009-05-13 09:18:07 +01:00
Tim-Philipp Müller
2e67ccde81 raw1394: include stdlib.h for strtol()
Fixes compiler warning when compiling with xml stuff in core disabled.
2009-05-08 19:42:10 +01:00
Edward Hervey
e8cbbd22f8 flacdec: Actually output the pending buffer.. and not a blank one.
It was previously sending the bogus buffer which was returned from
the bufferalloc (required for reverse negotiation apparently) instead
of the pending buffer.
2009-05-08 16:40:57 +02:00
Sebastian Dröge
9bf294c310 souphttpsrc: Allow non-string fields in the extra-headers property 2009-05-08 12:02:36 +02:00
Sebastian Dröge
1e34187973 souphttpsrc: Add support for extra-headers appended to the HTTP request
This allows to set the Referer header among other things by
adding a "extra-headers" property that takes a GstStructure
with field=string pairs.

Fixes bug #581806.
2009-05-08 11:30:44 +02:00
Christian Schaller
bdf1698f35 Add RANKS for various encoders and muxers 2009-05-07 18:10:08 +01:00
Jan Schmidt
c41d3d87fa flac: Make buffers created during seek act like normal buffers.
Store the offset and caps when allocating a buffer during seeking, and then
allocate a new buffer with buffer_alloc before we push it out. This ensures
that in all respects the first buffer decoded during seeking behaves like
all other buffers, including allowing downstream re-negotiation.
2009-05-06 14:24:20 +01:00
Thomas Vander Stichele
71acf2e900 flacdec: don't use pad_alloc when decoding while seeking. Fixes #579422 2009-05-06 15:28:46 +02:00
Arnout Vandecappelle
99efbfcf4d jpegdec: refactored gst_jpeg_dec_parse_image_data
Fixes #579808
2009-05-06 13:22:51 +02:00
Arnout Vandecappelle
788986e269 jpegdec: support additional 0xff before end marker.
JPEG markers may be preceded by additional 0xff.  jpegdec should
skip over these, even before the end marker.
See #579808
2009-05-06 13:11:53 +02:00
Wim Taymans
4606188039 jpegenc: set colorspace before _set_defaults()
The libjpeg api says that we need to set the colorspace before we call
_set_defaults(). Indeed, if we don't do that we end up with some very freaky
non-standard quant table and huffman table indexes.
2009-05-05 16:24:16 +02:00
Tim-Philipp Müller
3d9f6d9615 configure: make gdk-pixbuf plugin depend only on gdk-pixbuf, not gtk+ 2009-05-05 13:20:47 +01:00
Alessandro Decina
434d20862b speexdec: make speex_dec_convert work with same-format values when no data has been decoded. 2009-05-04 14:24:14 +02:00
Sebastian Dröge
9da04cd6af flac: Implement preset interface 2009-05-04 12:43:42 +02:00
Sebastian Dröge
6e9d728249 speex: Implement preset interface 2009-05-04 12:41:56 +02:00
Sebastian Dröge
9bb965430f wavpack: Implement preset interface 2009-05-04 12:40:36 +02:00
Wim Taymans
28afc6e591 pulsesink: make sure we always signal waiters
Always signal the waiters in the async callbacks. Especially for the volume
callbacks since this might cause deadlocks.
2009-04-30 10:32:39 +02:00
Sebastian Dröge
5a7edcbd81 flacenc: Use the tag merge mode that was set on the interface for merging tag events 2009-04-29 11:13:11 +02:00
Tim-Philipp Müller
8d8e9af0a8 jpegdec: fix warning for still images by not trying to divide by 0
Don't pass a 0 divisor to gst_util_uint64_scale(), or it will complain
in the single image case where fps=0/1 (are we supposed to differentiate
between no fps=still image and fps=0/1=variable rate here btw?)
2009-04-20 19:42:13 +01:00
Andy Wingo
034a4a771e fix format string in pngdec
* ext/libpng/gstpngdec.c: Fix size_t vs unsigned int format in error message.
2009-04-20 15:54:31 +02:00
Edward Hervey
0cb5b42d54 Remove trivial unused variables detected by CLang static analyzer. 2009-04-18 18:51:28 +02:00
Edward Hervey
cdb03bdc2b Remove blank {set|get}_property/change_state/finalize methods. 2009-04-18 18:51:27 +02:00
Edward Hervey
4a9e80720a Remove unused variables in _class_init
Detected by LLVM's CLang static analyzer
2009-04-18 18:51:27 +02:00
Wim Taymans
c052906590 pulsesink: fix sample offset calculation again 2009-04-16 22:51:54 +02:00
Wim Taymans
776b0ae8cb pulsesink: handle NULL timing info
Don't crash when the timing info is not yet available.
2009-04-10 21:32:54 +02:00
Stefan Kost
b3d66d5e8d pulse: make it work on 0.9.12
First we ignore request to fill the ringbuffer which are less then a segment.
The small request where causing stutter.
Then we disable flushing the stream when running against pa 0.9.12 as this
triggers an assertiong in the sound server and terminates it. It does not happen
with 0.9.10 and 0.9.14.
2009-04-10 21:42:13 +03:00
Wim Taymans
963b343548 pulsesink: handle server disconnect in get_time
When the server is disconnected or when we are shut down, make our clock return
an invalid time instead of erroring out.
2009-04-10 14:18:48 +02:00
Wim Taymans
20a6908dfd pulsesink: bps is signed int to avoid overflow
Keep bps as gint instead of guint because we will be doing signed math with it
later on and we don't want weird results.
2009-04-10 12:01:27 +02:00
Wim Taymans
7d438518fb pulsesink: check for a stream
Don't try to change the stream volume (and other things) when we don't have a
stream yet. Just store the values for later.
2009-04-09 23:43:58 +02:00
Wim Taymans
ae83945349 pulsesink: fix compilation for newer pulseaudio 2009-04-09 18:07:38 +02:00
Wim Taymans
8d58de128d pulsesink: uncork fixes and use prebuf = 0
We can use prebuf = 0 to instruct pulse to not pause the stream on underflows.
This way we can remove the underflow callback. We however have to manually
uncork the stream now when we have no available space in the buffer or when we
are writing too far away from the current read_index.
2009-04-09 17:26:21 +02:00
Wim Taymans
d849340e64 pulsesink: handle write errors 2009-04-09 17:26:20 +02:00
Wim Taymans
81c5fb9e48 pulsesink: write silence on underflow
Start filling up the buffer with empty samples when an underflow happens. We
need to do this to keep pulseaudio reporting the right time for us.
2009-04-09 17:26:20 +02:00
Wim Taymans
2e2f1d73ca pulsesink: handle pull-based scheduling
Use the default basesink methods for implementing pull based scheduling, it
works fine for us.
2009-04-09 17:26:20 +02:00
Wim Taymans
8855ed90c0 pulsesink: add beginnings of pull-based scheduling 2009-04-09 17:26:20 +02:00
Wim Taymans
236baa5a13 pulsesink: keep track of clock reset
when we switch streams, the clock will reset to 0. Make sure that the provided
clock doesn't get stuck when this happens by keeping an initial offset. We also
need to make sure that we subtract this offset in samples when writing to the
ringbuffer.
2009-04-09 17:26:20 +02:00
Wim Taymans
6bc6cafcc6 pulsesink: rewrite pulsesink
Derive from BaseAudioSink and implement our custom ringbuffer that maps to the
internal pulseaudio ringbuffer.
2009-04-09 17:26:20 +02:00
Wim Taymans
28d733d53b pulse: remove some stray debug lines 2009-04-09 17:26:20 +02:00
Tim-Philipp Müller
e14bae6637 jpegdec: use slightly more adaptive formula for QoS
Should work at least a tad better if the decoder can't keep up, and
should also spread dropped frames a bit more evenly over time.
2009-04-09 11:34:19 +01:00
Thomas Vander Stichele
8009fcf547 add pending_samples so that we only update segment's last stop after really sending the samples 2009-04-04 15:14:32 +02:00
Thomas Vander Stichele
fb4953a68d add debugging 2009-04-04 15:14:31 +02:00
Thomas Vander Stichele
5e19fc1058 clipping should also work if it's done on the first buffer starting at 0 2009-04-04 15:14:31 +02:00
Jonathan Matthew
9b7c9208c3 id3v2mux: write RVA2 frames containing peak/gain volume data 2009-04-02 00:20:02 +01:00
Tim-Philipp Müller
f1fb1f80fa jpegdec: demote some log message from DEBUG to LOG
And log decoder object.
2009-04-02 00:05:14 +01:00
Tim-Philipp Müller
00c4b0b17a jpegdec: implement basic QoS
Don't decode frames that are going to be too late anyway.
2009-04-01 21:15:02 +01:00
Tim-Philipp Müller
11a8aa91b8 flac: require a 'newer' flac and remove support for the legacy flac API 2009-03-27 21:27:30 +00:00
Tim-Philipp Müller
ab1bbcd58d jpegdec: put GstSegment inside the element struct instead of allocating it separately 2009-03-25 10:36:49 +00:00
Wim Taymans
39f59ea456 pulsesink: clean up the state change function
Make the state change function a bit more readable and only pause after the
parent had a change to pause first.
2009-03-23 11:22:08 +01:00
Jan Schmidt
b39d090a49 pulsesink: Track the corked/uncorked state ourselves
Use an instance variable to track whether the stream is corked or not,
instead of using PA API that was only introduced in 0.9.11
2009-03-20 13:27:59 +00:00
Jan Schmidt
120e6bfc5c pulse: Make sure the stream is uncorked in the write function
If the caps changes, the sink is reset without transitioning through
a PAUSED->PLAYING state change, resulting in a corked stream. This avoids
the problem by checking that the stream is uncorked when writing samples
to it.
2009-03-20 12:11:06 +00:00
Tim-Philipp Müller
335891c757 speexenc: fix direction of latency query and other upstream queries
Don't send queries back to the element they just came from by sending
them to the peer of the wrong pad.
2009-03-20 01:06:14 +00:00
Jan Schmidt
608d13d462 pulsesink: Wait until there is enough room to write an entire segment
When trying to write out a segment, wait until there is enough free space
for the entire segment. This helps to reduce ripple in the clock reporting,
where the app might query the playback position while only half a segment
has been written (and is therefore reported by _delay(), even though
the ring buffer has not yet been advanced)
2009-03-13 15:40:50 +00:00
Laszlo Pandy
73fac6e4ea Don't call FLAC__ methods before it's initialized. Fixes #516031
In the event handler, gst_flac_dec_sink_event(), two functions are called on
the FLAC stream without checking if it has been initialized:
FLAC__stream_decoder_flush()
FLAC__stream_decoder_process_until_end_of_stream()

Both these FLAC__*() functions modify the internal state of the FLAC stream.
Later, when the buffers start flowing, gst_flac_dec_chain() tries to initialize
the stream. the FLAC__stream_decoder_init_stream() call will fail because the
previous calls to FLAC__*() changed the stream state so it is no longer in the
initialized state.
2009-03-12 16:10:25 +01:00
Wim Taymans
18571b9e4f pngdec: various cleanups.
Make some code more readable.
Fix a leak when pull range returns a shot buffer.
Push EOS after posting the error.
2009-03-10 11:03:14 +01:00
Wim Taymans
8f8e035cd5 flacdec: don't lose the first buffer after a seek
The flacdec API calls the write callback when performing a seek. We cannot yet
push out a buffer at that time so we must keep it and push it out later.
Flush out the upstream part of the pipeline when doing a seek.
Fixes #574275.
2009-03-09 17:14:12 +01:00
Edward Hervey
1523ef681b souphttpsrc: Expose the SoupSession 'timeout' property. 2009-03-03 12:20:27 +01:00
Thomas Vander Stichele
9f25f96155 Merge branch 'master' of ssh://thomasvs@git.freedesktop.org/git/gstreamer/gst-plugins-good 2009-03-02 09:43:30 +01:00
Thomas Vander Stichele
13221762d0 Add/clarify/fix some logging. 2009-03-02 08:41:15 +01:00
David Schleef
9f3ad53ca8 Fix the field dominance
PAL is TFF, NTSC is BFF.  Some day I will learn to keep this
straight.
2009-02-27 23:26:40 -08:00
David Schleef
b264c99074 dvdec: Add interlacing info to caps and buffers 2009-02-25 20:01:36 -08:00
Tim-Philipp Müller
1a2bd6c617 jpegenc: error out instead of crashing if no caps have been set
Don't crash if we receive a buffer without caps. Fixes #572413.
2009-02-25 12:50:37 +00:00
Sebastian Dröge
5da35b1ee2 gconf: Rename gconf.[ch] to gstgconf.[ch] to prevent name conflicts 2009-02-24 14:56:14 +01:00
Wim Taymans
7e64f1d106 Some cleanups
Remove some unused variables.
Avoid a useless _resync call.
Correctly use a gboolean.
2009-02-23 15:48:41 +01:00
Sjoerd Simons
ef33cf891f gconfvideo(src|sink): Disconnect GConf notifications
Fixes bug #571321.
2009-02-22 19:30:32 +01:00
Sebastian Dröge
dfa627da30 pulsemixer: Don't use g_atomic_int_(get|set) for accessing the mixer track flags
g_atomic_int_(get|set) only work on ints and the flags are
an enum (which on most architectures is stored as an int).

Also the way the flags were accessed atomically would still
leave a possible race condition and we don't do it in any
other mixer track implementation, let alone at any other
place where an integer could be changed from different
threads. Removing the g_atomic_int_(get|set) will only
introduce a new race condition on architectures where
integers could be half-written while reading them
which shouldn't be the case for any modern architecture
and if we really care about this we need to use
g_atomic_int_(get|set) at many other places too.

Apart from that g_atomic_int_(set|get) will result in
aliasing warnings if their argument is explicitely
casted to an int *. Fixes bug #571153.
2009-02-22 18:08:59 +01:00
Sebastian Dröge
b6e745d2d3 hdv1394src: Don't use void * pointer arithmetic 2009-02-22 12:41:53 +01:00
Thomas Vander Stichele
a7902054bd respect DEFAULT segment by clipping the last buffer to be sent 2009-02-21 12:47:00 +01:00
Mark Nauwelaerts
5cfc906d1b pulsemixer: Fix compiler warnings.
Cast (enum *) to (int *), not necessarily technically right,
but plugs #571153.
2009-02-13 18:50:52 +01:00
Mark Nauwelaerts
7756d37531 pulsesink: Issue property change notification in streaming thread,
rather than PA thread.

pa_threaded_mainloop_lock() (a.o.) and by extension get_property should
not be done from a PA thread, but the latter may occur as a result of a
property change notification.  Fixes #571204 (though current situation
not ideal, e.g. post message rather than signal).
2009-02-13 18:04:41 +01:00
Michael Smith
db0b8755e0 flacdec: if we aborted reading, don't do into an infinite loop.
If our read callback ran out of data, so had to abort reading, we return
GST_FLOW_ERROR instead of going into an infinite loop.
2009-02-05 15:53:04 -08:00
Thomas Vander Stichele
b312bc6931 debug on the object 2009-02-05 20:02:01 +01:00
Jonathan Matthew
9218eae98b Use correct flag for the GNOME proxy configuration
Fixes bug #552140.
2009-02-02 18:38:40 +01:00
Stefan Kost
eb89143219 Add examples for the jpeg elements. 2009-01-29 10:12:43 +02:00
Jan Schmidt
9795e95f39 Fix compile error in the last commit 2009-01-28 21:40:11 +00:00
Jan Schmidt
0037635bf2 Rewrite the pulse plugin, conditionally enabling new behaviour with
newer pulseaudio.

Fixes: #567794

* Hook pulsesink's volume property up with the stream volume -- not the
  sink volume in PA.

* Read the device description directly from the sink instead of going
  via the mixer.

* Properly implement _reset() methods for both sink and source to avoid
  deadlocks when shutting down a pipeline.

* Replace all simple pa_threaded_mainloop_wait() by proper loops to
  guarantee that we wait for the right event in case multiple events are
  fired.  While this is not strictly necessary in many cases it
  certainly is more correct and makes me sleep better at night.

* Replace CHECK_DEAD_GOTO macros with proper functions

* Extend the number of supported channels to 32 since that is the actual
  limit in PA.

* Get rid of _dispose() methods since we don't need them.

* Increase the volume property upper limit of the sink to 1000.

* Reset function pointers after we disconnect a stream/context. Better
  fix for bug 556986.

* Reset the state of the element properly if open/prepare fails

* Cork the PA stream when the pipeline is paused. This allows the PA
* daemon to
  close audio device on pause and thus save a bit of power.

* Set PA stream properties based on GST tags such as GST_TAG_TITLE,
  GST_TAG_ARTIST, and so on.

Signed-off-by: Lennart Poettering <lennart@poettering.net>
2009-01-28 20:34:40 +00:00
Stefan Kost
9cf73bdd8f Update and add documentation for plugins with deps (ext).
Link to properties. Correct titles for examples. Document a few trivial cases. Keep lists in section file and docs/plugins/Makefile.am alphabetically ordered. Fix warnings that gtk-doc points out.
2009-01-28 18:05:09 +02:00
Jonathan Matthew
5a0e94b8a7 Use libsoup-gnome for proxy configuration if available
If libsoup-gnome is found use this as it will give us
the GNOME proxy configuration. Otherwise use normal
libsoup.

The GNOME proxy configuration will only be used if
the proxy properties are not set on souphttpsrc
and if the http_proxy environment variable is not
set.

Fixes bug #552140.
2009-01-26 09:55:24 +01:00
Jan Schmidt
1e7e381a8d Fix typo and small flaw in flac decoder 2009-01-22 14:33:04 +00:00
Wim Taymans
43fb36545b Whitespace fixes and some improved debug lines. 2009-01-21 13:25:06 +01:00
Lennart Poettering
b1c6dec543 ext/pulse/pulseprobe.c: Fix refcount loop, resulting in a thread leak. Fixes bug #567746.
Original commit message from CVS:
Patch by: Lennart Poettering <lennart at poettering dot net>
* ext/pulse/pulseprobe.c: (gst_pulseprobe_new),
(gst_pulseprobe_free):
Fix refcount loop, resulting in a thread leak. Fixes bug #567746.
2009-01-14 15:37:07 +00:00
Jan Schmidt
3e380b488d ext/pulse/pulsesink.*: Use a mutex to protect the current stream pointer, and ignore callbacks for stream objects tha...
Original commit message from CVS:
* ext/pulse/pulsesink.c:
* ext/pulse/pulsesink.h:
Use a mutex to protect the current stream pointer, and ignore
callbacks for stream objects that have been destroyed already.
Fixes problems with unprepare/prepare cycles caused by the input
caps changing, without reintroducing bug #556986.
2009-01-07 20:38:50 +00:00
Sebastian Dröge
67cc69ad52 ext/pulse/pulsesink.c: Don't wait for the pulse mainloop when destroying the stream.
Original commit message from CVS:
* ext/pulse/pulsesink.c: (gst_pulsesink_destroy_stream):
Don't wait for the pulse mainloop when destroying the stream.
Fixes a deadlock when the pulsedaemon goes away while pulsesink
is PLAYING. Fixes bug #556986.
2009-01-05 17:31:13 +00:00
Wim Taymans
2f1c50ef38 ext/jpeg/gstsmokeenc.*: Implement getcaps function.
Original commit message from CVS:
* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_init),
(gst_smokeenc_getcaps), (gst_smokeenc_setcaps),
(gst_smokeenc_chain), (gst_smokeenc_change_state):
* ext/jpeg/gstsmokeenc.h:
Implement getcaps function.
Set caps on the pad and on all outgoing buffers.
Fixes #565441.
2008-12-23 12:10:41 +00:00
Stefan Kost
211bda0966 ext/pulse/pulsemixerctrl.c: And remove temporary comment pointing to the bug ticket.
Original commit message from CVS:
* ext/pulse/pulsemixerctrl.c:
And remove temporary comment pointing to the bug ticket.
* gst/avi/gstavimux.c:
Move reoccuring logging to LOG and log instance too.
2008-12-19 09:36:45 +00:00
Stefan Kost
bf0d9e34c2 ext/pulse/pulsemixerctrl.c: Don't leak the pa_operation.
Original commit message from CVS:
* ext/pulse/pulsemixerctrl.c:
Don't leak the pa_operation.
2008-12-17 17:28:39 +00:00
Stefan Kost
49ad7ace92 ext/pulse/pulsemixerctrl.c: Add note about memleak.
Original commit message from CVS:
* ext/pulse/pulsemixerctrl.c:
Add note about memleak.
2008-12-15 12:45:35 +00:00
Edward Hervey
5ad613d9b9 Switch to using GstStaticPadTemplate.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_base_init),
(gst_flac_dec_init):
* gst/law/alaw-decode.c: (gst_alaw_dec_base_init),
(gst_alaw_dec_init):
* gst/law/alaw-encode.c: (gst_alaw_enc_base_init),
(gst_alaw_enc_init):
* gst/law/alaw.c: (plugin_init):
* gst/law/mulaw-decode.c: (gst_mulawdec_base_init),
(gst_mulawdec_init):
* gst/law/mulaw-encode.c: (gst_mulawenc_base_init),
(gst_mulawenc_init):
* gst/law/mulaw.c: (plugin_init):
Switch to using GstStaticPadTemplate.
* gst/udp/gstudpnetutils.c: (gst_udp_get_addr):
Don't forget to free the addrinfo structure.
* gst/wavparse/gstwavparse.c: (gst_wavparse_reset),
(gst_wavparse_sink_activate):
Don't forget to unref the GstAdapter.
2008-12-13 15:34:01 +00:00
Tim-Philipp Müller
9442e37ea7 ext/dv/gstdvdemux.c: Restore previous behaviour of not passing QoS and navigation events upstream, which presumably w...
Original commit message from CVS:
* ext/dv/gstdvdemux.c: (gst_dvdemux_handle_src_event):
Restore previous behaviour of not passing QoS and navigation
events upstream, which presumably wasn't meant to be changed.
2008-12-09 10:28:11 +00:00
Sebastian Dröge
5dbebb29ff ext/dv/gstdvdemux.c: Add srcpads only when needed and remove them again when going back to READY. This prevents stall...
Original commit message from CVS:
* ext/dv/gstdvdemux.c: (gst_dvdemux_add_video_pad),
(gst_dvdemux_add_audio_pad), (gst_dvdemux_remove_pads),
(gst_dvdemux_demux_audio), (gst_dvdemux_demux_video),
(gst_dvdemux_chain), (gst_dvdemux_loop),
(gst_dvdemux_change_state):
Add srcpads only when needed and remove them again when going
back to READY. This prevents stalled pipelines if there's no
audio inside the DV stream, which happens for many MXF files.
2008-12-09 09:39:53 +00:00
Sebastian Dröge
169567f3ef ext/dv/gstdvdemux.c: Forward all events upstream unless it's something we really don't handle. This fixes latency con...
Original commit message from CVS:
* ext/dv/gstdvdemux.c: (gst_dvdemux_handle_src_event):
Forward all events upstream unless it's something we really
don't handle. This fixes latency configuration of pipelines.
2008-12-08 18:31:00 +00:00
Sebastian Dröge
939a1da72c ext/dv/: Really call dv_init() exactly one time, not one time for the demuxer and one time for the decoder.
Original commit message from CVS:
* ext/dv/gstdv.c: (plugin_init):
* ext/dv/gstdvdec.c: (gst_dvdec_class_init):
* ext/dv/gstdvdemux.c: (gst_dvdemux_class_init):
Really call dv_init() exactly one time, not one time for
the demuxer and one time for the decoder.
2008-12-08 18:24:21 +00:00
Ron McOuat
24e30c8834 Add support for basic and digest authentication in souphttpsrc.
Original commit message from CVS:
Patch by: Ron McOuat <rmcouat at smartt dot com>
* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_class_init),
(gst_soup_http_src_init), (gst_soup_http_src_dispose),
(gst_soup_http_src_set_property), (gst_soup_http_src_get_property),
(gst_soup_http_src_authenticate_cb), (gst_soup_http_src_start):
* ext/soup/gstsouphttpsrc.h:
* tests/check/elements/souphttpsrc.c: (basic_auth_cb),
(digest_auth_cb), (run_test), (GST_START_TEST),
(souphttpsrc_suite), (run_server):
Add support for basic and digest authentication in souphttpsrc.
Fixes bug #561775.
2008-11-27 16:43:24 +00:00
Stefan Kost
81dd155274 ext/pulse/pulsesink.c: Change #if 0 to something more expresive and add pointer to related bug ticket.
Original commit message from CVS:
* ext/pulse/pulsesink.c:
Change #if 0 to something more expresive and add pointer to related
bug ticket.
2008-11-23 15:08:45 +00:00
Zeeshan Ali
af12e9edda ext/soup/gstsouphttpsrc.c: Add transferMode.dnla.org header to HTTP requests as this is required by the DLNA specs an...
Original commit message from CVS:
Patch by: Zeeshan Ali <zeeshanak at gnome dot org>
* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_build_message):
Add transferMode.dnla.org header to HTTP requests as this is
required by the DLNA specs and doesn't hurt in other situations.
Fixes bug #561802.
2008-11-21 13:43:29 +00:00
Jan Schmidt
006861f235 ext/libpng/gstpngenc.c: Don't flush downstream after every buffer - that's not what this libpng callback is for at all!
Original commit message from CVS:
* ext/libpng/gstpngenc.c:
Don't flush downstream after every buffer - that's not what
this libpng callback is for at all!
2008-11-20 13:46:47 +00:00
Stefan Kost
084812bffd Don't install static libs for plugins. Fixes #550851 for -good.
Original commit message from CVS:
* ext/aalib/Makefile.am:
* ext/annodex/Makefile.am:
* ext/cairo/Makefile.am:
* ext/dv/Makefile.am:
* ext/esd/Makefile.am:
* ext/flac/Makefile.am:
* ext/gconf/Makefile.am:
* ext/gdk_pixbuf/Makefile.am:
* ext/hal/Makefile.am:
* ext/jpeg/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/libcaca/Makefile.am:
* ext/libmng/Makefile.am:
* ext/libpng/Makefile.am:
* ext/mikmod/Makefile.am:
* ext/pulse/Makefile.am:
* ext/raw1394/Makefile.am:
* ext/shout2/Makefile.am:
* ext/soup/Makefile.am:
* ext/speex/Makefile.am:
* ext/taglib/Makefile.am:
* ext/wavpack/Makefile.am:
* gst/alpha/Makefile.am:
* gst/apetag/Makefile.am:
* gst/audiofx/Makefile.am:
* gst/auparse/Makefile.am:
* gst/autodetect/Makefile.am:
* gst/avi/Makefile.am:
* gst/cutter/Makefile.am:
* gst/debug/Makefile.am:
* gst/effectv/Makefile.am:
* gst/equalizer/Makefile.am:
* gst/flx/Makefile.am:
* gst/goom/Makefile.am:
* gst/goom2k1/Makefile.am:
* gst/icydemux/Makefile.am:
* gst/id3demux/Makefile.am:
* gst/interleave/Makefile.am:
* gst/law/Makefile.am:
* gst/level/Makefile.am:
* gst/matroska/Makefile.am:
* gst/median/Makefile.am:
* gst/monoscope/Makefile.am:
* gst/multifile/Makefile.am:
* gst/multipart/Makefile.am:
* gst/oldcore/Makefile.am:
* gst/qtdemux/Makefile.am:
* gst/replaygain/Makefile.am:
* gst/rtp/Makefile.am:
* gst/rtsp/Makefile.am:
* gst/smpte/Makefile.am:
* gst/spectrum/Makefile.am:
* gst/udp/Makefile.am:
* gst/videobox/Makefile.am:
* gst/videocrop/Makefile.am:
* gst/videofilter/Makefile.am:
* gst/videomixer/Makefile.am:
* gst/wavenc/Makefile.am:
* gst/wavparse/Makefile.am:
* sys/directdraw/Makefile.am:
* sys/directsound/Makefile.am:
* sys/oss/Makefile.am:
* sys/osxaudio/Makefile.am:
* sys/osxvideo/Makefile.am:
* sys/sunaudio/Makefile.am:
* sys/v4l2/Makefile.am:
* sys/waveform/Makefile.am:
* sys/ximage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for -good.
2008-11-04 12:28:34 +00:00
Sebastian Dröge
d18bbcf1a8 ext/flac/Makefile.am: Include $(FLAC_CFLAGS) in CFLAGS to make sure to find the FLAC headers.
Original commit message from CVS:
* ext/flac/Makefile.am:
Include $(FLAC_CFLAGS) in CFLAGS to make sure to find the FLAC headers.
This fixes compilation if FLAC is installed in an uncommon location
that is not already handled by other CFLAGS. Fixes bug #558711.
2008-10-31 18:17:50 +00:00
Stefan Kost
af1a12033d ext/esd/esdmon.c: Add doc blob.
Original commit message from CVS:
* ext/esd/esdmon.c:
Add doc blob.
2008-10-27 09:26:19 +00:00
Sjoerd Simons
4158cf510a ext/soup/gstsouphttpsrc.c: Add support for souphttpsrc to act as a live source. This makes it possible to get timesta...
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_class_init),
(gst_soup_http_src_set_property), (gst_soup_http_src_get_property):
Add support for souphttpsrc to act as a live source. This makes it
possible to get timestamped buffers in combination with the
"do-timestamp" property. Fixes bug #556019.
2008-10-27 09:00:29 +00:00
Jan Schmidt
9df30524b5 ext/flac/: Cast some size_t arguments to guint to avoid compiler warnings on 64-bit systems.
Original commit message from CVS:
* ext/flac/gstflacdec.c (gst_flac_dec_read_stream):
* ext/flac/gstflacenc.c (gst_flac_enc_write_callback):
Cast some size_t arguments to guint to avoid compiler
warnings on 64-bit systems.
2008-10-10 12:28:34 +00:00
Wim Taymans
621dab2328 ext/pulse/: Return -1 instead of 0 in error cases. Fixes #554771.
Original commit message from CVS:
* ext/pulse/pulsesink.c: (gst_pulsesink_write):
* ext/pulse/pulsesrc.c: (gst_pulsesrc_read):
Return -1 instead of 0 in error cases. Fixes #554771.
2008-10-03 16:13:32 +00:00
Jan Schmidt
44cb25a342 ext/pulse/pulsesink.c: Fix problems with pulsesink randomly erroring with code 'OK' after a format change on the stre...
Original commit message from CVS:
* ext/pulse/pulsesink.c:
Fix problems with pulsesink randomly erroring with code 'OK' after a
format change on the stream by waiting when disconnecting the stream.
2008-09-27 00:43:07 +00:00
Tim-Philipp Müller
2a4c9ec6aa ext/raw1394/: Pretend to care about the result of write() which works around compiler warnings.
Original commit message from CVS:
* ext/raw1394/gstdv1394src.c: (SEND_COMMAND):
* ext/raw1394/gsthdv1394src.c: (SEND_COMMAND):
Pretend to care about the result of write() which works around
compiler warnings.
2008-09-11 11:26:06 +00:00
Tim-Philipp Müller
9a12021247 ext/flac/gstflacenc.c: Make sure the desired default values are actually set, not only registered as defaults (actual...
Original commit message from CVS:
* ext/flac/gstflacenc.c: (gst_flac_enc_class_init):
Make sure the desired default values are actually set, not only
registered as defaults (actual problem is that the stereo-specific
values are only updated if channels==2, which is not the case yet
when the object is created, so the default values for the
mid-side-stereo and loose-mid-side-stereo settings are never
set in _update_quality()). Makes flacenc create smaller files by
default (for stereo input), and fixes #550791.
2008-09-04 09:25:59 +00:00
Sebastian Dröge
3fa17e67a4 ext/speex/: Use integer encoding and decoding functions instead of converting the integer input to float in the eleme...
Original commit message from CVS:
* ext/speex/gstspeexdec.c: (speex_dec_chain_parse_data):
* ext/speex/gstspeexdec.h:
* ext/speex/gstspeexenc.c: (gst_speex_enc_encode):
* ext/speex/gstspeexenc.h:
Use integer encoding and decoding functions instead of converting
the integer input to float in the element. The libspeex integer
functions are doing this for us already or, if libspeex was compiled
in integer mode, they're doing everything using integer arithmetics.
Also saves some copying around.
2008-09-02 08:51:04 +00:00
Sebastian Dröge
912cb98096 ext/wavpack/gstwavpackenc.*: Handle non-zero start timestamps and stream discontinuities correctly. This only has an ...
Original commit message from CVS:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset),
(gst_wavpack_enc_push_block), (gst_wavpack_enc_chain):
* ext/wavpack/gstwavpackenc.h:
Handle non-zero start timestamps and stream discontinuities
correctly. This only has an effect if we're muxing into
a container format as the raw WavPack stream must contain
continous sample numbers.
2008-08-31 17:09:18 +00:00