Commit graph

1900 commits

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