Ronald Wright [Sat, 6 Apr 2013 20:26:17 +0000 (15:26 -0500)]
equalizer: Enforce type correctness for M_PI as well
It was my expectation that M_PI in the EqzCoeffs function is automatically cast
to a float during compile time, but my expectation turned out to be incorrect.
Specifically, I noticed in GCC's assembly output of equalizer.c that GCC was
doing the inverse by making the program convert all single-precision terms
(excluding 2.0f * M_PI) in the line containing M_PI to double-precision, and
then making it convert the double-precision result to single-precision before
the assignment to f_theta_1. As a result, M_PI must be explicitly cast to a
float.
Ilkka Ollakka [Tue, 2 Apr 2013 20:14:45 +0000 (23:14 +0300)]
livehttp: use vlc_array to store segment info
This contains filename and url and key_url, so we don't need to
iterate filename again and again and allows for example generate
other style of filenames than just segment-numbers.
Also actually allows to use strftime specifiers in filenames.
skins2: implement a caching mechanism for graphics
This patch will drastically reduce the multiple copies of the same
bitmap as graphics. It is now the GenericBitmap responsability
to create/delete one single read-only copy.
Ronald Wright [Fri, 5 Apr 2013 19:25:22 +0000 (14:25 -0500)]
equalizer: Enforce type correctness for floats
This patch enforces type correctness by changing all double-precision calls
and all double-precision and integral literals in the assignments to floats to
their single-precision equivalents.
Till now, moving a skins2 slider was only possible if the pointer didn't get
too far away from the control (hardcoded parameter of 40 pixels in skins2).
Though this feature can also be seen elsewhere (firefox slider does it too),
the result may not look so natural especially for things like equalizers.
Moreover, qt4 doesn't implement this constraint, and therefore true skins2
sliders and qt4 sliders obtained from the popup menus were behaving differently.
So better remove this limitation and make things consistent throughout vlc
(skins2 + qt4)
Ronald Wright [Thu, 28 Mar 2013 22:58:47 +0000 (17:58 -0500)]
equalizer: Optimize calculations of alpha, beta, and gamma constants
It is easy to see that the computation of the alpha constant is slightly
inefficient, as the root value can be close to 1 for the lower frequencies,
which would result in significant roundoff error if this value is subtracted
from 1. In this patch, the computation of the alpha, beta, and gamma constants
has been simplified and refactored.
Acked-by: Ilkka Ollakka <ileoo@videolan.org> Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
skins2: provide more info to help skin developpers debug their skins
Many skins are buggy because the bitmap sizes or the resize policy
are inconsistent with button or checkbox constraints (fixed size)
This patch will help skin developers pinpoint which button or
checkbox is at fault. In addition, the resize policy will be
corrected (guessed from the lefttop parameter). This will enable
buggy and often unmaintained skins to work fine nevertheless.
Be more stringent on what it means to be tightly-coupled for two layouts.
Note that directly resizing a playout should not be allowed. Only the skins2
windows manager should be authorized to do it, since other issues are at stake
(anchors, min/max constraints, ....). Yet, this new isTightlyCoupledWith() now
ensures that two layouts are truly identical from the windows manager's
perspective, and thus avoids possible and undesirable side effects.
Martin Storsjö [Tue, 2 Apr 2013 13:28:47 +0000 (16:28 +0300)]
contrib: gmp: Patch away the ansi2knr mentionings
The latest automake versions (as built by extras/tools) have
removed support for ansi2knr altogether, so this is required for
reconfiguration to work. We still need to do the reconf since the
host system ANSI check in the tarball is broken.
Martin Storsjö [Mon, 1 Apr 2013 21:08:31 +0000 (00:08 +0300)]
contrib: Set _CMAKE_TOOLCHAIN_PREFIX
This is required for detecting ar and ranlib properly, required
e.g. when cross compiling for android from OS X.
One can't set CMAKE_AR or CMAKE_RANLIB directly. Normally they
should be set properly automatically within cmake, but those
codepaths seem to be skipped when we set the C/CXX compilers
manually.
skins2: fix video not properly tied to the right video control
Certain skins like wmp12 may fail to deal with video controls in some
corner cases. For this skin, no window was set visible and the skin
engine eventually fell back to force the first window to become visible.
This patch is expected to fix trac #8368 (need to be tested on windows)
Martin Storsjö [Mon, 1 Apr 2013 19:55:11 +0000 (22:55 +0300)]
contrib: Fix a bug in the old gmp configure script
The brackets in the config test aren't properly escaped, and thus
don't end up in the final configure script as intended.
When building on a system where the system default compiler is clang,
clang can fail due to the main signature
"int main(int argc, char *argv)" being invalid,
which makes configure believe that the system compiler isn't
ANSI compliant, and it tries to invoke (broken) ANSI2KNR code.
Martin Storsjö [Mon, 1 Apr 2013 08:50:55 +0000 (11:50 +0300)]
opengl: Allow using the RGBA shader for the main picture
So far, the RGBA shader has only been used for the subpictures.
On ES2, the fixed function pipeline is not available, so we need to
use the shader for drawing the main picture even if it is RGBA.
http intf: Manage Streams: Create Mosaic: Capitalize first letter, remove : in the first column. All except 'Row/Column Border' occur at different places as well