Ogg logical bitstream framing

Ogg bitstreams

The Ogg transport bitstream is designed to provide framing, error protection and seeking structure for higher-level codec streams that consist of raw, unencapsulated data packets, such as the Vorbis audio codec or Theora video codec.

Application example: Vorbis

Vorbis encodes short-time blocks of PCM data into raw packets of bit-packed data. These raw packets may be used directly by transport mechanisms that provide their own framing and packet-separation mechanisms (such as UDP datagrams). For stream based stf+,.Ь4%Hj4  V0̂{cQRE}Ǐ{!>*V(0C6B p;Ȃ8 Jɪ> un,έyRXY)0֖)m,bwZ#I;] /nl\*Wwf:}~}7ɫW1}yYyzuyyOq뭑ߒ o!1;gy)񲢞0Y"ϔV_"l9C9:Bݭԇ m:i>xx L 6kѶ$ po2id'DHuɝvzID,<4VS+%Z(Y$:kM2q.k7/e]JP Q7APi%&2ˀ=dhs`-/hAwǀԉ%*&G)w'Qdzqdzz},T|%3\\w?|GP^wjjSb~q?頵c>$-?x Pק0UmH-2qڂCm!`0xxc'4I&|3P81-(G6Gf{}S~*ʑZSRGqޠk̨ &SQpl̠pZ98gqJЖNF yF7 Q MػF'=#ZZ--(x AP#܅9-x 1ҁO>-{d`E6!p!{^ !2D_xK0bvTʥ`ztz}~E'ٜaJjz~D{+eH$B"Hm=Ng / Z8X?[HGЀst-X`ͦ0i{;YMʥKgG1F{/)/])y[,-< WqoDu#%tYfjӣPX 0v=S!r@;v{ Ao?Cܳ' ~LM…@&6^X.e a wU', ԋQ j QMk^p%fm|ȦEt岔K4RQϘ"[r`c~+nrSzmvXx= y{j1y50':ƘhO )zO1#xϤ٣t,<78&isOzծۈ 6R4u!-r-'`[,:ږI]34F`| ,bx,7;o<~TirUvQЧB2:Ȳr_}yQ+]w%Vazot:g1&R|s?1ߊ<_]|ǡOW `Mk`J<J_گǶu虦hס@hJ9!"--`ω{n@ &"#R ֌97~j!?h JZl JAP/gonlѻ?Ų֓<'>Ef7gCN铘v ^]L 2@aBh>&ps+Sȣf507;Se2m͸Oi4XJGɌ=.ͥ`l u @uCX`uec븾oU$h, [6qg[; slPN;)g+Rlۛ ӱgV 4fY'T]k:-y?~!eTu2m4ni=4NEd(EuKxQ;ymfE;x20R(C?'9A>Dz>KoSrȐ  4>}rJN7RW՗ Fg\cQczsGGK"^Ɵz '9=;;8{&w:4-;ҩV0ĂCII4IY?"XObec@74c"oш <|t圂 ~R:r1aT"J+""<p9D\'Íq,+w3i1$79 ij#yzYuN$0yK,oH ,'1HK8I}B=ƦٛUtN-!ث_zՕ 5aӁ@t̒j>sr-f2`nĎz FVݩUY`B_P;ɒ4,f~%67tӊ4jтR0uAO:-z̅sWKS %g;({MsޫO{?4z+]%40fq"%VF`IEGلM{Y8qb=>z)WXE`:k RuUMv@[͎@Jny-^5_MeFQ v'6;ìCy p8OeFI$-cP'e vI%0j.Cux 1Aa#+BX7^+<h*02 G+ҨtǥaΞvuq3m!ݞXqR ҌVA `HvU{~W h :];0k_%]Q!_hVMc`W7S6 dZKh/waMur K=7*y߆Q*_LҬčes^vjz:(zw.n8TIVڀ].꾝xc^pmV]j$ry:F+7=5FM7 dAc ځ;uigzP X>Գlv|c `2zrKoK,e\$SSI좡Έ?֐4wnYa%k&}%撓wKS].:5[Xo6c{AWRc;m~KIz&6U2j_xݮziPTRiGߋJM"qn;KU-dI^=n ;U\ `MElMC=\TR]|PIS`#'lH.YeV,QIϸ][FHlIdv HĎfBHefOn.5 :1sk!l ǧ/{73% 4k=:*[: ڹ=H;]0̃@ Ć"y%]%$ex;%5sH(&Y\g|!u FQu99Ps4~泩{iS3G#{ _XyKnk5vZ^*@kڮAi6jg' +ز{̗˄=|"_.~)%~@-ˈ#3oqj!]gܻf#p,<8jlA|3AL'‰Hvmv>Nvld<00k%7u bS%QlWu {t,.W'r"u wS9qmw|B)j#k]: o蹪)1Fȝ]i}a 6WKi]a>h˟;Z'B'k 04ДL竽"-op)`xjHyD|%k{g$׾-/cd)XݺQa EFܢwQ4-7~ϡE(2.c~\>Zv͹GQmBG>|0! Au(Sm L+D4u8$>nI ֙16Rhfӏw\ RTy kfcou ͧ94z4Z)uhWCLZ,^0EŚr|l!#hٔKM' ma,21hgAxW=Cf$'s-Ղ[$ۆk `*}p=v D db>?#]UϢ@%(g?Eal}foܑ{w7M }|NQ\«G[)Z;u^'>ĮzE݌]ñٌJBv]꿛D6j8CÀg>!iY"71_LmbUpE\mMSzV=ݪvYzS*9w5;enQ#W\ UXEQ}Va>:/i-p Eok 5{M]-C\|d=sh⓫oXuDunUߪ[:U ՙZ G@n;e;Tj\*&qGR&bic㑟魰92/-:4MuؖZQRG~fAg'K1%=g%"`Wg#2Y#f]U{1{\ρZ4jJ"7wx𩄘$Rv(HW8Fx X01jZ lj8[ĩa~ qU-8u~ЦCK>q Nlch^:6a} V4HS'@˺%pRfŎ[px`ؤ%. m3ji6IKX~G6WӵTnZr\l]`X&Bޫ;*Xɯ pN/AxQj&OES{b1E%fϚK0~yY,Ƭ뜱iX2ëV%˔ ~KS}?N Ɠ7U̪I^p^C$ M&&T&WS|#X#D706!m{쇹Fb?R5CV[N?Ͱ}{DEgv>Fl']|U$Ue-K*GoS9IcJT;!:zd?ߪHSȔW͗n-jzhZ6]m%/{ O@uc5^ rIYi˷9R͋uwweZ TN6]!h]M05pqd9XtGV)WeXGc/-a .S@L1V~!{Tѝ=:Fӂxx{{z/>a/9oMf;㲞CWmk Zyf)զ5vFd{[BAas3L4* o798P(/j|Uq9]]B|RX&,~SYhޓinry sn~\W.{gv4MFX{w%#2`V `zݸjK_/y/xQz +-ZX3$m/[7>P %jTTi-r8yޒ赸6@'K'`JUs!lh><Ղ3tyof 0.8q]'Z"}ɹ~v)Z}<\lM j^R2jYW&l4Q4ĸ`m_!)^...>XOX:_m ,g, ^s %O٫(=wnOg'E?xs=|_yGG{<>?9>|5:h|t=vVgP'> EOÚ;UZMT. bNƷ XR,˾@"B@Nud"~seˎ64 |X"}s`[EU58d 9{T=xF9q881!(q$>u>dJ6a'F*?\]]:FnC59i'Ej_d|V96btҜrD9 Ҿ1Afm1l 1?-WG\ZweNoJ_VQrdDӳ(,^Vw,v:K2.zn +yu‰ Jydp -*+QRgUn{DP&| s!oyom,bYg]G8#gKZ`J)f%2Η{z6] lAT.l_ 4`F9wnZw4S6ApEh}Vnd0s߃ϲGn"X=⤐׉%rI׵M+)a^߼o֡[;hȵw(KkeF|]։`X1Y{HSzt8>oW+1xsA2i4}ʮPNa Nۢ4$A\Co ` ϲJ|7<.Gi܁F`[}94}62]彧 C)s0đM.~_+oq`Y8*as8:AJzZ̈~`^$.a~dR_"| 6)t*"`I]D 3>)o߂9|Ea$!) S;Jd4e)0.] FV/.F 8=)RJ dUJa^"<+ѝ-z2<."zcZ}/Vb4J~=K@Yh;?t<Ψ-SRq8T΀W|ߑM9i8ate=܋9_lToP=o}ƒ["O!z~aw{0 :nrqN6%f~LQm_/U=@̨KX3$}ܷ#"t.ogn&q'P&}޸dtbP<./usr/share/doc/libvorbis-dev/html/vorbis-errors.txt0000644000000000000000000000525211720252727021474 0ustar rootrootError return codes possible from libvorbis and libvorbisfile: All 'failure' style returns are <0; this either indicates a generic 'false' value (eg, ready? T or F) or an error condition. Code can safely just test for < 0, or look at the specific return code for more detail. *** Return codes: OV_FALSE The call returned a 'false' status (eg, ov_bitrate_instant can return OV_FALSE if playback is not in progress, and thus there is no instantaneous bitrate information to report. OV_HOLE libvorbis/libvorbisfile is alerting the application that there was an interruption in the data (one of: garbage between pages, loss of sync followed by recapture, or a corrupt page) OV_EREAD A read from media returned an error. OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption. OV_EIMPL The bitstream makes use of a feature not implemented in this library version. OV_EINVAL Invalid argument value. OV_ENOTVORBIS Bitstream/page/packet is not Vorbis data. OV_EBADHEADER Invalid Vorbis bitstream header. OV_EVERSION Vorbis version mismatch. OV_ENOTAUDIO Packet data submitted to vorbis_synthesis is not audio data. OV_EBADPACKET Invalid packet submitted to vorbis_synthesis. OV_EBADLINK Invalid stream section supplied to libvorbis/libvorbisfile, or the requested link is corrupt. OV_ENOSEEK Bitstream is not seekable. **************************************************************** *** Libvorbis functions that can return failure/error codes: int vorbis_analysis_headerout() OV_EIMPL int vorbis_analysis_wrote() OV_EINVAL int vorbis_synthesis_headerin() OV_ENOTVORBIS, OV_EVERSION, OV_EBADHEADER int vorbis_synthesis() OV_ENOTAUDIO, OV_EBADPACKET int vorbis_synthesis_read() OV_EINVAL **************************************************************** *** Libvorbisfile funct