Commit graph

1315 commits

Author SHA1 Message Date
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