<LI><A HREF="#flac"><B><TT>flac</TT></B></A> - ècïîëüçîâàíèå êîäåêà <B><TT>flac</TT></B>, ðàáîòàþùåãî èç êîìàíäíîé ñòðîêè.</LI>
<LI><A HREF="#metaflac"><B><TT>metaflac</TT></B></A> - èñïîëüçîâàíèå ðåäàêòîðà ìåòàäàííûõ <B><TT>metaflac</TT></B>, ðàáîòàþùåãî èç êîìàíäíîé ñòðîêè.</LI>
<LI><A HREF="#plugins">ïëàãèíû</A> - äîêóìåíòàöèÿ äëÿ ðàçëè÷íûõ ïëàãèíîâ.</LI>
- <LI><A HREF="#libflac">API äëÿ <B><TT>libFLAC</TT></B></A> - äëÿ ðàçðàáîò÷èêîâ, æåëàþùèõ èñïîëüçîâàòü ïîääåðæêó FLAC â ñâîèõ ïðîäóêòàõ.</LI>
+ <LI><A HREF="../api/index.html">API</A> äëÿ <B><TT>libFLAC</TT></B> è <B><TT>libFLAC++</TT></B> - äëÿ ðàçðàáîò÷èêîâ, æåëàþùèõ èñïîëüçîâàòü ïîääåðæêó FLAC â ñâîèõ ïðîäóêòàõ.</LI>
<LI><A HREF="#bugs">îøèáêè</A> - èçâåñòíûå îøèáêè.</LI>
<LI><A HREF="#monkey">êàê äîáàâèòü ïîääåðæêó FLAC â Monkey's Audio GUI</A></LI>
</UL>
<A NAME="flac">
<H3><B><TT>flac</TT></B></H3>
-<P><B><TT>flac</TT></B> - ýòî êîäåê, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Âõîäîì äëÿ êîäåðà è âûõîäîì äëÿ äåêîäåðà äîëæåí áûòü ëèáî äàííûå â ôîðìàòå RIFF WAVE, ëèáî ïîòîê ñýìïëîâ áåç çàãîëîâêà. <B><TT>flac</TT></B> èñïîëüçóåò òîëüêî ëèíåéíûå PCM ñýìïëû (äðóãèìè ñëîâàìè, A-LAW, uLAW, è ò.ï. íå ïîääåðæèâàþòñÿ). Ñëåäóþùèì îãðàíè÷åíèåì ÿâëÿåòñÿ òî, ÷òî âî êîäèðóåìîì ôàéëå ñýìïëû äîëæíû áûòü 8, 16 èëè 24-áèòíûìè. Ýòî íå îãðàíè÷åíèå ôîðìàòà, ïðîñòî òàê ðàáîòàþò áàçîâûé êîäåð è äåêîäåð.</P>
+<P><B><TT>flac</TT></B> - ýòî êîäåê, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Âõîäîì äëÿ êîäåðà è âûõîäîì äëÿ äåêîäåðà äîëæíû áûòü äàííûå â ôîðìàòå RIFF WAVE, AIFF èëè â âèäå ïîòîêà ñýìïëîâ áåç çàãîëîâêà. <B><TT>flac</TT></B> èñïîëüçóåò òîëüêî ëèíåéíûå PCM ñýìïëû (äðóãèìè ñëîâàìè, A-LAW, uLAW, è ò.ï. íå ïîääåðæèâàþòñÿ). Ñëåäóþùèì îãðàíè÷åíèåì ÿâëÿåòñÿ òî, ÷òî âî êîäèðóåìîì ôàéëå ñýìïëû äîëæíû áûòü 8, 16 èëè 24-áèòíûìè. Ýòî íå îãðàíè÷åíèå ôîðìàòà, ïðîñòî òàê ðàáîòàþò áàçîâûé êîäåð è äåêîäåð.</P>
-<P><B><TT>flac</TT></B> ïðåäïîëàãàåò, ÷òî ôàéëû RIFF WAVE èìåþò ñóôôèêñ ".wav"; ýòî óìîë÷àíèå ìîæåò áûòü ïåðåîïðåäåëåíî ñïåöèàëüíûì êëþ÷îì. Òàêæå ïðåäïîëàãàåòñÿ, ÷òî ôàéëû ñ ñóôôèêîì ".ogg" èìåþò ôîðìàò Ogg-FLAC.  îñòàëüíûõ ñëó÷àÿõ <B><TT>flac</TT></B> íå äåëàåò ïðåäïîëîæåíèé î ñóôôèêñàõ, õîòÿ ïî ñîãëàøåíèþ ôàéëû FLAC èìåþò ñóôôèêñ ".flac" (èëè ".fla" íà ñòàðûõ ôàéëîâûõ ñèñòåìàõ òàêèõ êàê FAT-16).</P>
+<P><B><TT>flac</TT></B> ïðåäïîëàãàåò, ÷òî ôàéëû RIFF WAVE èìåþò ñóôôèêñ ".wav", à ôàéëû ôîðìàòà AIFF èìåþò ñóôôèêñû ".aif", ".aiff" èëè âñòðå÷åí çàãîëîâîê AIFF; ýòî óìîë÷àíèå ìîæåò áûòü ïåðåîïðåäåëåíî ñïåöèàëüíûì êëþ÷îì. Òàêæå ïðåäïîëàãàåòñÿ, ÷òî ôàéëû ñ ñóôôèêîì ".ogg" èìåþò ôîðìàò Ogg-FLAC.  îñòàëüíûõ ñëó÷àÿõ <B><TT>flac</TT></B> íå äåëàåò ïðåäïîëîæåíèé î ñóôôèêñàõ, õîòÿ ïî ñîãëàøåíèþ ôàéëû FLAC èìåþò ñóôôèêñ ".flac" (èëè ".fla" íà ñòàðûõ ôàéëîâûõ ñèñòåìàõ òàêèõ êàê FAT-16).</P>
<P>Ïåðåä ïîëíûì îïèñàíèåì êëþ÷åé, èñïîëüçóåìûõ <B><TT>flac</TT></B>, îáðàòèì âíèìàíèå íà òî ÷òî: 1) ïî óìîë÷àíèþ <B><TT>flac</TT></B> ñæèìàåò ôàéëû (äëÿ äåêîäèðîâàíèÿ èñïîëüçóéòå êëþ÷ <TT>-d</TT>); 2) êëþ÷è <TT>-0..-8</TT>, à òàêæå <TT>--fast</TT> è <TT>--best</TT>, óïðàâëÿþùèå óðîâíåì ñæàòèÿ, ÿâëÿþòñÿ ñèíîíèìàìè äëÿ ðàçëè÷íûõ ãðóïï íàñòðîåê êîäèðîâàíèÿ. Òîãî æå ýôôåêòà ìîæíî äîáèòüñÿ, èñïîëüçóÿ íàáîðû ñîîòâåòñòâóþùèõ êëþ÷åé; 3) ìîäåëü îáðàáîòêè âõîäíûõ è âûõîäíûõ ôàéëîâ ó <B><TT>flac</TT></B> àíàëîãè÷íà <B><TT>gzip</TT></B>.</P>
<P>Äàííûå â ñòàíäàðòíûé âûâîä ìîæíî ïåðåíàïðàâèòü ñ ïîìîùüþ êëþ÷à <TT>-c</TT>.</P>
-<P>Îïöèè êîäèðîâàíèÿ âëèÿþò íà ñêîðîñòü ðàáîòû è óðîâåíü ñæàòèÿ. Íàñòðîéêè ôîðìàòà îïðåäåëÿþò ðàñïîëîæåíèå ñýìïëîâ, åñëè íà âõîä ïîñòóïàåò ôàéë áåç çàãîëîâêà. Åñëè ó ôàéëà åñòü çàãîëîâîê <TT>RIFF WAVE</TT>, òî íàñòîéêè ôîðìàòà íå íóæíû, òàê êàê îíè áåðóòñÿ èç ôàéëà.</P>
+<P>Îïöèè êîäèðîâàíèÿ âëèÿþò íà ñêîðîñòü ðàáîòû è óðîâåíü ñæàòèÿ. Íàñòðîéêè ôîðìàòà îïðåäåëÿþò ðàñïîëîæåíèå ñýìïëîâ, åñëè íà âõîä ïîñòóïàåò ôàéë áåç çàãîëîâêà. Åñëè ó ôàéëà åñòü çàãîëîâîê RIFF WAVE èëè AIFF, òî íàñòîéêè ôîðìàòà íå íóæíû, òàê êàê îíè áåðóòñÿ èç ôàéëà.</P>
<P> ðåæèìå òåñòèðîâàíèÿ <B><TT>flac</TT></B> ðàáîòàåò êàê è ïðè äåêîäèðîâàíèè, òîëüêî âûõîäíîé ôàéë íå çàïèñûâàåòñÿ. Ðåæèìû äåêîäèðîâàíèÿ è òåñòèðîâàíèÿ ïðîâåðÿþò ïîòîê íà íàëè÷èå îøèáîê, à òàêæå ñðàâíèâàþò ïîäïèñü MD5 äåêîäèðîâàííîãî ïîòîêà ñ ñîõðàíåííîé ïîäïèñüþ, äàæå åñëè ôîðìàò ïîòîêà ïðàâèëüíûé.</P>
<H4><a name="general_options">Îñíîâíûå êëþ÷è</A></H4>
<TABLE border=1>
+<TR><TD WIDTH=25%><TT>-v</TT>, <TT>--version</TT></TD>
+<TD WIDTH=75%>Íîìåð âåðñèè <B><TT>flac</TT></B>.</TD></TR>
+
+<TR><TD><TT>-h</TT>, <TT>--help</TT></TD>
+<TD>Âûâåñòè îñíîâíûå ìåòîäû èñïîëüçîâàíèÿ è ñïèñîê âñåõ îïöèé. Ïðè çàïóñêå <B><TT>flac</TT></B> áåç àðãóìåíòîâ îòîáðàæàåòñÿ êðàòêàÿ ñïðàâêà.</TD></TR>
-<TR><TD width=25%><TT>-d</TT></TD>
-<TD width=75%>Äåêîäèðîâàíèå (ïî óìîë÷àíèþ <B><TT>flac</TT></B> êîäèðóåò). <B><TT>flac</TT></B> çàâåðøèò ðàáîòó ñ êîäîì âûõîäà <TT>1</TT>, åñëè áóäåò âñòðå÷åíà îøèáêà èëè êîíòðîëüíàÿ ñóììà MD5 äåêîäèðîâàííîãî ïîòîêà íå ñîâïàäåò ñ ñîõðàíåííîé. Åñëè îøèáîê íå áóäåò, êîä âîçâðàòà áóäåò ðàâåí <TT>0</TT>.</TD></TR>
-\r
-<TR><TD><TT>-H</TT></TD>
+<TR><TD><TT>-H</TT>, <TT>--explain</TT></TD>
<TD>Âûâåñòè ñïðàâêó ïîëíîñòüþ. Ïðè çàïóñêå <B><TT>flac</TT></B> áåç àðãóìåíòîâ îòîáðàæàåòñÿ êðàòêàÿ ñïðàâêà.</TD></TR>
-<TR><TD><TT>-t</TT></TD>
+<TR><TD><TT>-d</TT>, <TT>--decode</TT></TD>
+<TD>Äåêîäèðîâàíèå (ïî óìîë÷àíèþ <B><TT>flac</TT></B> êîäèðóåò). <B><TT>flac</TT></B> çàâåðøèò ðàáîòó ñ êîäîì âûõîäà <TT>1</TT>, åñëè áóäåò âñòðå÷åíà îøèáêà èëè êîíòðîëüíàÿ ñóììà MD5 äåêîäèðîâàííîãî ïîòîêà íå ñîâïàäåò ñ ñîõðàíåííîé. Åñëè îøèáîê íå áóäåò, êîä âîçâðàòà áóäåò ðàâåí <TT>0</TT>.</TD></TR>
+
+<TR><TD><TT>-t</TT>, <TT>--test</TT></TD>
<TD>Òåñòèðîâàíèå (òî æå ñàìîå, ÷òî è äåêîäèðîâàíèå, òîëüêî âûõîä íå çàïèñûâàåòñÿ â ôàéë). Êîäû âîçâðàòà òå æå.</TD></TR>
-<TR><TD><TT>-a</TT></TD>
+<TR><TD><TT>-a</TT>, <TT>--analyze</TT></TD>
<TD>Àíàëèç (òî æå ñàìîå, ÷òî è äåêîäèðîâàíèå, òîëüêî âûõîäîì ÿâëÿåòñÿ ôàéë ñòàòèñòèêè). Êîäû âîçâðàòà òå æå. Ðåæèì ïðåäíàçíà÷åí â îñíîâíîì äëÿ ðàçðàáîò÷èêîâ.  âûõîäíîé òåêñòîâûé ôàéë çàïèñûâàåòñÿ èíôîðìàöèÿ î êàæäîì ôðåéìå è ïîäôðåéìå.</TD></TR>
-<TR><TD><TT>-c</TT></TD>
+<TR><TD><TT>-c</TT>, <TT>--stdout</TT></TD>
<TD>Íàïðàâèòü ðåçóëüòàò â ñòàíäàðòíûé âûâîä (stdout).</TD></TR>
-<TR><TD><TT>-s</TT></TD>
+<TR><TD><TT>-s</TT>, <TT>--silent</TT></TD>
<TD>Íå ïîêàçûâàòü ñòàòèñòèêó ïðè êîäèðîâàíèè/äåêîäèðîâàíèè.</TD></TR>
-<TR><TD><TT>-o ôàéë</TT></TD>
+<TR><TD><TT>-o ôàéë</TT><BR><TT>--output-name=ôàéë</TD>
<TD>ßâíî óêàçàòü èìÿ âûõîäíîãî ôàéëà, ïî óìîë÷àíèþ <B><TT>flac</TT></B> ïðîñòî çàìåíÿåò ñóôôèêñ.</TD></TR>
-<TR><TD><TT>--output-prefix ñòðîêà</TT></TD>
+<TR><TD><TT>--output-prefix=ñòðîêà</TT></TD>
<TD>Äîáàâëÿåò ïðåôèêñ ê êàæäîìó èìåíè âûõîäíîìó ôàéëó. Ìîæåò èìñïîëüçîâàòüñÿ äëÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ ôàéëîâ â äðóãîé êàòàëîã. Åñëè óêàçàííàÿ ñòðîêà ÿâëÿåòñÿ ÷àñòüþ ïóòè, óáåäèòåñü, ÷òî îíà çàêàí÷èâàåòñÿ ñëýøåì '/'.</TD></TR>
<TR><TD><TT>--delete-input-file</TT></TD>
<TD>Ïîñëå óñïåøíîãî îêîí÷àíèÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ âõîäíîé ôàéë áóäåò óäàëåí. Åñëè ïðîèçîéäåò îøèáêà, èñõîäíûé ôàéë îñòàíåòñÿ.</TD></TR>
-<TR><TD><TT>--skip #</TT></TD>
+<TR><TD><TT>--skip=#</TT></TD>
<TD>Ïðîïóñòèòü ïåðâûå <TT>#</TT> ñýìïëîâ âõîäíîãî ôàéëà. Ðàáîòàåò äëÿ êîäèðîâàíèÿ è äåêîäèðîâàíèÿ, íî íå äëÿ òåñòèðîâàíèÿ.</TD></TR>
</TABLE>
<H4><a name="analysis_options">Îïöèè àíàëèçà</H4>
<TABLE border=1>
-<TR><TD width=15%><TT>--a-rtext</TT></TD>
-<TD width=85%>Äîáàâëÿåò â ôàéë îñòàòî÷íûé ñèãíàë. Ðåçóëüòèðóþùèé ôàéë ïîëó÷àåòñÿ <B>î÷åíü áîëüøèì</B>.</TD></TR>
+<TR><TD width=25%><TT>--residual-text</TT></TD>
+<TD width=75%>Äîáàâëÿåò â ôàéë îñòàòî÷íûé ñèãíàë. Ðåçóëüòèðóþùèé ôàéë ïîëó÷àåòñÿ <B>î÷åíü áîëüøèì</B>.</TD></TR>
-<TR><TD width=10%><TT>--a-rgp</TT></TD>
-<TD width=90%>Ñîçäàåò ôàéëû-äèàãðàììû äëÿ êàæäîãî ïîäôðåéìà.  êàæäîì ôàéëå áóäåò îñòàòî÷íîå ðàñïðåäåëåíèå äëÿ ïîäôðåéìà. Áóäåò ñîçäàíî <B>î÷åíü ìíîãî</B> ôàéëîâ.</TD></TR>
+<TR><TD><TT>--residual-gnuplot</TT></TD>
+<TD>Ñîçäàåò ôàéëû-äèàãðàììû äëÿ êàæäîãî ïîäôðåéìà.  êàæäîì ôàéëå áóäåò îñòàòî÷íîå ðàñïðåäåëåíèå äëÿ ïîäôðåéìà. Áóäåò ñîçäàíî <B>î÷åíü ìíîãî</B> ôàéëîâ.</TD></TR>
</TABLE>
+
<H4><a name="decoding_options">Îïöèè äåêîäèðîâàíèÿ</H4>
<TABLE border=1>
-<TR><TD width=15%><TT>-F</TT></TD>
-<TD width=85%>Ïî óìîë÷àíèþ <B><TT>flac</TT></B> ïðåêðàùàåò äåêîäèðîâàíèå
-â ñëó÷àå îøèáêè â ïîòîêå è óäàëÿåò ÷àñòè÷íî äåêîäèðîâàííûé ôàéë.
-Èñïîëüçîâàíèå êëþ÷à <TT>-F</TT> âåäåò ê òîìó, ÷òî ñîîáùåíèÿ îá îøèáêàõ
-âûâîäÿòñÿ, íî <B><TT>flac</TT></B> ïðîäîëæàåò ðàáîòó äî êîíöà.
-Îáðàòèòå âíèìàíèå, ÷òî â ðåçóëüòàòå òàêîãî äåêîäèðîâàíèÿ â âûõîäíîì ôàéëå
-ìîãóò áûòü ïðîïóùåíû ñýìïëû èëè ïîÿâèòñÿ áëîêè òèøèíû.</TD></TR>
+<TR><TD width=30%><TT>-F</TT>,<BR><TT>--decode-through-errors</TT></TD>
+<TD width=70%>Ïî óìîë÷àíèþ <B><TT>flac</TT></B> ïðåêðàùàåò äåêîäèðîâàíèå â ñëó÷àå îøèáêè â ïîòîêå è óäàëÿåò ÷àñòè÷íî äåêîäèðîâàííûé ôàéë. Èñïîëüçîâàíèå êëþ÷à <TT>-F</TT> âåäåò ê òîìó, ÷òî ñîîáùåíèÿ îá îøèáêàõ âûâîäÿòñÿ, íî <B><TT>flac</TT></B> ïðîäîëæàåò ðàáîòó äî êîíöà. Îáðàòèòå âíèìàíèå, ÷òî â ðåçóëüòàòå òàêîãî äåêîäèðîâàíèÿ â âûõîäíîì ôàéëå ìîãóò áûòü ïðîïóùåíû ñýìïëû èëè ïîÿâèòñÿ áëîêè òèøèíû.</TD></TR>
</TABLE>
<H4><a name="encoding_options">Îïöèè êîäèðîâàíèÿ</A></H4>
<TABLE border=1>
-\r
-<TR><TD width=15%><TT>--ogg</TT></TD>
-<TD width=85%>\r
-<P>Ïðè êîäèðîâàíèè ãåíåðèðóåòñÿ âûâîä â ôîðìàòå Ogg-FLAC âìåñòî "ðîäíîãî"FLAC. Ïîòîêè Ogg-FLAC ïðåäñòàâëÿþò ñîáîé ïîòîêè FLAC îáåðíóòûå â òðàíñïîðòíûé óðîâåíü Ogg. Ïîëó÷åííûé ôàéë áóäåò èìåòü ñóôôèêñ '.ogg' è áóäåò äåêîäèðîâàòüñÿ óòèëèòîé <TT><B>flac</B></TT>.</P>\r
+<TR><TD width=30%><TT>-V</TT></TD>
+<TD width=70%>Ïðîâåðÿòü ïðîöåññ ñæàòèÿ.  äàííîì ñëó÷àå <B><TT>flac</TT></B> ñîçäàåò ïàðàëëåëüíûé äåêîäåð, ðàñêîäèðóþùèé âûõîä êîäåðà è ñðàâíèâàåò ðåçóëüòàò ñ îðèãèíàëîì. Åñëè áóäåò íàéäåíî íåñîîòâåòñòâèå, êîäèðîâàíèå ïðåêðàòèòñÿ. Âðåìÿ ðàáîòû ñ ýòîé îïöèåé óâåëè÷èâàåòñÿ, îäíàêî, ïðè ýòîì ãàðàíòèðóåòñÿ, ÷òî ôàéë áóäåò ïðàâèëüíî äåêîäèðîâàí.</TD></TR>
+
+<TR><TD><TT>--ogg</TT></TD>
+<TD><P>Ïðè êîäèðîâàíèè ãåíåðèðóåòñÿ âûâîä â ôîðìàòå Ogg-FLAC âìåñòî "ðîäíîãî" FLAC. Ïîòîêè Ogg-FLAC ïðåäñòàâëÿþò ñîáîé ïîòîêè FLAC îáåðíóòûå â òðàíñïîðòíûé óðîâåíü Ogg. Ïîëó÷åííûé ôàéë áóäåò èìåòü ñóôôèêñ '.ogg' è áóäåò äåêîäèðîâàòüñÿ óòèëèòîé <TT><B>flac</B></TT>.</P>
<P>Ïðè äåêîäèðîâàíèè ôîðìàò ââîäà îäíîçíà÷íî îïðåäåëÿåòñÿ êàê Ogg-FLAC. Ýòî ïîëåçíî ïðè ïîëó÷åíèè äàííûõ ñî ñòàíäàðòíîãî ââîäà èëè åñëè ó ôàéëà ñóôôèêñ íå '.ogg'.</P></TD></TR>\r
+<TR><TD><TT>--serial-number=#</TT></TD>
+<TD>Ïðè èñïîëüçîâàíèè ñ êëþ÷îì --ogg îïðåäåëÿåò ñåðèéíûé íîìåð äëÿ ïîòîêà FLAC. Ïðè êîäèðîâàíèè áåç ÿâíî óêàçàííîãî ñåðèéíîãî íîìåðà, <B><TT>flac</TT></B> èñïîëüçóåò '0'. Ïðè äåêîäèðîâàíèè ïî óìîë÷àíèþ èñïîëüçóåòñÿ ñåðèéíûé íîìåð îïðåäåëåííûé íà ïåðâîé ñòðàíèöå.</TD></TR>
+
<TR><TD><TT>--lax</TT></TD>
<TD>Ïîçâîëÿåò êîäåðó ñîçäàâàòü ôàéëû, îòâå÷àþùèå ïîäìíîæåñòâó ôîðìàòà FLAC.  ðåçóëüòàòå ðàáîòû áóäåò ïîëó÷àòüñÿ íåïîòîêîâûé ôàéë, ïîýòîìó ýòîò êëþ÷ ñëåäóåò èñïîëüçîâàòü òîëüêî äëÿ àðõèâèðîâàíèÿ. Äåêîäåð áóäåò ïîääåðæèâàòü âîñïðîèçâåäåíèå è ïîèñê â òàêèõ ôàéëàõ.</TD></TR>
<P><B>ÂÍÈÌÀÍÈÅ</B>: Ïîðÿäîê ôàéëîâ èìååò çíà÷åíèå! Åñëè âû ñäåëàåòå ñëåäóþùèé âûçîâ '<TT>flac --sector-align *.wav</TT>', êîìàíäíûé ïðîöåññîð ìîæåò îáðàáîòàòü øàáëîí íå â òîì ïîðÿäêå, â êàêîì âû ðàññ÷èòûâàåòå. Ïîýòîìó ëó÷øå âñåãî âûçûâàòü ïðîãðàììó, ÿâíî óêàçàâ ñïèñîê ôàéëîâ, íàïðèìåð, '<TT>flac --sector-align 8.wav 9.wav 10.wav</TT>'.
</TD></TR>
-<TR><TD><TT>-S {#|X|#x}</TT></TD>
-<TD width=90%>Äîáàâëÿåò òî÷êè äëÿ ïîèñêà â òàáëèöó <TT>SEEKTABLE</TT>.
+<TR><TD><TT>-S {#|X|#x}</TT>,<BR><TT>--seekpoint={#|X|#x}</TD>
+<TD>Äîáàâëÿåò òî÷êè äëÿ ïîèñêà â òàáëèöó <TT>SEEKTABLE</TT>.
<UL>
<LI><TT># </TT> : ñîçäàåòñÿ òî÷êà ïîèñêà äëÿ ñýìïëà ñ îïðåäåëåííûì íîìåðîì.</LI>
<B>ÏÐÈÌÅ×ÀÍÈÅ</B>: åñëè <I>#</I> áîëüøå èëè ðàâåí êîëè÷åñòâó ñýìïëîâ âî âõîäíîì ôàéëå, òî òî÷êè äîáàâëåíû íå áóäóò, åñëè ðàçìåð ìîæíî îïðåäåëèòü äî êîäèðîâàíèÿ, â ïðîòèâíîì ñëó÷àå áóäóò çàïèñàíû ðåçåðâèðóåìûå òî÷êè.</P>
</TD></TR>
-<TR><TD><TT>-P #</TT></TD>
-<TD>Eíêîäåð çàïèøåò áëîê ìåòàäàííûõ <TT>PADDING</TT>, óêàçàííîãî ðàçìåðà (â áàéòàõ), ïîñëå áëîêà <TT>STREAMINFO</TT>. Êëþ÷è <TT>-P 0</TT> èëè <TT>-P-</TT> óêàçûâàþò, ÷òî áëîê <TT>PADDING</TT> íå íóæåí (çíà÷åíèå ïî óìîë÷àíèþ). Ýòîò áëîê ïîëåçåí, åñëè âû ñîáèðàåòåñü äîáàâèòü òýã â ôàéë ïîçæå. Âìåñòî òîãî, ÷òîáû ïåðåïèñûâàòü ôàéë ïîëíîñòüþ, ìîæíî áóäåò çàïèñàòü èíôîðìàöèþ âìåñòî áëîêà <TT>PADDING</TT>. Îáðàòèòå âíèìàíèå íà òî, ÷òî îáùèé ðàçìåð áëîêà <TT>PADDING</TT> áóäåò íà 4 áàéòà áîëüøå, òàê êàê 4 áàéòà çàíèìàåò çàãîëîâîê.</TD></TR>
+<TR><TD><TT>-P #</TT>, <TT>--padding</TT></TD>
+<TD>Êîäåð çàïèøåò áëîê ìåòàäàííûõ <TT>PADDING</TT>, óêàçàííîãî ðàçìåðà (â áàéòàõ), ïîñëå áëîêà <TT>STREAMINFO</TT>. Êëþ÷è <TT>-P 0</TT> èëè <TT>-P-</TT> óêàçûâàþò, ÷òî áëîê <TT>PADDING</TT> íå íóæåí (çíà÷åíèå ïî óìîë÷àíèþ). Ýòîò áëîê ïîëåçåí, åñëè âû ñîáèðàåòåñü äîáàâèòü òýã â ôàéë ïîçæå. Âìåñòî òîãî, ÷òîáû ïåðåïèñûâàòü ôàéë ïîëíîñòüþ, ìîæíî áóäåò çàïèñàòü èíôîðìàöèþ âìåñòî áëîêà <TT>PADDING</TT>. Îáðàòèòå âíèìàíèå íà òî, ÷òî îáùèé ðàçìåð áëîêà <TT>PADDING</TT> áóäåò íà 4 áàéòà áîëüøå, òàê êàê 4 áàéòà çàíèìàåò çàãîëîâîê.</TD></TR>
-<TR><TD><TT>-b #</TT></TD>
+<TR><TD><TT>-b #</TT>, <TT>--blocksize</TT></TD>
<TD>Óñòàíàâëèâàåò ðàçìåð áëîêà â ñýìïëàõ. Ïî óìîë÷àíèþ <TT>1152</TT> äëÿ <TT>-l 0</TT>, èíà÷å <TT>4608</TT>. Ñòàíäàðòíûå ïîòîêè äîëæíû èñïîëüçîâàòü îäíî èç óêàçàíûõ çíà÷åíèé: <TT>192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768</TT>. Ñåé÷àñ êîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð áëîêà äëÿ âñåãî ôàéëà.</TD></TR>
-<TR><TD><TT>-m</TT></TD>
+<TR><TD><TT>-m</TT>, <TT>--mid-side</TT></TD>
<TD>Âêëþ÷àåò ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Îáû÷íî óâåëè÷èâàåò óðîâåíü ñæàòèÿ íà íåñêîëüêî ïðîöåíòîâ. Äëÿ êàæäîãî áëîêà ñîçäàåòñÿ óñðåäíåííàÿ è ñòåðåî âåðñèÿ áëîêà, ñîõðàíÿåòñÿ áëîê ìåíüøåãî ðàçìåðà. Ñåé÷àñ ðàçíîñòíîå êîäèðîâàíèå äîñòóïíî äëÿ ôàéëîâ, ãäå ñýìïë èìååò ðàçìåð íå áîëüøå 16 áèò.</TD></TR>
-<TR><TD><TT>-M</TT></TD>
-<TD>Âêëþ÷àåò ñâîáîäíîå ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Ðàáîòàåò àíàëîãè÷íî <TT>-m</TT>, îäíàêî êîäåð ïåðåêëþ÷àåòñÿ ìåæäó íåçàâèñèìûì è óñðåäíÿþùèì êîäèðîâàíèåì àäàïòèâíî. Ìåòîä ðàáîòàåò áûñòðåå, íî óðîâåíü ñæàòèÿ ìåíüøå, òàê êàê <TT>-m</TT> ïðîèçâîäèò ïîëíûé ïåðåáîð âàðèàíòîâ.</TD></TR>
+<TR><TD><TT>-M</TT>, <TT>--adaptive-mid-side</TT></TD>
+<TD>Âêëþ÷àåò àäàïòèâíîå ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Ðàáîòàåò àíàëîãè÷íî <TT>-m</TT>, îäíàêî êîäåð ïåðåêëþ÷àåòñÿ ìåæäó íåçàâèñèìûì è óñðåäíÿþùèì êîäèðîâàíèåì àäàïòèâíî. Ìåòîä ðàáîòàåò áûñòðåå, íî óðîâåíü ñæàòèÿ ìåíüøå, òàê êàê <TT>-m</TT> ïðîèçâîäèò ïîëíûé ïåðåáîð âàðèàíòîâ.</TD></TR>
<TR><TD><TT>-0..-8</TT></TD>
<TD>Áûñòðåéøåå ñæàòèå ... ìàêñèìàëüíîå ñæàòèå. Ïî óìîë÷àíèþ <TT>-5</TT>.</TD></TR>
-<TR><TD><TT>-0</TT></TD>
+<TR><TD><TT>-0</TT>, <TT>--compression-level-0</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 0 -b 1152 -r 2,2</TT>.</TD></TR>
-<TR><TD><TT>-1</TT></TD>
+<TR><TD><TT>-1</TT>, <TT>--compression-level-1</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 0 -b 1152 -r 2,2 -M</TT>.</TD></TR>
-<TR><TD><TT>-2</TT></TD>
+<TR><TD><TT>-2</TT>, <TT>--compression-level-2</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 0 -b 1152 -r 3 -m</TT>.</TD></TR>
-<TR><TD><TT>-3</TT></TD>
+<TR><TD><TT>-3</TT>, <TT>--compression-level-3</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 6 -b 4608 -r 3,3</TD></TR>
-<TR><TD><TT>-4</TT></TD>
+<TR><TD><TT>-4</TT>, <TT>--compression-level-4</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 8 -b 4608 -r 3,3 -M</TT>.</TD></TR>
-<TR><TD><TT>-5</TT></TD>
+<TR><TD><TT>-5</TT>, <TT>--compression-level-5</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 8 -b 4608 -r 3,3 -m</TT>.</TD></TR>
-<TR><TD><TT>-6</TT></TD>
+<TR><TD><TT>-6</TT>, <TT>--compression-level-6</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 8 -b 4608 -r 4 -m</TT>.</TD></TR>
-<TR><TD><TT>-7</TT></TD>
+<TR><TD><TT>-7</TT>, <TT>--compression-level-7</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 8 -b 4608 -r 6 -m -e</TT>.</TD></TR>
-<TR><TD><TT>-8</TT></TD>
+<TR><TD><TT>-8</TT>, <TT>--compression-level-8</TT></TD>
<TD>Àíàëîãè÷íî <TT>-l 12 -b 4608 -r 6 -m -e</TT>.</TD></TR>
-\r
+
<TR><TD><TT>--fast</TT></TD>
<TD>Áûñòðåéøåå ñæàòèå. Àíàëîãè÷íî <TT>-0</TT>.</TD></TR>
<TR><TD><TT>--best</TT></TD>
<TD>Ìàêñèìàëüíîå ñæàòèå. Àíàëîãè÷íî <TT>-8</TT>.</TD></TR>
-<TR><TD><TT>-e</TT></TD>
+<TR><TD><TT>-e</TT>,<BR><TT>--exhaustive-model-search</TT></TD>
<TD>Ïîëíûé ïîèñê ìîäåëè (ðàáîòàåò ìåäëåííî!). Îáû÷íî êîäåð îïðåäåëÿåò ëó÷øóþ ìîäåëü è êîäèðóåò äàëåå îïèðàÿñü íà íåå.  äàííîì ðåæèìå êîäåð áóäåò ñîçäàâàòü ïîäôðåéìû âñåõ ïîðÿäêîâ è èñïîëüçîâàòü íàèìåíüøèé. Åñëè ìàêñèìàëüíîå çíà÷åíèå ïîðÿäêà LPC âåëèêî, âðåìÿ êîäèðîâàíèÿ ñóùåñòâåííî âîçðàñòåò. Âûèãðûø îáû÷íî ñîñòàâëÿåò îêîëî 0.5%.</TD></TR>
-<TR><TD><TT>-E</TT></TD>
+<TR><TD><TT>-E</TT>,<BR><TT>--escape-coding</TT></TD>
<TD>Èñïîëüçîâàòü óïðàâëÿþùèå êîäû â êîäåðå ýíòðîïèè. Ýòà îïöèÿ ïîçâîëÿåò çàïèñûâàòü íåçàêîäèðîâàííîå ïðåäñòàâëåíèå îñòàòêà â ðàçäåëå, åñëè åãî ðàçìåð ìåíüøå. Ïðè ýòîì âðåìÿ ðàáîòû óâåëè÷èâàåòñÿ, à óðîâåíü ñæàòèÿ îáû÷íî óëó÷øàåòñÿ ïðèìåðíî íà 1%.</TD></TR>
-<TR><TD><TT>-l #</TT></TD>
+<TR><TD><TT>-l #</TT>,<BR><TT>--max-lpc-order=#</TT></TD>
<TD>Îïðåäåëÿåò ìàêñèìàëüíûé ïîðÿäîê LPC (êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ). ×èñëî äîëæíî áûòü ìåíüøå èëè ðàâíî <TT>32</TT>. Åñëè çíà÷åíèå ðàâíî <TT>0</TT>, êîäåð áóäåò èñïîëüçîâàòü âìåñòî îáùåãî ëèíåéíîãî ïðîãíîçèðîâàíèÿ ïîñòîÿííûå êîýôôèöèåíòû. Ýòîò ìåòîä óâåëè÷èâàåò ñêîðîñòü ðàáîòû, íî ôàéëû ïîëó÷àþòñÿ íà 5-10% áîëüøå.</TD></TR>
-<TR><TD><TT>-q #</TT></TD>
+<TR><TD><TT>-q #</TT>,<BR><TT>--qlp-coeff-precision=#</TD>
<TD>Îïðåäåëÿåò òî÷íîñòü äèñêðåòíûõ êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ â áèòàõ. Ïî óìîë÷àíèþ <TT>-q 0</TT>, ÷òî ïîçâîëÿåò êîäåðó ïðèíèìàòü ðåøåíèå â çàâèñèìîñòè îò ñèãíàëà. Ëó÷øå îñòàâëÿòü çíà÷åíèå ïî óìîë÷àíèþ.</TD></TR>
-<TR><TD><TT>-p</TT></TD>
+<TR><TD><TT>-p</TT>,<BR><TT>--qlp-coeff-precision-search</TT></TD>
<TD>Ïðîèçâîäèòü îïòèìèçàöèþ LPC. Ïåðåîïðåäåëÿåò ëþáóþ îïöèþ <TT>-q</TT>. Ñèëüíî çàìåäëÿåò ðàáîòó, è óìåíüøàåò ðàçìåð ôàéëà íà äîëþ ïðîöåíòà. <TT>-q</TT> íå ðàáîòàåò, êîãäà èñïîëüçóåòñÿ <TT>-l 0</TT>.</TD></TR>
-<TR><TD><TT>-r [#,]#</TT></TD>
+<TR><TD><TT>-r [#,]#</TT>,<BR><TT>--rice-partition-order=[#,]#</TT></TD>
<TD>Óñòàíîâèòü <I>[min,]max</I> ïîðÿäîê ðàçäåëà. Åñëè ìèíèìàëüíîå çíà÷åíèå íå óêàçàíî, òî îíî óñòàíàâëèâàåòñÿ ðàâíûì 0. Ïî óìîë÷àíèþ êîäåð îäèí ïàðàìåòð Ðàéñà äëÿ âñåãî îñòàòêà ïîäôðåéìà. Åñëè èñïîëüçîâàòü ýòó îïöèþ, îñòàòîê áóäåò ðàçäåëÿòüñÿ íà <I>2^min#</I> ... <I>2^max</I> ÷àñòåé, äëÿ êàæäîé èç êîòîðûõ áóäåò îïðåäåëåí ñîáñòâåííûé ïàðàìåòð Ðàéñà. Ñ óâåëè÷åíèåì ïàðàìåòðà <I>max</I> âûèãðûø áóäåò âñå ìåíüøå. Íàèáîëåå îïòèìàëüíûé âàðèàíò äîñòèãàåòñÿ ïðè èñïîëüçîâàíèè <TT>-r 2,2</TT> (è áîëüøèõ çíà÷åíèé äëÿ áîëüøèõ ðàçìåðîâ áëîêîâ). Ïðè ýòîì ñæàòèå îáû÷íî óâåëè÷èâàåòñÿ íà 1.5%. Âûáîð îïòèìàëüíîãî çíà÷åíèÿ ìîæíî ïðîèçâåñòè ïî ôîðìóëå <TT>ðàçìåð_áëîêà/(2^n)=128</TT>. Ìàêñèìàëüíûé óðîâåíü ñæàòèÿ äîñòèãàåòñÿ ïðè èñïîëüçîâàíèè <TT>-r 0,16</TT>.</TD></TR>
-
-<TR><TD><TT>-V</TT></TD>
-<TD>Ïðîâåðÿòü ïðîöåññ ñæàòèÿ.  äàííîì ñëó÷àå <B><TT>flac</TT></B> ñîçäàåò ïàðàëëåëüíûé äåêîäåð, ðàñêîäèðóþùèé âûõîä êîäåðà è ñðàâíèâàåò ðåçóëüòàò ñ îðèãèíàëîì. Åñëè áóäåò íàéäåíî íåñîîòâåòñòâèå, êîäèðîâàíèå ïðåêðàòèòñÿ. Âðåìÿ ðàáîòû ñ ýòîé îïöèåé óâåëè÷èâàåòñÿ, îäíàêî, ïðè ýòîì ãàðàíòèðóåòñÿ, ÷òî ôàéë áóäåò ïðàâèëüíî äåêîäèðîâàí.</TD></TR>
-
-<TR><TD> </TD>
-<TD><TT>-F-</TT>, <TT>-S-</TT>, <TT>-P-</TT>, <TT>-m-</TT>, <TT>-e-</TT>, <TT>-E-</TT>, <TT>-p-</TT>, <TT>-V-</TT>, <TT>--lax-</TT>, <TT>--delete-input-file-</TT>, <TT>--sector-align-</TT> èñïîëüçóþòñÿ äëÿ îòêëþ÷åíèÿ ñîîòâåòñòâóþùèõ îïöèé.</TD></TR>
</TABLE>
<H4>Íàñòðîéêè ôîðìàòà</H4>
<TABLE border=1>
+<TR><TD width=30%><TT>--endian={big|little}</TT></TD>
+<TD width=70%>Îïðåäåëÿåò ïîðÿäîê áàéòîâ â ôàéëå áåç çàãîëîâêà big-endian | little-endian.</TD></TR>
-<TR><TD width=15%><TT>-fb | -fl</TT></TD>
-<TD width=90%>Îïðåäåëÿåò ïîðÿäîê áàéòîâ â ôàéëå áåç çàãîëîâêà big-endian | little-endian.</TD></TR>
-
-<TR><TD><TT>-fc n</TT></TD>
+<TR><TD><TT>--channels=#</TT></TD>
<TD>Îïðåäåëÿåò êîëè÷åñòâî êàíàëîâ â ôàéëå áåç çàãîëîâêà.</TD></TR>
-<TR><TD><TT>-fp n</TT></TD>
+<TR><TD><TT>--bps=#</TT></TD>
<TD>Îïðåäåëÿåò êîëè÷åñòâî áèò íà ñýìïë â ôàéëå áåç çàãîëîâêà.</TD></TR>
-<TR><TD><TT>-fs n</TT></TD>
+<TR><TD><TT>--sample-rate=#</TT></TD>
<TD>Îïðåäåëÿåò êîëè÷åñòâî ñýìïëîâ â ñåêóíäó â ôàéëå áåç çàãîëîâêà.</TD></TR>
-<TR><TD><TT>-fu</TT></TD>
-<TD>Óêàçûâàåò, ÷òî ñýìïëû â ôàéëå áåç çàãîëîâêà áåççíàêîâûå (ïî óìîë÷àíèþ çíàêîâûå).</TD></TR>
+<TR><TD><TT>--sign={signed|unsigned}</TT></TD>
+<TD>Îïðåäåëÿåò, äîëæíû ëè áûòü ñýìïëû â ôàéëå áåç çàãîëîâêà áåççíàêîâûå èëè çíàêîâûå (ïî óìîë÷àíèþ çíàêîâûå).</TD></TR>
-<TR><TD><TT>-fr</TT></TD>
-<TD>Âîñïðèíèìàòü âõîäíîé (èëè âûõîäíîé ïðè äåêîäèðîâàíèè) ôàéë êàê raw ïîòîê ñýìïëîâ âíå çàâèñèìîñòè îò ñóôôèêñà.</TD></TR>
+<TR><TD><TT>--force-raw-format</TT></TD>
+<TD>Âîñïðèíèìàòü âõîäíîé (èëè âûõîäíîé ïðè äåêîäèðîâàíèè) ôàéë êàê ïîòîê ñýìïëîâ áåç çàãîëîâêà âíå çàâèñèìîñòè îò ñóôôèêñà.</TD></TR>
</TABLE>
-<A NAME="metaflac">
-<H3><B><TT>metaflac</TT></B></H3>
-
-<P><B><TT>metaflac</TT></B> - ýòî ðåäàêòîð ìåòàäàííûõ, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Ñåé÷àñ îí òîëüêî âûâîäèò ñîäåðæèìîå áëîêîâ ìåòàäàííûõ âî .flac ôàéëå, íî ñêîðî ñ åãî ïîìîùüþ ìîæíî áóäåò âñòàâëÿòü, óäàëÿòü è ðåäàêòèðîâàòü áëîêè.</P>
+<H4><a name="format-options">Îòìåíà äåéñòâèÿ îïöèé</H4>
+<TABLE border=1>
+<TR><TD width=40%>
+<TT>--no-adaptive-mid-side</TT><BR>
+<TT>--no-decode-through-errors</TT><BR>
+<TT>--no-delete-input-file</TT><BR>
+<TT>--no-escape-coding</TT><BR>
+<TT>--no-exhaustive-model-search</TT><BR>
+<TT>--no-lax</TT><BR>
+<TT>--no-mid-side</TT><BR>
+<TT>--no-ogg</TT><BR>
+<TT>--no-padding</TT><BR>
+<TT>--no-qlp-coeff-precision-search</TT><BR>
+<TT>--no-residual-gnuplot</TT><BR>
+<TT>--no-residual-text</TT><BR>
+<TT>--no-sector-align</TT><BR>
+<TT>--no-seektable</TT><BR>
+<TT>--no-silent</TT><BR>
+<TT>--no-verify</TT></TD>
+<TD width=60%>Ìîæíî èñïîëüçîâàòü äëÿ îòêëþ÷åíèÿ äåéñòâèÿ êîíêðåòíîé îïöèè.</TD></TR>
+</TABLE>
-<P>Cåé÷àñ <B><TT>metaflac</TT></B> âûçûâàåòñÿ òîëüêî îäíèì ñïîñîáîì:</P>
-<P><TT>metaflac [-v] âõîäíîé_ôàéë</TT></P>
+<A NAME="metaflac">
+<H3><B><TT>metaflac</TT></B></H3>
-<P>Âõîäíûì_ôàéëîì ìîæåò áûòü "-" äëÿ ñòàíäàðòíîãî ââîäà (stdin). åñëè èñïîëüçîâàòü <TT>-v</TT>, áóäåò ïîëó÷åí áîëåå ïîäðîáíûé îò÷åò.</P>
+<P><B><TT>metaflac</TT></B> - ýòî ðåäàêòîð ìåòàäàííûõ, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Åãî ìîæíî èñïîëüçîâàòü äëÿ óäàëåíèÿ, âñòàâêè è âûâîäà ñîäåðæèìîãî áëîêîâ âî .flac ôàéëå, à òàêæå óïðàâëåíèÿ áëîêîì<TT>PADDING</TT>, ðåçåðâèðóþùèì ìåñòî.</P>
+<P>Äîêóìåíòàöèÿ äëÿ <B><TT>metaflac</TT></B> ñåé÷àñ ïåðåïèñûâàåòñÿ, ïîýòîìó ñåé÷àñ î âîçìîæíîñòÿõ ìîæíî óçíàòü, äàâ êîìàíäó: <TT>metaflac --help</TT>.
<A NAME="plugins"><A NAME="xmms_plugin">
<H3>Ïëàãèí äëÿ XMMS</H3>
<A NAME="winamp_plugin2">
<H3>Ïëàãèí äëÿ Winamp</H3>
-\r
+
<P>Åñòü äâà ïëàãèíà äëÿ Winamp: îäèí äëÿ âåðñèé 2.x, à âòîðîé äëÿ 3.x. Åñëè âû èñïîëüçóåòå Winamp 2.x, òî äëÿ óñòàíîâêè ïëàãèíà íåîáõîäèìî ñêîïèðîâàòü <TT>in_flac.dll</TT> â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà Winamp (îáû÷íî <TT>/Plugins</TT>). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå Winamp.</P>
<A NAME="winamp_plugin3">
<H3>Ïëàãèí äëÿ Winamp</H3>
-\r
-<P>Åñòü äâà ïëàãèíà äëÿ Winamp: îäèí äëÿ âåðñèé 2.x, à âòîðîé äëÿ 3.x. Åñëè âû èñïîëüçóåòå Winamp 3.x, òî äëÿ óñòàíîâêè ïëàãèíà íåîáõîäèìî ñêîïèðîâàòü <TT>cnv_flacpcm.wac</TT> â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà Winamp (îáû÷íî <TT>/Wacs</TT>). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå Winamp.</P>
-
-<A NAME="libflac">
-<H3><B><TT>libFLAC</TT></B></H3>
-
-<P>Áèáëèîòåêà <B><TT>libFLAC</TT></B> ÿâëÿåòñÿ ðåàëèçàöèåé íà C áàçîâîãî êîäåðà è äåêîäåðà. Èñïîëüçóÿ ýòó áèáëèîòåêó è íàïèñàâ íåìíîãî êîäà, ìîæíî äîáàâèòü ïîääåðæêó FLAC â ñâîþ ïðîãðàììó. Óñëîâèÿ åå ðàñïðîñòðàíåíèÿ - <A HREF="http://www.gnu.org/copyleft/lesser.html">LGPL</A>. Èñõîäíûå òåêñòû áèáëèîòåêè <B><TT>libFLAC</TT></B>, òàêæå êàê è êîíñîëüíîãî êîäåêà è ïëàãèíîâ, äîñòóïíû, è ìîãóò ïîñëóæèòü õîðîøèì ïðèìåðîì äëÿ èñïîëüçîâàíèÿ.</P>
-
-<P><B><TT>libFLAC</TT></B> òðåáóåò ñòàíäàðòíóþ è ìàòåìàòè÷åñêóþ áèáëèîòåêè äëÿ ÿçûêà C. Ïðîãðàììíûå ïîòîêè íå èñïîëüçóþòñÿ, îäíàêî, òàê êàê <B><TT>libFLAC</TT></B> íå èñïîëüçóåò ãëîáàëüíûå ïåðåìåííûå, áèáëèîòåêà äîëæíà áûòü thread-safe.</P>
-
-<P>Èíòåðôåéñ <B><TT>libFLAC</TT></B> îïèñàí â ïóáëè÷íûõ çàãîëîâî÷íûõ ôàéëàõ â êàòàëîãå include/FLAC. Äëÿ èñïîëüçîâàíèÿ ñêîìïèëèðîâàííîé áèáëèîòåêè íóæíû òîëüêî ïóáëè÷íûå çàãîëîâêè. Îáðàòèòå âíèìàíèå íà òî, ÷òî êîä èç src/libFLAC/, âêëþ÷àÿ çàùèùåííûå çàãîëîâî÷íûå ôàéëû èç src/libFLAC/include/ íå íóæåí.</P>
-
-<P>Â îñíîâíîì èñïîëüçîâàíèå <B><TT>libFLAC</TT></B> ñîñòîèò â ñëåäóþùåì:</P>
-
-<OL>
- <LI>Ïðîãðàììà ñîçäàåò ýêçåìïëÿð êîäåðà èëè äåêîäåðà ñ ïîìîùüþ ôóíêöèé <TT>*_new()</TT>.</LI>
-
- <LI>Ïðîãðàììà óñòàíàâëèâàåò ïàðàìåòðû ýêçåìïëÿðà è ïðåäîñòàâëÿåò åìó îáðàòíûå âûçîâû äëÿ ÷òåíèÿ, çàïèñè, ñîîáùåíèÿ îá îøèáêàõ è ðàáîòû ñ ìåòàäàííûìè ñ ïîìîùüþ ôóíêöèé <TT>*_set_*()</TT>.</LI>
-
- <LI>Ïðîãðàììà èíèöèàëèçèðóåò ýêçåìïëÿð, ïðîâåðÿåò ïàðàìåòðû è ãîòîâèòñÿ ê êîäèðîâàíèþ/äåêîäèðîâàíèþ, èñïîëüçóÿ ôóíêöèè <TT>*_init()</TT>.</LI>
-
- <LI>Ïðîãðàììà âûçûâàåò ôóíêöèè <TT>*_process_*()</TT> äëÿ êîäèðîâàíèÿ èëè äåêîäèðîâàíèÿ äàííûõ, êîòîðûå â ñâîþ î÷åðåäü äåëàþò îáðàòíûå âûçîâû.</LI>
-
- <LI>Ïðîãðàììà çàâåðøàåò ðàáîòó ýêçåìïëÿðà ôóíêöèåé <TT>*_finish()</TT>, êîòîðàÿ ñáðàñûâàåò áóôåðû ââîäà è âûâîäà.</LI>
-
- <LI>Ýêçåìïëÿð ìîæåò áûòü èñïîëüçîâàí ñíîâà ëèáî óäàëåí ôóíêöèåé <TT>*_delete()</TT>.</LI>
-
-</OL>
-
-<P>Äëÿ äåêîäèðîâàíèÿ <B><TT>libFLAC</TT></B> ïðåäîñòàâëÿåò òðè óðîâíÿ äîñòóïà. Íà íèæíåì óðîâíå íàõîäèòñÿ äåêîäåð ïîòîêîâ, íà ñëåäóþùåì - äåêîäåð ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà, à íà âåðõíåì - äåêîäåð ôàéëîâ. Èíòåðôåéñû îïèñàíû â ôàéëàõ <TT>stream_decoder.h</TT>, <TT>seekable_stream_decoder.h</TT> è <TT>file_decoder.h</TT> ñîîòâåòñòâåííî. Èñïîëüçîâàòü ëó÷øå âñåãî äåêîäåð áîëåå âåðõíåãî óðîâíÿ.</P>\r
-\r
-<P>Ïîòîêîâûé äåêîäåð ðàññ÷èòûâàåò íà îáðàòíûå âûçîâû äëÿ ïîëó÷åíèÿ âõîäíûõ è âûõîäíûõ äàííûõ. Äåêîäåð ñ âîçìîæíîñòüþ ïîèñêà ÿâëÿåòñÿ îáåðòêîé ïîòîêîâîãî äåêîäåðà, ïðåäîñòàâëÿþùèé âîçìîæíîñòü ïîèñêà, îäíàêî äëÿ åãî âûïîëíåíèÿ âàì íåîáõîäèìî äîáàâèòü îáðàòíûå âûçîâû. Ôàéëîâûé äåêîäåð ñàì îñóùåñòâëÿåò îáðàòíûå âûçîâû äëÿ ÷òåíèÿ è ïðåäîñòàâëÿåò ôóíêöèè ïîèñêà.</P>\r
-\r
-<P>êîäåð ïîêà ÷òî ðåàëèçîâàí òîëüêî íà ïîòîêîâîì óðîâíå (<TT>stream_encoder.h</TT>).</P>
-
-<P>Ñòðóêòóðû è êîíñòàíòû, îòíîñÿùèåñÿ ê ôîðìàòó, îïðåäåëåíû â ôàéëå <TT>format.h</TT>.</P>
-\r
-
-<P><B>ÄÅÊÎÄÅÐ ÏÎÒÎÊÎÂ</B></P>
-
-<P>Ñíà÷àëà îáñóäèì äåêîäåð ïîòîêîâ. Òèï åãî ýêçåìïëÿðà <TT>FLAC__StreamDecoder</TT>. Îáû÷íî â ïðîãðàììå ýêçåìïëÿð ñîçäàåòñÿ âûçîâîì <TT>FLAC__stream_decoder_new()</TT>, çàòåì âûçûâàåò ôóíêöèè <TT>FLAC__stream_decoder_set_*()</TT> äëÿ óñòàíîâêè îáðàòíûõ âûçîâîâ è ïîëüçîâàòåëüñêèõ äàííûõ è èíèöèàëèçèðóåòñÿ ôóíêöèåé <TT>FLAC__stream_decoder_init()</TT>. Íåîáõîäèìûå îáðàòíûå âûçîâû:</P>
-
-<UL>
- <LI>Îáðàòíûé âûçîâ äëÿ ÷òåíèÿ. Ýòà ôóíêöèÿ âûçûâàåòñÿ, êîãäà äåêîäåðó íåîáõîäèìû äàííûå.  êà÷åñòâå ïàðàìåòðîâ ïåðåäàåòñÿ àäðåñ áóôåðà, êîòîðûé íóæíî çàïîëíèòü, è åãî ðàçìåð â áàéòàõ. Îáðàòíûé âûçîâ ìîæåò âåðíóòü ìåíüøå äàííûõ è èçìåíèòü ñ÷åò÷èê áàéòîâ, íî íå äîëæåí ïåðåïîëíÿòü áóôåð. Êîä âîçâðàòà ïðè âûõîäå âûáèðàåòñÿ èç <TT>FLAC__StreamDecoderReadStatus</TT>.</LI>
-
- <LI>Îáðàòíûé âûçîâ äëÿ çàïèñè. Ýòà ôóíêöèÿ âûçûâàåòñÿ ïîñëå äåêîäèðîâàíèÿ îäíîãî ôðåéìà äàííûõ. Äåêîäåð ïåðåäàñò ìåòàäàííûå ôðåéìà, à òàêæå ìàññèâ óêàçàòåëåé (ïî îäíîìó íà êàæäûé êàíàë) íà äåêîäèðîâàííûå äàííûå.</LI>
-
- <LI>Îáðàòíûé âûçîâ äëÿ ðàáîòû ñ ìåòàäàííûìè. Ôóíêöèÿ âûçûâàåòñÿ ïîñëå ðàçáîðà áëîêà ìåòàäàííûõ. Äëÿ ïîòîêà âñåãäà äîëæåí ñóùåñòâîâàòü áëîê ìåòàäàííûõ <TT>STREAMINFO</TT>, çà êîòîðûì ìîæåò ñëåäîâàòü ïðîèçâîëüíîå êîëè÷åñòâî äðóãèõ áëîêîâ. Îíè áóäóò âîçâðàùåíû äåêîäåðîì â òîì æå ïîðÿäêå, â êàêîì îíè ðàñïîëîæåíû â ïîòîêå è âñåãäà ïåðåä ïåðâûì àóäèî ôðåéìîì. Ïåðåäàííûé áëîê ìåòàäàííûõ íå äîëæåí èçìåíÿòüñÿ è íå ñîõðàíÿåòñÿ ïîñëå îáðàòíîãî âûçîâà, ïîýòîìó, åñëè îí áóäåò íóæåí â äàëüíåéøåì ñäåëàéòå åãî êîïèþ ñ ïîìîùüþ ôóíêöèè <TT>FLAC__metadata_object_copy()</TT>.</LI>\r
-\r
- <LI>Îáðàòíûé âûçîâ äëÿ ñîîáùåíèÿ îá îøèáêå. Ýòà ôóíêöèÿ âûçûâàåòñÿ, åñëè ïðè äåêîäèðîâàíèè ïðîèñõîäèò îøèáêà.</LI>
-</UL>
-
-<P>Êîãäà äåêîäåð èíèöèàëèçèðîâàí, ïðîãðàììà ìîæåò âûçâàòü îäíó èç ñëåäóþùèõ ôóíêöèé äëÿ äåêîäèðîâàíèÿ:</P>
-
-<UL>
- <LI><B><TT>FLAC__stream_decoder_process_whole_stream()</TT></B> - Äåêîäåð íà÷èíàåò ðàáîòó è ïðîäîëæàåò îáðàáàòûâàòü ïîòîê ïîêà ôóíêöèÿ îáðàòíîãî âûçîâà ÷òåíèÿ íå ïåðåäàñò êîä <TT>FLAC__STREAM_DECODER_READ_END_OF_STREAM</TT> èëè <TT>FLAC__STREAM_DECODER_READ_ABORT</TT>.</LI>
-
- <LI><B><TT>FLAC__stream_decoder_process_metadata()</TT></B> - Äåêîäåð îáðàáàòûâàåò ïîòîê äî ïåðâîãî àóäèî ôðåéìà.</LI>
-
- <LI><B><TT>FLAC__stream_decoder_process_one_frame()</TT></B> - Äåêîäåðîâàòü òîëüêî îäèí ôðåéì. Ïåðåä âûçîâîì ýòîé ôóíêöèè âñå ìåòàäàííûå äîëæíû áûòü îáðàáîòàíû.</LI>
-
- <LI><B><TT>FLAC__stream_decoder_process_remaining_frames()</TT></B> - Äåêîäèðîâàòü âñå îñòàâøèåñÿ ôðåéìû. Ïåðåä âûçîâîì ýòîé ôóíêöèè âñå ìåòàäàííûå äîëæíû áûòü îáðàáîòàíû. Ïåðåä âûçîâîì ýòîé ôóíöèè òàêæå ìîæåò âûçûâàòüñÿ <TT>FLAC__stream_decoder_process_one_frame()</TT>.</LI>
-</UL>
-
-<P>Êîãäà äåêîäåð çàêàí÷èâàåò ðàáîòó, ýêçåìïëÿð îáðàáàòûâàåòñÿ ôóíêöèåé <TT>FLAC__stream_decoder_finish()</TT>, êîòîðàÿ ïðîâåðÿåò ñîñòîÿíèå äåêîäåðà è îñâîáîæäàåò ïàìÿòü. Çàòåì ýêçåìïëÿð ìîæåò áûòü óäàëåí ôóíêöèåé <TT>FLAC__stream_decoder_delete()</TT> èëè èíèöèàëèçèðîâàí çàíîâî äëÿ äåêîäèðîâàíèÿ äðóãîãî ïîòîêà.</P>
-
-<P>Îáðàòèòå âíèìàíèå íà òî, ÷òî ïîòîêîâûé äåêîäåð íå èìååò ïðåäñòàâëåíèÿ î ïîçèöèè â ïîòîêå, îí òîëüêî ïðåîáðàçîâûâàåò äàííûå. ×òîáû îñóùåñòâëÿòü ïîèñê â ïîòîêå ôóíêöèè îáðàòíîãî âûçîâà ìîãóò òîëüêî ñáðàñûâàòü äàííûå äåêîäåðà ôóíêöèåé <TT>FLAC__stream_decoder_flush()</TT> è íà÷èíàòü ïîäàâàòü äàííûå ñ íîâîé ïîçèöèè ñ ïîìîùüþ îáðàòíîãî âûçîâà äëÿ ÷òåíèÿ. Äåêîäåð ôàéëîâ ïîñòóïàåò èìåííî òàê.</P>
-\r
-<P><B>ÄÅÊÎÄÅÐ ÏÎÒÎÊÎÂ Ñ ÂÎÇÌÎÆÍÎÑÒÜÞ ÏÎÈÑÊÀ</B></P>\r
-
-<P>Äåêîäåð ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà ÿâëÿåòñÿ îáåðòêîé äëÿ ñòàíäàðòíîãî äåêîäåðà ïîòîêîâ. Òèï åãî ýêçåìïëÿðà - <TT>FLAC__SeekableStreamDecoder</TT>. Ê îáðàíûì âûçîâàì äåêîäåðà ïîòîêîâ äëÿ ÷òåíèÿ, çàïèñè, ðàáîòû ñ ìåòàäàííûìè è îáðàáîòêè îøèáîê íåîáõîäèìî äîáàâèòü åùå ñëåäóþùèå:</P>\r
-\r
-<UL>\r
- <LI>Îáðàòíûé âûçîâ äëÿ ïîèñêà. Ýòà ôóíêöèÿ âûçûâàåòñÿ, êîãäà äåêîäåðó íóæíî íàéòè àáñîëþòíóþ ïîçèöèþ â ïîòîêå.</LI>\r
- <LI>Îáðàòíûé âûçîâ äëÿ îïðåäåëåíèÿ òåêóùåé ïîçèöèè. Ýòà ôóíêöèÿ âûçûâàåòñÿ, êîãäà äåêîäåðó íóæíî óçíàòü òåêóùóþ ïîçèöèþ â ïîòîêå.</LI>\r
- <LI>Îáðàòíûé âûçîâ äëÿ îïðåäåëåíèÿ ðàçìåðà ïîòîêà. Ôóíêöèÿ âûçûâàåòñÿ, êîãäà äåêîäåðó íóæíî óçíàòü ðàçìåð ïîòîêà. Èñïîëüçóåìîìó àëãîðèòìó ïîèñêà òðåáóåòñÿ çíàòü îáùèé ðàçìåð ïîòîêà.</LI>\r
- <LI>Îáðàòíûé âûçîâ äëÿ îïðåäåëåíèÿ êîíöà ïîòîêà. Ôóíêöèÿ âûçûâàåòñÿ, êîãäà äåêîäåðó íóæíî çíàòü, äîñòèã ëè îí êîíöà ïîòîêà. Ýòîãî ðåçóëüòàòà ìîæíî äîáèòüñÿ, èñïîëüçóÿ îáðàòíûå âûçîâû äëÿ îïðåäåëåíèÿ òåêóùåé ïîçèöèè è îáùåãî ðàçìåðà, íî òàêîé ñïîñîá ìîæåò ïîòðåáîâàòü ãîðàçäî áîëüøå ðåñóðñîâ.</LI>\r
-\r
-<P>Ïîèñê îñóùåñâëÿåòñÿ ÷åðåç ìåòîä <TT>FLAC__seekable_stream_decoder_seek_absolute()</TT>.  ëþáîé ìîìåíò ïîñëå èíèöèàëèçàöèè ïîëüçîâàòåë ìîæåò âûçâàòü ýòó ôóíêöèþ äëÿ ïåðåõîäà ê îïðäåëåííîìó ñýìïëó â ïîòîêå. Ïåðâûé îáðàòíûé âûçîâ çàïèñè áóäåò ñîäåðæàòü (âîçìîæíî, íåïîëíûé) áëîê, íà÷èíàþùèéñÿ ñ çàäàííîãî ñýìïëà.</P>\r
-\r
-<P>Äåêîäåð ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà ïðåäîñòàâëÿåò ïðîâåðêó ïîäïèñåé MD5. Åñëè åå âêëþ÷èòü ïåðåä èíèöèàëèçàöèåé, ôóíêöèÿ <TT>FLAC__seekable_stream_decoder_finish()</TT> ñîîáùèò ñîâïàäàåò ëè ïîäïèñü MD5 äåêîäèðîâàííîãî ïîòîêà ñ ñîõðàíåííîé áëîêå <TT>STREAMINFO</TT>. Ïðîâåðêà ïîäïèñè MD5 àâòîìàòè÷åñêè îòêëþ÷àåòñÿ ïðè ïîïûòêå ïîñèêà èëè åñëè â áëîêå <TT>STREAMINFO</TT> íå íàéäåíà ïîäïèñü.</TT>\r
-
-<P><B>ÄÅÊÎÄÅÐ ÔÀÉËÎÂ</B></P>
-
-<P>Äåêîäåð ôàéëîâ - ýòî îáîëî÷êà äåêîäåðà ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà, ïðèçâàííàÿ óïðîñòèòü ïðîöåññ äåêîäèðîâàíèÿ ôàéëîâ. Òèï åãî ýêçåìïëÿðà - <TT>FLAC__FileDecoder</TT>. Îòëè÷èå îò ïîòîêîâîãî äåêîäåðà ñîñòîèò â òîì, ÷òî âìåñòî îáðàòíîãî âûçîâà äëÿ ÷òåíèÿ (êîòîðûé îáðàáàòûâàåò ñàì äåêîäåð) ïðè èíèöèàëèçàöèè óêàçûâàåòñÿ ïóòü ê ôàéëó. Âûïîëíåíèå îñòàëüíûõ ôóíêöèé äåêîäåð áåðåò íà ñåáÿ.</P>
-
-<P>Àíàëîãè÷íî äåêîäåðó ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà îí ïðåäîñòàâëÿåò ïîèñê ÷åðåç ìåòîä <TT>FLAC__file_decoder_seek_absolute()</TT>.  ëþáîé ìîìåíò ïîñëå èíèöèàëèçàöèè äåêîäåðà ôàéëîâ ïðîãðàììà ìîæåò âûçâàòü ýòó ôóíêöèþ äëÿ ïîèñêà ñýìïëà â ôàéëå. Âïîñëåäñòâèè, ïðè ïåðâîì îáðàòíîì âûçîâå äëÿ çàïèñè îí áóäåò ñîäåðæàòü (âîçæîæíî íåïîëíûé) áëîê, íà÷èíàþùèéñÿ ñ ýòîãî ñýìïëà.</P>
-
-<P>Îò äåêîäåðà ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà òàêæå íàñëåäóåòñÿ ïðîâåðêà ïîäïèñè MD5. Åñëè ýòà âîçìîæíîñòü áóäåò âêëþ÷åíà ïåðåä èíèöèàëèçàöèåé, <TT>FLAC__file_decoder_finish()</TT> ñîîáùèò, åñëè ïîäïèñü MD5 ðàñïàêîâàííûõ äàííûõ íå ñîâïàäåò ñ ñîõðàíåííîé â áëîêå STREAMINFO. Ïðîâåðêà MD5 àâòîìàòè÷åñêè âûêëþ÷àåòñÿ, åñëè â áëîêå STREAMINFO íåò ïîäïèñè èëè ïðè ïîïûòêå îñóùåñòâëåíèÿ ïîèñêà.
-
-
-<P><B>êîäåð ÏÎÒÎÊÎÂ</B></P>
-
-<P>êîäåð ïîòîêîâ ðàáîòàåò àíàëîãè÷íî äåêîäåðó, îäíàêî èìååò ìåíüøå îáðàòíûõ âûçîâîâ è áîëüøå îïöèé. Òèï ýêçåìïëÿðà - <TT>FLAC__StreamEncoder</TT>. Äëÿ ñîçäàíèÿ íîâîãî ýêçåìïëÿðà â ïðîãðàììå íóæíî âûçâàòü ôóíêöèþ <TT>FLAC__stream_encoder_new()</TT>, à ÷òîáû ïðîèíèöèàëèçèðîâàòü åãî - <TT>FLAC__stream_encoder_init()</TT>.</P>
-
-<P> îòëè÷èå îò ïðîöåññà äåêîäèðîâàíèÿ êîäèðîâàíèå â ôîðìàò FLAC èìååò ìíîæåñòâî îïöèé, âëèÿþùèõ íà ñêîðîñòü è óðîâåíü ñæàòèÿ. Êîãäà ïðîãðàììà âûçûâàåò <TT>FLAC__stream_encoder_init()</TT>, êîäåð ïðîâåðÿåò çíà÷åíèÿ, ïîýòîìó íåîáõîäèìî óáåäèòüñÿ, ÷òî âîçâðàùåìîå ýòîé ôóíêöèåé çíà÷åíèå - <TT>FLAC__STREAM_ENCODER_OK</TT>. Äëÿ óñòàíîâêè ïàðàìåòðîâ íóæíî èìåòü íåêîòîðîå ïðåäñòàâëåíèå î ôîðìàòå (ñì. <A HREF="#format">îïèñàíèå ôîðìàòà äëÿ ïîëüçîâàòåëÿ</A> èëè åãî <A HREF="format.html">ôîðìàëüíîå îïèñàíèå</A>). Ñïèñîê íåîáõîäèìûõ ïàðàìåòðîâ ïðèâåäåí çäåñü:</P>
-
-<UL>
- <LI><B><TT>streamable_subset</TT></B> - <TT>èñòèíà</TT>, åñëè íåîáõîäèìî, ÷òîáû âûõîä ñîîòâåòñòâîâàë ïîòîêîâîìó <A HREF="format.html#subset">ïîäìíîæåñòâó ôîðìàòà</A>, èíà÷å <TT>ëîæü</TT>.</LI>
-
- <LI><B><TT>do_mid_side_stereo</TT></B> - <TT>èñòèíà</TT>, åñëè íóæíî èñïîëüçîâàòü óñðåäíåííîå êîäèðîâàíèå äëÿ ñòåðåî ïîòîêîâ. Çíà÷åíèå <TT>channels</TT> äîëæíî áûòü <TT>2</TT>.</LI>
-
- <LI><B><TT>loose_mid_side_stereo</TT></B> - <TT>èñòèíà</TT>, ÷òîáû ïðèìåíèòü àäàïòèâíîå ïåðåêëþ÷åíèå ðåæèìà óñðåäíåííîãî êîäèðîâàíèÿ, èíà÷å ëîæü. <TT>do_mid_side_stereo</TT> äîëæíî áûòü èñòèíà.</LI>
-
- <LI><B><TT>channels</TT></B> (êîëè÷åñòâî êàíàëîâ) - äîëæíî áûòü <= <TT>FLAC__MAX_CHANNELS</TT>.</LI>
-
- <LI><B><TT>bits_per_sample</TT></B> - êîëè÷åñòâî áèòîâ íà ñýìïë.</LI>
-
- <LI><B><TT>sample_rate</TT></B> (÷àñòîòà äèñêðåòèçàöèè) - äîëæíî áûòü <= <TT>FLAC__MAX_SAMPLE_RATE</TT>.</LI>
-
- <LI><B><TT>blocksize</TT></B> (ðàçìåð áëîêà) - äîëæåí áûòü ìåæäó <TT>FLAC__MIN_BLOCKSIZE</TT> è <TT>FLAC__MAX_BLOCKSIZE</TT>.</LI>
-
- <LI><B><TT>max_lpc_order</TT></B> (ìàêñèìàëüíûé ïîðÿäîê êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ) - <TT>0</TT> óêàçûâàåò, ÷òî êîäåð íå äîëæåí èñïîëüçîâàòü LPC, à òîëüêî ïîñòîÿííûå ïðåäèêòîðû. Äîëæíî áûòü <= <TT>FLAC__MAX_LPC_ORDER</TT>.</LI>
-
- <LI><B><TT>qlp_coeff_precision</TT></B> - äîëæíî áûòü >= <TT>FLAC__MIN_QLP_COEFF_PRECISION</TT>, èëè <TT>0</TT>, ÷òîáû êîäåð ìîã âûáèðàòü êîýôôèöèåíòû â çàâèñèìîñòè îò ðàçìåðà áëîêà. Â òåêóùåé ðåàëèçàöèè ñóììà <TT>qlp_coeff_precision</TT>+<TT>bits_per_sample</TT> äîëæíà áûòü < <TT>32</TT>.</LI>
-
- <LI><B><TT>do_qlp_coeff_prec_search</TT></B> - <TT>ëîæü</TT>, ÷òîáû èñïîëüçîâàòü çàäàííîå çíà÷åíèå <TT>qlp_coeff_precision</TT>; <TT>èñòèíà</TT> äëÿ ïîèñêà è âûáîðà ëó÷øåãî çíà÷åíèÿ <TT>qlp_coeff_precision</TT>.</LI>
-
- <LI><B><TT>do_escape_coding</TT></B> - èñòèíà, åñëè íóæíî èñêàòü óïðàâëÿþùèé êîä íà ñòàäèè êîäèðîâàíèÿ ýíòðîïèè äëÿ íåáîëüøîãî óâåëè÷åíèÿ óðîâíÿ ñæàòèÿ.</LI>
-
- <LI><B><TT>do_exhaustive_model_search</TT></B> (ïðîèçâîäèòü ïîëíûé ïîèñê íàèëó÷øåé ìîäåëè) - <TT>ëîæü</TT>, to use estimated bits per residual for scoring; <TT>èñòèíà</TT> äëÿ ïåðåáîðà âñåõ âîçìîæíûõ âàðèàíòîâ è âûáîðà íàèëó÷øåãî.</LI>
-
- <LI><B><TT>min_residual_partition_order</TT></B> (ìèíèìàëüíûé ïîðÿäîê ðàçäåëà îñòàòêîâ), <B><TT>max_residual_partition_order</TT></B> (ìàêñèìàëüíûé ïîðÿäîê ðàçäåëà îñòàòêîâ)= <TT>0</TT>, ÷òîáû îöåíèâàòü ïàðàìåòð Ðàéñà îñíîâûâàÿñü íà äèñïåðñèè îñòàòêîâ; > <TT>0</TT> äëÿ ðàçäåëåíèÿ îñòàòêîâ è îïðåäåëåíèÿ ïàðàìåòðà äëÿ êàæäîãî ðàçäåëà, îñíîâûâàÿñü íà ñðåäíåì. <TT>min_residual_partition_order</TT> è <TT>max_residual_partition_order</TT> îïðåäåëÿþò ìèíèìàëüíûé è ìàêñèìàëüíûé ïîðÿäîê ðàçäåëà Ðàéñà.</LI>
-
- <LI><B><TT>rice_parameter_search_dist</TT></B> (èíòåðâàë äëÿ ïîèñêà ïàðàìåòðà Ðàéñà) - <TT>0</TT>, ÷òîáû èñïîëüçîâàòü òîëüêî âû÷èñëåííûé ïàðàìåòð <TT>k</TT>; èíà÷å ïûòàòüñÿ êîäèðîâàòü ñî âñåìè ïàðàìåòðàìè èç èíòåðâàëà [<TT>k</TT>-<TT>rice_parameter_search_dist</TT>..<TT>k</TT>+<TT>rice_parameter_search_dist</TT>] è âûáèðàòü ëó÷øèé âàðèàíò.</LI>
-
- <LI><B><TT>total_samples_estimate</TT></B> (êîëè÷åñòâî ñýìïëîâ) - Ìîæåò ðàâíÿòüñÿ <TT>0</TT>, åñëè íåèçâåñòíî. Èíà÷å óêàçûâàåòñÿ êîëè÷åñòâî ñýìïëîâ, êîòîðîå íóæíî çàêîäèðîâàòü. Ýòî ïîçâîëÿåò ñîçäàâàòü áîëåå òî÷íûé áëîê <TT>STREAMINFO</TT> ïðè ïåðâîì æå ïðîõîäå â ñëó÷àå, êîãäà êîäåð íå ìîæåò âåðíóòüñÿ ê íà÷àëó âûâîäà, ÷òîáû îáíîâèòü áëîê <TT>STREAMINFO</TT>.</LI>
-
- <LI><B><TT>seek_table</TT></B> (òàáëèöà äëÿ ïîèñêà) - ñîçäàòü íåîáÿçàòåëüíóþ òàáëèöó äëÿ ïîèñêà â ôàéëå. <TT>NULL</TT> óêàçûâàåò, ÷òî òàáëèöà íå íóæíà.</LI>
-
- <LI><B><TT>padding</TT></B> (ðåçåðâèðîâàíèå ìåñòà) - ðàçìåð áëîêà <TT>PADDING</TT> (ñëåäóåò çà òàáëèöåé äëÿ ïîèñêà); <TT>-1</TT> îçíà÷àåò, ÷òî áëîê <TT>PADDING</TT> äîáàâëÿòü íå íóæíî. Ïîìíèòå, ÷òî óêàçûâàåòñÿ ðàçìåð äëÿ äàííûõ; îáùèé ðàçìåð áëîêà PADDING áóäåò íà 4 áàéòà áîëüøå èç-çà çàãîëîâêà.</LI>
-</UL>
-
-<P>Ïðîãðàììà äîëæíà ïðåäîñòàâèòü <TT>FLAC__stream_encoder_init()</TT> àäðåñà äëÿ ñëåäóþùèõ îáðàòíûõ âûçîâîâ:</TT>
-
-<UL>
- <LI>Îáðàòíûé âûçîâ äëÿ çàïèñè. Âûçûâàåòñÿ, êîãäà ïîÿâëÿþòñÿ çàêîäèðîâàííûå äàííûå äëÿ çàïèñè. Ýòî ìîãóò áûòü ìåòàäàííûå ñìåøàííûå ñ àóäèî ôðåéìàìè, ïðè÷åì íå ãàðàíòèðóåòñÿ, ÷òî äàííûå áóäóò âûðîâíåíû íà ãðàíèöó áëîêà ìåòàäàííûõ èëè ôðåéìà.</LI>
-
- <LI>Îáðàòíûé âûçîâ äëÿ ðàáîòû ñ ìåòàäàííûìè. Âûçûâàåòñÿ îäíàæäû ïî çàâåðøåíèè êîäèðîâàíèÿ ñ populated ñòðóêòóðîé <TT>STREAMINFO</TT>. Ýòî íóæíî äëÿ òîãî, ÷òîáû êîäåðû ôàéëîâ ìîãëè âåðíóòüñÿ ê íà÷àëó ôàéëà è çàïèñàòü â áëîê <TT>STREAMINFO</TT> êîððåêòíûå äàííûå î êîäèðîâàíèè, íàïðèìåð ìèíèìàëüíûé è ìàêñèìàëüíûé ðàçìåð ôðåéìà.</LI>
-</UL>
-
-<P>Âûçîâ <TT>FLAC__stream_encoder_init()</TT> íåïîñðåäñòâåííî ïðîèçâîäèò îáðàòíûé âûçîâ äëÿ çàïèñè ñèãíàòóðû "fLaC" è âñåõ îïðåäåëåííûõ íà äàííûé ìîìåíò ìåòàäàííûõ.</P>
-
-<P>Ïîñëå èíèöèàëèçàöèè ýêçåìïëÿðà ïðîãðàììà ìîæåò ïåðåäàâàòü äàííûå êîäåðó äâóìÿ ñïîñîáàìè:</P>
-
-<UL>
- <LI>Ðàçäåëåííûìè ïî êàíàëàì ÷åðåç <B><TT>FLAC__stream_encoder_process()</TT></B>.  ýòîì ñëó÷àå íóæíî îïðåäåëèòü ìàññèâ óêàçàòåëåé íà áóôôåðû îäèíàêîâîãî ðàçìåðà, ïî îäíîìó íà êàæäûé êàíàë. Âûðàâíèâàòü ñýìïëû íà ãðàíèöó áëîêà íå íóæíî.</LI>
-
- <LI> ÷åðåäóþùèõñÿ êàíàëàõ ÷åðåç <B><TT>FLAC__stream_encoder_process_interleaved()</TT></B>. Ïðîãðàììà äîëæíà ïåðåäàòü îäèí óêàçàòåëü íà àóäèî äàííûå ñ ÷åðåäóþùèìèñÿ êàíàëàìè (íàïðèìåð, <TT>êàíàë0_ñýìïë0, êàíàë1_ñýìïë0, ... , êàíàëN_ñýìïë0, êàíàë0_ñýìïë1, ...</TT>). Äàííûå ìîãóò áûòü íå âûðîâíåíû íà ãðàíèöó áëîêà, íî äîëæíû áûòü âûðîâíåíû íà ãðàíèöó ñýìïëà, ò.å. ïåðâûì çíà÷åíèåì äîëæíî áûòü <TT>êàíàë0_ñýìïëX</TT>, à ïîñëåäíèì - <TT>êàíàëN_ñýìïëY</TT>.</LI>
-</UL>
-
-<P>Äëÿ çàâåðøåíèÿ êîäèðîâàíèÿ äàííûõ ïðîãðàììà âûçûâàåò ôóíêöèþ <TT>FLAC__stream_encoder_finish()</TT>, êîòîðàÿ êîäèðóåò îñòàâøèåñÿ äàííûå èç âõîäíîãî ïîòîêà è äåëàåò îáðàòíûé âûçîâ äëÿ ðàáîòû ñ ìåòàäàííûìè ñ êîððåêòíîé ñòàòèñòèêîé î ïðîöåññå êîäèðîâàíèÿ. Ýêçåìïëÿð ìîæåò áûòü óäàëåí ôóíêöèåé <TT>FLAC__stream_encoder_delete()</TT> èëè èíèöèàëèçèðîâàí ñíîâà äëÿ êîäèðîâàíèÿ íîâîãî ïîòîêà.</P>
-
-
-<P><B>ÐÀÇÍÎÅ</B></P>
-
-<P>Íåîáõîäèìî îòìåòèòü, ÷òî êîãäà ïåðåäàþòñÿ óêàçàòåëè íà àóäèî äàííûå, èõ ïîðÿäîê èìååò çíà÷åíèå òîëüêî äëÿ ñòåðåî ïîòîêîâ. Êàíàë <TT>0</TT> ñîîòâåòñòâóåò ëåâîìó êàíàëó, à <TT>1</TT> - ïðàâîìó.</P>
-
-
-<P><B>ÌÅÒÀÄÀÍÍÛÅ</B></P>
-
-<P>Ïðîãðàììû, çàïèñûâàþùèå ñâîè áëîêè ìåòàäàííûõ <TT>APPLICATION</TT>, ìîãóò óêàçàòü êîäåðó, ÷òîáû îí çàïèñàë áëîê ìåòàäàííûõ <TT>PADDING</TT> íóæíîãî ðàçìåðà.  ýòîì ñëó÷àå âìåñòî ïåðåçàïèñè âñåãî ïîòîêà ïîñëå êîäèðîâàíèÿ ïðîãðàììà ñìîæåò ïðîñòî çàìåíèòü áëîê <TT>PADDING</TT> íà ñâîé. Åñëè èçâåñòåí òîëüêî ìàêñèìàëüíûé ðàçìåð áëîêà <TT>APPLICATION</TT>, ïðîãðàììà ìîæåò ñîçäàòü ðåçåðâíûé áëîê ÷óòü áîëüøåãî ðàçìåðà, à ïîñëå êîäèðîâàíèÿ ðàçäåëèòü åãî íà áëîêè <TT>APPLICATION</TT> è <TT>PADDING</TT>.</P>
-
-<P>Åñëè ðàçìåð áëîêà ìåòàäàííûõ <TT>APPLICATION</TT> èçâåñòåí çàðàíåå, ðàçìåð ðåçåðâèðóåìîé îáëàñòè ìîæåò áûòü ëåãêî âû÷åñëåí. Åñëè ðàçìåð áëîêà <TT>APPLICATION</TT> (íå âêëþ÷àÿ çàãîëîâîê áëîêà) ðàâåí <TT>N</TT> áàéòàì, òî ýêçåìïëÿðó FLAC__StreamEncoder ïåðåä èíèöèàëèçàöèåé íóæíî ïåðåäàòü çíà÷åíèå <TT>N+4</TT>. Ýòî íóæíî, ÷òîáû ó÷åñòü äîïîëíèòåëüíîå ìåñòî íåîáõîäèìîå äëÿ õðàíåíèÿ èäåíòèôèêàòîðà ïðèëîæåíèÿ.</P>
-
-<P>Êîãäà èçâåñòåí òîëüêî ìàêñèìàëüíûé ðàçìåð, ñêàæåì, <TT>N</TT> áàéò, íóæíî çàðåçåðâèðîâàòü <TT>N+8</TT> áàéò. ×åòûðå äëÿ ID ïðèëîæåíèÿ è ÷åòûðå äëÿ äîïîëíèòåëüíîãî áëîêà <TT>PADDING</TT>, êîòîðûé çàïîëíèò îñòàâøååñÿ ïðîñòðàíñòâî. Ïî îêîí÷àíèè êîäèðîâàíèÿ, êîãäà ðàçìåð áëîêà äàííûõ <TT>APPLICATION</TT> ñòàíîâèòñÿ èçâåñòíîé è ðàâíîé, äîïóñòèì, <TT>M</TT> áàéòàì, íà ìåñòî ïåðâîíà÷àëüíîãî áëîêà <TT>PADDING</TT> áóäåò çàïèñàí áëîê <TT>APPLICATION</TT> è áëîê <TT>PADDING</TT> äëèíîé <TT>N-M</TT> áàéòîâ.</P>
+<P>Åñòü äâà ïëàãèíà äëÿ Winamp: îäèí äëÿ âåðñèé 2.x, à âòîðîé äëÿ 3.x. Åñëè âû èñïîëüçóåòå Winamp 3.x, òî äëÿ óñòàíîâêè ïëàãèíà íåîáõîäèìî ñêîïèðîâàòü <TT>cnv_flacpcm.wac</TT> â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà Winamp (îáû÷íî <TT>/Wacs</TT>). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå Winamp.</P>
<A NAME="bugs">
<H3>Èçâåñòíûå îøèáêè</H3>
<P>Îòñëåæèâàíèå îøèáîê âåäåòñÿ íà <A HREF="http://sourceforge.net/bugs/?group_id=13478">ýòîé</A> ñòðàíèöå ïðîåêòà, íàõîäÿùåéñÿ íà SourceForge. Åñëè Âû áóäåòå ñîîáùàòü îá îøèáêå, ïîæàëóéñòà, îñòàâüòå e-mail äëÿ êîíòàêòà.</P>
-\r
+
<A NAME="monkey">
<H3>monkey</H3>
</UL>
</P>
-<P>Åñëè âàì íðàâèòñÿ èñïîëüçîâàòü îáîëî÷êó Monkey's Audio GUI äëÿ ïîëó÷åíèÿ ôàéëîâ FLAC, ïîïðîñèòå <A HREF="mailto:email@monkeysaudio.com">Ìýòà</A> (àâòîðà) äîáàâèòü îôèöèàëüíóþ ïîääåðæêó FLAC! Äðóãèå îáîëî÷êè ìîæíî èñïîëüçîâàòü àíàëîãè÷íûì îáðàçîì. Åñëè âû çàèòåðåñîâàíû â èñïîëüçîâàíèè êàêîé-ëèáî, ïèøèòå â ñïèñîê ðàññûëêè flac-dev.</P>
+<P>Äðóãèå îáîëî÷êè ìîæíî èñïîëüçîâàòü ïðèìåðíî òàêèì æå ñïîñîáîì.</P>
<P> Copyright (c) 2000,2001,2002 Josh Coalson</P>