Commit graph

1856 commits

Author SHA1 Message Date
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
Stefan Kost
45298860fc playbin2: fix initial volume and mute handling
Use two flags to remember volume/mute changes at times when we don't have the
audiochain yet (e.g. construction). Only set values when they were actualy
changed. This makes pulseaudio's stream restore functional.
2009-05-22 15:49:14 +03:00
Wim Taymans
5181760120 tcpclientsrc: this is not a live source
Don't mark us as a live source because we are not.
2009-05-19 18:43:45 +02:00
Stefan Kost
4228ba0c6b adder: only send flush_stop when seek failed
This is still not the ultimate fix. Added some comment to explain the troubles.
2009-05-19 18:44:01 +03:00
Stefan Kost
ef56ebad48 adder: send flush_stop to match flush_start
Adder was relying that something else sends a flush stop. When using adder with
a livesource it was not getting a flush_stop and thus all pads downstream where
keept flushing. Mark a pending flush_stop and send it when we are working on
the new segment back in the streaming thread.
2009-05-19 16:49:35 +03:00
Stefan Kost
eeb3300383 decodebin: use iterators instead of list
The list api is deprecated. Use threadsafe iterators instead.
2009-05-19 16:49:35 +03:00
Wim Taymans
7d049bc29f uridecodebin: configure caps on decodebin2
Implement the caps property by setting the configured caps on new decodebin2
objects.

Fixes #582749
2009-05-19 15:35:54 +02:00
Wim Taymans
e685a9e86d decodebin2: avoid some _caps_ref in some cases
Only mess with the caps refcount when we configure different caps.
2009-05-19 15:34:38 +02:00
Wim Taymans
8f2f705c21 uridecodebin: fix potential caps leak
Free the user-configured caps in finalize.
2009-05-19 15:27:12 +02:00
Wim Taymans
f11edb626f uridecodebin: add queue after cdda://
Add a queue2 after the raw output pads of certain sources such as those for uris
like cdda://

No tuning of the queue is done yet as the defaults seem to work fine for me.

Fixes #582528
2009-05-19 15:20:27 +02:00
Edward Hervey
65c046b1ea audioresample: Don't drain remaining buffers after a flush.
If we were resetted (due to a flush), we can not drain the remaining
buffers since they would be pushed before a valid new newsegment event.
2009-05-19 11:20:19 +02:00
Stefan Kost
c94f952056 adder: add more logging and return value checking 2009-05-19 01:13:34 +03:00
Stefan Kost
705b01aa93 adder: handle the return value from iterator_fold 2009-05-19 01:11:45 +03:00
Stefan Kost
591fbbcea7 adder: use the pad in logging as objects
Helps to differenciate between source and sinks pads.
2009-05-19 01:03:44 +03:00
David Schleef
6f686c9ba0 videotestsrc: Add support for v210 and v216 formats 2009-05-15 18:44:37 -07:00
Arnout Vandecappelle
785f748810 multifdsink: add num-fds property
multifdsink::num-fds
2009-05-15 23:07:01 +02:00
Jan Schmidt
768cadf093 playbin2: Fix cdda:// playback
Don't send async-start when the playsink has already been configured
before changing state.
2009-05-14 22:50:53 +01:00
Tim-Philipp Müller
8d326479a5 audiotestsrc: fix broken enum nick - it should have a hyphen
The enum nick should be 'sine-table', not 'sine table'. Technically this is
an API/ABI change I guess, but anyone who was using this and didn't report
it deserves this.
2009-05-12 17:18:37 +01:00
Tim-Philipp Müller
21228a6934 audiotestsrc: seek to the requested byte offset, not the expected byte offset 2009-05-12 15:32:02 +01:00
Tim-Philipp Müller
72c5884f4a audiotestsrc: support more than just one channel 2009-05-12 15:32:02 +01:00
Wim Taymans
956c9f32a3 videorate: handle invalid timestamps better
Handle buffers with -1 timestamps better by keeping track of the en time of the
previous buffer and assuming the -1 timestamp buffer goes right after the
previous one.

when we have two buffers that are equally good, output the oldest buffer once to
minimize latency.

don't try to calculate latency when the input framerate is unknown.
2009-05-12 10:47:17 +02:00
Wim Taymans
a0525fadb4 decodebin2: make subpictures a raw output format
Subpictures are a raw format, we want those pads exposed so that playbin2 can do
the subpicture mixing.
2009-05-12 10:40:11 +02:00
Wim Taymans
e1aa348246 playbin2: make fallback identity silent
Set the signal-handoffs to FALSE and silent to TRUE for the fallback identity
element so that it consumes less CPU.
2009-05-12 10:38:15 +02:00
Wim Taymans
c6f6282fde playbin2: handle custom audiosinks differently
Keep track of the autoplugged custom sinks and configure them in the playsink
element when we have collected all streams.
Also make sure that we only select one custom sink.
When unreffing the internal sink, we don't need to change the state to NULL.
2009-05-12 10:37:45 +02:00
Wim Taymans
0b372dd371 playbin2: unify custom sink get/set functions
Use one function to set/get all of the different sink types.
cleanup up the subpicture chain too.
Allow setting a custom subpicture sink.
2009-05-12 10:36:25 +02:00
Arnout Vandecappelle
192a34af40 typefindfunctions: made mp3_type_find less aggressive
mp3_type_find could suggest already when only a single valid header
was found, if it ran out of data before the end of the next frame.
Therefore, ignore the last found frame if it was incomplete.
Fixes bug #579692.
2009-05-12 09:03:22 +02:00
Wim Taymans
691a52975e playbin2: fix resume after pause
Don't ignore the state change of the children, they might be doing an ASYNC
state change.
2009-05-08 13:11:01 +02:00
Wim Taymans
7c61249ceb multifdsink: fix signature of the add-full signal
The second parameter is a GstSyncMethod enum, not a boolean.
2009-05-07 23:14:56 +02:00
Wim Taymans
52da312fa5 playsink: initialize variable too 2009-05-07 15:19:05 +02:00
Wim Taymans
c05541c195 playbin2: make playsink go ASYNC to PAUSED
Make playsink go async to the PAUSED state instead of relying on uridecodebin
for async behaviour in playbin. This solves some problems (mainly with DVD)
where the pipeline would go to PLAYING before preroll completed, failing to
select the audiosink clock.
Fixes #581727
2009-05-07 14:28:30 +02:00
Jan Schmidt
02a7b31f0e audioresample: Fix buffer size transformations
When calculating the input/output buffer sizes in the transform_size function,
take the number of channels into account, so we don't end up calculating
a buffer size that only contains a partial number of audio frames.

Also, when going from output size to input size, round down rather than
up, so as to calculate the minimum number of samples that *might* yield
a buffer of the intended destination size.

Fixes: #580470 and #580952
2009-05-01 16:47:53 +01:00
Wim Taymans
915b3d139d videorate: clear discont on duplicated buffers
When videorate duplicates a buffer with a DISCONT flag, it copies the discont on
the first pushed buffer but fails to clear it for subsequent buffers. This
causes theoraenc!oggmux and possibly other elements to consider this a discont
stream.

Fix videorate to produce discont as the first buffer and after a flushing seek.

Fixes #580271.
2009-04-28 16:45:07 +02:00
Edward Hervey
71a372c847 decodebin2: Don't reduce max-size-time of exposed groups. Fixes #579912
The 2s limit is way too small for a lot of files (which have an interleave
in time of between 3 and 5s). Instead, leave it to the initial 5s value
and reduce the other limits (allowing us to stay memory-efficient).
2009-04-23 11:54:55 +02:00
René Stadler
22a69b49a3 audioresample: Fix unused variable in compilation with --disable-gst-debug
Fixes: #579668
2009-04-21 22:18:02 +01:00
Wim Taymans
8f8b638d31 playbin: only use raw_decoding_mode when it's true
First check the pad caps if they are raw before setting the raw_decoding_mode to
TRUE. Fixes playback of transport streams and other streams that require large
queues.
Fixes #579734
2009-04-21 20:57:34 +02:00
Jan Urbanski
63108730a5 multifdsink: add property to resend streamheaders
Adds a new property in multifdsink, resend-streamheader.

If this property is false, the multifdsink will not send the streamheader if
there's already one set for a particular client.

There are some formats in which every stream needs to start with a certain
blob, but you can't inject this blob at leisure. If the producer wants to
change the blob in question and sets in as the streamheader on the outgoing
buffers' caps, new clients of multifdsink will get the new streamheader, but
old clients will break, because they'll see the blob in the middle of the
stream.

The property is true by default, so existing code will not see any difference.

Fixes #578118.
2009-04-14 17:04:06 +02:00
Wim Taymans
19d30b90d4 multifdsink: add property to handle client write
Add a property to disable listening to client writes. This property is usefull
when other code will deal with reading from the client socket.

API: GstMultiFdSink::handle-read property
2009-04-14 16:53:33 +02:00
Wim Taymans
5eed96dc06 playbin2: clear the target
Clear the target of our ghostpads before we remove the pad from the element.
This to make sure that the internal pad is not left linked to whatever pad we
were ghosted to. This should only be a problem when we leak the ghostpads.

Also release our subpicture pads.

Fixes #577288.
2009-04-14 13:55:52 +02:00
Wim Taymans
4265511b70 decodebin2: fix up the debugs and warnings
Use _OBJECT variants because we can. Go over some log statements and put them in
the right category.
Fixes #567740.
2009-04-14 11:34:49 +02:00