AC3Filter support
September 02, 2010, 06:49:21 PM
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
News
:
Download NEW AC3Filter 1.63b
Home
Help
Search
Login
Register
AC3Filter support
>
Support (rus)
>
WinampAC3 support (rus)
>
Пожалуйста, поправьте форматирование выходного потока в PCM Float
Pages: [
1
]
Go Down
« previous
next »
Print
Author
Topic: Пожалуйста, поправьте форматирование выходного потока в PCM Float (Read 2085 times)
willow
Newbie
Posts: 3
Пожалуйста, поправьте форматирование выходного потока в PCM Float
«
on:
October 12, 2009, 05:41:46 PM »
Code:
bool
WinampSink::query_input(Speakers _spk) const
{
switch (_spk.format)
{
case FORMAT_PCM16: break;
case FORMAT_PCM24: break;
case FORMAT_PCM32: break;
case FORMAT_PCMFLOAT: break; //<<<<< Добавить эту строчку
default: return false;
}
...
}
bool
WinampSink::open(Speakers _spk)
{
...
switch (_spk.format)
{
case FORMAT_PCM16: bps = 16; size2time = 1.0 / (2 * nch * _spk.sample_rate); break;
case FORMAT_PCM24: bps = 24; size2time = 1.0 / (3 * nch * _spk.sample_rate); break;
case FORMAT_PCM32: bps = 32; size2time = 1.0 / (4 * nch * _spk.sample_rate); break;
case FORMAT_PCMFLOAT: bps = -32; size2time = 1.0 / (4 * nch * _spk.sample_rate); break; //<<<<< Добавить эту строчку
default: return false;
}
...
}
Альтернативные выходные плагины для Winamp понимают PCM Float и иногда даже способны обработать PCM Double (bps = -64).
Logged
valex
Administrator
Posts: 509
Re: Пожалуйста, поправьте форматирование выходного потока в PCM Float
«
Reply #1 on:
October 15, 2009, 09:37:38 PM »
Хм. А как же отличаются Int и Float форматы, если при открытии Output модуля ему даются только
Quote
int (*Open)(int samplerate, int numchannels, int bitspersamp, int bufferlenms, int prebufferms);
Т.е. как мне сказать выходному плагину, что я хочу отдать ему именно Float данные? (Битность одна и та же, а больше формат указать вроде негде).
Logged
willow
Newbie
Posts: 3
Re: Пожалуйста, поправьте форматирование выходного потока в PCM Float
«
Reply #2 on:
October 16, 2009, 10:42:44 PM »
Это чистая случайность и не моё изобретение. Интерфейс любых типов модулей в винампе очень неаккуратный, полно дыр которые можно забить явно ошибочными параметрами, например разрядность звукового потока *возможно* указать отрицательную. Альтернативные плагины используют отрицательные значения как указание на разрядность плавающей точки, т.е:
int bitspersamp
16 - 16 bit
20 - 20 bit (нестандартное)
24 - 24 bit
32 - 32 bit (нестандартное)
-32 - float (нестандартное)
-64 - double (нестандартное)
-80 - extended (нестандартное)
Т.е. знак означает что вывод идёт в плавающей точке. Строго говоря, даже 24 бит винамп научился понимать и так сказать "узаконил" лишь относительно недавно так что ситуация, что формат не будет принят выходной плагиной абсолютно нормальна. Входные плагины подцепляют выходные плагины напрямую и достаточно часто выходные плагины представляют из себя пост-процессоры, те же ресемплеры например.
«
Last Edit: October 16, 2009, 10:46:14 PM by willow
»
Logged
valex
Administrator
Posts: 509
Re: Пожалуйста, поправьте форматирование выходного потока в PCM Float
«
Reply #3 on:
October 16, 2009, 11:09:10 PM »
Спасибо, про отрицательные значения bitspersamp не знал, сделаю.
Logged
Pages: [
1
]
Go Up
Print
« previous
next »
Jump to:
Please select a destination:
-----------------------------
Support (eng)
-----------------------------
=> AC3Filter support (eng)
=> WinampAC3 support (eng)
=> Articles
-----------------------------
Support (rus)
-----------------------------
=> AC3Filter support (rus)
=> WinampAC3 support (rus)
-----------------------------
Project
-----------------------------
=> Other
-----------------------------
Development
-----------------------------
=> valib
=> AC3Filter
Loading...