Wim Taymans
13e5b986cd
audio-resampler: improve tap calculation
...
Return the taps from make_taps, this makes it possible to not actually
have to cache the taps when we want to.
Fix overflow in phase calculation.
2016-03-28 13:25:51 +02:00
Wim Taymans
6397db74cd
audio-resampler: fix guint -> gint
2016-03-28 13:25:51 +02:00
Wim Taymans
45574ba4f4
audio-resampler: improve phase error
...
Accept a phase error of maximum 10%, which turns out to be inaudible.
2016-03-28 13:25:51 +02:00
Wim Taymans
b0b3350717
audio-resampler: improve phase calculation
...
Also calculate the GCD with the current phase so that we can accurately
represent the current phase with the new resample rates.
2016-03-28 13:25:51 +02:00
Wim Taymans
bbdb447b2b
audio-resampler: fix history after buffer resize
...
When we resize the temp buffer, move the history in its new place.
2016-03-28 13:25:51 +02:00
Wim Taymans
ed747492ef
audio-resampler: add reset function
...
Add a function to reset the audio-resampler.
Use new function in audio-converter
Use the new functions in gstaudioresample and fixup drain functions.
2016-03-28 13:25:51 +02:00
Wim Taymans
ea469ad9a8
audio-resampler: Small fixes
...
Fix the phase.
Reset the new sample buffer with 0.
Move samples around when we change the filter size.
2016-03-28 13:25:51 +02:00
Wim Taymans
a489f9ddb3
audio-resampler: Rework make_taps
...
Make it return a pointer to the generated taps. That way we can later
decide to actually cache it or not.
2016-03-28 13:25:51 +02:00
Wim Taymans
05eb109c0d
audio-resampler: handle filter length changes
...
Update the buffer with history samples when the filter length changes
because of an update of the parameters or sample rates.
2016-03-28 13:25:51 +02:00
Wim Taymans
8dfb3ffb99
audio-resampler: fix samples_avail
...
We only know the taps after we calculate them.
2016-03-28 13:25:51 +02:00
Wim Taymans
c8fc9d88a7
audio-resampler: work on dynamically changing the samplerate
...
Calculate the new phase for the new sample rate.
Fix some docs.
2016-03-28 13:25:51 +02:00
Wim Taymans
4e48867097
audio-resampler: small cleanups
2016-03-28 13:25:51 +02:00
Wim Taymans
85c77659b9
audio-resampler: add fallback to mono function
...
Remove stereo implementations. Implement fall back to mono functions
when the stereo function is missing.
2016-03-28 13:25:50 +02:00
Wim Taymans
2555317a71
audio-resampler: add float stereo SSE function
2016-03-28 13:25:50 +02:00
Wim Taymans
e74c207433
audio-resampler: Fix compilation of intrinsics
...
Only compile intrinsics when we are building for the selected
architecture.
Add sse4.1 optimized int32 resampler code.
2016-03-28 13:25:50 +02:00
Wim Taymans
98bd349b88
audioconvert: only resample on supported formats
2016-03-28 13:25:50 +02:00
Wim Taymans
d348fbb9b9
audio-converter: make some optimized functions
...
Make an optimized function that just calls the resampler when possible.
Optimize the resampler transform_size function a little.
2016-03-28 13:25:50 +02:00
Wim Taymans
23531bdc93
audio-resampler: remove mirror function
...
We don't need to mirror the input, just assume 0 samples.
Always move the processed samples to the start of the buffer.
Add some G_LIKELY
2016-03-28 13:25:50 +02:00
Wim Taymans
6f685410b1
audio-resampler: also enable sse when sse2 is available
2016-03-28 13:25:50 +02:00
Wim Taymans
71871c5048
audio-resampler: optimizations
...
Improve int16 resampling by using pmaddwd
Use intrinsics to scale and pack int16 samples
Align the coefficients so that we can use aligned loads
Add padding to taps and samples so that we don't have to use partial
loads for the remainder of the loops.
Remove copy_n, we can reuse the plain copy function with some new
parameters.
Align and pad the sample array.
2016-03-28 13:25:50 +02:00
Wim Taymans
f55a67ca7c
audio-resampler: make pluggable optimized functions
...
Add support for x86 specialized functions and select them at runtime.
2016-03-28 13:25:50 +02:00
Wim Taymans
819c4c26c7
audio-resampler: combine functions
2016-03-28 13:25:50 +02:00
Wim Taymans
d5d1ac6f56
defs: update
2016-03-28 13:25:50 +02:00
Wim Taymans
de37491662
audio-converter: simplify API
...
Remove the consumed/produced output fields from the resampler and
converter. Let the caler specify the right number of input/output
samples so we can be more optimal.
Use just one function to update the converter configuration.
Simplify some things internally.
Make it possible to use writable input as temp space in audioconvert.
2016-03-28 13:25:50 +02:00
Wim Taymans
1d9a793545
audio-converter: more work on resampling
...
- Fix the resampler in the audio converter
- fix memory leaks
2016-03-28 13:13:59 +02:00
Wim Taymans
75d668e152
audio-converter: add resampler
...
Add a resampler to the processing chain when needed.
port the audio resampler to the new audioconverter library
2016-03-28 13:13:59 +02:00
Jan Schmidt
5cc88fe610
win32: update win32 exports for new API
2016-03-25 01:13:54 +11:00
Jan Schmidt
fd2a14144a
subparse: WebVTT parsing support
...
WebVTT is a new subtitle format for HTML5 video. In this first
version of the parser the cue settings are parsed but only stored in
the internal parser state structure. Later on these settings could be
part of the GstBuffer metadata.
https://bugzilla.gnome.org/show_bug.cgi?id=629764
2016-03-25 00:58:42 +11:00
Jan Schmidt
ecb8d2e023
typefind: Add a typefinder for WebVTT files
2016-03-25 00:58:41 +11:00
Jan Schmidt
468111ee49
typefind: Reduce URI typefinder from MAX to LIKELY
...
Don't claim maximum likelihood for anything that starts
with text that looks like a uri, it's too broad.
2016-03-25 00:58:41 +11:00
Jan Schmidt
fd92bdf894
decodebin2: Hold new buffering_post lock while posting msgs
...
There's a small window between decodebin choosing a buffering level
to post and another thread choosing a different buffering level
where things can race. Close that window by holding a new lock
that's only for posting buffering messages - like what was done
in multiqueue.
https://bugzilla.gnome.org/show_bug.cgi?id=764020
2016-03-24 15:01:15 +02:00
Tim-Philipp Müller
f4fb623aba
audiodecoder: avoid unnecessary gst_pad_has_current_caps() checks
...
No need to do this for each input buffer, we have the input caps
stored somewhere already.
https://bugzilla.gnome.org/show_bug.cgi?id=763337
2016-03-24 14:49:12 +02:00
Jimmy Ohn
65f721b326
codec-utils: Add utilities for AAC and the AACHead header
...
Add utilities about the channels and sample rate for AAC.
https://bugzilla.gnome.org/show_bug.cgi?id=749110
2016-03-24 14:27:21 +02:00
Jimmy Ohn
090d0d1961
decodebin: Modify result of seekable in check_upstream_seekable function
...
In check_upstream_seekable function, it returns FALSE value even though
we already declare about the seekable variable. So, This patch return
result of seekable in check_upstream_seekable function.
https://bugzilla.gnome.org/show_bug.cgi?id=763975
2016-03-24 14:26:23 +02:00
Vineeth TM
44b70ca3a1
base: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763075
2016-03-24 14:25:41 +02:00
Stian Selnes
93196092d1
rtcpbuffer: Add API for APP packets
...
https://bugzilla.gnome.org/show_bug.cgi?id=761944
2016-03-24 14:24:11 +02:00
Haakon Sporsheim
d8e9a711a0
rtcpbuffer: Add profile-specific extension API.
...
https://bugzilla.gnome.org/show_bug.cgi?id=761950
2016-03-24 14:22:54 +02:00
Sebastian Dröge
2d1c9f8c0f
Back to development
2016-03-24 13:32:52 +02:00
Sebastian Dröge
d67525d594
Release 1.8.0
2016-03-24 12:19:23 +02:00
Sebastian Dröge
407dd05da1
Update .po files
2016-03-24 11:43:05 +02:00
Víctor Manuel Jáquez Leal
327d617d39
install-plugins: update documentation
...
Use gst-inspect-1.0 instead of gst-inspect-0.10
https://bugzilla.gnome.org/show_bug.cgi?id=763316
2016-03-24 10:29:27 +02:00
Sebastian Dröge
a730be9cbd
Release 1.7.91
2016-03-15 12:02:20 +02:00
Sebastian Dröge
3b3d1c203b
Update .po files
2016-03-15 11:48:09 +02:00
Sebastian Dröge
ee86222fdf
po: Update translations
2016-03-15 11:40:06 +02:00
Sebastian Dröge
9c2d76fb9f
decodebin: Shut down all elements explicitly to NULL state before freeing the decode chain
...
Due to transient locked state during autoplugging, some elements might be
ignored by the GstBin::change_state() and might still be running. Which could
then cause pad-added and similar accessing decodebin state that does not exist
anymore, and crash.
https://bugzilla.gnome.org/show_bug.cgi?id=763625
2016-03-14 17:09:32 +02:00
Sebastian Dröge
65390b5129
multihandlesink: Remove useless streamheader storage
...
We don't do anything with it but always get them from the caps anyway, so
stop storing them and having complicated logic around that.
https://bugzilla.gnome.org/show_bug.cgi?id=763278
2016-03-14 12:45:33 +02:00
Sebastian Dröge
1d4fb48718
multihandlesink: Only don't send HEADER buffers normally if they are actually streamheaders from the caps
...
And also consider HEADER buffers without DELTA_UNIT flag as sync points. This
fixes sync-mode=2 with mpegtsmux for example, which has no streamheaders but
puts the HEADER flag on its keyframes.
https://bugzilla.gnome.org/show_bug.cgi?id=763278
2016-03-14 12:45:33 +02:00
Sebastian Dröge
916746e731
decodebin: expose_pad() is always called with lock==TRUE, simplify code
...
This basically reverts ee44337fc3
.
https://bugzilla.gnome.org/show_bug.cgi?id=763491
2016-03-14 12:45:29 +02:00
Sebastian Dröge
65d09c1495
decodebin: Don't check twice if the decode chain is complete in pad_added_cb()
...
expose_pad() already does the same.
https://bugzilla.gnome.org/show_bug.cgi?id=763491
2016-03-14 12:45:29 +02:00
Sebastian Dröge
001c7f04a0
decodebin: Don't hold EXPOSE_LOCK in type_found() outside the stream lock
...
In other places we lock it the other way around, leading to possible
deadlocks. Also this will deadlock if analyze_pad() causes a new element to be
autoplugged that adds new pads on itself when its state is changed.
https://bugzilla.gnome.org/show_bug.cgi?id=763491
2016-03-14 12:45:29 +02:00