Commit graph

1994 commits

Author SHA1 Message Date
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
Jan Schmidt
8900ada0eb playbin2: Have playbin recognise PGS subpicture streams
Recognise PGS subpicture streams and connect them to the SPU pad
in playsink. Unfortunately this fails badly with negotiation errors
if the SPU is not recent enough to support the stream. I'm not sure
how to add format negotiation in yet.
2009-05-29 00:09:15 +01:00
Jan Schmidt
47d7464b10 decodebin/uridecodebin: Recognise subpicture/x-pgs pads and output them. 2009-05-28 22:07:30 +01:00
Tim-Philipp Müller
effa5e69d9 playbin2: fix volume handling for audio sinks without "volume" property
When using an audio sink without a "volume" property, volume control
would only work for the first song. For the next song, we'd try to
re-use the existing audio chain, but inadvertently set chain->volume
to NULL instead of to the existing volume element.
2009-05-28 20:49:22 +01:00
Tim-Philipp Müller
18fc3e6e18 playbin2: cosmetic change to avoid unnecessary line breaks
Looks nicer and works around gst-indent silliness.
2009-05-28 17:05:55 +01:00
Wim Taymans
3f20b0522a playbin2: don't lose the ref to the volume element
Only release the ref to the volume element when it is controled by a sink. For
software volume we never have to fear that it will change.
2009-05-28 17:21:35 +02:00
Tim-Philipp Müller
7620d8800d playbin2: actually use configured audio/video sinks
playbin2 inadvertently used autoaudiosink and autovideosink up to now,
since it would overwrite the sinks configured via the "audio-sink"
and "video-sink" properties with the stream-specific group sinks when
configuring the outputs. Those are usually NULL however, so that would
overwrite the configured sinks with NULL which makes playbin2 then
default to the auto sinks. Fix this by keeping a reference to each
configured sink in playbin2 and setting up the right sinks depending
on whether there is a stream-specific sink or not.

Fixes #584020.
2009-05-28 15:30:27 +01:00
Wim Taymans
650215bcfd decodebin2: remove leftover elements
Remove all of the elements inside decodebin2 when goint to READY and NULL.
Makes decodebin2 reusable.
Fixes #583750
2009-05-27 18:12:10 +02:00
Wim Taymans
de06a6adb5 playbin2; release refs to volume/mute properties
Release the refs to the volume and mute property elemens before setting the
child elements to READY or NULL.
Fixes #583318
2009-05-27 15:45:25 +02:00
Wim Taymans
4fad939053 gdppay: set caps on outgoing buffers
Set caps on outgoing buffers because NULL caps confuse basetransform.
Fixes #583867
2009-05-27 12:10:05 +02:00
Sebastian Dröge
2e5c946501 videoscale: Add support for 16 bit grayscale in native endianness 2009-05-26 15:26:30 +02:00
Sebastian Dröge
9d02d1d8ab ffmpegcolorspace: Add support for 16 bit grayscale in little/big endian 2009-05-26 15:26:30 +02:00
Sebastian Dröge
d48a5614f4 videotestsrc: Add support for 16 bit grayscale in native endianness 2009-05-26 15:26:29 +02:00
David Schleef
1dae15d762 Run liboil benchmark multiple times
The statistics function requires multiple runs, otherwise
it causes a divide by zero error.
2009-05-22 17:34:56 -07:00