Ilkka Ollakka [Tue, 9 Apr 2013 10:30:02 +0000 (13:30 +0300)]
livehttp: add option to read key-uri and key-file from file
File is read when the segment is opened and values from file
are taken in the use. This and previous patch allows to change
encryption key/uri on the fly.
There is widespread use of words related to term synchronization
in VLC project. Also, common mistake is dropping letter H from
such words. This commit addresses this issue with exception of
not introducing letter H to word [sS]ync, thou [sS]ynch is also
correct, but really rarely used.
This fixes several skins where focus was hard to obtain, because
the slider area was not properly clipped. For instance, it fixes
the 'Modern' skin with the tiny blue equaliser in the main window.
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.