From 3a3e09fa73a122ded504aa8ee8a231f18248180e Mon Sep 17 00:00:00 2001
From: Andrey Astafiev flac - ýòî êîäåê, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Âõîäîì äëÿ êîäåðà è âûõîäîì äëÿ äåêîäåðà äîëæåí áûòü ëèáî äàííûå â ôîðìàòå RIFF WAVE, ëèáî ïîòîê ñýìïëîâ áåç çàãîëîâêà. flac èñïîëüçóåò òîëüêî ëèíåéíûå PCM ñýìïëû (äðóãèìè ñëîâàìè, A-LAW, uLAW, è ò.ï. íå ïîääåðæèâàþòñÿ). Ñëåäóþùèì îãðàíè÷åíèåì ÿâëÿåòñÿ òî, ÷òî âî êîäèðóåìîì ôàéëå ñýìïëû äîëæíû áûòü 8, 16 èëè 24-áèòíûìè. Ýòî íå îãðàíè÷åíèå ôîðìàòà, ïðîñòî òàê ðàáîòàþò áàçîâûé êîäåð è äåêîäåð. flac - ýòî êîäåê, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Âõîäîì äëÿ êîäåðà è âûõîäîì äëÿ äåêîäåðà äîëæíû áûòü äàííûå â ôîðìàòå RIFF WAVE, AIFF èëè â âèäå ïîòîêà ñýìïëîâ áåç çàãîëîâêà. flac èñïîëüçóåò òîëüêî ëèíåéíûå PCM ñýìïëû (äðóãèìè ñëîâàìè, A-LAW, uLAW, è ò.ï. íå ïîääåðæèâàþòñÿ). Ñëåäóþùèì îãðàíè÷åíèåì ÿâëÿåòñÿ òî, ÷òî âî êîäèðóåìîì ôàéëå ñýìïëû äîëæíû áûòü 8, 16 èëè 24-áèòíûìè. Ýòî íå îãðàíè÷åíèå ôîðìàòà, ïðîñòî òàê ðàáîòàþò áàçîâûé êîäåð è äåêîäåð. flac ïðåäïîëàãàåò, ÷òî ôàéëû RIFF WAVE èìåþò ñóôôèêñ ".wav"; ýòî óìîë÷àíèå ìîæåò áûòü ïåðåîïðåäåëåíî ñïåöèàëüíûì êëþ÷îì. Òàêæå ïðåäïîëàãàåòñÿ, ÷òî ôàéëû ñ ñóôôèêîì ".ogg" èìåþò ôîðìàò Ogg-FLAC.  îñòàëüíûõ ñëó÷àÿõ flac íå äåëàåò ïðåäïîëîæåíèé î ñóôôèêñàõ, õîòÿ ïî ñîãëàøåíèþ ôàéëû FLAC èìåþò ñóôôèêñ ".flac" (èëè ".fla" íà ñòàðûõ ôàéëîâûõ ñèñòåìàõ òàêèõ êàê FAT-16). flac ïðåäïîëàãàåò, ÷òî ôàéëû RIFF WAVE èìåþò ñóôôèêñ ".wav", à ôàéëû ôîðìàòà AIFF èìåþò ñóôôèêñû ".aif", ".aiff" èëè âñòðå÷åí çàãîëîâîê AIFF; ýòî óìîë÷àíèå ìîæåò áûòü ïåðåîïðåäåëåíî ñïåöèàëüíûì êëþ÷îì. Òàêæå ïðåäïîëàãàåòñÿ, ÷òî ôàéëû ñ ñóôôèêîì ".ogg" èìåþò ôîðìàò Ogg-FLAC.  îñòàëüíûõ ñëó÷àÿõ flac íå äåëàåò ïðåäïîëîæåíèé î ñóôôèêñàõ, õîòÿ ïî ñîãëàøåíèþ ôàéëû FLAC èìåþò ñóôôèêñ ".flac" (èëè ".fla" íà ñòàðûõ ôàéëîâûõ ñèñòåìàõ òàêèõ êàê FAT-16). Ïåðåä ïîëíûì îïèñàíèåì êëþ÷åé, èñïîëüçóåìûõ flac, îáðàòèì âíèìàíèå íà òî ÷òî: 1) ïî óìîë÷àíèþ flac ñæèìàåò ôàéëû (äëÿ äåêîäèðîâàíèÿ èñïîëüçóéòå êëþ÷ -d); 2) êëþ÷è -0..-8, à òàêæå --fast è --best, óïðàâëÿþùèå óðîâíåì ñæàòèÿ, ÿâëÿþòñÿ ñèíîíèìàìè äëÿ ðàçëè÷íûõ ãðóïï íàñòðîåê êîäèðîâàíèÿ. Òîãî æå ýôôåêòà ìîæíî äîáèòüñÿ, èñïîëüçóÿ íàáîðû ñîîòâåòñòâóþùèõ êëþ÷åé; 3) ìîäåëü îáðàáîòêè âõîäíûõ è âûõîäíûõ ôàéëîâ ó flac àíàëîãè÷íà gzip. Äàííûå â ñòàíäàðòíûé âûâîä ìîæíî ïåðåíàïðàâèòü ñ ïîìîùüþ êëþ÷à -c. Îïöèè êîäèðîâàíèÿ âëèÿþò íà ñêîðîñòü ðàáîòû è óðîâåíü ñæàòèÿ. Íàñòðîéêè ôîðìàòà îïðåäåëÿþò ðàñïîëîæåíèå ñýìïëîâ, åñëè íà âõîä ïîñòóïàåò ôàéë áåç çàãîëîâêà. Åñëè ó ôàéëà åñòü çàãîëîâîê RIFF WAVE, òî íàñòîéêè ôîðìàòà íå íóæíû, òàê êàê îíè áåðóòñÿ èç ôàéëà. Îïöèè êîäèðîâàíèÿ âëèÿþò íà ñêîðîñòü ðàáîòû è óðîâåíü ñæàòèÿ. Íàñòðîéêè ôîðìàòà îïðåäåëÿþò ðàñïîëîæåíèå ñýìïëîâ, åñëè íà âõîä ïîñòóïàåò ôàéë áåç çàãîëîâêà. Åñëè ó ôàéëà åñòü çàãîëîâîê RIFF WAVE èëè AIFF, òî íàñòîéêè ôîðìàòà íå íóæíû, òàê êàê îíè áåðóòñÿ èç ôàéëà.  ðåæèìå òåñòèðîâàíèÿ flac ðàáîòàåò êàê è ïðè äåêîäèðîâàíèè, òîëüêî âûõîäíîé ôàéë íå çàïèñûâàåòñÿ. Ðåæèìû äåêîäèðîâàíèÿ è òåñòèðîâàíèÿ ïðîâåðÿþò ïîòîê íà íàëè÷èå îøèáîê, à òàêæå ñðàâíèâàþò ïîäïèñü MD5 äåêîäèðîâàííîãî ïîòîêà ñ ñîõðàíåííîé ïîäïèñüþ, äàæå åñëè ôîðìàò ïîòîêà ïðàâèëüíûé. Ïðè êîäèðîâàíèè ãåíåðèðóåòñÿ âûâîä â ôîðìàòå Ogg-FLAC âìåñòî "ðîäíîãî"FLAC. Ïîòîêè Ogg-FLAC ïðåäñòàâëÿþò ñîáîé ïîòîêè FLAC îáåðíóòûå â òðàíñïîðòíûé óðîâåíü Ogg. Ïîëó÷åííûé ôàéë áóäåò èìåòü ñóôôèêñ '.ogg' è áóäåò äåêîäèðîâàòüñÿ óòèëèòîé flac. Ïðè êîäèðîâàíèè ãåíåðèðóåòñÿ âûâîä â ôîðìàòå Ogg-FLAC âìåñòî "ðîäíîãî" FLAC. Ïîòîêè Ogg-FLAC ïðåäñòàâëÿþò ñîáîé ïîòîêè FLAC îáåðíóòûå â òðàíñïîðòíûé óðîâåíü Ogg. Ïîëó÷åííûé ôàéë áóäåò èìåòü ñóôôèêñ '.ogg' è áóäåò äåêîäèðîâàòüñÿ óòèëèòîé flac. Ïðè äåêîäèðîâàíèè ôîðìàò ââîäà îäíîçíà÷íî îïðåäåëÿåòñÿ êàê Ogg-FLAC. Ýòî ïîëåçíî ïðè ïîëó÷åíèè äàííûõ ñî ñòàíäàðòíîãî ââîäà èëè åñëè ó ôàéëà ñóôôèêñ íå '.ogg'. ÂÍÈÌÀÍÈÅ: Ïîðÿäîê ôàéëîâ èìååò çíà÷åíèå! Åñëè âû ñäåëàåòå ñëåäóþùèé âûçîâ 'flac --sector-align *.wav', êîìàíäíûé ïðîöåññîð ìîæåò îáðàáîòàòü øàáëîí íå â òîì ïîðÿäêå, â êàêîì âû ðàññ÷èòûâàåòå. Ïîýòîìó ëó÷øå âñåãî âûçûâàòü ïðîãðàììó, ÿâíî óêàçàâ ñïèñîê ôàéëîâ, íàïðèìåð, 'flac --sector-align 8.wav 9.wav 10.wav'.
- metaflac - ýòî ðåäàêòîð ìåòàäàííûõ, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Ñåé÷àñ îí òîëüêî âûâîäèò ñîäåðæèìîå áëîêîâ ìåòàäàííûõ âî .flac ôàéëå, íî ñêîðî ñ åãî ïîìîùüþ ìîæíî áóäåò âñòàâëÿòü, óäàëÿòü è ðåäàêòèðîâàòü áëîêè. Cåé÷àñ metaflac âûçûâàåòñÿ òîëüêî îäíèì ñïîñîáîì: metaflac [-v] âõîäíîé_ôàéë Âõîäíûì_ôàéëîì ìîæåò áûòü "-" äëÿ ñòàíäàðòíîãî ââîäà (stdin). åñëè èñïîëüçîâàòü -v, áóäåò ïîëó÷åí áîëåå ïîäðîáíûé îò÷åò. metaflac - ýòî ðåäàêòîð ìåòàäàííûõ, ðàáîòàþùèé èç êîìàíäíîé ñòðîêè. Åãî ìîæíî èñïîëüçîâàòü äëÿ óäàëåíèÿ, âñòàâêè è âûâîäà ñîäåðæèìîãî áëîêîâ âî .flac ôàéëå, à òàêæå óïðàâëåíèÿ áëîêîìPADDING, ðåçåðâèðóþùèì ìåñòî. Äîêóìåíòàöèÿ äëÿ metaflac ñåé÷àñ ïåðåïèñûâàåòñÿ, ïîýòîìó ñåé÷àñ î âîçìîæíîñòÿõ ìîæíî óçíàòü, äàâ êîìàíäó: metaflac --help.
Åñòü äâà ïëàãèíà äëÿ Winamp: îäèí äëÿ âåðñèé 2.x, à âòîðîé äëÿ 3.x. Åñëè âû èñïîëüçóåòå Winamp 2.x, òî äëÿ óñòàíîâêè ïëàãèíà íåîáõîäèìî ñêîïèðîâàòü in_flac.dll â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà Winamp (îáû÷íî /Plugins). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå Winamp. Åñòü äâà ïëàãèíà äëÿ Winamp: îäèí äëÿ âåðñèé 2.x, à âòîðîé äëÿ 3.x. Åñëè âû èñïîëüçóåòå Winamp 3.x, òî äëÿ óñòàíîâêè ïëàãèíà íåîáõîäèìî ñêîïèðîâàòü cnv_flacpcm.wac â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà Winamp (îáû÷íî /Wacs). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå Winamp. Áèáëèîòåêà libFLAC ÿâëÿåòñÿ ðåàëèçàöèåé íà C áàçîâîãî êîäåðà è äåêîäåðà. Èñïîëüçóÿ ýòó áèáëèîòåêó è íàïèñàâ íåìíîãî êîäà, ìîæíî äîáàâèòü ïîääåðæêó FLAC â ñâîþ ïðîãðàììó. Óñëîâèÿ åå ðàñïðîñòðàíåíèÿ - LGPL. Èñõîäíûå òåêñòû áèáëèîòåêè libFLAC, òàêæå êàê è êîíñîëüíîãî êîäåêà è ïëàãèíîâ, äîñòóïíû, è ìîãóò ïîñëóæèòü õîðîøèì ïðèìåðîì äëÿ èñïîëüçîâàíèÿ. libFLAC òðåáóåò ñòàíäàðòíóþ è ìàòåìàòè÷åñêóþ áèáëèîòåêè äëÿ ÿçûêà C. Ïðîãðàììíûå ïîòîêè íå èñïîëüçóþòñÿ, îäíàêî, òàê êàê libFLAC íå èñïîëüçóåò ãëîáàëüíûå ïåðåìåííûå, áèáëèîòåêà äîëæíà áûòü thread-safe. Èíòåðôåéñ libFLAC îïèñàí â ïóáëè÷íûõ çàãîëîâî÷íûõ ôàéëàõ â êàòàëîãå include/FLAC. Äëÿ èñïîëüçîâàíèÿ ñêîìïèëèðîâàííîé áèáëèîòåêè íóæíû òîëüêî ïóáëè÷íûå çàãîëîâêè. Îáðàòèòå âíèìàíèå íà òî, ÷òî êîä èç src/libFLAC/, âêëþ÷àÿ çàùèùåííûå çàãîëîâî÷íûå ôàéëû èç src/libFLAC/include/ íå íóæåí.  îñíîâíîì èñïîëüçîâàíèå libFLAC ñîñòîèò â ñëåäóþùåì: Äëÿ äåêîäèðîâàíèÿ libFLAC ïðåäîñòàâëÿåò òðè óðîâíÿ äîñòóïà. Íà íèæíåì óðîâíå íàõîäèòñÿ äåêîäåð ïîòîêîâ, íà ñëåäóþùåì - äåêîäåð ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà, à íà âåðõíåì - äåêîäåð ôàéëîâ. Èíòåðôåéñû îïèñàíû â ôàéëàõ stream_decoder.h, seekable_stream_decoder.h è file_decoder.h ñîîòâåòñòâåííî. Èñïîëüçîâàòü ëó÷øå âñåãî äåêîäåð áîëåå âåðõíåãî óðîâíÿ. Ïîòîêîâûé äåêîäåð ðàññ÷èòûâàåò íà îáðàòíûå âûçîâû äëÿ ïîëó÷åíèÿ âõîäíûõ è âûõîäíûõ äàííûõ. Äåêîäåð ñ âîçìîæíîñòüþ ïîèñêà ÿâëÿåòñÿ îáåðòêîé ïîòîêîâîãî äåêîäåðà, ïðåäîñòàâëÿþùèé âîçìîæíîñòü ïîèñêà, îäíàêî äëÿ åãî âûïîëíåíèÿ âàì íåîáõîäèìî äîáàâèòü îáðàòíûå âûçîâû. Ôàéëîâûé äåêîäåð ñàì îñóùåñòâëÿåò îáðàòíûå âûçîâû äëÿ ÷òåíèÿ è ïðåäîñòàâëÿåò ôóíêöèè ïîèñêà. êîäåð ïîêà ÷òî ðåàëèçîâàí òîëüêî íà ïîòîêîâîì óðîâíå (stream_encoder.h). Ñòðóêòóðû è êîíñòàíòû, îòíîñÿùèåñÿ ê ôîðìàòó, îïðåäåëåíû â ôàéëå format.h. ÄÅÊÎÄÅÐ ÏÎÒÎÊΠÑíà÷àëà îáñóäèì äåêîäåð ïîòîêîâ. Òèï åãî ýêçåìïëÿðà FLAC__StreamDecoder. Îáû÷íî â ïðîãðàììå ýêçåìïëÿð ñîçäàåòñÿ âûçîâîì FLAC__stream_decoder_new(), çàòåì âûçûâàåò ôóíêöèè FLAC__stream_decoder_set_*() äëÿ óñòàíîâêè îáðàòíûõ âûçîâîâ è ïîëüçîâàòåëüñêèõ äàííûõ è èíèöèàëèçèðóåòñÿ ôóíêöèåé FLAC__stream_decoder_init(). Íåîáõîäèìûå îáðàòíûå âûçîâû: Êîãäà äåêîäåð èíèöèàëèçèðîâàí, ïðîãðàììà ìîæåò âûçâàòü îäíó èç ñëåäóþùèõ ôóíêöèé äëÿ äåêîäèðîâàíèÿ: Êîãäà äåêîäåð çàêàí÷èâàåò ðàáîòó, ýêçåìïëÿð îáðàáàòûâàåòñÿ ôóíêöèåé FLAC__stream_decoder_finish(), êîòîðàÿ ïðîâåðÿåò ñîñòîÿíèå äåêîäåðà è îñâîáîæäàåò ïàìÿòü. Çàòåì ýêçåìïëÿð ìîæåò áûòü óäàëåí ôóíêöèåé FLAC__stream_decoder_delete() èëè èíèöèàëèçèðîâàí çàíîâî äëÿ äåêîäèðîâàíèÿ äðóãîãî ïîòîêà. Îáðàòèòå âíèìàíèå íà òî, ÷òî ïîòîêîâûé äåêîäåð íå èìååò ïðåäñòàâëåíèÿ î ïîçèöèè â ïîòîêå, îí òîëüêî ïðåîáðàçîâûâàåò äàííûå. ×òîáû îñóùåñòâëÿòü ïîèñê â ïîòîêå ôóíêöèè îáðàòíîãî âûçîâà ìîãóò òîëüêî ñáðàñûâàòü äàííûå äåêîäåðà ôóíêöèåé FLAC__stream_decoder_flush() è íà÷èíàòü ïîäàâàòü äàííûå ñ íîâîé ïîçèöèè ñ ïîìîùüþ îáðàòíîãî âûçîâà äëÿ ÷òåíèÿ. Äåêîäåð ôàéëîâ ïîñòóïàåò èìåííî òàê. ÄÅÊÎÄÅÐ ÏÎÒÎÊÎÂ Ñ ÂÎÇÌÎÆÍÎÑÒÜÞ ÏÎÈÑÊÀ Äåêîäåð ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà ÿâëÿåòñÿ îáåðòêîé äëÿ ñòàíäàðòíîãî äåêîäåðà ïîòîêîâ. Òèï åãî ýêçåìïëÿðà - FLAC__SeekableStreamDecoder. Ê îáðàíûì âûçîâàì äåêîäåðà ïîòîêîâ äëÿ ÷òåíèÿ, çàïèñè, ðàáîòû ñ ìåòàäàííûìè è îáðàáîòêè îøèáîê íåîáõîäèìî äîáàâèòü åùå ñëåäóþùèå: Ïîèñê îñóùåñâëÿåòñÿ ÷åðåç ìåòîä FLAC__seekable_stream_decoder_seek_absolute().  ëþáîé ìîìåíò ïîñëå èíèöèàëèçàöèè ïîëüçîâàòåë ìîæåò âûçâàòü ýòó ôóíêöèþ äëÿ ïåðåõîäà ê îïðäåëåííîìó ñýìïëó â ïîòîêå. Ïåðâûé îáðàòíûé âûçîâ çàïèñè áóäåò ñîäåðæàòü (âîçìîæíî, íåïîëíûé) áëîê, íà÷èíàþùèéñÿ ñ çàäàííîãî ñýìïëà. Äåêîäåð ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà ïðåäîñòàâëÿåò ïðîâåðêó ïîäïèñåé MD5. Åñëè åå âêëþ÷èòü ïåðåä èíèöèàëèçàöèåé, ôóíêöèÿ FLAC__seekable_stream_decoder_finish() ñîîáùèò ñîâïàäàåò ëè ïîäïèñü MD5 äåêîäèðîâàííîãî ïîòîêà ñ ñîõðàíåííîé áëîêå STREAMINFO. Ïðîâåðêà ïîäïèñè MD5 àâòîìàòè÷åñêè îòêëþ÷àåòñÿ ïðè ïîïûòêå ïîñèêà èëè åñëè â áëîêå STREAMINFO íå íàéäåíà ïîäïèñü.
-
- ÄÅÊÎÄÅÐ ÔÀÉËΠÄåêîäåð ôàéëîâ - ýòî îáîëî÷êà äåêîäåðà ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà, ïðèçâàííàÿ óïðîñòèòü ïðîöåññ äåêîäèðîâàíèÿ ôàéëîâ. Òèï åãî ýêçåìïëÿðà - FLAC__FileDecoder. Îòëè÷èå îò ïîòîêîâîãî äåêîäåðà ñîñòîèò â òîì, ÷òî âìåñòî îáðàòíîãî âûçîâà äëÿ ÷òåíèÿ (êîòîðûé îáðàáàòûâàåò ñàì äåêîäåð) ïðè èíèöèàëèçàöèè óêàçûâàåòñÿ ïóòü ê ôàéëó. Âûïîëíåíèå îñòàëüíûõ ôóíêöèé äåêîäåð áåðåò íà ñåáÿ. Àíàëîãè÷íî äåêîäåðó ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà îí ïðåäîñòàâëÿåò ïîèñê ÷åðåç ìåòîä FLAC__file_decoder_seek_absolute().  ëþáîé ìîìåíò ïîñëå èíèöèàëèçàöèè äåêîäåðà ôàéëîâ ïðîãðàììà ìîæåò âûçâàòü ýòó ôóíêöèþ äëÿ ïîèñêà ñýìïëà â ôàéëå. Âïîñëåäñòâèè, ïðè ïåðâîì îáðàòíîì âûçîâå äëÿ çàïèñè îí áóäåò ñîäåðæàòü (âîçæîæíî íåïîëíûé) áëîê, íà÷èíàþùèéñÿ ñ ýòîãî ñýìïëà. Îò äåêîäåðà ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà òàêæå íàñëåäóåòñÿ ïðîâåðêà ïîäïèñè MD5. Åñëè ýòà âîçìîæíîñòü áóäåò âêëþ÷åíà ïåðåä èíèöèàëèçàöèåé, FLAC__file_decoder_finish() ñîîáùèò, åñëè ïîäïèñü MD5 ðàñïàêîâàííûõ äàííûõ íå ñîâïàäåò ñ ñîõðàíåííîé â áëîêå STREAMINFO. Ïðîâåðêà MD5 àâòîìàòè÷åñêè âûêëþ÷àåòñÿ, åñëè â áëîêå STREAMINFO íåò ïîäïèñè èëè ïðè ïîïûòêå îñóùåñòâëåíèÿ ïîèñêà.
-
-
- êîäåð ÏÎÒÎÊΠêîäåð ïîòîêîâ ðàáîòàåò àíàëîãè÷íî äåêîäåðó, îäíàêî èìååò ìåíüøå îáðàòíûõ âûçîâîâ è áîëüøå îïöèé. Òèï ýêçåìïëÿðà - FLAC__StreamEncoder. Äëÿ ñîçäàíèÿ íîâîãî ýêçåìïëÿðà â ïðîãðàììå íóæíî âûçâàòü ôóíêöèþ FLAC__stream_encoder_new(), à ÷òîáû ïðîèíèöèàëèçèðîâàòü åãî - FLAC__stream_encoder_init().  îòëè÷èå îò ïðîöåññà äåêîäèðîâàíèÿ êîäèðîâàíèå â ôîðìàò FLAC èìååò ìíîæåñòâî îïöèé, âëèÿþùèõ íà ñêîðîñòü è óðîâåíü ñæàòèÿ. Êîãäà ïðîãðàììà âûçûâàåò FLAC__stream_encoder_init(), êîäåð ïðîâåðÿåò çíà÷åíèÿ, ïîýòîìó íåîáõîäèìî óáåäèòüñÿ, ÷òî âîçâðàùåìîå ýòîé ôóíêöèåé çíà÷åíèå - FLAC__STREAM_ENCODER_OK. Äëÿ óñòàíîâêè ïàðàìåòðîâ íóæíî èìåòü íåêîòîðîå ïðåäñòàâëåíèå î ôîðìàòå (ñì. îïèñàíèå ôîðìàòà äëÿ ïîëüçîâàòåëÿ èëè åãî ôîðìàëüíîå îïèñàíèå). Ñïèñîê íåîáõîäèìûõ ïàðàìåòðîâ ïðèâåäåí çäåñü: Ïðîãðàììà äîëæíà ïðåäîñòàâèòü FLAC__stream_encoder_init() àäðåñà äëÿ ñëåäóþùèõ îáðàòíûõ âûçîâîâ:
-
- Âûçîâ FLAC__stream_encoder_init() íåïîñðåäñòâåííî ïðîèçâîäèò îáðàòíûé âûçîâ äëÿ çàïèñè ñèãíàòóðû "fLaC" è âñåõ îïðåäåëåííûõ íà äàííûé ìîìåíò ìåòàäàííûõ. Ïîñëå èíèöèàëèçàöèè ýêçåìïëÿðà ïðîãðàììà ìîæåò ïåðåäàâàòü äàííûå êîäåðó äâóìÿ ñïîñîáàìè: Äëÿ çàâåðøåíèÿ êîäèðîâàíèÿ äàííûõ ïðîãðàììà âûçûâàåò ôóíêöèþ FLAC__stream_encoder_finish(), êîòîðàÿ êîäèðóåò îñòàâøèåñÿ äàííûå èç âõîäíîãî ïîòîêà è äåëàåò îáðàòíûé âûçîâ äëÿ ðàáîòû ñ ìåòàäàííûìè ñ êîððåêòíîé ñòàòèñòèêîé î ïðîöåññå êîäèðîâàíèÿ. Ýêçåìïëÿð ìîæåò áûòü óäàëåí ôóíêöèåé FLAC__stream_encoder_delete() èëè èíèöèàëèçèðîâàí ñíîâà äëÿ êîäèðîâàíèÿ íîâîãî ïîòîêà. ÐÀÇÍÎÅ Íåîáõîäèìî îòìåòèòü, ÷òî êîãäà ïåðåäàþòñÿ óêàçàòåëè íà àóäèî äàííûå, èõ ïîðÿäîê èìååò çíà÷åíèå òîëüêî äëÿ ñòåðåî ïîòîêîâ. Êàíàë 0 ñîîòâåòñòâóåò ëåâîìó êàíàëó, à 1 - ïðàâîìó. ÌÅÒÀÄÀÍÍÛÅ Ïðîãðàììû, çàïèñûâàþùèå ñâîè áëîêè ìåòàäàííûõ APPLICATION, ìîãóò óêàçàòü êîäåðó, ÷òîáû îí çàïèñàë áëîê ìåòàäàííûõ PADDING íóæíîãî ðàçìåðà.  ýòîì ñëó÷àå âìåñòî ïåðåçàïèñè âñåãî ïîòîêà ïîñëå êîäèðîâàíèÿ ïðîãðàììà ñìîæåò ïðîñòî çàìåíèòü áëîê PADDING íà ñâîé. Åñëè èçâåñòåí òîëüêî ìàêñèìàëüíûé ðàçìåð áëîêà APPLICATION, ïðîãðàììà ìîæåò ñîçäàòü ðåçåðâíûé áëîê ÷óòü áîëüøåãî ðàçìåðà, à ïîñëå êîäèðîâàíèÿ ðàçäåëèòü åãî íà áëîêè APPLICATION è PADDING. Åñëè ðàçìåð áëîêà ìåòàäàííûõ APPLICATION èçâåñòåí çàðàíåå, ðàçìåð ðåçåðâèðóåìîé îáëàñòè ìîæåò áûòü ëåãêî âû÷åñëåí. Åñëè ðàçìåð áëîêà APPLICATION (íå âêëþ÷àÿ çàãîëîâîê áëîêà) ðàâåí N áàéòàì, òî ýêçåìïëÿðó FLAC__StreamEncoder ïåðåä èíèöèàëèçàöèåé íóæíî ïåðåäàòü çíà÷åíèå N+4. Ýòî íóæíî, ÷òîáû ó÷åñòü äîïîëíèòåëüíîå ìåñòî íåîáõîäèìîå äëÿ õðàíåíèÿ èäåíòèôèêàòîðà ïðèëîæåíèÿ. Êîãäà èçâåñòåí òîëüêî ìàêñèìàëüíûé ðàçìåð, ñêàæåì, N áàéò, íóæíî çàðåçåðâèðîâàòü N+8 áàéò. ×åòûðå äëÿ ID ïðèëîæåíèÿ è ÷åòûðå äëÿ äîïîëíèòåëüíîãî áëîêà PADDING, êîòîðûé çàïîëíèò îñòàâøååñÿ ïðîñòðàíñòâî. Ïî îêîí÷àíèè êîäèðîâàíèÿ, êîãäà ðàçìåð áëîêà äàííûõ APPLICATION ñòàíîâèòñÿ èçâåñòíîé è ðàâíîé, äîïóñòèì, M áàéòàì, íà ìåñòî ïåðâîíà÷àëüíîãî áëîêà PADDING áóäåò çàïèñàí áëîê APPLICATION è áëîê PADDING äëèíîé N-M áàéòîâ. Åñòü äâà ïëàãèíà äëÿ Winamp: îäèí äëÿ âåðñèé 2.x, à âòîðîé äëÿ 3.x. Åñëè âû èñïîëüçóåòå Winamp 3.x, òî äëÿ óñòàíîâêè ïëàãèíà íåîáõîäèìî ñêîïèðîâàòü cnv_flacpcm.wac â êàòàëîã, ãäå íàõîäÿòñÿ ïëàãèíû ââîäà Winamp (îáû÷íî /Wacs). Áîëüøå íè÷åãî íàñòðàèâàòü íå íàäî. Äëÿ âîñïðîèçâåäåíèÿ .flac ôàéëîâ ïåðåçàïóñòèòå Winamp. Îòñëåæèâàíèå îøèáîê âåäåòñÿ íà ýòîé ñòðàíèöå ïðîåêòà, íàõîäÿùåéñÿ íà SourceForge. Åñëè Âû áóäåòå ñîîáùàòü îá îøèáêå, ïîæàëóéñòà, îñòàâüòå e-mail äëÿ êîíòàêòà. Åñëè âàì íðàâèòñÿ èñïîëüçîâàòü îáîëî÷êó Monkey's Audio GUI äëÿ ïîëó÷åíèÿ ôàéëîâ FLAC, ïîïðîñèòå Ìýòà (àâòîðà) äîáàâèòü îôèöèàëüíóþ ïîääåðæêó FLAC! Äðóãèå îáîëî÷êè ìîæíî èñïîëüçîâàòü àíàëîãè÷íûì îáðàçîì. Åñëè âû çàèòåðåñîâàíû â èñïîëüçîâàíèè êàêîé-ëèáî, ïèøèòå â ñïèñîê ðàññûëêè flac-dev. Äðóãèå îáîëî÷êè ìîæíî èñïîëüçîâàòü ïðèìåðíî òàêèì æå ñïîñîáîì. Copyright (c) 2000,2001,2002 Josh Coalson Âî-ïåðâûõ, êàê îñíîâíîé ðàçðàáîò÷èê, ÿ äîëæåí îòìåòèòü, ÷òî íå ÿâëÿþñü ýêñïåðòîì â îáëàñòè ñæàòèÿ, ïîýòîìó ÷óâñòâóþ ñåáÿ îáÿçàííûì ïîáëàãîäàðèòü ìíîãèõ ëþäåé, ðàáîòàâøèõ íàä óëó÷øåíèåì àëãîðèòìîâ êîìïðåññèè àóäèîäàííûõ. Îòäåëüíóþ áëàãîäàðíîñòü ÿ âûðàæàþ:flac
-Îñíîâíûå êëþ÷è
+
+
+-v, --version
+Íîìåð âåðñèè flac.
--h, --help
+Âûâåñòè îñíîâíûå ìåòîäû èñïîëüçîâàíèÿ è ñïèñîê âñåõ îïöèé. Ïðè çàïóñêå flac áåç àðãóìåíòîâ îòîáðàæàåòñÿ êðàòêàÿ ñïðàâêà.
-
--d
-Äåêîäèðîâàíèå (ïî óìîë÷àíèþ flac êîäèðóåò). flac çàâåðøèò ðàáîòó ñ êîäîì âûõîäà 1, åñëè áóäåò âñòðå÷åíà îøèáêà èëè êîíòðîëüíàÿ ñóììà MD5 äåêîäèðîâàííîãî ïîòîêà íå ñîâïàäåò ñ ñîõðàíåííîé. Åñëè îøèáîê íå áóäåò, êîä âîçâðàòà áóäåò ðàâåí 0. -H
+
--H, --explain
Âûâåñòè ñïðàâêó ïîëíîñòüþ. Ïðè çàïóñêå flac áåç àðãóìåíòîâ îòîáðàæàåòñÿ êðàòêàÿ ñïðàâêà. -t
+
+
+-d, --decode
+Äåêîäèðîâàíèå (ïî óìîë÷àíèþ flac êîäèðóåò). flac çàâåðøèò ðàáîòó ñ êîäîì âûõîäà 1, åñëè áóäåò âñòðå÷åíà îøèáêà èëè êîíòðîëüíàÿ ñóììà MD5 äåêîäèðîâàííîãî ïîòîêà íå ñîâïàäåò ñ ñîõðàíåííîé. Åñëè îøèáîê íå áóäåò, êîä âîçâðàòà áóäåò ðàâåí 0.
--t, --test
Òåñòèðîâàíèå (òî æå ñàìîå, ÷òî è äåêîäèðîâàíèå, òîëüêî âûõîä íå çàïèñûâàåòñÿ â ôàéë). Êîäû âîçâðàòà òå æå. -a
+
--a, --analyze
Àíàëèç (òî æå ñàìîå, ÷òî è äåêîäèðîâàíèå, òîëüêî âûõîäîì ÿâëÿåòñÿ ôàéë ñòàòèñòèêè). Êîäû âîçâðàòà òå æå. Ðåæèì ïðåäíàçíà÷åí â îñíîâíîì äëÿ ðàçðàáîò÷èêîâ.  âûõîäíîé òåêñòîâûé ôàéë çàïèñûâàåòñÿ èíôîðìàöèÿ î êàæäîì ôðåéìå è ïîäôðåéìå. -c
+
--c, --stdout
Íàïðàâèòü ðåçóëüòàò â ñòàíäàðòíûé âûâîä (stdout). -s
+
--s, --silent
Íå ïîêàçûâàòü ñòàòèñòèêó ïðè êîäèðîâàíèè/äåêîäèðîâàíèè. -o ôàéë
+
--o ôàéë
--output-name=ôàéëßâíî óêàçàòü èìÿ âûõîäíîãî ôàéëà, ïî óìîë÷àíèþ flac ïðîñòî çàìåíÿåò ñóôôèêñ. --output-prefix ñòðîêà
+--output-prefix=ñòðîêà
Äîáàâëÿåò ïðåôèêñ ê êàæäîìó èìåíè âûõîäíîìó ôàéëó. Ìîæåò èìñïîëüçîâàòüñÿ äëÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ ôàéëîâ â äðóãîé êàòàëîã. Åñëè óêàçàííàÿ ñòðîêà ÿâëÿåòñÿ ÷àñòüþ ïóòè, óáåäèòåñü, ÷òî îíà çàêàí÷èâàåòñÿ ñëýøåì '/'.
---delete-input-file
Ïîñëå óñïåøíîãî îêîí÷àíèÿ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ âõîäíîé ôàéë áóäåò óäàëåí. Åñëè ïðîèçîéäåò îøèáêà, èñõîäíûé ôàéë îñòàíåòñÿ. --skip #
+--skip=#
Ïðîïóñòèòü ïåðâûå # ñýìïëîâ âõîäíîãî ôàéëà. Ðàáîòàåò äëÿ êîäèðîâàíèÿ è äåêîäèðîâàíèÿ, íî íå äëÿ òåñòèðîâàíèÿ. Îïöèè àíàëèçà
-
+
+--a-rtext
-Äîáàâëÿåò â ôàéë îñòàòî÷íûé ñèãíàë. Ðåçóëüòèðóþùèé ôàéë ïîëó÷àåòñÿ î÷åíü áîëüøèì.
---residual-text
+Äîáàâëÿåò â ôàéë îñòàòî÷íûé ñèãíàë. Ðåçóëüòèðóþùèé ôàéë ïîëó÷àåòñÿ î÷åíü áîëüøèì.
+--a-rgp
-Ñîçäàåò ôàéëû-äèàãðàììû äëÿ êàæäîãî ïîäôðåéìà.  êàæäîì ôàéëå áóäåò îñòàòî÷íîå ðàñïðåäåëåíèå äëÿ ïîäôðåéìà. Áóäåò ñîçäàíî î÷åíü ìíîãî ôàéëîâ. --residual-gnuplot
+Ñîçäàåò ôàéëû-äèàãðàììû äëÿ êàæäîãî ïîäôðåéìà.  êàæäîì ôàéëå áóäåò îñòàòî÷íîå ðàñïðåäåëåíèå äëÿ ïîäôðåéìà. Áóäåò ñîçäàíî î÷åíü ìíîãî ôàéëîâ. Îïöèè äåêîäèðîâàíèÿ
-
+-F
-Ïî óìîë÷àíèþ flac ïðåêðàùàåò äåêîäèðîâàíèå
-â ñëó÷àå îøèáêè â ïîòîêå è óäàëÿåò ÷àñòè÷íî äåêîäèðîâàííûé ôàéë.
-Èñïîëüçîâàíèå êëþ÷à -F âåäåò ê òîìó, ÷òî ñîîáùåíèÿ îá îøèáêàõ
-âûâîäÿòñÿ, íî flac ïðîäîëæàåò ðàáîòó äî êîíöà.
-Îáðàòèòå âíèìàíèå, ÷òî â ðåçóëüòàòå òàêîãî äåêîäèðîâàíèÿ â âûõîäíîì ôàéëå
-ìîãóò áûòü ïðîïóùåíû ñýìïëû èëè ïîÿâèòñÿ áëîêè òèøèíû. -F,
+
--decode-through-errorsÏî óìîë÷àíèþ flac ïðåêðàùàåò äåêîäèðîâàíèå â ñëó÷àå îøèáêè â ïîòîêå è óäàëÿåò ÷àñòè÷íî äåêîäèðîâàííûé ôàéë. Èñïîëüçîâàíèå êëþ÷à -F âåäåò ê òîìó, ÷òî ñîîáùåíèÿ îá îøèáêàõ âûâîäÿòñÿ, íî flac ïðîäîëæàåò ðàáîòó äî êîíöà. Îáðàòèòå âíèìàíèå, ÷òî â ðåçóëüòàòå òàêîãî äåêîäèðîâàíèÿ â âûõîäíîì ôàéëå ìîãóò áûòü ïðîïóùåíû ñýìïëû èëè ïîÿâèòñÿ áëîêè òèøèíû. Îïöèè êîäèðîâàíèÿ
-
-
--ogg
-
-
+
+-V
+Ïðîâåðÿòü ïðîöåññ ñæàòèÿ.  äàííîì ñëó÷àå flac ñîçäàåò ïàðàëëåëüíûé äåêîäåð, ðàñêîäèðóþùèé âûõîä êîäåðà è ñðàâíèâàåò ðåçóëüòàò ñ îðèãèíàëîì. Åñëè áóäåò íàéäåíî íåñîîòâåòñòâèå, êîäèðîâàíèå ïðåêðàòèòñÿ. Âðåìÿ ðàáîòû ñ ýòîé îïöèåé óâåëè÷èâàåòñÿ, îäíàêî, ïðè ýòîì ãàðàíòèðóåòñÿ, ÷òî ôàéë áóäåò ïðàâèëüíî äåêîäèðîâàí.
+--ogg
+
+
--serial-number=#
+Ïðè èñïîëüçîâàíèè ñ êëþ÷îì --ogg îïðåäåëÿåò ñåðèéíûé íîìåð äëÿ ïîòîêà FLAC. Ïðè êîäèðîâàíèè áåç ÿâíî óêàçàííîãî ñåðèéíîãî íîìåðà, flac èñïîëüçóåò '0'. Ïðè äåêîäèðîâàíèè ïî óìîë÷àíèþ èñïîëüçóåòñÿ ñåðèéíûé íîìåð îïðåäåëåííûé íà ïåðâîé ñòðàíèöå.
@@ -281,8 +286,8 @@
--lax
Ïîçâîëÿåò êîäåðó ñîçäàâàòü ôàéëû, îòâå÷àþùèå ïîäìíîæåñòâó ôîðìàòà FLAC.  ðåçóëüòàòå ðàáîòû áóäåò ïîëó÷àòüñÿ íåïîòîêîâûé ôàéë, ïîýòîìó ýòîò êëþ÷ ñëåäóåò èñïîëüçîâàòü òîëüêî äëÿ àðõèâèðîâàíèÿ. Äåêîäåð áóäåò ïîääåðæèâàòü âîñïðîèçâåäåíèå è ïîèñê â òàêèõ ôàéëàõ. -S {#|X|#x}
-Äîáàâëÿåò òî÷êè äëÿ ïîèñêà â òàáëèöó SEEKTABLE.
+
--S {#|X|#x},
+
--seekpoint={#|X|#x}Äîáàâëÿåò òî÷êè äëÿ ïîèñêà â òàáëèöó SEEKTABLE.
+-P #
-Eíêîäåð çàïèøåò áëîê ìåòàäàííûõ PADDING, óêàçàííîãî ðàçìåðà (â áàéòàõ), ïîñëå áëîêà STREAMINFO. Êëþ÷è -P 0 èëè -P- óêàçûâàþò, ÷òî áëîê PADDING íå íóæåí (çíà÷åíèå ïî óìîë÷àíèþ). Ýòîò áëîê ïîëåçåí, åñëè âû ñîáèðàåòåñü äîáàâèòü òýã â ôàéë ïîçæå. Âìåñòî òîãî, ÷òîáû ïåðåïèñûâàòü ôàéë ïîëíîñòüþ, ìîæíî áóäåò çàïèñàòü èíôîðìàöèþ âìåñòî áëîêà PADDING. Îáðàòèòå âíèìàíèå íà òî, ÷òî îáùèé ðàçìåð áëîêà PADDING áóäåò íà 4 áàéòà áîëüøå, òàê êàê 4 áàéòà çàíèìàåò çàãîëîâîê.
--P #, --padding
+Êîäåð çàïèøåò áëîê ìåòàäàííûõ PADDING, óêàçàííîãî ðàçìåðà (â áàéòàõ), ïîñëå áëîêà STREAMINFO. Êëþ÷è -P 0 èëè -P- óêàçûâàþò, ÷òî áëîê PADDING íå íóæåí (çíà÷åíèå ïî óìîë÷àíèþ). Ýòîò áëîê ïîëåçåí, åñëè âû ñîáèðàåòåñü äîáàâèòü òýã â ôàéë ïîçæå. Âìåñòî òîãî, ÷òîáû ïåðåïèñûâàòü ôàéë ïîëíîñòüþ, ìîæíî áóäåò çàïèñàòü èíôîðìàöèþ âìåñòî áëîêà PADDING. Îáðàòèòå âíèìàíèå íà òî, ÷òî îáùèé ðàçìåð áëîêà PADDING áóäåò íà 4 áàéòà áîëüøå, òàê êàê 4 áàéòà çàíèìàåò çàãîëîâîê. -b #
+
--b #, --blocksize
Óñòàíàâëèâàåò ðàçìåð áëîêà â ñýìïëàõ. Ïî óìîë÷àíèþ 1152 äëÿ -l 0, èíà÷å 4608. Ñòàíäàðòíûå ïîòîêè äîëæíû èñïîëüçîâàòü îäíî èç óêàçàíûõ çíà÷åíèé: 192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768. Ñåé÷àñ êîäåð èñïîëüçóåò ïîñòîÿííûé ðàçìåð áëîêà äëÿ âñåãî ôàéëà. -m
+
--m, --mid-side
Âêëþ÷àåò ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Îáû÷íî óâåëè÷èâàåò óðîâåíü ñæàòèÿ íà íåñêîëüêî ïðîöåíòîâ. Äëÿ êàæäîãî áëîêà ñîçäàåòñÿ óñðåäíåííàÿ è ñòåðåî âåðñèÿ áëîêà, ñîõðàíÿåòñÿ áëîê ìåíüøåãî ðàçìåðà. Ñåé÷àñ ðàçíîñòíîå êîäèðîâàíèå äîñòóïíî äëÿ ôàéëîâ, ãäå ñýìïë èìååò ðàçìåð íå áîëüøå 16 áèò.
+-M
-Âêëþ÷àåò ñâîáîäíîå ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Ðàáîòàåò àíàëîãè÷íî -m, îäíàêî êîäåð ïåðåêëþ÷àåòñÿ ìåæäó íåçàâèñèìûì è óñðåäíÿþùèì êîäèðîâàíèåì àäàïòèâíî. Ìåòîä ðàáîòàåò áûñòðåå, íî óðîâåíü ñæàòèÿ ìåíüøå, òàê êàê -m ïðîèçâîäèò ïîëíûé ïåðåáîð âàðèàíòîâ. -M, --adaptive-mid-side
+Âêëþ÷àåò àäàïòèâíîå ðàçíîñòíîå êîäèðîâàíèå (òîëüêî äëÿ ñòåðåî ïîòîêîâ). Ðàáîòàåò àíàëîãè÷íî -m, îäíàêî êîäåð ïåðåêëþ÷àåòñÿ ìåæäó íåçàâèñèìûì è óñðåäíÿþùèì êîäèðîâàíèåì àäàïòèâíî. Ìåòîä ðàáîòàåò áûñòðåå, íî óðîâåíü ñæàòèÿ ìåíüøå, òàê êàê -m ïðîèçâîäèò ïîëíûé ïåðåáîð âàðèàíòîâ.
--0..-8
Áûñòðåéøåå ñæàòèå ... ìàêñèìàëüíîå ñæàòèå. Ïî óìîë÷àíèþ -5. -0
+
--0, --compression-level-0
Àíàëîãè÷íî -l 0 -b 1152 -r 2,2. -1
+
--1, --compression-level-1
Àíàëîãè÷íî -l 0 -b 1152 -r 2,2 -M. -2
+
--2, --compression-level-2
Àíàëîãè÷íî -l 0 -b 1152 -r 3 -m. -3
+
--3, --compression-level-3
Àíàëîãè÷íî -l 6 -b 4608 -r 3,3 -4
+
--4, --compression-level-4
Àíàëîãè÷íî -l 8 -b 4608 -r 3,3 -M. -5
+
--5, --compression-level-5
Àíàëîãè÷íî -l 8 -b 4608 -r 3,3 -m. -6
+
--6, --compression-level-6
Àíàëîãè÷íî -l 8 -b 4608 -r 4 -m. -7
+
--7, --compression-level-7
Àíàëîãè÷íî -l 8 -b 4608 -r 6 -m -e. -8
+
-
+
-8, --compression-level-8
Àíàëîãè÷íî -l 12 -b 4608 -r 6 -m -e. --fast
Áûñòðåéøåå ñæàòèå. Àíàëîãè÷íî -0.
---best
Ìàêñèìàëüíîå ñæàòèå. Àíàëîãè÷íî -8. -e
+
--e,
--exhaustive-model-searchÏîëíûé ïîèñê ìîäåëè (ðàáîòàåò ìåäëåííî!). Îáû÷íî êîäåð îïðåäåëÿåò ëó÷øóþ ìîäåëü è êîäèðóåò äàëåå îïèðàÿñü íà íåå.  äàííîì ðåæèìå êîäåð áóäåò ñîçäàâàòü ïîäôðåéìû âñåõ ïîðÿäêîâ è èñïîëüçîâàòü íàèìåíüøèé. Åñëè ìàêñèìàëüíîå çíà÷åíèå ïîðÿäêà LPC âåëèêî, âðåìÿ êîäèðîâàíèÿ ñóùåñòâåííî âîçðàñòåò. Âûèãðûø îáû÷íî ñîñòàâëÿåò îêîëî 0.5%. -E
+
--E,
--escape-codingÈñïîëüçîâàòü óïðàâëÿþùèå êîäû â êîäåðå ýíòðîïèè. Ýòà îïöèÿ ïîçâîëÿåò çàïèñûâàòü íåçàêîäèðîâàííîå ïðåäñòàâëåíèå îñòàòêà â ðàçäåëå, åñëè åãî ðàçìåð ìåíüøå. Ïðè ýòîì âðåìÿ ðàáîòû óâåëè÷èâàåòñÿ, à óðîâåíü ñæàòèÿ îáû÷íî óëó÷øàåòñÿ ïðèìåðíî íà 1%. -l #
+
--l #,
--max-lpc-order=#Îïðåäåëÿåò ìàêñèìàëüíûé ïîðÿäîê LPC (êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ). ×èñëî äîëæíî áûòü ìåíüøå èëè ðàâíî 32. Åñëè çíà÷åíèå ðàâíî 0, êîäåð áóäåò èñïîëüçîâàòü âìåñòî îáùåãî ëèíåéíîãî ïðîãíîçèðîâàíèÿ ïîñòîÿííûå êîýôôèöèåíòû. Ýòîò ìåòîä óâåëè÷èâàåò ñêîðîñòü ðàáîòû, íî ôàéëû ïîëó÷àþòñÿ íà 5-10% áîëüøå. -q #
+
--q #,
--qlp-coeff-precision=#Îïðåäåëÿåò òî÷íîñòü äèñêðåòíûõ êîýôôèöèåíòîâ ëèíåéíîãî ïðîãíîçèðîâàíèÿ â áèòàõ. Ïî óìîë÷àíèþ -q 0, ÷òî ïîçâîëÿåò êîäåðó ïðèíèìàòü ðåøåíèå â çàâèñèìîñòè îò ñèãíàëà. Ëó÷øå îñòàâëÿòü çíà÷åíèå ïî óìîë÷àíèþ. -p
+
--p,
--qlp-coeff-precision-searchÏðîèçâîäèòü îïòèìèçàöèþ LPC. Ïåðåîïðåäåëÿåò ëþáóþ îïöèþ -q. Ñèëüíî çàìåäëÿåò ðàáîòó, è óìåíüøàåò ðàçìåð ôàéëà íà äîëþ ïðîöåíòà. -q íå ðàáîòàåò, êîãäà èñïîëüçóåòñÿ -l 0. -r [#,]#
+
-
--r [#,]#,
--rice-partition-order=[#,]#Óñòàíîâèòü [min,]max ïîðÿäîê ðàçäåëà. Åñëè ìèíèìàëüíîå çíà÷åíèå íå óêàçàíî, òî îíî óñòàíàâëèâàåòñÿ ðàâíûì 0. Ïî óìîë÷àíèþ êîäåð îäèí ïàðàìåòð Ðàéñà äëÿ âñåãî îñòàòêà ïîäôðåéìà. Åñëè èñïîëüçîâàòü ýòó îïöèþ, îñòàòîê áóäåò ðàçäåëÿòüñÿ íà 2^min# ... 2^max ÷àñòåé, äëÿ êàæäîé èç êîòîðûõ áóäåò îïðåäåëåí ñîáñòâåííûé ïàðàìåòð Ðàéñà. Ñ óâåëè÷åíèåì ïàðàìåòðà max âûèãðûø áóäåò âñå ìåíüøå. Íàèáîëåå îïòèìàëüíûé âàðèàíò äîñòèãàåòñÿ ïðè èñïîëüçîâàíèè -r 2,2 (è áîëüøèõ çíà÷åíèé äëÿ áîëüøèõ ðàçìåðîâ áëîêîâ). Ïðè ýòîì ñæàòèå îáû÷íî óâåëè÷èâàåòñÿ íà 1.5%. Âûáîð îïòèìàëüíîãî çíà÷åíèÿ ìîæíî ïðîèçâåñòè ïî ôîðìóëå ðàçìåð_áëîêà/(2^n)=128. Ìàêñèìàëüíûé óðîâåíü ñæàòèÿ äîñòèãàåòñÿ ïðè èñïîëüçîâàíèè -r 0,16.
-
--V
-Ïðîâåðÿòü ïðîöåññ ñæàòèÿ.  äàííîì ñëó÷àå flac ñîçäàåò ïàðàëëåëüíûé äåêîäåð, ðàñêîäèðóþùèé âûõîä êîäåðà è ñðàâíèâàåò ðåçóëüòàò ñ îðèãèíàëîì. Åñëè áóäåò íàéäåíî íåñîîòâåòñòâèå, êîäèðîâàíèå ïðåêðàòèòñÿ. Âðåìÿ ðàáîòû ñ ýòîé îïöèåé óâåëè÷èâàåòñÿ, îäíàêî, ïðè ýòîì ãàðàíòèðóåòñÿ, ÷òî ôàéë áóäåò ïðàâèëüíî äåêîäèðîâàí.
--F-, -S-, -P-, -m-, -e-, -E-, -p-, -V-, --lax-, --delete-input-file-, --sector-align- èñïîëüçóþòñÿ äëÿ îòêëþ÷åíèÿ ñîîòâåòñòâóþùèõ îïöèé. Íàñòðîéêè ôîðìàòà
+
-
-
---endian={big|little}
+Îïðåäåëÿåò ïîðÿäîê áàéòîâ â ôàéëå áåç çàãîëîâêà big-endian | little-endian.
-
--fb | -fl
-Îïðåäåëÿåò ïîðÿäîê áàéòîâ â ôàéëå áåç çàãîëîâêà big-endian | little-endian. -fc n
+
---channels=#
Îïðåäåëÿåò êîëè÷åñòâî êàíàëîâ â ôàéëå áåç çàãîëîâêà. -fp n
+
---bps=#
Îïðåäåëÿåò êîëè÷åñòâî áèò íà ñýìïë â ôàéëå áåç çàãîëîâêà. -fs n
+
---sample-rate=#
Îïðåäåëÿåò êîëè÷åñòâî ñýìïëîâ â ñåêóíäó â ôàéëå áåç çàãîëîâêà.
+-fu
-Óêàçûâàåò, ÷òî ñýìïëû â ôàéëå áåç çàãîëîâêà áåççíàêîâûå (ïî óìîë÷àíèþ çíàêîâûå).
---sign={signed|unsigned}
+Îïðåäåëÿåò, äîëæíû ëè áûòü ñýìïëû â ôàéëå áåç çàãîëîâêà áåççíàêîâûå èëè çíàêîâûå (ïî óìîë÷àíèþ çíàêîâûå).
+-fr
-Âîñïðèíèìàòü âõîäíîé (èëè âûõîäíîé ïðè äåêîäèðîâàíèè) ôàéë êàê raw ïîòîê ñýìïëîâ âíå çàâèñèìîñòè îò ñóôôèêñà. --force-raw-format
+Âîñïðèíèìàòü âõîäíîé (èëè âûõîäíîé ïðè äåêîäèðîâàíèè) ôàéë êàê ïîòîê ñýìïëîâ áåç çàãîëîâêà âíå çàâèñèìîñòè îò ñóôôèêñà. metaflac
-
-Îòìåíà äåéñòâèÿ îïöèé
+
+
-
+
+--no-adaptive-mid-side
+
+--no-decode-through-errors
+--no-delete-input-file
+--no-escape-coding
+--no-exhaustive-model-search
+--no-lax
+--no-mid-side
+--no-ogg
+--no-padding
+--no-qlp-coeff-precision-search
+--no-residual-gnuplot
+--no-residual-text
+--no-sector-align
+--no-seektable
+--no-silent
+--no-verifyÌîæíî èñïîëüçîâàòü äëÿ îòêëþ÷åíèÿ äåéñòâèÿ êîíêðåòíîé îïöèè. metaflac
-Ïëàãèí äëÿ XMMS
@@ -414,184 +430,19 @@
Ïëàãèí äëÿ Winamp
-
+
Ïëàãèí äëÿ Winamp
-
-libFLAC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Èçâåñòíûå îøèáêè
monkey
@@ -611,7 +462,7 @@
-
-
<n> | -Ñîäåðæèìîå êîììåòàðèÿ â ôîðìàòå Vorbis, êàê îíî îïèñàíî çäåñü. Îáðàòèòå âíèìàíèå íà òî, ÷òî ñïåöèôèêàöèÿ Vorbis îãðàíè÷èâàåò ðàçìåð ýòîãî áëîêà 2 ^ 64 áàéòàìè, â òî âðåìÿ êàê áëîê ìåòàäàííûõ FLAC ìîæåò èìåòü ðàçìåð íå áîëüøå 2 ^ 24 áàéòîâ.  ñîîòâåòñòâèè ñî ñïåöèôèêàöèåé Vorbis 32-áèòíûå äàííûå little-endian coded, â îòëè÷èå îò big-endian coding öåëûõ, èñïîëüçóåìûõ â îñòàëüíûõ ìåñòàõ FLAC. | +Ñîäåðæèìîå êîììåòàðèÿ â ôîðìàòå Vorbis, êàê îíî îïèñàíî çäåñü. Îáðàòèòå âíèìàíèå íà òî, ÷òî ñïåöèôèêàöèÿ Vorbis îãðàíè÷èâàåò ðàçìåð ýòîãî áëîêà 2 ^ 64 áàéòàìè, â òî âðåìÿ êàê áëîê ìåòàäàííûõ FLAC ìîæåò èìåòü ðàçìåð íå áîëüøå 2 ^ 24 áàéòîâ.  ñîîòâåòñòâèè ñî ñïåöèôèêàöèåé Vorbis 32-áèòíûå äàííûå little-endian coded, â îòëè÷èå îò big-endian coding öåëûõ, èñïîëüçóåìûõ â îñòàëüíûõ ÷àñòÿõ FLAC. |
ÇÀÂÅÐØÅÍÈÅ_ÔÐÅÉÌÀ | -- | 1 |
13 ôåâðàëÿ 2002: àïïàðàòíàÿ ðåàëèçàöèÿ FLAC
+11 ñåíòÿáðÿ 2002: FLAC 1.0.4 áåòà
-Phatnoise ñòàëà ïåðâîé êîììåð÷åñêîé àïïàðàòíîé ïëàòôîðìîé, ïîääåðæèâàþùåé FLAC. Äëÿ âîñïðîèçâåäåíèÿ FLAC ôàéëîâ ïëåéåðîì Phatbox âûïóùåíà ïðîøèâêà. Ïîäðîáíåå îá ýòîì íà ñòðàíèöå Phatbox.
+Ïîääåðæêà FLAC áûëà äîáàâëåíà â Rio Receiver è Dell Digital Audio Receiver; çäåñü âñå îïèñàíî ïîäðîáíåå.
+ +Îñòàëîñü ñîâñåì íåìíîãî äî âûõîäà FLAC 1.0.4.
Åñëè âû èñïîëüçóåòå FLAC è ó âàñ åñòü ïðåäîëîæåíèÿ èëè ïàò÷è, ïîæàëóéñòà, ïðèñîäèíÿéòåñü ê ñïèñêó ðàññûëêè èëè ãðóïïå ðàçðàáîò÷èêîâ. Ñîîáùèòü îá îøèáêå ìîæíî çäåñü.
@@ -83,16 +85,16 @@FLAC - ýòî àááðåâèàòóðà îò free lossless audio codec (ñâîáîäíûé êîäåê, îáåñïå÷èâàþùèé ñæàòèå áåç ïîòåðü). Ïðîåêò FLAC âêëþ÷àåò:
--
- ïîòîêîâûé ôîðìàò,
- -- áèáëèîòåêó libFLAC, ðåàëèçóþùóþ áàçîâûå åíêîäåðû è äåêîäåðû,
- -- flac, óòèëèòó êîìàíäíîé ñòðîêè, âûïîëíÿþùóþ ñæàòèå è ðàñïàêîâêó .flac ôàéëîâ,
- +- ïîòîêîâûé ôîðìàò;
+- libFLAC, áèáëèîòåêó äëÿ áàçîâûõ êîäåðîâ è äåêîäåðîâ è èíòåðôåéñà ìåòàäàííûõ;
+- libFLAC++, îáúåêòíóþ îáîëî÷êó äëÿ libFLAC;
+- libOggFLAC è libOggFLAC++, îáåðòêè êîäåðîâ è äåêîäåðîâ libFLAC è libFLAC++, ñîîòâåòñòâåííî, äëÿ äîñòóïà ê ïîòîêàì FLAC â êîíòåéíåðå Ogg;
+- flac, óòèëèòó êîìàíäíîé ñòðîêè, âûïîëíÿþùóþ ñæàòèå è ðàñïàêîâêó ôàéëîâ .flac;
+- metaflac, óòèëèòó êîìàíäíîé ñòðîêè äëÿ ðåäàêòèðîâàíèÿ ìåòàäàííûõ â ôàéëàõ .flac;
- ïëàãèíû äëÿ ðàçíûõ ïëåéåðîâ (Winamp, XMMS, âåäåòñÿ ðàáîòà íàä äðóãèìè).
"Ñâîáîäà" îçíà÷àåò, ÷òî ñïåöèôèêàöèÿ ïîòîêîâîãî ôîðìàòà îòíîñèòñÿ ê êàòåãîðèè public domain (ïðîåêò FLAC îñòàâëÿåò çà ñîáîé ïðàâî óñòàíàâëèâàòü ñïåöèôèêàöèè è ñåðòèôèöèðîâàòü îòíîñÿùèåñÿ ê íåìó ïðîäóêòû íà ñîâìåñòèìîñòü), à òàêæå òî, ÷òî íè ôîðìàò, íè îäèí èç ðåàëèçîâàííûõ ìåòîäîâ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ íå çàïàòåíòîâàíû. Ýòî òàêæå çíà÷èò, ÷òî èñõîäíûå òåêñòû libFLAC äîñòóïíû ïî ëèöåíçèè LGPL, à óòèëèòû flac è ïëàãèíîâ - ïî GPL.
+"Ñâîáîäà" îçíà÷àåò, ÷òî ñïåöèôèêàöèÿ ïîòîêîâîãî ôîðìàòà îòíîñèòñÿ ê êàòåãîðèè public domain (ïðîåêò FLAC îñòàâëÿåò çà ñîáîé ïðàâî óñòàíàâëèâàòü ñïåöèôèêàöèè è ñåðòèôèöèðîâàòü îòíîñÿùèåñÿ ê íåìó ïðîäóêòû íà ñîâìåñòèìîñòü), à òàêæå òî, ÷òî íè ôîðìàò, íè îäèí èç ðåàëèçîâàííûõ ìåòîäîâ êîäèðîâàíèÿ/äåêîäèðîâàíèÿ íå çàïàòåíòîâàíû. Ýòî òàêæå çíà÷èò, ÷òî èñõîäíûå òåêñòû äëÿ áèáëèîòåê äîñòóïíû ïî ëèöåíçèè LGPL, à óòèëèò flac, metaflac è ïëàãèíîâ - ïî GPL.
FLAC êîìïèëèðóåòñÿ íà ìíîæåñòâå ïëàòôîðì: Unixes (Linux, *BSD, Solaris, OS X), Windows, BeOS è OS/2. Èìåþòñÿ ñèñòåìû ñáîðêè äëÿ autoconf/automake, MSVC, Watcom C è Project Builder.
diff --git a/doc/html/ru/links.html b/doc/html/ru/links.html index dff2b54..4a6bf4b 100644 --- a/doc/html/ru/links.html +++ b/doc/html/ru/links.html @@ -71,51 +71,47 @@-
Àïïàðàòóðà, ïîääåðæèâàþùàÿ FLAC:
+Àïïàðàòóðà, ïîääåðæèâàþùàÿ FLAC:
-
- Phatnoise car audio system: Phatbox + FLAC
+- Rio Reciever è Dell Digital Audio Receiver ñ ïîìîùüþ êëèåíòà RioPlay
Ïðîãðàììû, èñïîëüçóþùèå FLAC:
-Ïðîãðàììû, èñïîëüçóþùèå FLAC:
+++
- Ïàò÷ äëÿ abcde (A Better CD Encoder)
+- Ðåäàêòîð òåãîâ EasyTAG
- FLAC frontend (Windows GUI)
- -- Split_wav WAV+CUE splitter
-- flac-tools
- -- GStreamer ñèñòåìà äëÿ ïîòîâîé ïåðåäà÷è ìåäèà-ôàéëîâ
- +- GStreamer ñèñòåìà äëÿ ïîòîêîâîé ïåðåäà÷è ìåäèà-ôàéëîâ
+- JReceiver àóäèî-ñåðâåð, èñïîëüçóþùèé òåõíîëîãèþ ñåðâëåòîâ
+- MacFLAC äèñòðèáóòèâ äëÿ Mac OS X
- MediaXW âêëþ÷àåò ôèëüòð FLAC DirectShow
- +- Ptarmigan àíàëèçàòîð ìåäèàôàéëîâ äëÿ XML
- rawrec/rawplay óòèëèòû äëÿ çàïèñè è âîñïðîèçâåäåíèÿ
- -- rip êîíñîëüíàÿ óòèëèòà äëÿ êîïèðîâàíèÿ CD Audio è ñæàòèÿ ôàéëîâ
- +- rip êîíñîëüíàÿ óòèëèòà äëÿ êîïèðîâàíèÿ CD Audio è ñæàòèÿ ôàéëîâ
- SDL_sound àóäèî ìîäóëü äëÿ SDL
- -- shntool
- +- shntool
- Soepkip TNG ïëåéåð, óïðàâëÿåìûé ÷åðåç web-èíòåðôåéñ
-- sonice: ïðåîáðàçîâàíèå FLAC â Vorbis
+- Split_wav WAV+CUE splitter
+- Tag ðåäàêòîð òåãîâ (äîñòóïíà ãðàôè÷åñêàÿ îáîëî÷êà)
Ñîîáùåñòâà, èñïîëüçóþùèå FLAC:
+++ +etree.org +
Copyright (c) 2001,2002 Josh Coalson