Commit graph

10651 commits

Author SHA1 Message Date
Sjoerd Simons
8c9e6346b4 videorate: Print which caps didn't match up 2011-09-21 11:24:59 +01:00
Sjoerd Simons
b9b5b133fd videorate: Add a max-rate property
In various use-case you want to dynamically change the framerate (e.g.
live streams where the available network bandwidth changes). Doing this
via capsfilters in the pipeline tends to be very cumbersome and racy,
using this property instead makes it very painless.
2011-09-21 11:24:59 +01:00
Sjoerd Simons
ee3dfd4471 videorate: Add test for caps negotiation 2011-09-21 11:24:59 +01:00
Sjoerd Simons
ec7ca80c9e videorate: Add more strict caps negotiation
When in drop-only mode we can never provide a framerate that is higher
then the input, so let the caps negotiation reflect this.
2011-09-21 11:24:59 +01:00
Tim-Philipp Müller
f57bbc585d videorate: don't unref event we don't own
http://bugzilla.gnome.org/show_bug.cgi?id=659562
2011-09-20 13:35:55 +01:00
Sebastian Dröge
61c6fcb2cd decodebin2: Only check if this is a discarded type if we have fixed caps
For unfixed caps we will get here again later when the caps are fixed.
2011-09-20 14:06:51 +02:00
Sebastian Dröge
8e114c427a decodebin2: Only call autoplug-continue with fixed caps
With unfixed caps we can't reliably decide if the final caps
are going to be "raw" (e.g. supported by a sink) or not.

We will get here again later when the caps are fixed.
2011-09-20 14:06:42 +02:00
Sebastian Dröge
7e1e169b1b decodebin2: Fix unit test by strictly implementing parser behaviour instead of relying on basetransform 2011-09-20 13:46:41 +02:00
Vincent Penquerc'h
c956c5fd00 oggstream: only use information from skeleton if we have nothing better
The codec setup headers are a lot more likely to have correct information,
especially as it's easy to remux a skeleton in a file where streams don't
have the same parameters (I've even seen a file with two skeletons).

Still, this is useful in the case we have a codec we can't decode, so we
can at least (theoretically) convert granpos to time, so we discard this
information if the codec setup has already provided it.

This fixes playback on (at lesat) the original archive.org encoding of
"The Night of the Living Dead" (now replaced by another encoding).

https://bugzilla.gnome.org/show_bug.cgi?id=612443
2011-09-19 23:21:23 +01:00
Age Bosma
043ee22e25 discoverer: Don't use gtk-doc /* < ... > */ style comments for signals
The /*< ... >*/ style is only used for public|protected|private,
signal comments use /* signals */. This prevents the some code
parsers/binding generators to be confused by the comment.
2011-09-19 14:36:00 +02:00
Sebastian Dröge
01d37532b6 subtitleoverlay: Get the target of the video sinkpad, not the target sinkpad in the video setcaps handler 2011-09-19 14:02:00 +02:00
Youness Alaoui
27058c1bc6 decodebin2: Initialize variable correctly
If subdrained isn't initialized to FALSE then a chain might think
that its group is drained when in fact it's not and this can cause
a switch too early or even cause a deadlock.
2011-09-19 12:36:48 +02:00
Edward Hervey
9d2bcb08fe decodebin2: Rewrite EOS-handling code
This is now really threadsafe and improves switching
between different groups.
2011-09-19 12:34:51 +02:00
Sebastian Dröge
936e87cdcf decodebin2: Fix non-prerolling pipelines and not-linked errors if a parser is available but no decoder
Fixes bug #658846.
2011-09-19 11:54:27 +02:00
Mark Nauwelaerts
e574f58e71 rtspdefs: add RTCP-Interval header 2011-09-19 11:32:23 +02:00
Sebastian Dröge
b1bb1e9b26 subtitleoverlay: Implement support for switching between raw and non-raw video streams 2011-09-19 11:24:47 +02:00
Sebastian Dröge
d094913a61 textoverlay: Protect against accessing the NULL parent of the pads during shutdown
Fixes bug #658901.
2011-09-19 09:34:08 +02:00
Tim-Philipp Müller
15d8082a55 oggdemux: remove superfluous check in newsegment event handler
If we get a newsegment event from upstream, we can be quite
sure we're not operating pull-based.
2011-09-16 20:14:39 +01:00
Tim-Philipp Müller
049e275632 oggdemux: minor printf format fix 2011-09-16 20:11:56 +01:00
Vincent Penquerc'h
89fc5b4bd8 oggdemux: fix wedge when seeking twice quickly in push mode
This could happen when testing with navseek, and pressing
right and left at roughly the same time. The current chain
is temporarily moved away, and this caused the flush events
not to be sent to the source pads, which would cause the
data queues downstream to reject incoming data after the
seek, and shut down, wedging the pipeline.

Now, I can't really decide whether this is a nasty steaming
hack or a good fix, but it certainly does fix the issue, and
does not seem to break anything else so far.

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-16 20:07:33 +01:00
Vincent Penquerc'h
0173afa38c oggdemux: implement push mode seeking
This patch implements seeking in push mode (eg, over the net)
in Ogg, using the double bisection method.
As a side effect, it also fixes duration determination of network
streams, by seeking to the end to check the actual duration.

Known issues:
- Getting an EOS while seeking stops the streaming task, I can't
  find a way to prevent this (eg, by issuing a seek in the event
  handler).
- Seeking twice in a VERY short succession with playbin2 fails
  for streams with subtitles, we end up pushing in a dataqueue
  which is flushing. Rare in normal use AFAICT.
- Seeking is slow on slow links - byte ranges guesses could be
  made better, decreasing the number of required requests
- If no granule position is found in the last 64 KB of a stream,
  duration will be left unknown (should be pretty rare)

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-16 19:47:10 +01:00
Alessandro Decina
a330ff0721 playbin2: fix compiler warning
Remove a check for gchar >= 128
2011-09-15 22:05:34 +02:00
Stefan Sauer
b678f6cf69 adder: don't access the event after pushing
Fixes valgrind warnings.
2011-09-15 16:47:26 +02:00
Sebastian Dröge
bd52f00796 Revert "playbin2: autoplug sink if stream is incompatible to the configured one"
This reverts commit b0b4e286c8.

We agreed that the previous (pre-.35) behaviour is broken and a bug and the
current behaviour is correct, deterministic and allows the application to
handle stuff properly while the old behaviour can't be handled properly by
applications and just worked in some applications by luck.

The solution to the problem that was solved by relying on the old, broken
behaviour would be, to make decodebin2/playbin2 more aware of decoders and
improve the autoplugging of decoders by considering the caps supported by the
sink instead of just using something with the highest rank.

See bug #656923.
2011-09-15 14:27:35 +02:00
Josep Torra
b0b4e286c8 playbin2: autoplug sink if stream is incompatible to the configured one
Fixes regression since 0.10.33 where sinks that can cope with non raw
caps or custom caps are not autoplugged if there's a sink configured
with the properties video-sink and audio-sink which cannot handle
the stream. This change checks for compatibility on the configured one
and use it if success. Otherwhise it tries with the found factories.
2011-09-15 09:30:25 +02:00
Vincent Penquerc'h
6704b37fc3 oggdemux: do not propagate discontinuities in sparse streams
The first packet of a sparse stream may arrive after an initial
delay in the stream. If ogg_stream_packetout reports a discontinuity
in a sparse stream, do not propagate it to other streams in the
chain unnecessarily.

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-14 23:20:01 +01:00
Josep Torra
8f8ad316ce Revert "playsink: only add text overlay if vido sink also accepts raw caps"
This reverts commit a22faad18a. Instead
of disabling subtitles completelly when video stream have custom caps,
just let the sutbtileoverlay cope with them as now it's able to.
2011-09-14 11:05:45 +02:00
Josep Torra
596c75b541 subtitleoverlay: gracefully handle non raw video streams
Implement handling of non raw video streams by avoiding colorspace
elements and autoplugging a compatible renderer if available. Fallback
to passthrough if no compatible renderer is found.
2011-09-14 11:05:45 +02:00
Tim-Philipp Müller
14a79628a7 playbin2: try to catch malformed URIs
Only log in debug log for now, since the check is a bit
half-hearted, its purpose is mostly to make sure people
use gst_filename_to_uri() or g_filename_to_uri().

https://bugzilla.gnome.org/show_bug.cgi?id=654673
2011-09-13 21:57:10 +01:00
Tim-Philipp Müller
454c554b11 docs: minor addition to GST_TAG_ID3V2_HEADER_SIZE docs 2011-09-12 19:55:40 +01:00
Thomas Vander Stichele
d223a6dd59 theoraenc: Fix descriptions of properties 2011-09-11 14:22:59 -04:00
Tim-Philipp Müller
55182ed841 baseaudiosrc: don't try to fixate "width" field for alaw/mulaw
Fixes warning when trying to fixate e.g. pulsesrc ! audio/x-alaw ! fakesink.
2011-09-10 18:30:55 +01:00
Tim-Philipp Müller
76ed3fb04d docs: fix some typos in the decodebin design document 2011-09-09 13:10:13 +01:00
Tim-Philipp Müller
0f38f86182 colorbalance: add some guards to interface methods
https://bugzilla.gnome.org/show_bug.cgi?id=658584
2011-09-09 13:09:43 +01:00
Vincent Penquerc'h
4095551b31 typefind: recognize Asylum modules
Note that there is already a AMF detection for a different
magic, I'm not sure if that's a different format with the
same initials or not. AMF is used for a few different formats
(including video), so...

This fixes playbin2 playing Asylum modules.

https://bugzilla.gnome.org/show_bug.cgi?id=658514
2011-09-09 13:54:45 +02:00
Nicolas Dufresne
25939e0218 subparse: Improve subrip type check regex
This patch prevents timestamp like "1 1:00:00", which would have been seen
as hour 101 by our parser, and allow single digit hour, minute and seconds
as it's already supported by the parser, and also by other implementation
like in mplayer. This fixes bug 657872.

https://bugzilla.gnome.org/show_bug.cgi?id=657872
2011-09-08 14:52:15 +02:00
Sebastian Dröge
2ad501aa51 decodebin: Update design documentation about how Parser/Converter are handled 2011-09-08 14:46:23 +02:00
Sebastian Dröge
21bc8ddcb7 Revert "Revert "decodebin2: Do a subset check before actually using a factory""
This reverts commit 5f5d832a3b.
2011-09-08 14:42:13 +02:00
Sebastian Dröge
0f654f3feb Merge branch 'master' into 0.11
Conflicts:
	docs/libs/Makefile.am
	tests/check/elements/decodebin2.c
2011-09-08 14:42:00 +02:00
Sebastian Dröge
5f5d832a3b Revert "decodebin2: Do a subset check before actually using a factory"
This reverts commit 50a88396ae.

See bug #658541.
2011-09-08 13:25:27 +02:00
Sebastian Dröge
0e54d2c343 decodebin2: Don't use bufferalloc in the test elements
This will cause not-linked errors that usually don't happen
because normal decoders/parsers will set srcpad caps before
allocating buffers from downstream.
2011-09-07 16:44:59 +02:00
Sebastian Dröge
9e2ce5bbb5 decodebin2: Make sure to fixate Parser/Converter caps before continuing autoplugging 2011-09-07 16:44:59 +02:00
Josep Torra
a22faad18a playsink: only add text overlay if vido sink also accepts raw caps
Fixes regression, pipeline fails with not negotiated, on media
containing subtitles when decoder/sink with custom caps is used.
2011-09-07 16:08:38 +02:00
Sebastian Dröge
46e26824d4 decodebin2: Intersect the factory caps with the current caps for the capsfilter
Otherwise we'll include many incompatible caps in the capsfilter that
will only slow down negotiation.
2011-09-07 14:20:36 +02:00
Stefan Sauer
950af0438b docs: cleanup makefiles
Remove commented out parts that we don't need. Remove "the wingo addition" - no
so useful after all. Narrow down file-globs for plugin docs.
2011-09-07 14:14:02 +02:00
Stefan Sauer
abc96efb2a docs: add two mising enum docs 2011-09-07 14:14:02 +02:00
Sebastian Dröge
2d1dd857aa audiorate: Use complete audio caps, including the endianness field 2011-09-07 14:10:46 +02:00
Tim-Philipp Müller
f93748fbd4 decodebin2: fix element factory refcounting
g_value_get_object() does not give us our own ref.

Fixes "Trying to dispose object "flacparse", but it still has a parent "registry0".
You need to let the parent manage the object instead of unreffing the object directly."
and similar warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=658416
2011-09-07 12:34:06 +01:00
Vincent Penquerc'h
cea0ac790f theoraenc: do not automatically override quality when using target bitrate
If both quality and bitrate are set, libtheora will try to meet
both constraints, causing it to prefer emitting a smaller number
of good frames, to emitting the full number of frames that would
not meet the requested quality. This causes a slideshow effect
when the bitrate is low and the quality is high. And the default
theoraenc is high (48/63).

So only set quality when it is requested, and leave it unset
otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=658443
2011-09-07 13:27:33 +02:00
Stefan Sauer
07e118ff24 Automatic update of common submodule
From a39eb83 to 11f0cd5
2011-09-06 21:24:33 +02:00