Benjamin Otte
253d9acbcd
Fix for -Wold-style-definition
...
I didn't add the flag to configure because libvisual ships headers that
trigger this warning.
2010-03-17 12:09:25 +01:00
Benjamin Otte
1471df894a
Add -Wformat-nonliteral -Wformat-security
...
And fix the resulting compile failures.
I'm sorry about the patch necessary to gstclockoverlay.h but after
talking to Tim we decided we can live with it.
2010-03-17 12:09:25 +01:00
Benjamin Otte
3bd4aa26ff
Add -Wwrite-strings to configure
...
Fixes for the code included
2010-03-16 17:41:51 +01:00
Benjamin Otte
5e21fa5e0e
gst_element_class_set_details => gst_element_class_set_details_simple
...
Also change my email from the old university one to the current one.
2010-03-16 17:41:50 +01:00
David Hoyt
cfa8de336c
typefind: use g_ascii_strncasecmp() instead of strncasecmp()
...
g_ascii_strncasecmp() is more portable and likely more robust as
well (with random binary data as input).
Fixes #612845 .
2010-03-15 18:45:13 +00:00
Tim-Philipp Müller
0ed09fef0d
videotestsrc: use C comments instead of C++-style comments
2010-03-15 13:40:47 +00:00
Tim-Philipp Müller
8ff8195108
videotestsrc: use g_value_set_static_string() for string constants
2010-03-15 13:40:47 +00:00
Sebastian Dröge
bd2277d214
playsink: Avoid g_object_set() on NULL if a text sink is used
...
Fixes bug #611702 .
2010-03-15 14:26:28 +01:00
Sebastian Dröge
a6ffa3fbb5
subparse: Correctly escape brackets in DKS regex
...
Fixes bug #612783 .
2010-03-15 14:10:09 +01:00
David Schleef
84ed474e6a
videotestsrc: add chroma-zone-plate pattern
...
pattern=chroma-zone-plate is pattern similar to zone-plate,
but in the chroma channels instead of luma.
2010-03-15 01:35:15 -07:00
David Schleef
ac9b69a088
videotestsrc: add chroma-site to caps
2010-03-15 01:33:36 -07:00
David Schleef
c1974322ea
videotestsrc: Add color-matrix to template caps
2010-03-14 16:18:34 -07:00
Sebastian Dröge
944d6b1786
volume: Revert rounding behaviour changes when using controlled volume properties
...
Now the controlled and non-controlled code paths are all having
exactly the same rounding behaviour and the unit tests pass again.
2010-03-12 15:49:17 +01:00
Sebastian Dröge
baf2fc1c58
volume: Only allocate a mute value array if a control source exists for the mute property
2010-03-12 15:49:17 +01:00
Benjamin Otte
3a7d632a59
Add -Wredundant-decls to warning flags
...
... and fix all the warnings that flag throws.
2010-03-11 15:38:18 +01:00
Benjamin Otte
43b1683421
Add -Wmissing-declarations -Wmissing-prototypes to warning flags
...
Includes all the fixes necessary to make stuff compile again.
2010-03-11 13:50:31 +01:00
Mark Nauwelaerts
0f6cf41947
playsink: provide correct error message if configured audio/video sink fails
2010-03-10 14:37:05 +01:00
David Schleef
173b0758dc
videotestsrc: Add color-matrix to caps
2010-03-09 13:11:38 -08:00
Sebastian Dröge
71ca26fc7f
playsink: Don't fail if there are subtitles and audio but no video
...
Change playbin2 to not error out if there are subtitles and audio
but no video. If visualizations are enabled the subtitles are rendered on top
of the visualization stream, otherwise the subtitles are not linked at all and
only the audio is played (and a warning message is posted).
If there are only subtitles but neither audio nor video an error message is
still posted.
Fixes bug #610866 .
2010-03-09 21:01:38 +00:00
Sebastian Dröge
5d0957525a
volume: If a controller is used, use sample accurate property values
...
Fixes bug #609801 .
2010-03-09 20:58:38 +00:00
Josep Torra Valles
25fc69e6aa
playsink: avoid g_object_set() on NULL pointers
...
There may not be an overlay element if a text-sink is set.
Fixes #611702 .
2010-03-03 20:15:44 +00:00
Thiago Santos
616f130d05
videorate: Improve upstream negotiation
...
Put peer pad caps preferred framerates first, indicating
they are videorate's first choices, removing an unnecessary
conversion.
Fixes #608025
2010-02-22 17:03:07 -03:00
Sebastian Dröge
ff21fe1d25
playbin2, playsink, subtitleoverlay: Set subtitle encoding properly
...
For this add subtitle encoding properties to playsink and subtitleoverlay
and update the values in the containing elements.
Also update the font description in textoverlay or the used renderer
element if it is changed during playback.
Fixes bug #610310 .
2010-02-22 20:47:34 +01:00
Sebastian Dröge
9fa9834535
playsink: Ghost the video sinkpad if a text sinkpad is available
...
Only don't ghost it if no visualizations are need and if
no text is needed and no textchain was created yet.
Fixes bug #610379 .
2010-02-19 17:44:18 +01:00
David Schleef
8cf4f48892
tcp(client/server)src: Fix handling of closed sockets
...
The peer closing the socket should cause an EOS, instead of
silently doing nothing. This changes the behavior to be
more like fdsrc. Fixes : #610386
2010-02-18 11:44:59 -08:00
Tim-Philipp Müller
3be20d7a5e
uridecodebin: use same message string for missing elements as in playbin
...
Use the same translated message string for missing core elements as
playbin uses, which is a bit nicer and also indicates that there is
something wrong with the user's GStreamer installation (which arguably
is the case if elements like typefind or queue2 are missing).
2010-02-16 10:09:54 +00:00
Kaj-Michael Lang
0230f7ed9e
typefind: Handle stm module format
...
Fixes #609314 .
2010-02-15 12:50:45 +00:00
Sebastian Dröge
09f972bdba
playbin2: Post a missing element message and an error message if no uridecodebin can be found
2010-02-15 08:48:58 +01:00
Sebastian Dröge
dbf632f3fb
playsink: Post missing element messages if a core plugin is missing
...
And post a warning in cases where we can still continue to work
or an error when the missing element is fatal.
2010-02-15 08:46:26 +01:00
Sebastian Dröge
cdf53e5e86
decodebin2: First post a missing-plugin message, then emit the unkown-type signal
...
This makes sure that there *always* is a missing plugin message in the bus
before any errors or warning messages.
2010-02-15 08:26:05 +01:00
Sebastian Dröge
9677ca5037
uridecodebin: Missing decoder errors should be STREAM CODEC_NOT_FOUND
...
and not CORE MISSING_PLUGIN.
2010-02-15 08:20:41 +01:00
Sebastian Dröge
ecffd51751
playbin2: Free the subtitle URI
2010-02-15 08:18:06 +01:00
Sebastian Dröge
9716d51755
uridecodebin: Post missing plugin messages if a required element can't be created
...
Especially if no suitable URI source can be found.
2010-02-15 08:06:44 +01:00
Sebastian Dröge
b37de8a63b
decodebin2: Set ghostpad targets to NULL when freeing a decode chain
...
Otherwise the ghostpad will still be linked to the peer and there
will still be a reference kept, leading to nothing being unlinked
and destroyed until decodebin2 is finalized.
This fixes reuse of decodebin2 if a raw stream is connected to
its sinkpad.
2010-02-15 01:21:14 +01:00
Sebastian Dröge
2788db62ae
volume: Replace this variables by self
2010-02-13 01:08:05 +01:00
Josep Torra Valles
d58f4fcf48
playsink: Reset the sink's state to NULL before unreffing it unless it's the same instance again
...
This makes sure that we don't destroy the last reference before the
element gets back to NULL state. Fixes assertion failures if a playbin2
instance is reused but different sinks are automatically chosen because
of different caps.
2010-02-12 19:43:13 +01:00
Wim Taymans
3ae58733a5
uridecodebin: avoid some typecasts
2010-02-12 12:31:49 +01:00
Sebastian Dröge
8b1e42f272
ffmpegcolorspace: Add conversions from all ARGB formats to AYUV and back
2010-02-12 11:00:08 +01:00
Tim-Philipp Müller
729b6da76a
Revert "playbin2: Only allow to set the URIs in states <= READY or from an about-to-finish signal handler"
...
This reverts commit 7335ce5d3e
.
Support abusing the uri property to configure the next uri to play
outside of the about-to-finish handler for the time being after all.
We also shouldn't use thread private structures for this, since it
should be possible to block the thread that emitted about-to-finish
while the main thread sets the uri property. See #607226 .
2010-02-04 18:32:48 +00:00
Wim Taymans
fd755182b1
uridecodebin: clean up decodebin properties
...
When reusing a decodebin2 element, clear the properties we might have changed,
to their default values or else we might end up with old configuration.
Fixes #608484
2010-02-01 15:00:18 +01:00
Tim-Philipp Müller
16601b09fe
playbin2: when no uri is set, post an error message
...
When no uri is set, don't just return STATE_CHANGE_FAILURE from the
state change function, but actually post an error message.
2010-01-30 15:41:32 +00:00
Wim Taymans
b44a5c8dc7
adder: don't hold object lock when calling peer elements
...
Do not hold the object lock while we call methods on peer elements as this can
lead to deadlocks.
Fixes #608179
2010-01-28 17:43:47 +01:00
Edward Hervey
c60f94da58
decodebin2: Don't skip an element when getting the topology
...
Fixes #608167
2010-01-26 17:29:21 +01:00
Julien Moutte
d6108b8fad
subtitleoverlay: relax caps template on sink pads
...
Allow any caps on sink pad templates as we could do passthrough with non raw
video caps.
2010-01-25 18:57:52 +01:00
Sebastian Dröge
fcf2668b20
Revert "inputselector: Protect g_object_notify() with the object's mutex"
...
This reverts commit a37426c41c
, it's
causing deadlocks with playbin2.
2010-01-25 12:22:17 +01:00
Kipp Cannon
a37426c41c
inputselector: Protect g_object_notify() with the object's mutex
...
This works around the thread unsafety of g_object_notify()
Fixes bug #607513 .
2010-01-24 20:55:26 +01:00
Sebastian Dröge
1ae783dafc
typefindfunctions: Add typefinder for ISO MP4 files
...
Fixes bug #607848 .
2010-01-24 20:46:58 +01:00
Tim-Philipp Müller
eef885cf86
typefinding: optimise AC-3 typefinder a bit
...
Make AC-3 typefinder use the DataScanCtx stuff so we don't have to
do gst_type_find_peek() in the inner loop all the time. Also return
when we've suggested AC3 caps, instead of continuing with the loop.
2010-01-23 15:28:02 +00:00
Tim-Philipp Müller
ca7ba91e5b
Revert "typefind: Reduce number of calls to gst_type_find_peek."
...
This reverts commit c661bfaa99
.
This breaks AC-3 typefinding for all cases where the first frame
is at an offset > 0.
2010-01-23 15:27:49 +00:00
Wim Taymans
12af633942
uridecodebin: handle raw sources about-to-finish signals
...
When we are dealing with a source that produces raw audio/video, we don't use a
decodebin2 to decode the data and we thus don't have the drained/about-to-finish
signal emited. To fix this, we add a padprobe on the source pads and emit the
drained signal ourselves. This then makes playbin2 emit the about-to-finish
signal for raw sources such as cdda://
Fixes #607116
2010-01-22 16:36:46 +01:00
Stefan Kost
8ebb6be803
typefind: include stdio.h for sscanf
2010-01-22 16:15:54 +02:00
Tim-Philipp Müller
2a84cf0941
typefinding: add PNM typefinder
...
Add PNM typefinder, so we can remove the one that's in the PNM plugin
in -bad (which btw uses different/wrong media types that don't match
the ones used by gdkpixbufdec) and people don't make fun of us for
loading image decoders when typefinding and playing back audio files.
2010-01-22 02:09:58 +00:00
Thijs Vermeir
48aa1959c8
ffmpegcolorspace: rename performance category
...
rename the performance category to ffmpegcolorspace_performance
as there is already a global GST_CAT_PERFORMANCE in core
2010-01-21 19:34:33 +01:00
David Schleef
e432c8ebc2
typefind: rewrite h.264 detection
...
Make detection simpler: check for NALs, check that they make
sense, and report how certain we are that it's a raw H.264 stream.
Fixes : #583376 .
2010-01-19 13:37:12 -08:00
Tim-Philipp Müller
b0fe1867d4
playsink: re-use iterator callback to avoid code duplication
2010-01-18 10:10:27 +00:00
Tim-Philipp Müller
7216605ffa
playsink: when looking for sink properties, make sure they have the right type
...
We don't want to end up setting values on elements where the property is of
a different type than we expect. Can't transform the value either, since we
can't really make assumptions about the scale and transform function.
Fixes crashes when using playbin2 with apexsink (#606949 ).
2010-01-18 10:10:27 +00:00
Sebastian Dröge
7335ce5d3e
playbin2: Only allow to set the URIs in states <= READY or from an about-to-finish signal handler
...
Changing the URIs in a state > READY results in unexpected behaviour,
i.e. the new URIs are only used after the current track has finished.
Fixes bug #607226 .
2010-01-18 09:32:42 +01:00
Mark Nauwelaerts
2482a536ac
decodebin2: sprinkle some more locking
...
... to avoid races and ensure some data structure consistency.
See also #574289 .
2010-01-16 18:48:00 +01:00
Mark Nauwelaerts
45447337ad
decodebin2: mind blocked pads when shutting down
...
Fix regression in shutdown deadlock handling now that the
target of a ghostpad is blocked instead of ghostpad itself.
See also #574293 .
2010-01-14 18:26:03 +01:00
Sebastian Dröge
3b842bc98b
playsink: Fix disabling of subtitles if subtitles were used before
...
In this case the video still goes through the text chain and
subtitles are still going in there, in case subtitles are
enabled again. This makes sure that re-enabling subtitles
happens instantly.
Fixes hanging video when disabling subtitles, caused by an
unliked video pad.
2010-01-14 13:36:23 +01:00
Mark Nauwelaerts
36fee21834
playbin2: fix pad ref leak
2010-01-14 10:46:28 +01:00
Wim Taymans
8d30d92740
typefind: mp4 video is not parsed
2010-01-13 17:36:05 +01:00
Thiago Santos
148d951fbc
typefind: Add aac stream-format to caps
...
Also add the aac stream-format field on the caps when
detecting it.
2010-01-13 12:49:20 -03:00
Brijesh Singh
0fe6b6e8ab
playsink: Fix handling of the native audio/video flags
...
Fixes bug #606687 .
2010-01-13 09:39:54 +01:00
Wim Taymans
22939b074c
Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-base
2010-01-05 10:38:41 +01:00
Mark Nauwelaerts
133e1cdb56
audiorate: correctly eat empty and dummy buffers
2009-12-26 19:20:18 +01:00
Wim Taymans
775636e734
adder: be a lot smarter with buffer management
...
Detect EOS faster.
Try to reuse one of the input buffer as the output buffer. This usually works
and avoids an allocation and a memcpy.
Be smarter with GAP buffers so that they don't get mixed or cleared at all. Also
try to use a GAP buffer as the output buffer when all input buffers are GAP
buffers.
2009-12-24 19:56:55 +01:00
Wim Taymans
59ace1b9ee
adder: use collectpads clipping function
...
Install a clipping function in the collectpads and use the audio clipping helper
function to perform clipping to the segment boundaries.
Fixes #590265
2009-12-24 16:30:23 +01:00
Wim Taymans
66ae01eced
adder: fix juvenile comment
2009-12-24 13:58:52 +01:00
Wim Taymans
15216d23ac
decodebin2: fix typo in debug message
2009-12-23 21:24:48 +01:00
Wim Taymans
99e836a340
decodebin2: avoid some type checks
2009-12-23 18:18:03 +01:00
Wim Taymans
3b0fc1e4fb
playbin2: avoid leaking selector request pads
2009-12-23 17:08:27 +01:00
Wim Taymans
d4e1ff012d
uridecodebin: avoid leaking queue and typefind
...
Don't leak the queue and typefind elements that we might link after the
source element.
2009-12-23 15:46:25 +01:00
Jonathan Matthew
138c851173
uridecodebin: don't name the queue
...
There is no reason to name the queue.
Fixes #605219
2009-12-23 15:43:52 +01:00
Mark Nauwelaerts
93f82f16cd
audiorate: add Since marker for the new tolerance property
2009-12-21 18:50:34 +01:00
Wim Taymans
8266d201a0
decodebin2: add some debugging
2009-12-16 11:44:11 +01:00
Mark Nauwelaerts
8b4f6dd43b
audiorate: add a tolerance property
...
It may not be uncommon for the input timestamps to experience some jitter
around the 'perfect time'. As such, instead of regularly adding and dropping
samples, optionally allow for some tolerance in a more relaxed approach.
API: GstAudioRate:tolerance
2009-12-15 19:51:08 +01:00
Mark Nauwelaerts
b5fe63ed79
audiorate: add documentation
2009-12-15 19:50:56 +01:00
Mark Nauwelaerts
60635a9fbc
audiorate: use separate header file
2009-12-15 19:49:31 +01:00
Mark Nauwelaerts
4bbde64da6
audiorate: set DISCONT when resyncing (e.g. newsegment)
2009-12-15 19:49:28 +01:00
Mark Nauwelaerts
56d4534554
audiorate: also fill up segments if possible
2009-12-15 19:49:26 +01:00
Mark Nauwelaerts
a11a1858ed
audiorate: fix segment handling
...
Do not compare a media (buffer) time to a (bogus) running time
(or their offset equivalents).
2009-12-15 19:49:24 +01:00
Mark Nauwelaerts
529db8b501
audiorate: properly report truncated samples as dropped samples
2009-12-15 19:49:22 +01:00
Wim Taymans
dc91454984
tcpclientsrc: unset flushing state too
...
When unlocking, we set the flushing state on the fdset. Implement unlock_stop so
that we can use it to unset the flushing state again.
Fixes #577326
2009-12-10 17:53:01 +01:00
Wim Taymans
26071d748f
playsink: fix video when subtitles disabled
...
When we have a source with subtitles but they were disabled with the flags,
still ghostpad the video pad instead of leaving it unlinked.
2009-12-09 12:11:55 +01:00
Sebastian Dröge
7bf631e448
playbin2: Fix stream-changed message list iteration
...
When iterating the list and removing the current element, first
get the next element and then remove the current one and not
the other way around.
2009-12-08 13:41:28 +01:00
Sebastian Dröge
49fd39c3fd
playsink: Some minor cleanup
2009-12-07 09:13:40 +01:00
Sebastian Dröge
930a57db20
playbin2: Reset stream segments on FLUSH_STOP and don't adjust QoS events for non-time segments
2009-12-06 18:06:05 +01:00
Stefan Kost
e6e9e3c589
build: fix build with debug logging disabled.
2009-12-03 23:38:54 +02:00
Stefan Kost
a6cf29fd3d
playbin2: don't iterate the factory lists in non-debug mode
...
When debugging is disabled, we won't see anything printed anyway.
2009-12-03 18:08:49 +02:00
David Schleef
ab0c93976d
Build fix for MSVC
2009-12-03 00:20:34 -08:00
Stefan Kost
70649da6ce
build: add missing includes for sprintf and atoi
2009-12-02 23:27:55 +02:00
Thiago Santos
1acdf3eb78
subparse: Add support for some tags of qttext
...
Currently supporting timescale, timestamps, font, size,
textColor, backColor, plain, bold and italic
Fixes #603357
2009-12-01 17:56:59 -03:00
Thiago Santos
cdcc28c833
subparse: add qttext support
...
Adds basic support for qttext subtitles, still lacks markup tags
to make it prettier, but the plain text already works.
Implemented according to:
http://www.apple.com/quicktime/tutorials/texttracks.html
http://www.apple.com/quicktime/tutorials/textdescriptors.html
Fixes #603357
2009-12-01 14:06:27 -03:00
Thiago Santos
c4b86b37fb
subparse: conditionally cleanup sami context
...
Only cleanup sami context if we are parsing sami subtitles,
otherwise we might have crashes.
2009-12-01 13:32:33 -03:00
Thiago Santos
12db385ada
subparse: Add missing caps to sink caps template
...
Some caps were missing from the sink caps template when
xml was disabled
2009-12-01 13:32:33 -03:00
Sebastian Dröge
732f3055a3
subtitleoverlay: Fix some pad refcount issues
...
Fixes bug #603345 .
2009-11-30 10:22:54 +01:00
Sebastian Dröge
1fe9f49691
ffmpegcolorspace: Prefer transforming alpha formats to alpha formats and the other way around
...
Fixes bug #602834 and #350748 .
2009-11-25 16:18:37 +01:00
Sebastian Dröge
1273909419
playbin2: Transform QoS events to be meaningful for upstream elements
...
This is necessary because the sinks don't notice the group switches
and the decoders/demuxers have a different running time than the
sinks.
Fixes bug #537050 .
2009-11-23 08:06:02 +01:00
Stefan Kost
3d73a7458a
adder: make events succeed, if they succed on atleast one pad
2009-11-19 21:28:23 +02:00
Thiago Santos
0d6195686b
decodebin2: error when all streams have no buffers
...
In some cases (all buffers dropped by a parser) a decodebin2
chain might receive an EOS before it gets enough data to
expose a decoded pad. In the case that no streams can expose
a pad we should error out instead of hang.
Fixes #542758
2009-11-19 14:51:33 -03:00
Sebastian Dröge
7e5d6ed441
playbin2: Fix stupid bug introduced in last commit
2009-11-19 12:23:08 +01:00
Sebastian Dröge
d6dd987ffb
playbin2: Aggregate the stream-changed message by looking at the seqnum
...
Just counting how many messages were sent and how many were received
is not good enough because they might've been duplicated (e.g. by the
visualization audio tee). Comparing the sequence numbers should give
better results in that case.
2009-11-19 12:12:57 +01:00
Sebastian Dröge
ea40d8e36a
playbin2: Ignore async state changes of the uridecodebins
...
Otherwise the async state change from READY->PAUSED of the
uridecodebins will take playbin2 from PLAYING->PAUSED again
during gapless group switches.
Fixes bug #602000 .
2009-11-19 12:12:57 +01:00
Thiago Santos
e3e7ba0d1a
decodebin2: set to buffer less on no-more-pads
...
When a decodebin2 receives no-more-pads of a group it
can set that group's multiqueue buffering thresholds to
'playing' buffering method, avoiding that it buffers
too long and cause problems when using with queue2.
See the associated bug for details.
Fixes #600787
2009-11-18 15:16:18 -03:00
Sebastian Dröge
af34d2c1f8
playbin2: Don't handle DURATION queries during group switches
...
During a group switch return the cached duration of the old group
because the old group still didn't finish playback. If we have no
cached duration return FALSE.
Fixes bug #585969 .
2009-11-18 16:40:32 +01:00
Sebastian Dröge
7e674d8605
playbin2: Post a stream-changed message after activating a group
...
This is useful to detect when playbin2 has really switched to the next
group after about-to-finish for example.
Fixes bug #584987 .
2009-11-18 16:40:32 +01:00
Wim Taymans
c4d7dbce1a
playsink: make sure we always go to PAUSED async
...
Set the need_async_start flag before going to PAUSED so that we always post the
ASYNC_START message, even after reusing playsink.
2009-11-17 16:39:09 +01:00
Wim Taymans
65773b58dd
playsink: make sure we remain a sink
...
When we remove our elements, we could lose our sink flag. Make sure we remain a
sink by setting the flag again after removing elements.
2009-11-17 16:37:57 +01:00
Stefan Kost
bbb531619c
audioconvert: remove unused array
2009-11-16 22:51:17 +02:00
Sebastian Dröge
7a7950f969
subparse: Use new double->fraction transformation function from core
2009-11-16 09:59:02 +01:00
Sebastian Dröge
3b4fd71270
playbin2: Make subtitle error handling more robust and ignore late errors too
...
Make sure, to only "simulate" subtitle no-more-pads if it was still
pending and also handle errors in the subtitle pipeline as warnings
after the subtitles prerolled.
Don't set the suburidecodebin to READY after errors, handle_message
will usually be called from the streaming thread and doing that
from there is obviously not a good idea.
2009-11-14 14:08:40 +01:00
Sebastian Dröge
cdc5fc2c66
subtitleoverlay: Handle errors from subtitle elements as warning and go into passthrough mode
2009-11-14 14:08:40 +01:00
Sebastian Dröge
16dec615cb
playbin2: Don't leak the GError and debug string when parsing error messages
2009-11-14 14:08:40 +01:00
Sebastian Dröge
18f5fad785
playbin2: Improve subtitle passthrough in uridecodebin
...
Now the caps property isn't set anymore for the subtitle caps
but instead in the autoplug-continue signal it is detected
if the caps belong to a supported subtitle stream.
This makes automatic use of newly installed plugins.
2009-11-12 13:20:42 +01:00
Sebastian Dröge
7827660dcd
subtitleoverlay: Only recreate factory caps if necessary and cache them
2009-11-12 13:20:42 +01:00
Sebastian Dröge
068aecc389
subtitleoverlay: Only update the factory list when the registry has changed
...
Also don't free the list every time we go to NULL.
2009-11-12 13:20:42 +01:00
Sebastian Dröge
6980503927
subtitleoverlay: Use gst_pad_get_caps_reffed()
2009-11-12 13:20:41 +01:00
Sebastian Dröge
b02d9837f7
playbin2/playsink: Use new "silent" property instead of unlinking
...
This makes sure that subtitleoverlay still gets segment updates and
everything to pass on downstream. Without this segment problems happen.
2009-11-12 13:20:41 +01:00
Sebastian Dröge
af3d16dbb1
subtitleoverlay: Update segments after pushing the events downstream
...
This makes sure that we don't apply segments twice downstream. Also
always send our newsegment events downstream.
2009-11-12 13:20:41 +01:00
Sebastian Dröge
e869b57296
subtitleoverlay: Add silent property to disable subtitles
...
This tries to disable subtitles in the overlay or renderer
and if that's not possible it goes into passthrough mode.
2009-11-12 13:20:41 +01:00
Sebastian Dröge
eb2d207811
subtitleoverlay: Set the video framerate on parsers if possible
...
Fixes bug #599649 .
2009-11-12 13:20:41 +01:00
Sebastian Dröge
528be22031
subparse: Make fps a GstFraction typed property and use it properly
2009-11-12 13:20:41 +01:00
Iago Toral
b2c65c9efd
subparse: Add property for the video framerate
2009-11-12 13:20:41 +01:00
Sebastian Dröge
c5d26b23c7
playbin2: Handle external subtitles better
...
First of all, make sure that suburidecodebin never
errors out because of not-linked in case external subtitles
are used but then subtitles are disabled.
And then make sure that external subtitles always start from
the correct position and are not racing until EOS if they
get unselected and selected again.
2009-11-12 13:20:41 +01:00
Sebastian Dröge
16073d1eb7
playbin2: Flush the subtitles before switching to a new subtitle stream
...
This makes sure that all currently shown subtitles disappear
and new ones can be shown as soon as possible.
2009-11-12 13:20:40 +01:00
Sebastian Dröge
e91458f13c
playbin2: Set subtitle caps as raw caps for the uridecodebins
...
This will make sure that no subparse is ever plugged and subtitleoverlay,
that subpicture streams are handled the same was as subtitles and that
subtitle renderers are used if available.
Fixes bugs #595123 , #570753 , #591662 , #591706 .
2009-11-12 13:20:40 +01:00
Sebastian Dröge
ced1b8f897
playbin2/playsink: Remove everything related to subpicture streams
...
These will soon be handled the same way as subtitle streams.
2009-11-12 13:20:40 +01:00
Sebastian Dröge
dcc109bd9a
playsink: Add a queue before subtitleoverlay
...
This will improve playback, and the same thing is done
for subpicture streams too.
2009-11-12 13:20:40 +01:00
Sebastian Dröge
c0828e55b6
playsink: Use subtitleoverlay for subtitles
2009-11-12 13:20:40 +01:00
Sebastian Dröge
92ccb87850
subtitleoverlay: Add new element for generic subtitle overlaying
...
This autopluggs the required elements for parsing and rendering
different subtitle formats on a video stream.
Fixes bug #600370 .
2009-11-12 13:20:40 +01:00
Sebastian Dröge
1da5a3f7d3
playback: Update factories list on every access if the registry has changed
...
This makes application's simpler because the element doesn't need to
go to NULL first to make use of newly installed plugins.
Fixes bug #601480 .
2009-11-11 14:00:26 +01:00
Sebastian Dröge
ab96265c57
playback: When going from NULL->READY check if the registry has new features
...
This makes it possible to use newly installed plugins after going back
to NULL instead of requiring a new instance.
Fixes bug #599266 .
2009-11-10 18:30:46 +01:00
Sebastian Dröge
6723bf429f
audioresample: Update speex resampler to latest GIT
2009-11-10 12:22:27 +01:00
Tim-Philipp Müller
23f92ed8cd
playsink: assign chain->mute before using it
...
Fixes GObject warnings when starting totem.
2009-11-10 01:06:17 +00:00
Edward Hervey
e34abf228d
playback: Fix the order in strcmp that I broke in previous commit.
2009-11-09 19:58:20 +01:00
Edward Hervey
c661bfaa99
typefind: Reduce number of calls to gst_type_find_peek.
...
Shaves off a couple percents off typefinding
2009-11-09 19:18:07 +01:00
Edward Hervey
b9053c5ae8
playback: Avoid expensive API calls in tight loop.
...
We know we're dealing with GstPluginFeature.
2009-11-09 19:18:07 +01:00
Sebastian Dröge
dfd51aa82a
inputselector: Remove useless variables and fix a uninitialized variable compiler warnings
2009-11-08 11:27:57 +01:00
Sebastian Dröge
6c15d9e8d4
decodebin2: Add property to disable/enable posting of stream-topology messages
...
Most people don't need this messages and generating them is quite
expensive.
2009-11-06 17:01:04 +01:00
Sebastian Dröge
5798b543df
decodebin2: Protect subtitle elements and subtitle encoding by a new mutex
...
Using the object lock here can and will lead to deadlocks because
of deep-notifies of property changes: the deep-notify handler will
get the parent of objects, which will take the object lock again.
Fixes bug #600479 .
2009-11-06 15:15:06 +01:00
Sebastian Dröge
f365385458
inputselector: Make sure that running_time->timestamp calculation never becomes negative
2009-11-06 13:14:14 +01:00
Sebastian Dröge
97519751ad
uridecodebin: Improve all-raw-caps detection for pads
2009-11-06 12:37:03 +01:00
Sebastian Dröge
27034be461
inputselector: Use the start time (i.e. timestamp) as the last stop
...
Using the end time makes it impossible to replace buffers, which is
a big problem for subtitles that could have very long durations.
2009-11-06 12:11:21 +01:00
Olivier Crête
b5620e1241
gdpdepay: Clear adapter on flush and state change
...
Fixes #600469
2009-11-05 15:42:09 +01:00
Wim Taymans
8b93746b78
inputselector: use _get_caps_reffed()
2009-11-05 13:12:19 +01:00
Stefan Kost
a78c8bf3ed
pad: rename new api from _refed to _reffed.
...
Due to popular demand rename the new api as we still can.
2009-11-05 13:00:27 +02:00
Wim Taymans
fcb283b78b
playbin2: avoid copying caps
...
Use get_caps_refed() when we can.
2009-11-04 18:57:07 +01:00
Wim Taymans
89f02fb269
decodebin2: use new getcaps function to avoid copies
...
Use the gst_pad_get_caps_refed() to avoid some caps copy functions.
2009-11-04 18:31:09 +01:00
Wim Taymans
eb92aa282f
uridecodebin: use faster element_link_pads
...
Use the faster gst_element_link_pads because we know for sure the sinkpad name
and we don't need to have the function search for a suitable pad anymore.
2009-11-04 17:50:11 +01:00
Sebastian Dröge
0672457604
playbin2: Return NOT_LINKED for unselected text pads from a demuxer
...
We want to return NOT_LINKED for unselected pads but only for pads
from the normal uridecodebin. This makes sure that subtitle streams
are not raced past audio/video from decodebin2's multiqueue.
For pads from suburidecodebin OK should always be returned, otherwise
it will most likely stop with an error.
2009-11-04 10:53:27 +01:00
Stefan Kost
f71ed36694
inputselector: also add inline to the proto to fix the build
...
Merged from gst-plugins-bad, e1e9be6dbe
.
2009-11-04 08:20:59 +01:00
Sebastian Dröge
dd55311f3b
uridecodebin: Initialize caps property with the default raw caps
2009-11-03 13:03:26 +01:00
Sebastian Dröge
0285d77d96
decodebin2: Use static caps for the default raw caps and put them into a separate header
...
This way we can use the same default raw caps everywhere.
2009-11-03 13:03:23 +01:00
Josep Torra Valles
e9d1819fe3
playbin: Make sure to keep a reference on the volume element
...
Fixes null pointer dereferences under certain circumstances.
Fixes bug #595401 .
2009-11-02 07:30:54 +01:00
Sebastian Dröge
e72c3029c0
playsink: Reset {mute,volume}-changed flags after setting the volume
...
These flags are there to make sure that the volume is set, if there
is no volume element yet.
2009-10-30 09:24:30 +01:00
Sebastian Dröge
598c937634
playsink: If notify::{volume,mute} is triggered by the volume element, update our internal state
2009-10-30 09:24:03 +01:00
Sebastian Dröge
d85dadc122
playsink: Proxy notify::volume and notify::mute from the volume/mute elements (or sinks)
...
Fixes bug #600027 .
2009-10-29 14:30:31 +01:00
Sebastian Dröge
de1db5ccbd
playbin2: Proxy notify::volume and notify::mute from the playsink to playbin2
2009-10-29 14:19:09 +01:00
Sebastian Dröge
75d36a0b1e
queue2: Remove from gst-plugins-base
...
This is now in coreplugins.
2009-10-29 11:29:46 +01: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
Wim Taymans
7065c7a02d
queue2: add custom acceptcaps function
2009-10-27 15:23:00 +01:00
Wim Taymans
0b00e25b54
decodebin2: implement low/high watermark property
2009-10-27 15:22:22 +01:00
Wim Taymans
7ab778199e
uridecodebin: don't use 2 buffering elements
...
Only use the multiqueue buffering when we don't have a stream (and thus are
using queue2 to do the buffering already).
2009-10-24 16:10:00 -04:00
Wim Taymans
660fc111d1
playbin2: add flag to enable decodebin buffering
...
Add a flag that enables buffering in decodebin.
2009-10-24 16:10:00 -04:00
Wim Taymans
f998858192
decodebin2: buffering is implemented now
2009-10-24 16:09:59 -04:00
Wim Taymans
26290f44d6
uridecodebin: buffering is implemented now
2009-10-24 16:09:59 -04:00
Wim Taymans
3d2b3dd268
decodebin2: configure use-buffering on multiqueue
2009-10-24 16:09:59 -04:00
Wim Taymans
d5add83976
uridecodebin: use 0 for max buffer size
2009-10-24 16:09:59 -04:00
Wim Taymans
1fa7f049f1
uridecodebin: set some reasonable defaults
2009-10-24 16:09:59 -04:00
Wim Taymans
3883fac8d8
uridecodebin: set buffering properties on decodebin2
...
Propagate the buffering properties on decodebin2 but only if we are not already
doing download buffering.
2009-10-24 16:09:59 -04:00
Wim Taymans
adba87539f
uridecodebin: add use-buffering property
...
Add a use-buffering property that will perform buffering on the parsed or
demuxed media.
2009-10-24 16:07:36 -04:00
Wim Taymans
baecd335b2
decodebin2: refactor queue size configuration.
...
Refactor the queue size configuration into a new method.
Use the same queue values for buffering as for preroll.
2009-10-24 16:07:36 -04:00
Wim Taymans
cffe4d7bd3
decodebin2: move error path down
2009-10-24 16:07:36 -04:00
Wim Taymans
1c982d0dbe
decodebin2: implement max queue size properties
2009-10-24 16:07:36 -04:00
Wim Taymans
3fffb0e2dd
decodebin2: add properties for buffering
...
Add properties that can be used to configure the multiqueue buffers and
buffering methods
2009-10-24 16:07:36 -04:00
Sebastian Dröge
4de2ab48ea
playbin2: Don't destroy the suburidecodebin on errors
...
It can still be reused
2009-10-24 13:08:07 +02:00
Sebastian Dröge
497d0a4793
playbin2: If setting the state of the suburidecodebin fails just warn, don't error out
2009-10-24 13:07:45 +02:00
Sebastian Dröge
cd5475aa6f
playbin2: Don't set uridecodebin states to NULL before reusing them
...
This makes sure that the internal decodebin2 and everything else can
be reused without reinstantiation.
2009-10-24 12:54:11 +02:00
Edward Hervey
80b37c614a
uridecodebin: Store unused decodebin2 instances for further usage.
...
This allows faster re-use of uridecodebin.
https://bugzilla.gnome.org/show_bug.cgi?id=599471
2009-10-24 11:48:33 +02:00
Thiago Santos
e55bf9bdd8
audiorate: move debug calculation into debug macro
...
Remove in_duration and move its calculation to
GST_LOG_OBJECT macro. This way it will only be calculated
if we have debug enabled.
2009-10-22 09:14:30 -03:00
Thiago Santos
d95b607e23
audiorate: Removing unused variable
...
The in_stop variable was never read. Removing it.
2009-10-22 09:14:30 -03:00
Thiago Santos
44d6ebc48f
audiorate: be more accurate on offset math
...
Replace gst_util_uint64_scale_int for its rounding version
to improve accuracy and avoid inserting samples where
they aren't needed.
Fixes #499181
2009-10-22 09:14:29 -03:00
Iago Toral
f63643bd54
subparse: Add support for DKS subtitle format
...
Fixes bug #598936 .
2009-10-22 10:02:11 +02:00
Wim Taymans
bdfb4b46d7
inputselector: set output caps before pushing
...
Set the output caps on the srcpad before pushing the buffer because else core
will do a rather expensive check to see if we can actually accept those caps on
the srcpad.
2009-10-21 16:24:29 -04:00
Wim Taymans
5b72f2adf9
inputselector: install an acceptcaps function
...
Install a custom acceptcaps function instead of using the default expensive
check. We accept whatever downstream accepts so we pass along the acceptcaps
call to the downstream peer.
2009-10-21 15:58:11 -04:00
Tim-Philipp Müller
37f8957181
typefind: fix typo in previous mxf typefinder change
2009-10-21 20:36:23 +01:00
Edward Hervey
d48d47e683
typefind: speed up mxf_type_find over 300 times for worst case scenarios
...
* memcmp is expensive and was being abused, reduce calling it by checking
the first byte.
* iterating one byte at at time over 64 kbites introduces a certain overhead,
therefore we now do it in chunks of 1024 bytes
And I do mean over 300 times. The average instruction call per mxf_type_find
was previously 785685 and it's now down to 2458 :)
2009-10-21 21:04:45 +02:00
Wim Taymans
c489fb01ca
decodebin2: avoid type checks
2009-10-20 17:14:40 -04:00
Edward Hervey
891c54f6f8
gst/decodebin2: Ensure we get fixed caps for topology message
...
There are some corner cases (like with dvdemux amongst others) where
the caps won't be negotiated, but the pad has fixed caps.
2009-10-20 10:15:57 +02:00
Edward Hervey
64c8b1d5d9
gst/decodebin2: Don't expose chains if we're shutting down.
...
This avoids adding flushing pads to ourself
2009-10-20 10:15:48 +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
Sebastian Dröge
efcca84bac
decodebin2: Post a element message on the bus with the stream topology
...
Fixes bug #598533 .
2009-10-15 13:35:29 +02:00
Sebastian Dröge
50fdbcd9ea
decodebin2: Store the "endcaps" of a chain
...
This are the caps that either resulted in a deadend if
no plugin for them could be found or raw caps.
2009-10-15 13:35:29 +02:00
Sebastian Dröge
366aaae825
decodebin2: Store for every chain, which pad resulted in its creation
2009-10-15 13:35:28 +02:00
Sebastian Dröge
2b3741403e
playbin2: Use gst_object_has_ancestor() instead of our own implementation of it
2009-10-14 08:36:54 +02:00
Sebastian Dröge
a4bc39ef48
playbin2: Don't stop completely on initialization errors from subtitle elements
...
Instead disable the subtitles and play the other parts of the stream.
Fixes bug #587704 .
2009-10-13 16:53:50 +02:00
Sebastian Dröge
d40246ff7d
decodebin2: Ignore no-more-pads from non-demuxer elements
...
instead of printing an error that no corresponding group could
be found. no-more-pads from non-demuxer elements doesn't give
any additional information because there can only be a single srcpad.
Fixes bug #598288 .
2009-10-13 16:52:43 +02:00
Stefan Kost
319baefeba
audioconvert: track active conversion in perf log
2009-10-12 21:43:42 +03:00
Josep Torra
7bba1217a5
audioconvert: fixes warning: format not a string literal and no format arguments
...
redo of valid part of my previous revert.
2009-10-09 15:29:15 +02:00
Josep Torra
7b77138667
Revert "audioconvert: fixes warning: format not a string literal and no format arguments"
...
Revert this commit as unintentionally I've changed common.
This reverts commit 49ea013822
.
2009-10-09 15:19:42 +02:00
Josep Torra
9c335ec185
videorate: fix warning in macosx
2009-10-09 14:23:36 +02:00
Josep Torra
99db7845c7
audiorate: fix warning in macosx
2009-10-09 14:20:47 +02:00
Josep Torra
49ea013822
audioconvert: fixes warning: format not a string literal and no format arguments
2009-10-09 14:14:15 +02:00
Stefan Kost
e81303b733
ffmpegcolorspace: chwck formats just once per _chain()
2009-10-08 18:10:08 +03:00
Stefan Kost
f2d1c9b0b7
ffmpegcolorspace: add perf-log-category and log suboptimal operation
...
Log if we use an intermediate colorspace for conversion.
2009-10-08 18:09:52 +03:00
Jan Schmidt
592b8ecb09
decodebin2: Fix type-punning warning
2009-10-08 00:17:21 +01:00
Sebastian Dröge
9bd6fe41cb
decodebin2: Chains with an exposed endpad are complete too
...
This allows partial group changes, i.e. demuxer2 in the example below
goes EOS but has a next group and audio2 stays the same.
/-- >demuxer2---->video
demuxer--- \--->audio1
\--->audio2
2009-10-07 17:46:30 +02:00
Sebastian Dröge
bf7cd0ed81
decodebin2: Use the iterate internal links function instead of string magic to get multiqueue srcpads
2009-10-07 17:46:29 +02:00
Sebastian Dröge
674e2309ac
uridecodebin: Don't post missing plugin messages twice
...
decodebin2 already posts them after emitting the unknown-type signal,
there's no need to post another one.
2009-10-07 17:46:29 +02:00
Sebastian Dröge
cf9c6a2271
decodebin2: Rewrite autoplugging and how groups of pads are exposed
...
This now keeps track of everything that is going on, creates
a tree of chains and groups to allow "demuxer after demuxer" scenarios
and allows chained Oggs with multiple streams (needs oggdemux or playbin2 fixes).
Also document everything in detail and give a general overview of what
decodebin2 is doing at the top of the sources.
Fixes bug #596183 , #563828 and #591677 .
2009-10-07 17:46:28 +02:00
Stefan Kost
ccf5d6551a
build: sprintf, sscanf need stdio.h
2009-10-07 11:56:35 +03:00
Benjamin Otte
6621dd3d3e
[videotestsrc] Make checkers-8 pattern create 8x8 instead of 16x16 tiles
2009-10-07 09:54:08 +02:00
Benjamin Otte
9d6eb19453
[ffmpegcolorspace] Fix NV12 and NV21 with odd width and height
2009-10-07 09:54:08 +02:00
Benjamin Otte
a0a66e8ceb
[videotestsrc] 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
24b7d2500c
factorylist: Use gst_caps_can_intersect() instead of _intersect()
...
This is faster and results in less allocations.
2009-10-07 07:23:20 +02:00
Sebastian Dröge
999483b454
decodebin2: Don't set the external ghostpads blocked but only their targets
...
Pad blocks should never be done on external pads as outside elements
might want to use their own pad blocks on them and this will lead to
conflicts and deadlocks.
2009-10-07 07:23:20 +02:00
Sebastian Dröge
0dcc0857aa
decodebin2: Only use the object lock for protecting the subtitle elements
...
Using the decodebin lock will result in deadlocks if the subtitle encoding
is accessed from a pad-added handler.
2009-10-07 07:23:19 +02:00
Sebastian Dröge
9be848d04f
playbin2: Improve debugging of pad blocks
2009-10-07 07:21:38 +02:00
Sebastian Dröge
a4f454dc24
playbin2/playsink: Use gst_object_ref_sink() instead of calling both separately
2009-10-07 07:21:37 +02:00
David Schleef
205ada8454
videotestsrc: add pattern with out-of-gamut colors
...
Adds a pattern with out-of-gamut colors in a checkerboard
pattern with in-gamut neighbors. Useful for checking YCbCr->RGB
color matrixing. Correct matrixing and clamping will cause the
checkerboard pattern to be invisible.
2009-10-06 19:47:01 -07:00
Robert Swain
fc56adc2e3
audioresample: fix printf variable type
...
Change printf variable type from %lu to %" G_GUINT64_FORMAT " as it
should be for guint64.
Fixes #596981
2009-10-06 22:37:00 +02:00
Jan Schmidt
f58a2b71b5
ffmpegcolorspace: Use the ffmpegcolorspace debug category
...
Move gstffmpegcodecmap debug to the ffmpegcolorspace category
2009-10-06 20:37:42 +01:00
Jan Schmidt
850c95178d
gdppay: Don't repeat tags buffers for every new segment
...
Only send a tag buffer when one is received, not after every new segment
event/update.
2009-10-06 20:37:42 +01:00
David Schleef
1871a6025d
typefind: detect 'ftypqt ' as video/quicktime
2009-10-06 12:19:12 -07:00
Wim Taymans
a8d7e6a490
playsink: make the lock recursive for now
...
Fixes #583255
2009-10-01 09:35:54 +02:00
Wim Taymans
f18ed7abf9
playsink: fix the vis property getter
2009-10-01 09:35:54 +02:00
Edward Hervey
b565a3088c
playsink: Expose mute,volume,vis-plugin and font-desc properties
...
https://bugzilla.gnome.org/show_bug.cgi?id=594623
2009-09-14 12:26:05 +02:00
Edward Hervey
377e781ad5
GstPlaySink: Expose 'reconfigure' as an action signal.
2009-09-14 10:40:00 +02:00
Edward Hervey
bafe9082fd
GstPlaySink: Expose flags as a gobject property.
2009-09-14 10:40:00 +02:00
Edward Hervey
02c50388c4
playback: Register playsink as an element.
...
This allows using playsink from outside the playback plugin.
Add code to be able to request the sink pads using standard GStreamer API.
TODO : expose GObject properties/signals.
2009-09-14 10:39:59 +02:00
Benjamin Otte
26c068e9e5
videotestsrc: Fix crashes with even widths
...
The fix for green lines introduced by commit
35fdfcc625
caused invalid memory accesses
for even widths. This patch fixes it.
2009-09-11 22:14:25 +02:00
Sebastian Dröge
91c3a23963
playbin2: Implement GstStreamVolume interface
2009-09-11 16:37:35 +02:00
Sebastian Dröge
723b2baa5d
volume: Implement GstStreamVolume interface
2009-09-11 16:37:35 +02:00
Sebastian Dröge
6e23ea172f
interfaces: API: Add GstStreamVolume interface
...
Fixes bug #567660 .
2009-09-11 16:37:34 +02:00
Sebastian Dröge
7dbefedeef
videorate: Add Since marker for the new skip-to-first property
2009-09-11 07:38:28 +02:00
Olivier Crête
f35c5bc1e7
videorate: Make videorate work with a live source
...
Add a property that makes videorate skip to the first buffer it
receives instead of padding the stream from segment start to the
first real buffer.
Fixes bug #567928 .
2009-09-11 07:36:10 +02:00
Sebastian Dröge
662a31983f
playbin(2): Document that the volume property uses a linear scale
...
Fixes bug #571610 .
2009-09-10 16:56:14 +02:00
Benjamin Otte
8939bc6c82
ffmpegcolorspace: Handle YVU9/YUV9 conversion with odd widths
...
A green border could be visible when converting to Y444 or RGB, because
the last chroma samples weren't copied correctly
2009-09-10 10:56:29 +02:00
Benjamin Otte
7ed2531b27
videotestsrc: Fix YVU9 and YUV9
...
- Buffer sizes were computed different from ffmpegcolorspace
- Green bar on right size for widths not divisable by 4
2009-09-10 10:45:06 +02:00
Benjamin Otte
35fdfcc625
videotestsrc: Fix image for odd widths in some formats
...
videotestsrc rounds chroma down. This causes it to omit the last chroma
value completely for odd widths when the chroma is downsampled.
This patch special cases the last pixel to not be rounded down.
2009-09-10 10:45:06 +02:00
Stefan Kost
7a3797f332
docs: tell a biit more about uri-decodebin and buffering
2009-09-10 10:30:23 +03:00
Wim Taymans
2a5cd16eb1
fix whitespace
2009-09-08 13:02:46 +02:00
Tim-Philipp Müller
f051514f69
typefinding: disable typefinder for headerless flac
...
Disable headerless flac typefinder as long as it happily typefinds anything
including /dev/urandom as flac and as long as it's not particularly useful
given that such streams don't really exist in the wild.
Also fix up some comments so that gtk-doc doesn't complain about them.
2009-09-07 17:13:12 +01:00
Wim Taymans
f1b209f409
typefind: fix midi typefinding
...
We already have a audio/midi typefinder so don't override it with the midi in
RIFF typefinder or else we fail to detect plain midi files.
2009-09-04 15:48:06 +02:00
Wim Taymans
9e83339cf6
uridecodebin: do buffering for more uris
...
Add ssh://, ftp://, sftp://, myth:// to the list of uris that require
buffering.
Fixes #594020
2009-09-04 11:33:04 +02:00
Sebastian Dröge
a69ffb5886
typefindfunctions: Add typefinder for Midi inside RIFF
...
This is a standard Midi file format that should be supported by
all Midi decoders and also has the mimetype audio/mid according to
the Midi specification homepage.
Fixes bug #594094 .
2009-09-04 07:36:10 +02:00
Tim-Philipp Müller
4cacc441d8
typefinding: move gio-based xdg mime typefinder from -bad to -base
...
Its purposes is mainly to avoid false positives (e.g. mp3 typefinder
reporting a 20% probability and somesuch). Won't be registered if
the gio plugin has been disabled via ./configure --disable-gio.
2009-09-03 09:01:47 +01:00
Tim-Philipp Müller
889c318798
subparse: GstAdapter is not a GstObject and should be freed with g_object_unref
2009-09-01 15:16:17 +01:00
Stefan Kost
e7368354d5
adder: improve caps filter functionality. Fixes #590146 .
...
Also use the capsfilter if there is no src-peer as the caps constrain what
we can do. Don't create any_caps as a default, as we check for NULL to skip the
filtering. This is a (small) performance regression as we always intersect
otherwise.
2009-08-31 22:48:01 +03:00
Sebastian Dröge
2194166e05
decodebin2: Post missing plugin messages before any error messages
2009-08-31 11:10:55 +02:00
Marc-André Lureau
605f3c2942
Bug 593035 - set IN_CAPS for streamheader buffer
2009-08-28 08:44:55 +01:00
Sebastian Dröge
460dc94d23
playbin: The internally linked pad of the selector might be NULL in some cases
2009-08-26 16:56:19 +02:00
Sebastian Dröge
67a0ef9b3a
playbin: Fix iterate internal linked pads functions for the stream selectors
...
This now used the new gst_iterator_new_single() function and as a side effect
fixes bug #592864 .
2009-08-26 16:45:49 +02:00
Sebastian Dröge
3c8ff21ba2
typefindfunctions: Detect AVF files as RIFF files too
...
AVF is valid RIFF but has AVF0 as first fourcc instead of RIFF.
Partially fixes bug #593117 .
2009-08-26 09:10:19 +02:00
Sebastian Dröge
1e450f21f8
audioresample: Fix drain processing
...
In case we have to convert internally don't process output length input samples
but history length input samples.
2009-08-26 09:10:18 +02:00
Sebastian Dröge
2e585ac7ac
audioresample: On the first buffer we need discont handling
...
Otherwise we won't get upstream timestamps and everything and all
output buffers would have -1 timestamps.
2009-08-26 09:10:18 +02:00
Руслан Ижбулатов
5d96fd4bf1
subparse: Remove dependency on regex.h as it's not used anyway
...
Fixes bug #592544 .
2009-08-26 09:10:17 +02:00
Kipp Cannon
86b4c51c8c
audioresample: Fix buffer overflow when pushing the drain
2009-08-26 09:10:17 +02:00
Kipp Cannon
a69068d70d
audioresample: Fix timestamp drift
...
Fixes bug #591934 .
2009-08-26 09:10:17 +02:00
David Schleef
0e9bc5125a
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-08-24 11:37:01 -07:00
Wim Taymans
c3ebeec5a5
playbin2: fix refcounting of _get_sink()
...
g_value_set_object() increases the refcount of the sink, which is not needed
because the object should already be refcounted. Make sure this is always the
case and use g_value_take_object().
Fixes : #592884
2009-08-24 15:08:36 +02:00
Sebastian Dröge
0c1fa2e8ab
streamselector/inputselector: Use iterate internal links instead of deprecated get internal links
2009-08-19 17:23:21 +02:00
Sebastian Dröge
b7fa34a279
playsink: Also send SEEK events directly to a subpicture sink
2009-08-18 11:15:41 +02:00
Sebastian Dröge
b5f84c0637
playsink: If a custom text sink is used, send events to it too
...
Before, SEEK events would be sent to the video sink, which wouldn't
be linked in any way to the subtitle part of the pipeline and
subparse would never see the SEEK event. This would then seek
the audio/video but the subtitles would continue from the old
position instead.
Fixes bug #591664 .
2009-08-18 08:39:02 +02:00
Sebastian Dröge
6aa731cb48
uridecodebin: Make missing plugins emit a warning message, not an error message
...
The problem with an error message is, that it will stop playback completely
while it could be that only a audio decoder plugin is missing and the video
could be played with the available plugins.
See bug #591677 .
2009-08-18 08:20:28 +02:00
Sebastian Dröge
a6b1e0b645
uridecodebin: Post a correct error message for unknown types
...
Before we had STREAM/WRONG_TYPE but it's really CORE/MISSING_PLUGIN
because a plugin is missing and nothing else is wrong.
Also make it an error instead of a warning.
Really fixes bug #591677 .
2009-08-13 17:42:07 +02:00
Sebastian Dröge
504f8dc9c7
uridecodebin: Post a missing plugin message additional to the error message on unknown types
...
Fixes bug #591677 .
2009-08-13 15:55:25 +02:00
Tim-Philipp Müller
4871cd9254
playbin2: fix error message string
...
Fixes #591577 .
2009-08-13 10:59:35 +01:00
Mark Nauwelaerts
188d698449
decodebin2: avoid assertion failure on empty/NULL caps
2009-08-12 13:39:12 +02:00
Sebastian Dröge
3b4c35e319
typefindfunctions: Also detect SVG by the <svg> starting tag
...
Not all SVG images have the DOCTYPE specified.
2009-08-12 12:11:08 +02:00
Sebastian Dröge
88a55e6dae
subparse: Allow . instead of , as millisecond delimiter in srt subtitles
...
Fixes bug #591207 .
2009-08-09 12:13:16 +02: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
8cd1b5209b
gst: Remove dead assignments and resulting unused variables
2009-08-08 15:54:02 +02:00
Sebastian Dröge
141c3f52cd
typefindfunctions: Add typefinders for many game sound console formats supported by gme
...
These are AY, GBS, GYM, KSS, SAP and VGM. SPC and NSF already had typefinders.
2009-08-07 09:33:34 +02:00
Siarhei Siamashka
720a927f38
ffmpegcolorspace: support for direct conversion from uyvy422 to rgb formats
2009-08-06 15:09:44 +03:00
Stefan Kost
007da06645
playbin2: smarter sink selection. Fixes #588523
...
Don't do fallbacks if application specified a sink element. When doing the
fallback use configured default elements instead of hardcoded linux only
elements. Improve error messages accordingly.
2009-08-06 15:07:02 +03:00
Mark Nauwelaerts
ff998f24db
queue2: post error message when pausing task if so appropriate
...
If a downstream element returns an error while upstream has already
put all data into queue2 (including EOS), upstream will no longer
chain into queue2, so it is up to queue2 to perform some
EOS handling / message posting in such cases. See #589991 .
2009-08-06 13:39:19 +02:00
Tim-Philipp Müller
85a08d8dc2
typefinding: fix postscript typefinder probability
...
Two bytes for a rare format hardly warrants MAXIMUM typefinding
probability, POSSIBLE seems more appropriate.
2009-08-06 09:57:25 +01:00
Sebastian Dröge
060f9c07e5
subparse: Implement POSITION query
2009-08-06 06:43:38 +02:00
Sebastian Dröge
7e119e46e5
subparse: Implement SEEKING query
2009-08-06 06:43:38 +02:00
Sebastian Dröge
76571840ef
typefindfunctions: Add SVG typefinder
2009-08-06 06:43:35 +02:00
Sebastian Dröge
5c52513aab
typefindfunctions: Add postscript typefinder
2009-08-06 06:43:35 +02:00
Sebastian Dröge
37839ee2b3
typefindfunctions: Use static caps again for MPEG4 typefinding
2009-08-06 06:43:35 +02:00
Arnout Vandecappelle
ce24ac4ed0
typefindfunctions: Implement better & more flexible MPEG4 typefinding
...
This detects more MPEG4 streams as MPEG4.
Fixes bug #556537 .
2009-08-06 06:43:35 +02:00
Sebastian Dröge
cac4b032c3
videoscale: Restrict width/height to 2^15 - 1
...
Otherwise integer overflows will happen, resulting in segmentation faults.
Fixes bug #590243 .
2009-08-06 06:43:34 +02:00
Sebastian Dröge
6b63053be1
ffmpegcolorspace: Fix indention of template header
2009-08-06 06:43:34 +02:00
Benjamin Gaignard
2f4c65bb06
typefindfunctions: Fix typefinding of SDP files
...
Fixes bug #589574 .
2009-08-06 06:43:33 +02:00
Kipp Cannon
4689acd68f
audioresample: Take the output offsets from the input if possible
...
Fixes bug #588915 .
2009-08-06 06:43:33 +02:00
Sebastian Dröge
b69f5e2c66
videoscale: Make sure to allocate enough memory for the temporary buffer
...
and fix scaling of odd-height interlaced video.
2009-08-06 06:43:32 +02:00
Sebastian Dröge
c51d2febd3
videoscale: Fix interlaced scaling for I420
...
...and some other minor mistakes in the previous change.
2009-08-06 06:43:32 +02:00
Sebastian Dröge
164b90f9d0
ffmpegcolorspace: Include interlacing information in the AVPicture
...
This later allows to handle interlaced AVPicture different than
progressive ones which is needed for horizontally subsampled YUV
formats, see bug #589242 .
2009-08-06 06:43:32 +02:00
Sebastian Dröge
33c490f4b9
videoscale: Add support for interlaced content
...
videoscale is not mixing content of two seperate fields anymore
and does scaling on every field separately.
Fixes bug #588761 .
2009-08-06 06:43:31 +02:00
Tim-Philipp Müller
e199d7e1cd
typefinding: fix detection of fLaC id packet in broken flac-in-ogg
...
There are flac-in-ogg files without the usual flac packet framing
and these files just have a 4-byte fLaC ID packet as first packet.
We need to recognise the type just from these four bytes if we
want oggdemux to recognise these streams correctly.
2009-08-01 19:01:39 +01:00
Stefan Kost
7205bbc031
adder: reset pending flush-stop flag in state_changed. (mostly) Fixes #590146 .
2009-07-30 13:45:42 +03:00
Tim-Philipp Müller
789f5b0488
playbin: rename GType of stream selector pad to avoid clash with input-selector from -bad
...
Rename the GType of the pads of playbin's internal stream selector
element so they don't use the same type name as input-selector's
pads. Fixes #589622 .
2009-07-27 14:18:27 +01:00
Tim-Philipp Müller
2670f23812
typefind: recognise Kate spu subtitles as well
...
Recognise spu-subtitles, SUB and K-SPU as valid categories for
Kate subtitles as well.
2009-07-24 09:42:05 +01:00
Wim Taymans
0bb9b75a75
audiotestsrc: call send_event directly
...
We can't call gst_element_send_event() from a streaming thread as it gets the
state lock. Instead call the send_event method directly until we have a nice API
for this in basesrc.
Fixes #588746
2009-07-20 13:15:32 +02:00
Edward Hervey
3708ca37a8
gstadder: Don't forget to free pending events on flush/dispose.
...
Fixes #588747
2009-07-20 12:42:32 +02:00
Edward Hervey
196b38d4ef
audiotestsrc: Make sure tags are properly serialized. Fixes #588746
...
We do this by letting the basesrc base class handle the tags.
2009-07-20 08:47:50 +02:00
Edward Hervey
50b0cf2c03
adder: Collect incoming tag events and send them after newsegment. Fixes #588747
2009-07-19 10:49:17 +02:00
Wim Taymans
3886a83f0e
queue2: fix leak and improve buffering
...
Keep track of the max requested position and compare this to the write position
in the temp file to get the current amount of buffered data.
Fix memleak of all incomming buffers.
Fixes #588551
2009-07-15 20:56:10 +02:00
Tim-Philipp Müller
5366b61bfc
playbin2: use private copy of input-selector
...
We shouldn't really depend on elements from -bad for stream
selection in playbin2, so use a private copy of input-selector
until the selector plugin is ready to be moved to -base or -good.
Fixes #586356 .
2009-07-15 17:42:46 +01:00
Tim-Philipp Müller
e1df8d0691
playback: add private copy of the input-selector from gst-plugins-bad
...
Not hooked up yet though. See #586356 .
2009-07-15 17:27:28 +01:00
Tim-Philipp Müller
d53e754d42
typefinding: use subtitle/x-kate for Kate subtitle streams and application/x-kate for the rest
...
Differentiate subtitle streams and lyrics/cracktastic/complex streams via
the category string in the headers. This seems like a useful distinction
to make, and also seems more future-proof. See #525743 .
2009-07-13 23:00:04 +01:00
Stefan Kost
31b0c658e5
uridecodebin: treat uri-schemas incasesensitive
...
Treat uri-schemas incasesensitive. This is mandated in rfc2396 section 3.1.
Fixes not showing buffering messages e.g. for HTTP://...
2009-07-13 21:56:46 +03:00
Stefan Kost
94baad7490
adder: add since tags to docs
2009-07-10 23:27:11 +01:00
Wim Taymans
084357dfb8
queue2: flush differently, avoiding deadlocks
...
Don't flush the file by closing and opening it but instead use g_freopen. This
avoids a deadlock in shutdown because we emit the temp-location property change
with the wrong lock held.
2009-07-10 21:01:39 +01:00
Wim Taymans
bede11dbc3
uridecodebin: Fix template construction
...
Fix the construction of the temporary filename construction as the application
name can be NULL and we don't want a separator between the prgname and the
template.
2009-07-10 20:26:22 +01:00
Wim Taymans
4403cf4efb
playbin2: add support for progressive download
...
Add a new playbin2 flag (initially disabled) to enable progressive download
buffering in uridecodebin.
2009-07-10 20:26:22 +01:00
Wim Taymans
f4d78328dd
uridecodebin: add download property
...
Add a download property that will attempt to configure queue2 into progressive
download buffering.
Make sure we only enable download buffering for quicktime and flv formats.
2009-07-10 20:26:22 +01:00
Wim Taymans
df58d6a39e
queue2: add temp-template property
...
Add a new temp-template property so that queue2 can securely allocate a
temporary filename. Deprecate the temp-location property for setting the
location but still use it to notify the allocated temp file.
2009-07-10 20:26:22 +01:00
Stefan Kost
725bd20045
adder: add a caps-property to avoid to need to plug a capsfilter afterwards
...
Adder can only handle one common format accross the pads. Thus one needed to add
a capsfilter afterwards and manage the caps. Now one can simply set the caps on
the property.
2009-07-10 20:06:28 +01:00
Sebastian Dröge
3d751d190d
playbin2: Make it possible for READY->PAUSED to succeed after it failed the first time
...
If READY->PAUSED failed in the source element we would've swapped
the current and next group already. To allow READY->PAUSED to succeed
after the first failure we have to swap the current and next group
back again. This also ensure that we're again in the same state
as before the failed state change and not at the next group.
This was especially a problem for playbin2 pipelines that use the
new mounting support in giosrc as the source would fail for READY->PAUSED
the first time, the application mounts the location and then tries
to go READY->PAUSED again (and this time it would succeed).
Fixes bug #588078 .
2009-07-10 17:08:40 +02:00
Philip Jägenstedt
fa0a5a667f
audioconvert: Fix compilation when debugging is disabled
...
Fixes bug #587980 .
2009-07-08 15:08:32 +02:00
Stefan Kost
da27fd57e8
adder: keep sending newsegments after seeking
...
Adder sends with timestamps from 0 upwards. After seeking we need to send
new-segments to get correct positions-queries.
2009-07-06 22:35:14 +01:00
Edward Hervey
c3adf88621
adder: Call set_flushing(TRUE) for flushing seeks *when* the streaming is stopped.
...
This ensures that collectpads' cookie is properly updated so that when the streaming
threads will restart and be checking for the flushing status of all pads there will
be no inconsistent state.
2009-07-05 21:32:20 +02:00
Wim Taymans
e8598d24e5
uridecodebin: make fd:// uri use buffering too
...
fd:// usually operate in push mode only and are thus suitable for buffering.
2009-06-30 18:44:44 +02:00
Stefan Kost
c1f46ea29e
volume: include "1.0=100%" in property description
2009-06-30 14:46:38 +03:00
Stefan Kost
aab2e110a1
playsink: remove unused property defs
2009-06-30 14:45:51 +03:00
Jan Schmidt
ee7fd4c28d
playsink: Avoid a segfault when the video sink fails to start
...
Don't attempt to display the subpictures and segfault when the
video sink failed to start (and hence the videochain is NULL).
2009-06-29 14:35:03 +01:00
René Stadler
61441ff183
playbin2: fix initial volume handling also when reusing the element
...
This is a follow-up to commit 452988, making it work correctly when the audio
chain is reused.
2009-06-27 16:36:11 +03:00
Stefan Kost
f8506f9e1f
screenshot: don't leak message
2009-06-26 13:14:52 +03:00
Tim-Philipp Müller
8b94cd3934
typefinding: lower the h264 typefinder's probability
...
A NEARLY_CERTAIN is absolutely not warranted given the kind
of things it checks for. Even a LIKELY is probably not entirely
appropriate.
2009-06-25 12:09:59 +01:00
Wim Taymans
09737d728b
adder: only unflush when we flushed before
...
Ass suggested by Stefan Kost:
Keep track of when the sinkpad was set to flushing and unflush the pad when an
upstream flushing seek failed.
2009-06-23 18:08:44 +02:00
Tim-Philipp Müller
5974042bba
uridecodebin: fix leak when the source fails to change state
2009-06-23 15:12:50 +01:00
Wim Taymans
c933933f09
ssaparse: avoid leaking all buffers
2009-06-23 12:40:56 +02:00
Sebastian Dröge
dc706f7f2f
audiotestsrc: Name gaussian noise "gaussian-noise" instead of just "gaussian"
...
Also make all the function arrays constant.
2009-06-21 19:43:18 +02:00
Kipp Cannon
620391b300
audiotestsrc: Add support for generating gaussian white noise
...
This patch adds support for stationary white Gaussian noise.
The Box-Muller algorithm is used to generate pairs of independent
normally-distributed random numbers.
Fixes bug #586519 .
2009-06-21 12:29:03 +02:00
Jan Schmidt
0ed6ec3902
ffmpegcolorspace: Fix NV12 and NV21 transformations
...
Fix some stride problems, fix the nv12 to nv21 direct transformation,
and implement a direct conversion to yuv444 to save CPU.
2009-06-20 23:48:22 +01:00
Jan Schmidt
ad947b2436
videotestsrc: Fix NV12 painting for odd strides/heights
2009-06-20 23:48:22 +01:00
Wim Taymans
85dbf93515
adder: more seeking fixes.
...
When a seek failed upstream, make sure the adder sinkpad is set unflushing again
so that streaming can continue.
We only have a pending segment when we flushed.
Set the flush_stop_pending flag inside the appropriate locks and before we
attempt to perform the upstream seek.
Add some more comments.
Use the right lock to protect the flags in flush_stop.
See #585708
2009-06-17 11:22:51 +02:00
Sebastian Dröge
62f43a1c52
decodebin2: Free iterator after removing all groups
2009-06-17 07:24:53 +02:00
Wim Taymans
c4d729a4da
playbin2: set smarter target state on uridecodebin
...
Set the target state of the newly added uridecodebins to somthing else that
PAUSED so that we keep their state in sync with the playsink state.
Fixes #585268
2009-06-16 18:20:06 +02:00
Wim Taymans
a31c3bfc60
playsink: set the sink flag on the element
2009-06-16 18:20:05 +02:00
Wim Taymans
7a82caebd2
uridecodebin: add debug message
2009-06-16 18:20:05 +02:00
Stefan Kost
fd36634f88
adder: send flush_stop when seeking failed
...
At least do the fix to sent the flush_stop when seeking failed to ensure we
keep no pads flushing. before it was send when the seeking worked which is just
plain wrong and was not the intention.
2009-06-15 11:45:19 +03:00
Wim Taymans
45084bf579
adder: send flush-stop earlier
...
When no flush-stop has been sent by upstream, we have to send one ourselves to
continue playback. Do this as soon as the collect function is called instead of
after we possibly pushed segment events (that got then flushed out)
2009-06-12 16:31:00 +02:00
Wim Taymans
6a7d0ebf2a
playsink: update for new step API
2009-06-12 13:52:02 +02:00
Tim-Philipp Müller
9ca2bf36de
subparse, ogmparse: post tags with GST_TAG_SUBTITLE_CODEC
...
Make subtitle parsers post a taglist with codec tags, so the application
knows what kind of subtitle a subtitle stream is. Fixes #576552 .
2009-06-11 22:32:28 +01:00
Jan Schmidt
79e97ec5ec
playbin2/uridecodebin: Fix connection-speed propagation
...
uridecodebin expects the passed connection-speed value in kbps, so we
need to divide the value stored in bps by 1000. Also, lower the upper
limit on the properties to the value that we can actually store in our
internal guint (which is plenty high enough)
2009-06-10 17:05:18 +01:00
Tim-Philipp Müller
40bea96ff6
subparse: recognise more subrip timestamp variants
...
Be even less restrictive in what we accept for .srt timestamps when
typefinding and parsing subrip subtitles and add a unit test for
the 'new' format. Fixes #585197 .
2009-06-10 14:41:41 +01:00
Wim Taymans
ef1030ee6e
decodebin2: make sure varargs are of right type
...
Explicitly cast the variables to g_object_set to their right types.
2009-06-05 18:13:25 +02:00
Wim Taymans
f444f0edce
decodebin2: increase stream probing queues
...
When we are probing for streams, we want to set the queue size in such a way
that we can scan a maximum amount of data without consuming too much memory.
Therefore, remove the time limit on the queue and only stop scanning after 2MB
of data.
See #584104 .
2009-06-05 16:49:58 +02:00
Sebastian Dröge
28b366db00
playbin2: API: Add {audio,video,text}-tags-changed signals
...
Fixes bug #584686 .
2009-06-04 08:59:28 +02:00
Wim Taymans
49ee8a2d05
playbin2: also set custom text and subp sinks
...
Set the custom subpicture and text sinks along with the custom audio and video
sinks when needed.
Fix a little docs blurb too.
2009-06-03 12:45:08 +02:00
Edward Hervey
31e7bf098d
typefindfunctions: Fix caps for ogg typefinder.
2009-06-02 09:54:23 +02:00
Wim Taymans
ea97973efe
add framestepping to playbin2 and seek
2009-06-01 11:31:49 +02:00
Sebastian Dröge
a9c405f5fa
ffmpegcolorspace: Add a lot more conversions from/to 16 bit grayscale
2009-05-30 14:18:56 +02:00