Alessandro Decina [Wed, 4 May 2016 01:33:50 +0000 (11:33 +1000)]
decodebin: an element can negotiate before we block it
When we initialize an element in decodebin, we 1) set it to PAUSED and
push sticky events on its sinkpad to trigger negotiation 2) block its
src pad(s) to detect CAPS events. We can't block before 1) as that
would lead to a deadlock.
It's possible (and common) tho that an element configures its srcpad
during 1) and before 2). Therefore before this change we would
typically block and expose an element's pad only once the element
output its first buffer, triggering sticky events to be resent. One
consequence of this behaviour is that it sometimes broke
renegotiation.
With this change now we consider a pad ready to be exposed when it's
->blocked or has fixed caps (which were set before we could block it).
https://bugzilla.gnome.org/show_bug.cgi?id=765456
Thiago Santos [Mon, 2 May 2016 17:21:55 +0000 (14:21 -0300)]
opusdec: intersect with the filter before returning on getcaps
So upstream gets a smaller set to decide upon as it is what it requested
with the filter
https://bugzilla.gnome.org/show_bug.cgi?id=765684
Thiago Santos [Mon, 2 May 2016 13:23:09 +0000 (10:23 -0300)]
opusdec: improve getcaps to return all possible rates
The library is capable of converting to different rates.
Includes tests.
https://bugzilla.gnome.org/show_bug.cgi?id=765684
Thiago Santos [Mon, 2 May 2016 13:21:52 +0000 (10:21 -0300)]
opusdec: remove artificial restriction on rate negotiation
Remove restrictions when rate is 48000, the underlying lib supports
converting any of the input to any of the output rates.
https://bugzilla.gnome.org/show_bug.cgi?id=765684
Thiago Santos [Mon, 2 May 2016 02:19:57 +0000 (23:19 -0300)]
opusdec: refactor getcaps repeated code into a function
Easier to read and maintain
Thiago Santos [Mon, 2 May 2016 13:36:07 +0000 (10:36 -0300)]
tests: opus: remove apparently useless macro in tests
Sebastian Dröge [Fri, 29 Apr 2016 08:06:49 +0000 (11:06 +0300)]
encoding-profile: Fix caps memory leak
Sebastian Dröge [Thu, 28 Apr 2016 08:21:47 +0000 (11:21 +0300)]
encoding-profile: Recurse into nested container profiles and only add the final audio/video streams
If we e.g. have AVI with DV container with video/audio inside the DV
container, we can't handle this at this point with an encoding profile.
Instead of erroring out, flatten the container hierarchy.
https://bugzilla.gnome.org/show_bug.cgi?id=765708
Sebastian Dröge [Thu, 28 Apr 2016 08:18:23 +0000 (11:18 +0300)]
encoding-profile: Fail to create encoding profile from discoverer info if no streams could be added
https://bugzilla.gnome.org/show_bug.cgi?id=765708
Sebastian Dröge [Thu, 28 Apr 2016 08:15:53 +0000 (11:15 +0300)]
encoding-profile: Move adding of each stream to a helper function
https://bugzilla.gnome.org/show_bug.cgi?id=765708
Aurélien Zanelli [Fri, 21 Aug 2015 08:40:33 +0000 (10:40 +0200)]
exiftag: handle GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM tag
This tag match the EXIF_TAG_FOCAL_LENGTH_IN_35_MM_FILM exif tag and is
stored on a short. Hence there is a precision loss compared to the
GstTag which is a double value.
https://bugzilla.gnome.org/show_bug.cgi?id=753930
Aurélien Zanelli [Fri, 21 Aug 2015 08:39:36 +0000 (10:39 +0200)]
tag: add GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM tag
It is the 35 mm equivalent focal length of the lens, mainly used in
photography. Tag value is stored in a double value to be consistent with
GST_TAG_CAPTURING_FOCAL_LENGTH.
https://bugzilla.gnome.org/show_bug.cgi?id=753930
Guillaume Desmottes [Thu, 28 Apr 2016 06:59:25 +0000 (09:59 +0300)]
opusdec: fix caps leaks
The caps returned by gst_pad_get_allowed_caps() was leaked.
https://bugzilla.gnome.org/show_bug.cgi?id=765706
Kipp Cannon [Wed, 27 Apr 2016 09:08:46 +0000 (18:08 +0900)]
audio: Add const to segment parameter of gst_audio_buffer_clip()
e.g., allows this to be used with the reference retrieved by
gst_event_parse_segment().
https://bugzilla.gnome.org/show_bug.cgi?id=765663
Jakub Adam [Thu, 21 Apr 2016 06:45:40 +0000 (08:45 +0200)]
ximagesink: generate reconfigure on window handle change
When ximagesink is given a new window handle, it should check
its geometry and if the size of the new window differs from
the previous one, create reconfigure event in order to get
a chance to negotiate a more suitable image resolution with
the upstream elements.
We can't rely on receiving Expose or ConfigureNotify from
the X server for the newly assigned window, which would also
generate reconfigure.
https://bugzilla.gnome.org/show_bug.cgi?id=765424
Sebastian Dröge [Mon, 25 Apr 2016 14:16:04 +0000 (17:16 +0300)]
smartencoder: Only accept TIME segments for real
... and don't try to push pending data without ever having received a SEGMENT
event before EOS
https://bugzilla.gnome.org/show_bug.cgi?id=765541
Sebastian Dröge [Mon, 25 Apr 2016 13:48:36 +0000 (16:48 +0300)]
codec-utils: H265 level idc 0 is not valid
Don't put level=0 into the caps, it confuses other elements.
https://bugzilla.gnome.org/show_bug.cgi?id=765538
Sebastian Dröge [Mon, 25 Apr 2016 13:47:00 +0000 (16:47 +0300)]
codec-utils: H264 level idc 0 is not valid
Don't put level=0 into the caps, it confuses other elements.
https://bugzilla.gnome.org/show_bug.cgi?id=765538
Sebastian Dröge [Mon, 25 Apr 2016 13:06:39 +0000 (16:06 +0300)]
encoding-profile: Remove codec_data and streamheader fields from constraint caps
When converting discoverer output to an encoding profile, it makes sense to
omit these. It's very very unlikely that our encoder is going to produce bit
by bit the same codec_data or streamheader.
https://bugzilla.gnome.org/show_bug.cgi?id=765534
Sebastian Dröge [Mon, 25 Apr 2016 12:05:36 +0000 (15:05 +0300)]
encoding-profile: Don't put G_BEGIN_DECLS around #include statements
It should only be around our own declarations.
Wim Taymans [Fri, 22 Apr 2016 13:07:10 +0000 (15:07 +0200)]
video-converter: add more fastpaths for I420 -> RGB
Use the I420->BGRA and a new I420->ARGB to speed up any I420 to RGB
operation.
Josep Torra [Tue, 19 Apr 2016 15:36:20 +0000 (17:36 +0200)]
sdp: update since markers to 1.8.1 for some new APIs
As we decided to backport some fixes we update the since markers.
Tim-Philipp Müller [Sun, 17 Apr 2016 15:21:32 +0000 (16:21 +0100)]
tests: vorbisenc: fix with CK_FORK=no
Vivia Nikolaidou [Tue, 12 Apr 2016 13:32:20 +0000 (16:32 +0300)]
decodebin: Always add a multiqueue in single-stream use-buffering pipelines
If we are configured to use buffering and there is no demuxer in the chain, we
still want a multiqueue, otherwise we will ignore the use-buffering property.
In that case, we will insert a multiqueue after the parser or decoder - not
elsewhere, otherwise we won't have timestamps.
https://bugzilla.gnome.org/show_bug.cgi?id=764948
Guillaume Desmottes [Mon, 18 Apr 2016 14:39:02 +0000 (17:39 +0300)]
gst-play: call gst_deinit()
So we can use gst-play to track memory leaks.
https://bugzilla.gnome.org/show_bug.cgi?id=765216
Tim-Philipp Müller [Fri, 15 Apr 2016 16:48:26 +0000 (17:48 +0100)]
win32: update .def for new API
Jan Schmidt [Fri, 15 Apr 2016 16:11:59 +0000 (02:11 +1000)]
Revert "audioringbuffer: start ringbuffer if needed upon commit"
This reverts commit
13ee94ef1091f8a8a90dbd395b39876c26c5188e.
Causes audio glitches at startup by starting to output segments
from the ringbuffer before it has been filled / fully prerolled.
https://bugzilla.gnome.org/show_bug.cgi?id=657076
Aleix Conchillo Flaqué [Fri, 15 Apr 2016 07:18:50 +0000 (00:18 -0700)]
sdpmessage: new gst_sdp_media_parse_keymgmt/gst_sdp_media_parse_keymgmt
We add a couple of new functions gst_sdp_media_parse_keymgmt and
gst_sdp_media_parse_keymgmt. We also implement
gst_sdp_message_attributes_to_caps and gst_sdp_media_attributes_to_caps
in terms of these new functions and also gst_mikey_message_to_caps.
Aleix Conchillo Flaqué [Fri, 15 Apr 2016 06:29:34 +0000 (23:29 -0700)]
mikey: add new function gst_mikey_message_to_caps
Vincent Penquerc'h [Fri, 15 Apr 2016 11:54:32 +0000 (12:54 +0100)]
subparse: fix build with GCC 4.6.3
gstsubparse.c: In function ‘parse_subrip’:
gstsubparse.c:988:7: error: ignoring return value of ‘strtol’, declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors
https://bugzilla.gnome.org/show_bug.cgi?id=765042
Josep Torra [Fri, 15 Apr 2016 11:08:38 +0000 (13:08 +0200)]
.gitignore: add test-resample binary
Aleix Conchillo Flaqué [Fri, 15 Apr 2016 00:26:54 +0000 (17:26 -0700)]
mikey: allow passing srtp or srtcp to create mikey message
Current implementation requires all srtp and srtcp parameters to be
given in the caps. MIKEY uses only one algorithm for encryption and one
for authentication so we now allow passing srtp or srtcp parameters. If
both are given srtp parametres will be preferred.
https://bugzilla.gnome.org/show_bug.cgi?id=765027
Julien Isorce [Thu, 14 Apr 2016 09:00:06 +0000 (10:00 +0100)]
Automatic update of common submodule
From 6f2d209 to ac2f647
Sebastian Dröge [Wed, 13 Apr 2016 07:07:33 +0000 (10:07 +0300)]
videometa: Initialize all fields of all metas with default values
The metas are not allocated with all fields initialized to zeroes.
https://bugzilla.gnome.org/show_bug.cgi?id=764902
Arjen Veenhuizen [Mon, 11 Apr 2016 15:28:00 +0000 (15:28 +0000)]
videometa: Explicitly initialize GstVideoCropMeta on init
It is not allocated with all fields initialized to 0.
https://bugzilla.gnome.org/show_bug.cgi?id=764902
Guillaume Desmottes [Mon, 21 Mar 2016 15:34:37 +0000 (16:34 +0100)]
alsa: properly convert position-less channels from ALSA
The only way for ALSA to expose a position-less multi channels is to
return an array full of SND_CHMAP_MONO. Converting this to a
GST_AUDIO_CHANNEL_POSITION_MONO array would be invalid as
GST_AUDIO_CHANNEL_POSITION_MONO is meant to be used only with one
channel.
Fix this by using GST_AUDIO_CHANNEL_POSITION_NONE which is meant to be
used for position-less channels.
https://bugzilla.gnome.org/show_bug.cgi?id=763799
Guillaume Desmottes [Mon, 21 Mar 2016 15:29:39 +0000 (16:29 +0100)]
audioringbuffer: don't attempt to reorder position-less channels
As said in its doc GST_AUDIO_CHANNEL_POSITION_NONE is meant to be used
for "position-less channels, e.g. from a sound card that records 1024
channels; mutually exclusive with any other channel position".
But at the moment using such positions would raise a
'g_return_if_reached' warning as gst_audio_get_channel_reorder_map()
would reject it.
Fix this by preventing any attempt to reorder in such case as that's not
what we want anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=763799
Guillaume Desmottes [Mon, 21 Mar 2016 11:26:50 +0000 (07:26 -0400)]
audio: add debug output if channels mapping does not match
https://bugzilla.gnome.org/show_bug.cgi?id=763985
Guillaume Desmottes [Mon, 21 Mar 2016 10:58:13 +0000 (11:58 +0100)]
alsa: add some debugging output to alsa_detect_channels_mapping()
https://bugzilla.gnome.org/show_bug.cgi?id=763985
Guillaume Desmottes [Mon, 21 Mar 2016 10:46:45 +0000 (11:46 +0100)]
gst-audio: add gst_audio_channel_positions_to_string()
We currently don't log much about channel positions making debugging
harder as it should be. This is the first step in my attempt to improve
this.
https://bugzilla.gnome.org/show_bug.cgi?id=763985
Guillaume Desmottes [Mon, 21 Mar 2016 09:09:10 +0000 (05:09 -0400)]
alsa: factor out alsa_detect_channels_mapping()
This code was duplicated in alsasrc and alsasink.
https://bugzilla.gnome.org/show_bug.cgi?id=763985
Guillaume Desmottes [Mon, 21 Mar 2016 09:06:18 +0000 (05:06 -0400)]
alsa: coding style fix
Was using tabs instead of spaces.
https://bugzilla.gnome.org/show_bug.cgi?id=763985
Vivia Nikolaidou [Tue, 12 Apr 2016 13:34:00 +0000 (16:34 +0300)]
fdmemory, rtpbasedepayload: Ran gst-indent
https://bugzilla.gnome.org/show_bug.cgi?id=764948
Vivia Nikolaidou [Tue, 12 Apr 2016 13:25:12 +0000 (16:25 +0300)]
decodebin: Rename misleading variable is_parser_converter into is_parser
In that place, the variable isn't checking whether the element is a
converter, only if it is a parser.
https://bugzilla.gnome.org/show_bug.cgi?id=764948
Fabrice Bellet [Mon, 11 Apr 2016 09:28:09 +0000 (11:28 +0200)]
audio: Fix a race with the audioringbuffer thread
There is a small window of time where the audio ringbuffer thread
can access the parent thread variable, before it's initialized
by the parent thread. The patch replaces this variable use by
g_thread_self().
https://bugzilla.gnome.org/show_bug.cgi?id=764865
Tim-Philipp Müller [Wed, 6 Apr 2016 16:57:28 +0000 (17:57 +0100)]
tests: libscpp: test RTP/RTCP buffer init macros with C++ compiler
Jan Schmidt [Wed, 6 Apr 2016 11:03:19 +0000 (21:03 +1000)]
subtitleoverlay: Don't complain when stream-start is the first event.
When blocking the subtitle pad, it's expected that stream-start
is the first event, and that it can precede caps arriving on the
peer pad - in fact the caps can only have arrived on the peer
pad when it was pre-primed with sticky events previously.
Instead, just pass the stream-start and don't block, because
stream-start is sticky anyway.
Jan Schmidt [Wed, 6 Apr 2016 11:00:10 +0000 (21:00 +1000)]
subparse: WebVTT Cue identifiers are optional
Don't require a cue identifier preceding the time range line
when parsing WebVTT. We could also store the CueID, but it's
not using anywhere, so just ignore it for now.
Sebastian Dröge [Tue, 5 Apr 2016 11:26:55 +0000 (14:26 +0300)]
win32: Add new libgstaudio symbols
Víctor Manuel Jáquez Leal [Fri, 1 Apr 2016 10:25:14 +0000 (12:25 +0200)]
libs: audio: split allocation query caps and pad caps
Since the allocation query caps contains memory size and the pad's caps
contains the display size, an audio encoder or decoder might need to allocate
a different buffer size than the size negotiated in the caps.
This patch splits this logic distinction for audiodecoder and audioencoder.
Thus the user, if needs a different allocation caps, should set it through
gst_audio_{encoder,decoder}_set_allocation_cap() before calling the negotiate()
vmethod. Otherwise the allocation_caps will be the same as the caps in the
src pad.
https://bugzilla.gnome.org/show_bug.cgi?id=764421
Víctor Manuel Jáquez Leal [Thu, 31 Mar 2016 13:31:31 +0000 (15:31 +0200)]
libs: video: split allocation query caos and pad caps
Since the allocation query caps contains memory size and the pad's caps
contains the display size, a video encoder or decoder might need to allocate
a different frame size than the size negotiated in the caps.
This patch splits this logic distinction for videodecoder and videoencoder.
The user if needs a different allocation caps, should set the allocation_caps
in the GstVideoCodecState before calling negotiate() vmethod. Otherwise the
allocation_caps will be the same as the caps set in the src pad.
https://bugzilla.gnome.org/show_bug.cgi?id=764421
Víctor Manuel Jáquez Leal [Mon, 4 Apr 2016 14:39:21 +0000 (16:39 +0200)]
audioencoder: fix gtk-doc comment format
Mikhail Fludkov [Sat, 2 Apr 2016 08:37:55 +0000 (10:37 +0200)]
rtpbasedepayload: look at ssrc before sequence numbers
Doing so prevents us dropping buffers in the rare, but possible, situations,
when the stream changes SSRC and new sequence numbers does not differ
much from the last sequence number from previous SSRC. For example:
ssrc - 0xaaaa 101,102,103,104 ssrc - 0xbbbb 102, 103, 104, 105...
In the scenario above we don't want to drop the first 3 packets of
0xbbbb stream.
https://bugzilla.gnome.org/show_bug.cgi?id=764459
Sebastian Dröge [Sun, 3 Apr 2016 08:40:50 +0000 (11:40 +0300)]
videorate: Don't fill up the segment with duplicate buffers if drop_only==TRUE
Sebastian Dröge [Sun, 3 Apr 2016 08:38:28 +0000 (11:38 +0300)]
videorate: Remove dead code
We never get into this code path at all if drop_only==TRUE.
Frédéric Bertolus [Tue, 29 Mar 2016 15:19:41 +0000 (17:19 +0200)]
videorate: avoid useless buffer copy in drop-only mode
Make writable the buffer before pushing it lead to a buffer copy. It's
because a reference is keep for the previous buffer.
The previous buffer reference is only need to duplicate the buffer. In
drop-only mode, the previous buffer is release just after pushing the
buffer so a copy is done but it's useless.
https://bugzilla.gnome.org/show_bug.cgi?id=764319
Tim-Philipp Müller [Sat, 2 Apr 2016 14:19:44 +0000 (15:19 +0100)]
video: fix example code in gst_video_frame_map() docs
GST_VIDEO_FRAME_PLANE_PSTRIDE() does not exist.
https://bugzilla.gnome.org/show_bug.cgi?id=764414
Tim-Philipp Müller [Sat, 2 Apr 2016 09:09:07 +0000 (10:09 +0100)]
discoverer: copy over result and seekable fields when copying a discoverer info
The function gst_discoverer_info_copy doesn't copy the data members seekable
and result of the source GstDiscovererInfo.
In the case of copying a GstDiscovererInfo for later use, the seekbale will be
undefined, which in practice usually will be false, even though the seekable of
the original GstDiscovererInfo is true.
https://bugzilla.gnome.org/show_bug.cgi?id=762710
Nicolas Dufresne [Thu, 31 Mar 2016 17:32:32 +0000 (13:32 -0400)]
video-format: Fix macro documentation
The parameter type was wrongly documenting that a GstVideoInfo structure
pointer was needed, while it needs a GstVideoFormatInfo structure
pointer.
https://bugzilla.gnome.org/show_bug.cgi?id=764414
Tim-Philipp Müller [Sat, 26 Mar 2016 20:53:08 +0000 (20:53 +0000)]
test: fix indentation
Tim-Philipp Müller [Sat, 26 Mar 2016 20:52:16 +0000 (20:52 +0000)]
rtp: rtcpbuffer: fix indentation
https://bugzilla.gnome.org/show_bug.cgi?id=761944
Tim-Philipp Müller [Sat, 26 Mar 2016 20:50:31 +0000 (20:50 +0000)]
rtp: rtpcbuffer: fix Since markers
https://bugzilla.gnome.org/show_bug.cgi?id=761944
Alessandro Decina [Wed, 30 Mar 2016 00:16:49 +0000 (11:16 +1100)]
audio-resampler: disable neon on arm64
Fix the build on arm64 by using HAVE_ARM_NEON instead of __ARM_NEON__.
Jan Schmidt [Tue, 29 Mar 2016 11:16:38 +0000 (22:16 +1100)]
subparse: Add more parsing guards
Insert extra checks for the validity of the incoming
data when parsing subrip/webvtt content and debug log
output for invalid content.
Should fix Coverity warnings.
Luis de Bethencourt [Tue, 29 Mar 2016 09:23:08 +0000 (10:23 +0100)]
subparse: add missing break between formats
A break is missing at the end of case GST_SUB_PARSE_FORMAT_LRC or it will
fallthrough to WebVTT. This fixes commit
fd2a14144a7a.
Sebastian Dröge [Tue, 29 Mar 2016 09:11:22 +0000 (12:11 +0300)]
audio-resampler: Use _mm_set_epi64x(0, x) instead of _mm_cvtsi64_si128(x) in more places
Sreerenj Balachandran [Tue, 29 Mar 2016 08:25:15 +0000 (11:25 +0300)]
win32: Update exports for new video formats
Update win32 exports for P010_10BE and P010_10LE
video formats.
Scott D Phillips [Tue, 29 Mar 2016 08:16:42 +0000 (11:16 +0300)]
video: add P010 format support
P010 is a YUV420 format with an interleaved U-V plane and 2-bytes per
component with the the color value stored in the 10 most significant
bits.
https://bugzilla.gnome.org/show_bug.cgi?id=761607
---
Changes since v2:
- Set bits=16 in DPTH10_10_10_HI
Changes since v1:
- Fixed x-offset calculation in uv.
- Added 6-bit shifts to FormatInfo.
Sebastian Dröge [Tue, 29 Mar 2016 07:15:07 +0000 (10:15 +0300)]
resampler: Use _mm_set_epi64x(0, x) instead of _mm_cvtsi64_si128(x)
The latter is only available on x86-64 for some reason.
Edward Hervey [Tue, 29 Mar 2016 06:21:54 +0000 (08:21 +0200)]
audio: Fix distcheck
Don't forget to dist the needed files (which don't need to be installed)
Wim Taymans [Mon, 28 Mar 2016 13:37:36 +0000 (15:37 +0200)]
audio-resampler: estimate memory usage in auto mode
Estimate the memory usage and use this to decide between full or
interpolated filter.
Wim Taymans [Mon, 28 Mar 2016 10:51:26 +0000 (12:51 +0200)]
audioresample: remove last ORC remains
Wim Taymans [Wed, 16 Mar 2016 11:55:56 +0000 (12:55 +0100)]
audio-resampler: small optimizations
Wim Taymans [Fri, 4 Mar 2016 16:15:44 +0000 (17:15 +0100)]
audio-resampler: improve non-interleaved flags
Make it possible to have different interleaving on input and output
because we can quite trivially do that.
Wim Taymans [Wed, 2 Mar 2016 10:40:15 +0000 (11:40 +0100)]
audio-resampler: unroll some more loops
Unroll some loops.
Wim Taymans [Tue, 1 Mar 2016 15:31:18 +0000 (16:31 +0100)]
audio-resampler: keep precision
Transpose and add before applying the cubic interpolation to avoid
overflows when using full precision.
Wim Taymans [Tue, 1 Mar 2016 15:26:15 +0000 (16:26 +0100)]
audio-resampler: small cleanups
Wim Taymans [Thu, 25 Feb 2016 14:38:46 +0000 (15:38 +0100)]
audio-resampler: optimize no resampling
Switch to the faster nearest resample method when are doing no rate
conversion.
Wim Taymans [Thu, 25 Feb 2016 13:09:44 +0000 (14:09 +0100)]
audio-resampler: add VARIABLE_RATE flag
Add a VARIABLE rate flag that selects an interpolating filter.
Move some function setup code in the _new function.
Wim Taymans [Tue, 23 Feb 2016 09:46:55 +0000 (04:46 -0500)]
audio-resampler: more neon optimizations
Wim Taymans [Wed, 24 Feb 2016 11:57:26 +0000 (12:57 +0100)]
audio-resampler: avoid overflow in cubic interpolation
Shift out an extra bit to have some more headroom when doing cubic
interpolation.
Wim Taymans [Wed, 24 Feb 2016 11:56:39 +0000 (12:56 +0100)]
audio-resampler: overread only 8 taps
We only need 8 taps of zeroes as headroom for the SIMD optimized
functions.
Wim Taymans [Wed, 24 Feb 2016 11:55:28 +0000 (12:55 +0100)]
audio-converter: use helper to check intermediate format
Wim Taymans [Tue, 23 Feb 2016 14:37:37 +0000 (15:37 +0100)]
audio-resampler: fix phase
Wim Taymans [Mon, 22 Feb 2016 16:16:28 +0000 (11:16 -0500)]
audio-resampler: fix neon assembler
Wim Taymans [Mon, 22 Feb 2016 12:19:02 +0000 (13:19 +0100)]
audio-resampler: avoid some format conversion
Store the filter in the desired sample format so that we can simply do a
linear or cubic interpolation to get the new filter instead of having to
go through gdouble and then convert.
Wim Taymans [Mon, 22 Feb 2016 08:28:21 +0000 (03:28 -0500)]
audio-resampler: fix neon linear float interpolation
Wim Taymans [Fri, 19 Feb 2016 15:39:43 +0000 (16:39 +0100)]
audio-resampler: reorder filter coefficients for more speed
Reorder the filter coefficients to make it easier to use SIMD for
interpolation.
Fix orc flags a little.
Add specialized nearest resampling function.
Wim Taymans [Fri, 19 Feb 2016 09:40:03 +0000 (10:40 +0100)]
audio-resampler: remove stereo optimizations
The stereo optimizations don't give enough benefit.
Rename none to full to make it clear that we use a full filter instead
of an interpolated one
Wim Taymans [Thu, 18 Feb 2016 17:48:45 +0000 (12:48 -0500)]
audio-resample: remove neon double stubs
NEON does not have double types.
Wim Taymans [Thu, 18 Feb 2016 17:38:49 +0000 (12:38 -0500)]
audio-resampler: add more neon optimizations
Wim Taymans [Thu, 18 Feb 2016 16:05:18 +0000 (11:05 -0500)]
audio-resampler: add more neon optimizations
Wim Taymans [Wed, 17 Feb 2016 16:20:06 +0000 (11:20 -0500)]
audio-resampler: add neon optimizations
Unroll some more loops in the fallback code that seems to work fine
for ARM.
Add some simple ARM optimizations taken from speex.
Wim Taymans [Wed, 17 Feb 2016 12:12:31 +0000 (13:12 +0100)]
audio-resampler: give better hints about the precision
Give better hints to the compiler about the precision we expect from
the multiplications.
Wim Taymans [Wed, 17 Feb 2016 11:05:58 +0000 (12:05 +0100)]
audio-resample: small optimizations
Remove some inline functions that are called in the slow path.
Unroll C fallback functions a little.
Wim Taymans [Tue, 16 Feb 2016 08:18:13 +0000 (09:18 +0100)]
audio-resampler: Use n_phases when calculating taps offset
Tweak linear interpolation oversampling.
Clear filter cache on rate changes when using a full filter.
Wim Taymans [Mon, 15 Feb 2016 17:06:19 +0000 (18:06 +0100)]
audio-resampler: improve filter construction
Remove some unused variables from the inner product functions.
Make filter coefficients by interpolating if required.
Rename some fields.
Try hard to not recalculate filters when just chaging the rate.
Add more proprties to audioresample.
Wim Taymans [Fri, 12 Feb 2016 09:00:22 +0000 (10:00 +0100)]
audio-resampler: avoid overflow in fraction calculation
Wim Taymans [Thu, 11 Feb 2016 18:42:31 +0000 (19:42 +0100)]
audio-resampler: increase precision
Wim Taymans [Thu, 11 Feb 2016 16:40:56 +0000 (17:40 +0100)]
audio-resampler: add more optimizations