From 0f47d27c584eba23da0a9ffdb84aa12bd09e3654 Mon Sep 17 00:00:00 2001 From: Andrey Astafiev Date: Fri, 1 Mar 2002 14:41:53 +0000 Subject: [PATCH] some corrections to libFLAC section --- doc/ru/documentation.html | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/doc/ru/documentation.html b/doc/ru/documentation.html index 09127b0..95091d0 100644 --- a/doc/ru/documentation.html +++ b/doc/ru/documentation.html @@ -419,9 +419,9 @@

libFLAC

-

Áèáëèîòåêà libFLAC ÿâëÿåòñÿ ðåàëèçàöèåé íà C áàçîâîãî åíêîäåðà è äåêîäåðà. Èñïîëüçóÿ ýòó áèáëèîòåêó è íàïèñàâ íåìíîãî êîäà, ìîæíî äîáàâèòü ïîääåðæêó FLAC â ñâîþ ïðîãðàììó. Óñëîâèÿ ðàñïðîñòðàíåíèÿ - LGPL. Èñõîäíûå êîäû áèáëèîòåêè libFLAC, òàêæå êàê è êîíñîëüíîãî êîäåêà è ïëàãèíîâ äîñòóïíû, è ìîãóò ïîñëóæèòü õîðîøèì ïðèìåðîì äëÿ èñïîëüçîâàíèÿ.

+

Áèáëèîòåêà libFLAC ÿâëÿåòñÿ ðåàëèçàöèåé íà C áàçîâîãî åíêîäåðà è äåêîäåðà. Èñïîëüçóÿ ýòó áèáëèîòåêó è íàïèñàâ íåìíîãî êîäà, ìîæíî äîáàâèòü ïîääåðæêó FLAC â ñâîþ ïðîãðàììó. Óñëîâèÿ åå ðàñïðîñòðàíåíèÿ - LGPL. Èñõîäíûå òåêñòû áèáëèîòåêè libFLAC, òàêæå êàê è êîíñîëüíîãî êîäåêà è ïëàãèíîâ, äîñòóïíû, è ìîãóò ïîñëóæèòü õîðîøèì ïðèìåðîì äëÿ èñïîëüçîâàíèÿ.

-

libFLAC òðåáóåò ñòàíäàðòíóþ è ìàòåìàòè÷åñêóþ áèáëèîòåêè äëÿ ÿçûêà C. Ïîòîêè íå èñïîëüçóþòñÿ, îäíàêî, òàê êàê libFLAC íå èñïîëüçóåò ãëîáàëüíûå ïåðåìåííûå, áèáëèîòåêà äîëæíà áûòü thread-safe.

+

libFLAC òðåáóåò ñòàíäàðòíóþ è ìàòåìàòè÷åñêóþ áèáëèîòåêè äëÿ ÿçûêà C. Ïðîãðàììíûå ïîòîêè íå èñïîëüçóþòñÿ, îäíàêî, òàê êàê libFLAC íå èñïîëüçóåò ãëîáàëüíûå ïåðåìåííûå, áèáëèîòåêà äîëæíà áûòü thread-safe.

Èíòåðôåéñ libFLAC îïèñàí â ïóáëè÷íûõ çàãîëîâî÷íûõ ôàéëàõ â êàòàëîãå include/FLAC. Äëÿ èñïîëüçîâàíèÿ ñêîìïèëèðîâàííîé áèáëèîòåêè íóæíû òîëüêî ïóáëè÷íûå çàãîëîâêè. Îáðàòèòå âíèìàíèå íà òî, ÷òî êîä èç src/libFLAC/, âêëþ÷àÿ çàùèùåííûå çàãîëîâî÷íûå ôàéëû èç src/libFLAC/include/ íå íóæåí.

@@ -442,18 +442,18 @@ -

Äëÿ äåêîäèðîâàíèÿ libFLAC ïðåäîñòàâëÿåò òðè óðîâíÿ äîñòóïà. Íà íèæíåì óðîâíå íàõîäèòñÿ äåêîäåð ïîòîêîâ, äàëåå - äåêîäåð ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà, à íà âåðõíåì - ôàéëîâ. Èíòåðôåéñû îïèñàíû â ôàéëàõ stream_decoder.h, seekable_stream_decoder.h è file_decoder.h ñîîòâåòñòâåííî. Îáû÷íî èñïîëüçîâàòü ñòîèò äåêîäåð áîëåå âåðõíåãî óðîâíÿ.

- -

Ïîòîêîâûé äåêîäåð ðàññ÷èòûâàåò íà îáðàòíûå âûçîâû äëÿ âñåãî ââîäà è âûâîäà è íå èìååò ôóíêöèé äëÿ ïîèñêà. Îíè äîáàâëåíû â äåêîäåð ñ âîçìîæíîñòüþ ïîèñêà, êîòîðûé ÿâëÿåòñÿ îáåðòêîé. Îäíàêî, äëÿ èñïîëüçîâàíèÿ âîçìîæíîñòè ïèîñêà âû äîëæíû äîáàâèòü äîïîëíèòåëüíûå îáðàòíûå âûçîâû (seek è tell). Ôàéëîâûé äåêîäåð, ÿâëÿþùèéñÿ îáåðòêîé äëÿ äåêîäåðà ïîòîêîâ ñ âîçìîæíîñòüþ ïîèñêà, ñàì îñóùåñòâëÿåò áîëüøèíñòâî îáðàòíûõ âûçîâîâ.

- -

Åíêîäåð ðåàëèçîâàí òîëüêî íà ïîòîêîâîì óðîâíå (stream_encoder.h), òàê êàê ïîèñê âî âðåìÿ êîäèðîâàíèÿ - äîâîëüíî ñòðàííàÿ âîçìîæíîñòü.

+

Äëÿ äåêîäèðîâàíèÿ 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_init(). Ïðîãðàììà òàêæå ìîæåò ïðåäîñòàâëÿòü óêàçàòåëü client_data íà FLAC__stream_decoder_init(), êîòîðûé áóäåò èñïîëüçîâàòüñÿ äëÿ îáðàòíûõ âûçîâîâ.

+

Ñíà÷àëà îáñóäèì äåêîäåð ïîòîêîâ. Òèï åãî ýêçåìïëÿðà FLAC__StreamDecoder. Îáû÷íî â ïðîãðàììå ýêçåìïëÿð ñîçäàåòñÿ âûçîâîì FLAC__stream_decoder_new(), çàòåì âûçûâàåò ôóíêöèè FLAC__stream_decoder_set_*() äëÿ óñòàíîâêè îáðàòíûõ âûçîâîâ è ïîëüçîâàòåëüñêèõ äàííûõ è èíèöèàëèçèðóåòñÿ ôóíêöèåé FLAC__stream_decoder_init(). Íåîáõîäèìûå îáðàòíûå âûçîâû:

-- 2.7.4