Sebastian Dröge
eb7cae8033
typefind: Add typefinder for OpenEXR
2013-11-23 20:15:09 +01:00
Jihyun Cho
a81b2380cf
subparse: fix null pointer access in sami parser
...
https://bugzilla.gnome.org/show_bug.cgi?id=712805
2013-11-21 16:34:04 +00:00
Tim-Philipp Müller
5d7125413e
subparse: g_memmove() is deprecated
...
Just use plain memmove(), g_memmove() is deprecated in
recent GLib versions.
https://bugzilla.gnome.org/show_bug.cgi?id=712811
2013-11-21 15:19:47 +00:00
Tim-Philipp Müller
b1ff48c1a1
docs: remove old 0.10 Since markers
...
They're just confusing.
2013-11-16 16:10:07 +00:00
Reynaldo H. Verdejo Pinochet
8d9dc05245
typefind: Fix identification of some MPEG files
...
Make sure we begin by peeking at MPEG2_MAX_PROBE_LENGTH
bytes.
Fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=678011
2013-11-14 23:46:12 -03:00
Thibault Saunier
ddf4ca2203
playback: Add subpicture/x-dvb as raw caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=710325
2013-10-30 22:28:43 +01:00
Antonio Ospite
fdfc6baf14
videoscale: fix adding borders when NV12 is used
...
When the frame buffer is NV12 the borders are not added at all, fix that
and fill them to black.
https://bugzilla.gnome.org/show_bug.cgi?id=711003
2013-10-30 18:38:21 +01:00
Matthieu Bouron
22f411378e
videoconvert: remove unneeded guint comparaison
...
https://bugzilla.gnome.org/show_bug.cgi?id=710760
2013-10-25 12:42:19 +01:00
Thibault Saunier
4305e1c33e
encodebin: Handle changes in encoding_profile::restriction during playback
...
There are cases where we want to change the restrictions caps during
playback, handle that in encodebin.
https://bugzilla.gnome.org/show_bug.cgi?id=709588
2013-10-09 15:25:19 -03:00
Thiago Santos
c2eb3d4e71
videotestsrc: implement duration query
...
Add duration query to videotestsrc, it can answer this query when
the num-buffers property is set.
https://bugzilla.gnome.org/show_bug.cgi?id=709646
2013-10-08 16:10:54 -03:00
Thiago Santos
866f132821
videotestsrc: implement reverse playback
...
Decrement the n_frames counter when doing reverse playback to
have timestamps and offsets reducing instead of increasing
https://bugzilla.gnome.org/show_bug.cgi?id=701813
2013-10-08 09:34:47 -04:00
Matej Knopp
12f85c325d
audioconvert: Map buffer as READWRITE if the buffer and memory is writable
...
and only use the input buffer as temporary buffer in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=709408
2013-10-04 14:02:06 +02:00
Sebastian Dröge
dd4fe544bc
playsink: If the visualisation is changing and reconfiguration is pending, do it all during reconfiguration
...
Otherwise we will have two pad blocks that want to use the same mutex
and block each other via the streamlock.
https://bugzilla.gnome.org/show_bug.cgi?id=709210
2013-10-02 15:03:46 +02:00
Sreerenj Balachandran
ebaa714c9f
typefind: Add typefind function for H265
...
https://bugzilla.gnome.org/show_bug.cgi?id=708680
2013-10-01 23:14:33 +02:00
Thiago Santos
f8d8a56d7b
playbin: make sure elements are in null before disposing
...
If a pipeline fails to preroll, it might happen that the sinks are
put into READY state from playbin's sink activation, but they are never
set to playsink, so they aren't being managed by a GstBin and will keep
their READY state until they are unreffed, leading to a warning.
Prevent this by always forcing them to NULL when deactivating a group
https://bugzilla.gnome.org/show_bug.cgi?id=708789
2013-10-01 17:53:05 -03:00
MathieuDuponchelle
f330c01412
adder: Don't take channel mask in consideration in mono or stereo
...
This could cause negotiation to fail.
https://bugzilla.gnome.org/show_bug.cgi?id=708633
2013-09-28 13:32:58 +02:00
Matej Knopp
2f0993a95d
audiorate: clip buffer before pushing it
...
https://bugzilla.gnome.org/show_bug.cgi?id=708953
2013-09-28 11:41:07 +02:00
Sebastian Dröge
cac572ec5d
playbin: Make sure to cache context types we did not store yet
...
https://bugzilla.gnome.org/show_bug.cgi?id=708668
2013-09-24 12:47:26 +02:00
Mathieu Duponchelle
663f71a5dd
adder: send pending segment out before checking for EOS
...
Otherwise there would be cases where it would not send its segment
out when the first collected after getting it would already yield EOS.
https://bugzilla.gnome.org/show_bug.cgi?id=708590
2013-09-24 10:04:37 +02:00
Sebastian Dröge
78b0e16773
playbin: Implement context caching for sinks that are not in playsink yet
2013-09-18 22:39:25 +02:00
Sebastian Dröge
e21d3d214a
playbin: No need to set the GstContext on the sink before activating it
...
This is all handled by the GstBin code now.
2013-09-18 22:39:25 +02:00
Wim Taymans
58e6f33e35
videoscale: fix 4tap for RGB15 and RGB16
...
Fix component ordering, it's wrong in both the scanline and merge
function so it cancels eachother out and isn't really a except for
loss of precision of the green component.
Fix calculation of the filter weight
2013-09-12 12:27:19 +02:00
Wim Taymans
1ede455199
videoscale: optimize merge for RGB15 and RGB16
2013-09-12 12:27:19 +02:00
Wim Taymans
b3e5d55040
videoscale: remove redundant MAX
...
The checks above make it inpossible for the value to be smaller than
what we check against with the MAX call.
2013-09-12 12:27:19 +02:00
Wim Taymans
a156fe4a1a
videoscale: fix RGB15 masks
2013-09-10 16:24:56 +02:00
Wim Taymans
85c572a57e
videoscale: simplify YUYV and UYVY linear scaling
...
Simplify the code and make it handle odd width
2013-09-10 16:24:56 +02:00
Wim Taymans
ccf53052a0
videoscale: small cleanups
...
Use BLEND macro
Fix NV12 corner case
2013-09-10 16:24:56 +02:00
Wim Taymans
d365b68517
videoscale: fix RGB15 masks
2013-09-10 16:24:56 +02:00
Wim Taymans
d7c02f389f
videoscale: simplify nearest scaling
...
Round the accumulator to avoid later checks
Remove some bound checks that would never trigger
Fix odd width scaling
2013-09-10 16:24:56 +02:00
Wim Taymans
c8cbcb6f02
videoscale: pick nearest line in scaling
...
Use rounding to pick the nearest line instead of rounding down.
2013-09-10 16:24:55 +02:00
Loïc Minier
8492b956cd
playback: fix docs of convert-sample action signal
...
convert-sample returns a GstSample, not a GstBuffer.
https://bugzilla.gnome.org/show_bug.cgi?id=707660
2013-09-07 14:58:46 +01:00
Wim Taymans
9b4e2b4b36
videoconvert: disable fastpath for odd width on some formats
2013-09-06 12:45:36 +02:00
Wim Taymans
ede804041c
videotestsrc: flush pending lines on odd height
2013-09-05 17:46:03 +02:00
Wim Taymans
e97f6401de
videoconvert: add additional width/height constraints
...
Some of the fastpath function can only work with aligned widht/height
so make sure we check this as well when choosing a fastpath.
Add fastpath for I420/YV12 -> BGRx
2013-09-05 17:22:50 +02:00
Wim Taymans
ce2b40670a
videoconvert: don't convert too much with odd width
2013-09-05 16:26:33 +02:00
Wim Taymans
700afbf6fd
videoconvert: handle lines in one go
...
Handle odd heights in 1 go when no vertical subsampling is used.
2013-09-05 11:05:36 +02:00
Wim Taymans
ce2ad4ae4a
videoconvert: fix height round down
2013-09-05 11:04:03 +02:00
Wim Taymans
22da49a55c
videoconvert: also allocate temp lines in fastpath
...
Some of the fastpath functions need tmplines, so make sure we allocate some in
the fastpath too.
This avoids SEGFAULTs with odd heights.
See https://bugzilla.gnome.org/show_bug.cgi?id=663248
2013-09-04 17:36:29 +02:00
Wim Taymans
579be969e5
videoconvert: add more fastpaths
...
Also reuse the I420 code for YV12 because it can handle the swapped UV fields
just fine.
2013-09-04 15:10:50 +02:00
Alex Ashley
7240e2e38c
typefind: Added "dash" and "avc3" fourCC codes to qt_type_find.
...
This commit adds detection of the "dash" and "avc3" compatible brands
in qt_type_find.
Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new
structure for fragmented MP4 called "avc3". The principal difference
between AVC1 and AVC3 is the location of the codec initialisation
data (e.g. SPS, PPS). In AVC1 this data is placed in the initial MOOV
box (moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data goes in
the first sample of every fragment (i.e. the first sample in each mdat
box). The principal reason for avc3 is to make it easier for client
implementations, because it removes the requirement to insert the
SPS+PPS in to the decoder pipeline every time there is a representation
change.
https://bugzilla.gnome.org/show_bug.cgi?id=702004
2013-09-04 13:33:59 +02:00
Wim Taymans
c731f1cba0
videoconvert: only chroma subsample when needed
2013-09-03 17:37:14 +02:00
Wim Taymans
10b3b88e9c
videoconvert: fix handling of chroma resample
...
Increase the number of temporary lines that we need, it is possible that the
up and downsampling offsets are out of phase and that we need to keep some
extra lines around. Also copy the unhandled output lines for the next round
instead of overwriting them.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=706823
2013-09-03 15:42:44 +02:00
Wim Taymans
cfb7b51c08
videoconvert: improve debug
2013-09-03 15:41:56 +02:00
Tim-Philipp Müller
0715e73725
audioconvert: improve fixate_format function readability even more
...
Do the flags comparisons only once and re-use the result.
2013-08-23 19:47:57 +01:00
Tim-Philipp Müller
f317061b9c
audioconvert: simplify fixate_format function some more
...
If we have no output format yet, any format will do. The
!out_info condition existed in every path, so just split
it our for clarity. KISS.
2013-08-23 19:43:14 +01:00
Tim-Philipp Müller
7a481c13ae
audioconvert: make fixate function more readable
...
Use some variables to replace accessor macros to make code
a little bit mor readable.
2013-08-23 19:11:17 +01:00
Tim-Philipp Müller
f448977dbd
audioconvert: remove unnecessary deep nesting in fixate function
...
Makes it easier to read and removes two levels of indentation.
2013-08-23 18:53:48 +01:00
Sebastian Dröge
cebae4514a
audioconvert: If we have to lose precision, try to lose as less precision as possible
...
https://bugzilla.gnome.org/show_bug.cgi?id=706624
2013-08-23 18:52:50 +02:00
Sebastian Dröge
ec9b17479d
typefind: Add typefinder for video/x-pva
...
https://bugzilla.gnome.org/show_bug.cgi?id=158719
2013-08-22 14:23:43 +02:00
Carlos Rafael Giani
e8e8fa22f3
typefind: improved and extended typefinder for module music formats
...
introduced new caps: audio/x-mod, modtype : { xm, okt, mod, ptm, ... }
https://bugzilla.gnome.org/show_bug.cgi?id=706061
2013-08-19 10:32:26 +02:00
Sebastian Dröge
802d734a27
Revert "typefind: improved and extended typefinder for module music formats"
...
This reverts commit 4c79f35c7a
.
It causes some MP4 files to be detected as mod files.
2013-08-16 12:12:05 +02:00
Carlos Rafael Giani
4c79f35c7a
typefind: improved and extended typefinder for module music formats
...
introduced new caps: audio/x-mod, modtype : { xm, okt, mod, ptm, ... }
https://bugzilla.gnome.org/show_bug.cgi?id=706061
2013-08-16 09:34:48 +02:00
Jie Yang
5640ba17c8
typefind: ADTS/AAC, find more aac sync to select correctly
...
https://bugzilla.gnome.org/show_bug.cgi?id=691462
2013-08-15 13:26:38 +02:00
Sebastian Dröge
61c1d15ce7
playsink: Don't set sink to NULL if a new one is set while the old one is still in use
2013-08-14 15:43:53 +02:00
Tim-Philipp Müller
a2ebeb8357
gio: fix printf format compiler warning
2013-08-14 11:43:50 +01:00
Sreerenj Balachandran
81782144d9
typefind: Add typefind function for WebP image format
...
https://bugzilla.gnome.org/show_bug.cgi?id=705826
2013-08-12 14:41:00 +01:00
Jonathan Matthew
cc1de5ae94
gio: make better use of the cached buffer
...
When playing mp3 files from a smb server, we get 64k read requests
that mostly overlap. Without using the cache to partially satisfy
these, we send these requests straight to the server, resulting in
a lot more network traffic than necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=705415
2013-08-12 15:24:31 +02:00
Sebastian Dröge
b22f046cbc
streamsynchronizer: Set proxy flags on the pads and use default event handler for simplicity
...
https://bugzilla.gnome.org//show_bug.cgi?id=705555
2013-08-12 13:02:15 +02:00
Thibault Saunier
4afdc04089
adder: Raw buffers DTS should always be CLOCK_TIME_NONE
2013-08-06 15:11:05 +02:00
Thibault Saunier
a174ff25bc
adder: set DTS and PTS, sync on DTS
2013-08-06 12:25:44 +02:00
Arnaud Vrac
a8df760c96
playbin: check for tags on the right combiner instance
...
The get-tags actions are not working in all cases, because the track
number is used to resolve the stream combiner instead of the stream
type.
https://bugzilla.gnome.org/show_bug.cgi?id=705369
2013-08-03 17:17:10 +01:00
Edward Hervey
258aca37dd
videotestsrc: Demote ERROR statement back to DEBUG
...
It crawled in with david's latest commit
2013-08-02 11:00:06 +02:00
David Schleef
0c4beda8f0
videotestsrc: Add pinwheel and spokes patterns
2013-07-31 11:37:33 -07:00
Matej Knopp
496dd67859
videorate: ignore GAP event
...
videorate automatically fills gaps with the previous frames.
https://bugzilla.gnome.org/show_bug.cgi?id=705048
2013-07-29 08:24:06 +02:00
Matej Knopp
470531d56e
audiorate: ignore GAP event
...
audiorate automatically fills gaps with silence.
https://bugzilla.gnome.org/show_bug.cgi?id=705048
2013-07-29 08:23:43 +02:00
Sebastian Dröge
b12cd5432a
multisocketsink: Fix handling of partial writes and WOULD_BLOCK errors
2013-07-28 13:52:28 +02:00
Sebastian Dröge
692fd81ac7
multifdsink: Update current time after every write
...
Each write will update the last_activity_time and otherwise we would
compare against a too old current time and immediately timeout because
current time is smaller than last activity time (overflow).
2013-07-28 13:23:41 +02:00
Sebastian Dröge
930bfe3cbc
multihandlesink: Update current time after every write
...
Each write will update the last_activity_time and otherwise we would
compare against a too old current time and immediately timeout because
current time is smaller than last activity time (overflow).
2013-07-28 13:22:17 +02:00
Edward Hervey
46ce07333b
videotestsrc: Initialize GstVideoInfo in ::start()
...
Otherwise we end up with bogus values and races
2013-07-26 16:14:05 +02:00
Edward Hervey
96efe720a1
videotestsrc: Don't error on not-negotiated
...
Base classes will handle re-negotiation if needed, but emitting an
error message will make applications stop.
2013-07-26 16:14:05 +02:00
Edward Hervey
9dd0e6cccc
ext/gst: Ensure default query/event handlers are used
...
And in some cases, just remove our implementation that does nothing
2013-07-26 16:08:35 +02:00
Tim-Philipp Müller
ef5c6d351f
typefinding: don't detect mp3 based on just a few bits
...
Remove dodgy code that detects mp3 with as little as
a valid frame sync at the beginning. This was only used
in some unit tests in -good where there were only a few
bytes after the id3 tag. We now require at least two
frame headers.
Fixes mis-dection of text files with UTF-16 LE BOM as mp3.
https://bugzilla.gnome.org/show_bug.cgi?id=681368
2013-07-25 13:20:11 +01:00
Sebastian Dröge
0bd0c925e3
playsink: Remove two unused variables
2013-07-23 13:42:40 +02:00
Sebastian Dröge
e4b1a58675
subtitleoverlay: Remove some more unneeded segment tracking
2013-07-23 13:41:55 +02:00
Sebastian Dröge
436ea03362
playsinkconvertbin: Remove obsolete segment tracking
...
This is now all handled automatically with sticky events.
2013-07-23 13:36:09 +02:00
Sebastian Dröge
f92da706fd
playbin: Ensure that everything in a GstSourceGroup gets the same group-id
...
Including streams from external subtitle files. If not everything implements
the group-ids playbin invents its own.
2013-07-23 12:42:50 +02:00
Sebastian Dröge
94fc577dd5
playsink: Fix handling of colorbalance element if the sink does not implement it
2013-07-23 12:35:46 +02:00
Sebastian Dröge
0947c7ab30
playsink: Improve segment handling in the custom flushing for subtitle stream switches
...
This code needs a lot more work to be improved for 1.0.
2013-07-23 11:13:19 +02:00
Sebastian Dröge
33cba1054d
subtitleoverlay: Segment events are sticky now and propagated automatically when needed
2013-07-23 11:11:33 +02:00
Sebastian Dröge
d4b48ec70d
streamcombiner: Proxy all sink events downstream
...
Thanks to Mathieu Duponchelle for noticing this regression
introduced with the last change.
https://bugzilla.gnome.org/show_bug.cgi?id=704706
2013-07-23 09:14:23 +02:00
Sebastian Dröge
2465895266
streamsynchronizer: Implement grouping of streams via the group-id
...
https://bugzilla.gnome.org/show_bug.cgi?id=704427
https://bugzilla.gnome.org/show_bug.cgi?id=704408
2013-07-22 15:24:13 +02:00
Sebastian Dröge
9bd140d3b7
streamcombiner: Fix locking
...
We have to hold the streams-lock when iterating over all pads,
also the stream-lock of the pad is already locked when we receive
EOS.
Call gst_pad_event_default() for the correct default handling of
events.
2013-07-22 08:08:27 +02:00
Mathieu Duponchelle
2f8b0f1e34
encoding: fix EOS handling in streamsplitter / combiner.
...
This commit adds a streamcombinerpad with an is_eos field.
When streamcombiner receives an EOS on one of its pads, it
forwards it all its other pads are EOS.
This commit also removes the notion of "stream-switching-eos".
2013-07-21 20:25:54 -04:00
Tim-Philipp Müller
7d16f95730
subparse: use g_strdup() and friends
...
Fixes build issue on windows, but is also better seeing that
these string are going to get freed with g_free() and not free().
2013-07-17 09:04:47 +01:00
Tim-Philipp Müller
3eea81e4a2
subparse: don't leak parse context for sami and qttext
...
In gst_sub_parse_dispose() parser_type will be UNKNOWN,
so these deinit calls were never executed. And we should
clean up the parser state in the downwards state change
anyway.
2013-07-16 18:31:46 +01:00
Young-Ho Cha
f597efe24b
subparse: remove libxml dependency for sami parser and re-enable sami parser
...
To celebrate 2013.gnome.asia, updated sami parser for gstreamer 1.x. :D
Remove conditional block for check libxml usage and
implement a simple html markup parser for the sami
parser.
https://bugzilla.gnome.org/show_bug.cgi?id=693056
2013-07-16 18:04:02 +01:00
Sebastian Dröge
432b092247
playbin: Don't prefer decoders for which we found a matching sink
...
It doesn't make much sense.
2013-07-16 12:21:44 +02:00
Sebastian Dröge
4cfda00120
playbin: Also consider possible converters for raw streams when selecting compatible sink/source combinations
...
https://bugzilla.gnome.org/show_bug.cgi?id=704285
2013-07-16 11:22:35 +02:00
Sebastian Dröge
5ee98c146e
playbin: Fix sorting for decoder factories for which we didn't find a compatible sink
...
They might just need some converters for raw audio/video.
https://bugzilla.gnome.org/show_bug.cgi?id=704285
2013-07-16 09:32:31 +02:00
Sebastian Dröge
10c91ea5b5
playbin: Don't print a warning when setting a sink to NULL
...
https://bugzilla.gnome.org/show_bug.cgi?id=704194
2013-07-15 09:10:30 +02:00
Sebastian Dröge
edecd7eec3
playbin: Properly destroy and set to NULL sinks that don't work
2013-07-12 12:05:37 +02:00
Alban Browaeys
f174c450c9
playbin: Fix logic to detect if a stream-change is currently pending
...
Fixes duration reporting in gapless playback between files.
https://bugzilla.gnome.org/show_bug.cgi?id=585969
2013-07-12 09:54:06 +02:00
Sebastian Dröge
9ab6ab4257
playbin: Only give sinks a new bus if they have no parent yet
...
Otherwise we will remove the bus that would proxy messages to playsink
and never set it again. If the sink is already in playsink, all failures
are fatal anyway as it's either a sink that worked before or one that
was set by the user.
https://bugzilla.gnome.org/show_bug.cgi?id=701997
2013-07-10 17:17:05 +02:00
Sebastian Dröge
d7f1d9954f
playbin: Store a/v/t sinks locally too, not just in playsink
2013-07-10 13:22:04 +02:00
Sebastian Dröge
4c1fc76407
playsink: ref_sink() any sinks that are set on playsink
...
Otherwise the behaviour of the properties is inconsistent.
2013-07-10 13:21:29 +02:00
Sebastian Dröge
043c1888f3
streamsynchronizer: Non-TIME segment streams are not waiting automatically
...
This was leftover code from porting to 1.0 and fixes the playbin
unit test.
https://bugzilla.gnome.org/show_bug.cgi?id=701943
2013-07-10 13:00:21 +02:00
Sebastian Dröge
f68b6c2626
playbin: Change sink ownership handling to be a bit more sane
...
playbin will now only activate the sinks in a single place and
will never change the states of any sinks that are owned by
playsink.
Also handle text-sinks the same way as audio/video sinks inside
playbin.
2013-07-09 14:57:05 +02:00
Thibault Saunier
38790e5757
adder: Do not send flush_start event with the stream lock taken
...
FLUSH_START is not serialized, so the lock should not be taken when
sending it.
2013-07-04 22:10:13 -04:00
Tim-Philipp Müller
ba32b2e16b
audioresample: make explicit that neon is disabled and why
...
https://bugzilla.gnome.org/show_bug.cgi?id=703477
2013-07-03 09:44:32 +01:00
Carlos Rafael Giani
1b48d431f4
audioresample: disable 16-bit integer NEON support
...
it seems to be broken (produces no audio), plus the performance gain
is small
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2013-07-03 08:14:42 +02:00
Sebastian Dröge
7c28c180ec
playbin: If we had a previous autoplugged sink, try to reuse it
...
https://bugzilla.gnome.org/show_bug.cgi?id=701997
2013-07-02 14:25:28 +02:00
Sebastian Dröge
b3a15872b7
playsink: If we switch sinks, make sure that the old sink is set to NULL
2013-07-02 14:18:20 +02:00
Sebastian Dröge
841d738f7c
playbin: Don't change the state of sinks that we passed to playsink already
2013-07-02 14:02:57 +02:00
Sebastian Dröge
c725591010
playsink: Consider new audio/video sinks when reconfiguring
2013-07-02 14:01:52 +02:00
Sebastian Dröge
a0e61534ef
playbin: Improve debug output regarding sink selection
2013-07-02 12:27:03 +02:00
Brendan Long
d3acb2b01a
playbin: Post an error message if a stream combiner doesn't return a request pad.
2013-07-02 09:34:19 +02:00
Sebastian Dröge
f39d1dc3b4
playbin: Only intersect to check if a sink can handle raw caps
...
Doing a subset check requires fixed caps, which we might not have here.
https://bugs.webkit.org/show_bug.cgi?id=116042
2013-07-01 13:46:51 +02:00
Vincent Penquerc'h
5a064ca423
typefind: avoid too low mpeg/ts probability on small amount of data
...
With the current test, we get into problems when we try to typefind
a MPEG stream from a small amount of data, which can happen when
we get data pushed from a HTTP source. We thus make a second test
to give higher probability if all the potential headers were either
pack or pes headers (ie, no potential header was unrecognized).
This fixes an issue with a MPEG1/MP2 stream being properly discovered
as video/mpeg from a file, but as audio/mpeg from souphttpsrc.
https://bugzilla.gnome.org/show_bug.cgi?id=703256
2013-07-01 11:08:24 +02:00
Patricia Muscalu
f9acd972ef
videotestsrc: do not leak lines
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703177
2013-06-27 12:39:47 +02:00
Sreerenj Balachandran
8a2dbeb1ef
playsink: Fix the block diagram of deinterlace bin.
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702465
2013-06-17 16:28:44 +02:00
Brendan Long
b5f7a621bb
playbin: Emit {audio,text,video}-changed signals when pads are removed
...
https://bugzilla.gnome.org/show_bug.cgi?id=702195
2013-06-14 14:23:11 +02:00
Sebastian Dröge
eb09e561c4
videoconvert: Fix leaking of the chroma resample helper objects
2013-06-11 15:24:05 +02:00
Sebastian Dröge
15375861b5
adder: Reject segments that have a different rate than the output segment
...
adder does no rate conversion.
2013-06-09 19:20:20 +02:00
Sebastian Dröge
4465741222
playbin: When activating a fixed sink, proxy error messages too
...
If activating a fixed sink fails, everything will fail later anyway
and we can just error out early.
2013-06-08 23:51:13 +02:00
Sebastian Dröge
44352deadb
playbin: Improve autoplugging of decoder/sink combinations by trying to activate the sink
...
And if that fails don't bother autoplugging that sink. Also gives
us more accurate sink caps.
2013-06-08 23:34:53 +02:00
Sebastian Dröge
ff8839d97b
playbin: Proxy the playbin context to the sinks
2013-06-08 23:22:54 +02:00
Sebastian Dröge
77af24c493
playbin: Proxy sink messages if we activate a sink in playbin already
...
This makes sure the application gets any context related messages and
can do whatever is required to a) get the sink a context or b) share
the context with other elements in the pipeline.
The proxying is necessary because the sink is not a child element of
playbin, but instead will at a later point be a child of some bin
inside playsink.
https://bugzilla.gnome.org/show_bug.cgi?id=700967
2013-06-08 23:22:54 +02:00
Sebastian Dröge
c49531f1b7
decodebin: Let serialize queries before caps events through
...
Otherwise we're going to deadlock forever because no autoplugging
happens without having caps, but caps can never be send because
we're blocking.
Serialized queries before caps should never be sent unless really
necessary.
2013-06-06 15:57:49 +02:00
Sebastian Dröge
ff5d3313d4
Release 1.1.1
2013-06-05 18:31:27 +02:00
Sebastian Dröge
cc5a476fc6
adder: Add GstChildProxy interface for the sinkpads
...
This allows to set the sinkpad properties more easily.
Next step: Implement proper synchronization in adder, almost done!
2013-05-30 23:56:52 +02:00
Sebastian Dröge
349174b48e
adder: Hold object lock in setcaps a bit longer to prevent race conditions
2013-05-30 23:56:52 +02:00
Sebastian Dröge
dde8d8919d
adder: Simplify segment event handling
...
We don't care about upstream segments but generate our own. This
makes the code more similar to videomixer again.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
2953810ba5
adder: Use gst_audio_info_is_equal() to check if we get the same caps
2013-05-30 23:56:52 +02:00
Sebastian Dröge
0693b78e86
adder: Don't calls gst_pad_set_caps() on sinkpads
...
It doesn't make much sense and the CAPS query handling
on the sinkpads should handle this.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
5e63a0f674
adder: Set GAP flag on silence buffers we created
2013-05-30 23:56:52 +02:00
Sebastian Dröge
667b856cbc
adder: Remove caching of the processing function
...
The compiler will generate a hashtable from the switch-case, and
we need to call functions explicitely for the volume!=1.0 cases
anyway.
2013-05-30 23:56:52 +02:00
Sebastian Dröge
a76ade2d78
adder: Add support for per-stream volumes
2013-05-30 23:56:52 +02:00
Sebastian Dröge
addb07bc58
adder: Add optimized orc code for F64 processing
2013-05-30 23:56:52 +02:00
Sebastian Dröge
308c8fef68
adder: The output buffer must be readable and writable
2013-05-30 23:56:51 +02:00
Sebastian Dröge
509246cbac
adder: Add support for muting individual pads
2013-05-30 23:56:51 +02:00
Sebastian Dröge
3974379a7f
adder: Sync pad properties with the GstController
2013-05-30 23:56:51 +02:00
Sebastian Dröge
561ce54b27
adder: Add custom GstPad subclass to hold additional data and properties
...
This will later allow to set per-stream volumes and mute status.
2013-05-30 23:56:51 +02:00
Wim Taymans
00bbca2f9f
videoconvert: free tmplines correctly
...
Keep track of how many tmplines we allocated and use that to free the
correct amount of lines.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701234
2013-05-30 05:27:31 +02:00
Daniel Drake
d32d2f0b14
playsink: pass translated color balance value to channel
...
We found a case where untranslated values were being passed from the
proxy to the underlying channel, causing bad color balance values
in some setups.
Thanks to Sebastian Dröge for clarifying how the code works, and
suggesting the fix.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701202
2013-05-29 20:20:10 +02:00
Brendan Long
96aab6d8a5
playbin: Don't take an extra reference to the custom stream combiners
...
They are automatically reffed when added to the bin because they're
already not floating anymore.
2013-05-29 20:12:48 +02:00
Sebastian Dröge
0dee7777ff
playbin: Set custom stream-combiners to NULL and unref before finalizing
2013-05-29 10:35:11 +02:00
Brendan Long
53caa99a59
playbin: Rename select to combine and selector to combiner in playbin
2013-05-29 09:53:34 +02:00
Brendan Long
ba5f6cfe72
playbin: Add support for custom stream-combiners
...
This allows to chose something else than input-selector
for multiple audio/video/text streams, e.g. an adder could
be used for audio.
It is needed for example to implement some of the more
advanced HTML5 video features.
https://bugzilla.gnome.org/show_bug.cgi?id=698851
2013-05-29 09:52:32 +02:00
Sebastian Dröge
14192c031a
decodebin: Don't call autoplug-query on shutdown
...
And remove leftover debug code
2013-05-28 13:32:23 +02:00
Sebastian Dröge
e482b5b8e6
playbin: In autoplug-queries, add the actual decoder/parser/etc template caps
...
Add the actual decoder/parser/etc caps at the very end to
make sure we don't cause empty caps to be returned, e.g.
if a parser asks us but a decoder is required after it
because no sink can handle the format directly.
2013-05-28 13:23:40 +02:00
Sebastian Dröge
a4ec6fe0b7
playbin: Forward CONTEXT queries to the corresponding sink if we have one
...
https://bugzilla.gnome.org/show_bug.cgi?id=700967
2013-05-28 13:14:15 +02:00
Sebastian Dröge
e5064ee723
playbin: Refactor autoplug-query handling
...
We now only check sinks and factories of the corresponding media
type. It doesn't make sense to pass audio/subtitle caps to a video
decoder.
2013-05-28 13:08:00 +02:00
Sebastian Dröge
d366613401
decodebin: Block on serialized queries too
...
Otherwise we will only block after the serialized, non-sticky event
after the CAPS event or the first buffer. If we're waiting for another
pad to finish autoplugging after we got final caps on this pad, it
will mean that we will let the ALLOCATION query pass although the
pad is not exposed yet.
2013-05-28 13:06:15 +02:00
Sebastian Dröge
9513b770f4
decodebin: Pass the element in the autoplug-query signal too
2013-05-28 12:10:33 +02:00
Sebastian Dröge
730e633d58
decodebin: Need to lock the chain mutex in autoplug_query
2013-05-28 11:40:51 +02:00
Sebastian Dröge
b86267b5be
playsinkconvertbin: Fix leak of the downstream caps filter
2013-05-28 11:36:58 +02:00
Sebastian Dröge
db8d53bc17
playbin: Refactor autoplug-query handling a bit
2013-05-28 11:05:21 +02:00
Wim Taymans
7b8ff707b6
videoconvert: run chroma resamplers
...
Run the chroma upsampler after unpack and the chroma subsampler
before pack for higher quality conversions and correct chroma siting.
2013-05-27 11:05:08 +02:00
Wim Taymans
e5bc2b0d05
videotestsrc: subsample chroma before packing
...
Run the chroma subsampler before packing.
2013-05-27 11:05:08 +02:00
Wim Taymans
4f2e1b46a7
videoconvert: reformat
2013-05-27 11:05:06 +02:00
Wim Taymans
620e3aad07
videoconvert: actually use the input pixels
...
Operate on the provided pixels array instead of the temp array.
2013-05-27 11:05:06 +02:00
Sebastian Dröge
92af499eb7
typefind: Ensure we have enough data when reading the sync marker in the AAC/LOAS typefinder
2013-05-24 17:43:53 +02:00
Sebastian Dröge
fa7ad8743c
decodebin: Lock the state of child elements as long as we manage their states
...
https://bugzilla.gnome.org/show_bug.cgi?id=690420
2013-05-24 13:41:46 +02:00
Sebastian Dröge
be4dba23ea
Revert "decodebin2: use NO_RESYNC flag"
...
This reverts commit 0feecef275
.
2013-05-24 11:47:13 +02:00
Sebastian Dröge
ca1279e4a3
decodebin: Use signal handler IDs instead of disconnecting by function
...
This is cleaner and faster.
2013-05-22 17:29:17 +02:00
Sebastian Dröge
504e57ccc5
decodebin: Connect and disconnect the have-type signal of typefind before starting/shutting down
2013-05-22 13:49:18 +02:00
Sebastian Dröge
f4952a9baf
typefind: Add variant=itu to the h263 typefinder caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=700770
2013-05-22 10:58:10 +02:00
Sebastian Dröge
1756f86042
playsink: Use signal handler IDs instead of disconnecting/blocking by function
...
This is cleaner and faster.
2013-05-21 16:35:18 +02:00
Sebastian Dröge
d802c7395a
playback: Only do a subset filtering for the factories if we have fixed caps
...
Otherwise we're plugging a parser/converter currently and have unfixed caps.
2013-05-15 17:15:18 +02:00
Sebastian Dröge
062246fc6e
decodebin: Return immediately from checking if a chain is complete if we're shutting down
2013-05-15 14:51:16 +02:00
Sebastian Dröge
83f2476976
decodebin: Hold the expose lock when freeing a chain
...
https://bugzilla.gnome.org/show_bug.cgi?id=700342
2013-05-15 14:47:53 +02:00
Sebastian Dröge
74a31a02fc
playbin: Fix deadlock caused by lock order inversion
...
First the source group lock, then the elements list lock.
2013-05-15 13:38:32 +02:00
Sebastian Dröge
450a47c0a5
playback: Use subset checks instead of intersection
...
https://bugzilla.gnome.org/show_bug.cgi?id=700272
2013-05-14 10:07:44 +02:00
Sebastian Dröge
b19d64d785
subparse/ssaparse: Fix event handling and order
2013-05-10 12:21:31 +02:00
Mathieu Duponchelle
aec0e48aa1
videorate: Reset base timestamp and out_frame_count in any case on SEGMENT_EVENT
...
Fixes #699187
2013-05-09 16:22:13 +02:00
Sebastian Dröge
b0ec886cb9
playbin2: Chose more balanced metric to compare ranks of decoder/sink combinations
2013-05-09 15:05:21 +02:00
Sebastian Dröge
b23f4e4ab9
playbin: Fix infinite loop in GSequence iteration code
2013-05-08 21:27:17 +02:00
Sebastian Dröge
4c52518ef5
uridecodebin: Always store queue2 elements for later removal
...
Otherwise we accumulate more and more queue2 elements, and let each
of them start a thread doing nothing but waiting each time uridecodebin
goes to PAUSED.
https://bugzilla.gnome.org/show_bug.cgi?id=699794
2013-05-08 14:52:18 +02:00
Andoni Morales Alastruey
3ad2dec005
typefind: fix detection of HLS playlists with alternative renditions
...
https://bugzilla.gnome.org/show_bug.cgi?id=699923
2013-05-08 13:23:52 +02:00
Sebastian Dröge
7ff4f8f4d4
playbin: Use the GSequence more efficiently
...
This makes it possible to take advantage of the O(log n) lookups
of GSequence on the ~1000 element lists and only do iterations
on <10 element lists. Previously the code iterated over ~1000 element
lists multiple times.
2013-05-07 15:23:05 +02:00
Sreerenj Balachandran
52c5115ff0
playbin: Use GSequence instead of GList to store the GstAVElement list.
...
The GstAVElement list might be big. Use GSequence to optimize it.
2013-05-07 15:23:05 +02:00
Sreerenj Balachandran
a8d1b45491
playbin: autoplug the audio/video decoders and sinks based on capsfeatures.
...
Autoplug the decoder elements and sink elements based on
the number of common capsfeatures if the ranks are the same.
This will also helps to autoplug the h/w_decoder and h/w_renderer.
https://bugzilla.gnome.org/show_bug.cgi?id=698712
2013-05-07 15:23:05 +02:00
Sebastian Dröge
b719dd9f89
decodebin: Expose pads when they receive EOS before any buffers
...
Stops decodebin from waiting forever to expose a pad if there
is never data on it.
https://bugzilla.gnome.org/show_bug.cgi?id=691072
2013-05-06 15:49:00 +02:00
Thibault Saunier
b940cba826
streamsplitter: Keep srcpad alive while querying peer
2013-05-02 12:29:48 +01:00
Thibault Saunier
372eddf00e
adder: Get collectpad stream lock when fowarding flush events
...
Fixes #698410
2013-05-02 12:29:48 +01:00
Tim-Philipp Müller
04a70ea835
typefindfunctions: minor SSA typefinder clean-up
...
Remove code that doesn't make sense as it is. If there's
a 2-byte UTF-16 BOM or a 4-byte UTF-32 BOM, the following
text won't be 8-bit ASCII.
2013-04-28 18:56:28 +01:00
Sebastian Dröge
7f6e1bdfdb
tcp: Use the generic marshaller instead of generating custom ones
2013-04-25 09:20:29 +02:00
Sebastian Dröge
e06cc5295a
tcp: Add FIXME comment for 2.0 to rename "host" to "bind-address" for the server elements
2013-04-25 09:06:33 +02:00
Sebastian Dröge
9c5c0ca878
streamsynchronizer: Fix check for belonging to another stream
...
https://bugzilla.gnome.org/show_bug.cgi?id=697820
2013-04-24 11:11:41 +02:00
Tim-Philipp Müller
88acbd60cd
typefindfunctions: fix crash in new MSS typefinder
...
Fixes icydemux test_first_buf_offset_when_merged_for_typefinding
unit test segfaulting on a NULL pointer.
2013-04-24 00:08:15 +01:00
Wim Taymans
c5840ebbd9
decodebin2: also remove the bytes limit
...
Remove the byte limit for adaptive http streaming. Because some fragments might
be very big, we might need a lot of buffering. I also suspect another problem
where data is actually missing and things go out of sync somehow.
2013-04-23 11:20:28 -03:00
Wim Taymans
26c5bc1ce4
decodebin2: update buffer size in multiqueue
...
When we disable buffering in the more upstream multiqueue elements,
we need to also update the queue limits. In particular, the max_size_time should
be set to 0 or else we might simply deadlock.
2013-04-23 11:20:28 -03:00
Thiago Santos
5cd07bd2af
decodebin2: only allow 'lower' multiqueues to emit buffering messages
...
When we have a scenario of demuxers linked to demuxers, decodebin2
will create multiqueue at different levels of the pipeline. The problem
is that only the lowest multiqueue's should do the buffering messaging,
as they will handle with the raw streams data.
When all multiqueues are doing buffering, the upper ones can handle
large buffers that easily fill them, moving from 0% to 100% from
buffer to buffer, causing too much buffering messages to be posted.
This hangs the pipeline unnecessarily and might lead to deadlocks.
2013-04-23 11:20:28 -03:00
Thiago Santos
6382d4c0ad
decodebin2: do not handle the next-groups list as if it was a single item
...
Decodebin2's chains store a next_groups list that was being handled as
it could only have a single element. This is true for most of the
chaining streams scenarios where streams change not very often.
In more stressfull changing scenarios, like adaptive streams, those
changes can happen very often, and in short time intervals. This could
confuse decodebin2 as this list was always being used as a single
element list.
This patches makes it handle as a real list, using iteration instead
of picking the first element as the correct one always.
2013-04-23 10:32:19 -03:00
Thiago Santos
054ffc6e2b
decodebin2: preserve next groups order
2013-04-23 10:32:19 -03:00
Thiago Santos
42db7c7b08
decodebin2: still report chain as drained when not 'handled'
...
Even if the chain hasn't been 'handled' in this switching round,
report it as drained so upper chains/groups know abou it.
This makes switching happen on upper levels of the groups/chain
trees
2013-04-23 10:32:19 -03:00
Thiago Santos
ce20bc1dc0
typefind: add smoothstreaming manifest typefinding
...
Checks if the received XML is a smoothstreaming manifest
in both UTF8 and UTF16 formats. The check is made for a
SmoothStreamingMedia top level element.
Conflicts:
gst/typefind/gsttypefindfunctions.c
2013-04-23 10:32:19 -03:00
Sebastian Dröge
d77f76049e
streamsynchronizer: Don't consider a stream added for an already running one as "new"
...
Fixes enabling visualizations after disabling them after they were enabled already.
2013-04-23 13:54:49 +02:00
Sebastian Dröge
2e017bd595
streamsynchronizer: If a stream belongs to an already running stream, don't wait
...
This fixes enabling visualizations after the audio stream already started.
https://bugzilla.gnome.org/show_bug.cgi?id=697820
2013-04-23 13:19:38 +02:00
Tim-Philipp Müller
f5c0d61be7
Update disted orc backup files
...
Generated with 0.4.17 now.
2013-04-22 13:58:33 +01:00
Tim-Philipp Müller
830926e47d
uridecodebin: don't report 'no uri handler found' if the URI was rejected by a source
...
If a source element could be created for a URI, but all elements rejected
the URI for some reason, propagate the error from the URI handler instead
of reporting a 'no uri handler found for protocol xyz' error, which is
confusing. Fixes error reporting with dvb:// URIs when the channel config
file could not be found or not be parsed or the channel isn't listed.
https://bugzilla.gnome.org/show_bug.cgi?id=678892
2013-04-21 17:30:58 +01:00
Thibault Saunier
fbe80a688d
adder: Do not try to wait for flush_stop after receiving a segment event
...
+ Add a simple test
2013-04-21 16:11:41 +02:00
Stefan Sauer
fa9c0cdf6e
volume: skip controlled processing if we have no timestamp
2013-04-21 16:11:41 +02:00
Sreerenj Balachandran
9c94a1812f
playbin: use _plugin_feature_rank_compare API instead of duplicating the code.
2013-04-18 13:59:52 +02:00
Sreerenj Balachandran
8cf6049643
decodebin: use _plugin_feature_rank_compare API instead of duplicating the code.
2013-04-18 13:59:36 +02:00
Philippe Normand
26fb72cf65
uridecodebin: query bandwidth capability to source element
...
Use a scheduling query to check if the source element has some
bandwidth limitations. If this is the case on-disk buffering might be
used. If the source element doesn't handle the scheduling query then
fallback to checking the URI protocol against the hardcoded list of
protocols known to handle buffering already.
Fixes bug 693484.
2013-04-16 16:47:28 +02:00
Sebastian Dröge
948a4a3632
gst: Add better support for static plugins
2013-04-15 15:52:58 +02:00
Sreerenj Balachandran
9b33c75cd4
playbin: use ascending order for name based sorting of pluginfeatures.
...
The compare_factories_func() should return negative value
if the rank of both PluginFeatures are equal and the name of
first PluginFeature comes before the second one (== ascending order).
2013-04-15 12:05:22 +02:00
Sreerenj Balachandran
f07eb23728
decodebin: use ascending order for name based sorting of pluginfeatures.
...
The _decode_bin_compare_factories_func() should return negative
value if the rank of both PluginFeatures are equal and the name of
first PluginFeature comes before the second one (== ascending order).
2013-04-15 12:05:16 +02:00
Tim-Philipp Müller
1c0288db38
playbin: fix jpeg passthrough to decoder sinks by marking image/* as video stream
2013-04-12 11:51:30 +01:00