Alessandro Decina
6a699b6c40
decodebin: make it possible to register multiple handlers for autoplug-select
...
Change the way autoplug-select is accumulated so that it's possible to have
multiple handlers. The handlers keep getting called as long as they keep
returning GST_AUTOPLUG_SELECT_TRY.
One practical example of when this is needed is when hooking into playbin's
uridecodebin, which is perhaps not very elegant but the only way to influence
which streams playbin autoplugs/exposes.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723096
2014-01-28 13:45:07 +11:00
Sjoerd Simons
43237ad0e2
uridecodebin: Drop hardcoded list of media suitable for download buffering
...
Discussion on IRC indicated that the main reason for this list was to
prevent demuxers that can trigger a lot of seeking from using
progressive buffering using queue2 (which due to being seekable triggers
that behaviour).
However given that upstream can indicate seeks are possible but should
be avoided via a scheduling query, this extra whitelisting shouldn't be
necessary for well-behaved demuxers.
https://bugzilla.gnome.org/show_bug.cgi?id=704933
2014-01-24 22:34:51 +01:00
Wim Taymans
4c8e211e57
videoconvert: tweak the scoring algorithm
...
Make a little table of conversions and manually score them. Use this
info to define better weights for the scoring algorithm.
give separate scores for doing changes and the impact of the change,
This allows us to avoid conversion when we can but still allow fairly
lossless changes.
The old code did not penalize GRAY conversions, PAL conversions were
punished too low and depth conversions too high.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=722656
2014-01-24 12:19:43 +01:00
Sebastian Dröge
4e3d101aa8
audioresample: It's HAVE_EMMINTRIN_H, not HAVE_XMMINTRIN_H for SSE2
2014-01-20 16:11:04 +01:00
Antoine Jacoutot
daa194b71e
audioresample: Fix build on x86 if emmintrin.h is available but can't be used
...
On i386, EMMINTRIN is defined but not usable without SSE so check for
__SSE__ and __SSE2__ as well.
https://bugzilla.gnome.org/show_bug.cgi?id=670690
2014-01-20 16:08:41 +01:00
Wonchul Lee
c2746d753e
playbin: Remove unnecessary assignment
...
Remove duplicated assignment
https://bugzilla.gnome.org/show_bug.cgi?id=722491
2014-01-18 13:33:57 +01:00
Sebastian Dröge
4f8f5918be
playbin: Insert decoders without GstAVElement information between the other decoders
...
Otherwise they would be preferred over all decoders independent
of their ranks.
https://bugzilla.gnome.org/show_bug.cgi?id=722316
2014-01-18 13:33:57 +01:00
Sebastian Dröge
6b46019abf
playbin: Only put parsers and sinks first, not all non-decoders
...
https://bugzilla.gnome.org/show_bug.cgi?id=722316
2014-01-18 13:33:57 +01:00
Wim Taymans
5df274f824
streamsplitter: handle ACCEPT_CAPS query correctly
...
We can accept a caps when one of the downstream peers can accept the
caps. This is not the same as checking a subset of the getcaps
result because parsers might accept broader caps than what their getcaps
function returns (See https://bugzilla.gnome.org/show_bug.cgi?id=677401 ).
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=722330
2014-01-16 16:32:34 +01:00
Wim Taymans
1fa70ac02d
videoconvert: don't interpolate chroma in I420 -> RGB
...
Don't try to interpolate the chroma samples, the used algorithm only
works for horizontal cositing. Let's switch to a faster and safer
version until we handle chroma siting correctly in the fastpaths.
2014-01-13 17:24:01 +01:00
Vincent Penquerc'h
0d66d05c98
videotestsrc: fix unit test breaking on duration query
...
The new switch caused breaks to not break of the main switch
anymore, causing fall through.
2014-01-10 14:24:12 +00:00
Sebastian Dröge
b21a67f99e
videoconvert: Update disted orc files once again
2014-01-10 15:06:23 +01:00
Vincent Penquerc'h
1185fbd29a
videotestsrc: do not set TIME duration when asked for another format
...
This fixes asserts in pipelines such as:
gst-launch-1.0 videotestsrc num-buffers=1000 ! x264enc ! h264parse ! \
matroskamux name=mux ! filesink location=test.mkv
2014-01-10 09:56:34 +00:00
Sebastian Dröge
4ff4c1c10a
videoconvert: Update disted orc files
2014-01-10 09:21:30 +01:00
Wim Taymans
14b5999bca
videoconvert: rework YUV->RGB fastpaths
...
Rework the orc code to be around 10% faster and support arbitrary matrices.
Pass the matrix parameters to the YUV->RGB functions to make them work
for all matrices. This enables more and faster fastpath conversions.
See https://bugzilla.gnome.org/show_bug.cgi?id=721701
2014-01-09 18:19:59 +01:00
Wim Taymans
5ca04cb798
videoconvert: fix I420 to BGRA fast-path some more
...
Calculate alpha value differently so that we can avoid running out
of registers.
2014-01-09 18:08:41 +01:00
Wim Taymans
38e1541466
videoconvert: remove unused code
2014-01-08 16:20:12 +01:00
Stefan Sauer
86e6f10781
typefind: add support of BWF RF64 a 64bit wav variant
...
Detect and describe the RF64 Broadcast Wave Format.
Fixes #519220
2014-01-05 23:35:52 +01:00
Sebastian Dröge
eff7866dd0
videotestsrc: Always set pixel-aspect-ratio and interlace-mode in the fixed caps
...
Otherwise our caps will not be compatible with elements that require a
1/1 pixel-aspect-ratio or progressive video.
https://bugzilla.gnome.org/show_bug.cgi?id=721103
2013-12-30 19:48:29 +01:00
Edward Hervey
ed59e06c57
videorate: Remove useless assignement
...
Was already set before
2013-12-30 13:45:04 +01:00
Matthieu Bouron
98e0dec715
playback: add ANY caps features to default audio/video raw caps
...
Allows elements using audio/video caps features to be used by playbin.
2013-12-30 11:25:49 +01:00
Sebastian Dröge
cd4602ecfa
videoconvert: Fix I420 to BGRA fast-path alpha setting
...
This fast-path was adding 128 to every component including
alpha while it should only be done for all components except
alpha. This caused wrong alpha values to be generated.
Also remove the high-quality I420 to BGRA fast-path as it needs
the same fix, which causes an additional instruction, which causes
orc to emit more than 96 variables, which then just crashes.
This can only be fixed in orc by breaking ABI and allowing more
variables.
2013-12-23 14:56:15 +01:00
Sebastian Dröge
218d0702c9
subparse: Add support for parsing LRC subtitles
...
https://bugzilla.gnome.org/show_bug.cgi?id=678590
2013-12-18 15:52:53 +01:00
Sebastian Dröge
bc2342e4ad
subparse: Add typefinder for LRC subtitles
2013-12-18 15:52:53 +01:00
Stefan Sauer
51038d70aa
pbutils: add typefinder and descriptions for audio/x-xi
...
xi files can be read by libsndfile.
2013-12-17 18:06:12 +01:00
Wim Taymans
6db3b535eb
uridecodebin: copy sticky events
2013-11-29 17:30:09 +01:00
Wim Taymans
a7151d0b3e
decodebin2: copy sticky events
2013-11-29 17:26:13 +01:00
Tim-Philipp Müller
1d40b1d2bb
tcp: fix compilation with MSVC
...
error C2440 at line 165 of gsttcpserversink.c
type cast error: cannot convert from GSocket* to GstMultiSinkHandle
2013-11-28 16:24:13 +00:00
Wim Taymans
65e492a403
decodebin2: activate ghost pad before targetting
...
Activate the decodebin2 pad before setting the target. This makes sure
that the events are copied.
2013-11-28 11:27:23 +01:00
Sebastian Dröge
0e9806a03e
playsink: Fix visualizations if no visualization plugin was set
...
https://bugzilla.gnome.org/show_bug.cgi?id=712280
2013-11-26 12:03:24 +01:00
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