/* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . so y wiz . kor au . format . org . gr agr av arr . the ora Ċ Ċ import Ġcom . so y wiz . kor au . format . org . gr agr av arr . ogg .* Ċ import Ġcom . so y wiz . kor au . format . org . gr agr av arr . the ora . The ora Packet . Companion . TYPE _ COMMENTS Ċ import Ġcom . so y wiz . kor au . format . org . gr agr av arr . the ora . The ora Packet . Companion . TYPE _ IDENT IFICATION Ċ import Ġcom . so y wiz . kor au . format . org . gr agr av arr . the ora . The ora Packet . Companion . TYPE _ SETUP Ċ Ċ /** Ċ Ġ* ĠIdent ifies Ġthe Ġright Ġkind Ġof Ġ[ The ora Packet ] Ġfor Ġa Ġgiven Ċ Ġ* Ġincoming Ġ[ O gg Packet ], Ġand Ġcreates Ġit Ċ Ġ*/ Ċ class ĠThe ora Packet Factory Ġ: ĠHigh Level O gg Stream Packet () Ġ{ Ċ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ /** Ċĉĉ Ġ* ĠPopup ulates Ġthe Ġmetadata Ġpacket Ġheader , Ċĉĉ Ġ* Ġwhich Ġis Ġ"# the ora " Ġwhere Ġ# Ġis Ġthe Ġtype . Ċĉĉ Ġ*/ Ċĉ ĉ fun Ġpopulate Metadata Header ( b : ĠByteArray , Ġtype : ĠInt , Ġdata Length : ĠInt ) Ġ{ Ċĉĉ ĉ b [ 0 ] Ġ= ĠIO Utils . from Int ( type ) Ċĉĉ ĉ b [ 1 ] Ġ= Ġ' t '. to Byte () Ċĉĉ ĉ b [ 2 ] Ġ= Ġ' h '. to Byte () Ċĉĉ ĉ b [ 3 ] Ġ= Ġ' e '. to Byte () Ċĉĉ ĉ b [ 4 ] Ġ= Ġ' o '. to Byte () Ċĉĉ ĉ b [ 5 ] Ġ= Ġ' r '. to Byte () Ċĉĉ ĉ b [ 6 ] Ġ= Ġ' a '. to Byte () Ċĉ ĉ } ĊĊĉ ĉ /** Ċĉĉ Ġ* ĠDoes Ġthis Ġpacket Ġ( the Ġfirst Ġin Ġthe Ġstream ) Ġcontain Ċĉĉ Ġ* Ġthe Ġmagic Ġstring Ġindicating Ġthat Ġit 's Ġan Ġthe ora Ċĉĉ Ġ* Ġone ? Ċĉĉ Ġ*/ Ċĉ ĉ fun Ġis The ora Stream ( first Packet : ĠO gg Packet ): ĠBoolean Ġ{ Ċĉĉ ĉ return Ġif Ġ(! first Packet . is Beginning Of Stream ) Ġ{ Ċĉĉĉ ĉ false Ċĉĉ ĉ } Ġelse Ġis The ora Special ( first Packet ) Ċĉ ĉ } ĊĊĉ ĉ protected Ġfun Ġis The ora Special ( packet : ĠO gg Packet ): ĠBoolean Ġ{ Ċĉĉ ĉ val Ġd Ġ= Ġpacket . data Ċĉĉ ĉ if Ġ( d . size Ġ< Ġ 1 6 ) Ġreturn Ġfalse ĊĊĉĉ ĉ // ĠEnsure Ġit 's Ġthe Ġright Ġspecial Ġtype , Ġthen Ġthe ora Ċĉĉ ĉ val Ġtype Ġ= Ġd [ 0 ] Ċĉĉ ĉ if Ġ( type Ġ== ĠTYPE _ IDENT IFICATION Ġas ĠByte Ġ|| Ċĉĉĉ ĉ type Ġ== ĠTYPE _ COMMENTS Ġas ĠByte Ġ|| Ċĉĉĉ ĉ type Ġ== ĠTYPE _ SETUP Ġas ĠByte Ċĉĉ ĉ ) Ġ{ Ċĉĉĉ ĉ if Ġ( d [ 1 ] Ġ== Ġ' t '. to Byte () Ġ&& Ċĉĉĉĉ ĉ d [ 2 ] Ġ== Ġ' h '. to Byte () Ġ&& Ċĉĉĉĉ ĉ d [ 3 ] Ġ== Ġ' e '. to Byte () Ġ&& Ċĉĉĉĉ ĉ d [ 4 ] Ġ== Ġ' o '. to Byte () Ġ&& Ċĉĉĉĉ ĉ d [ 5 ] Ġ== Ġ' r '. to Byte () Ġ&& Ċĉĉĉĉ ĉ d [ 6 ] Ġ== Ġ' a '. to Byte () Ċĉĉĉ ĉ ) Ġ{ Ċĉĉĉĉ ĉ return Ġtrue Ċĉĉĉ ĉ } Ċĉĉ ĉ } Ċĉĉ ĉ return Ġfalse Ċĉ ĉ } ĊĊĉ ĉ /** Ċĉĉ Ġ* ĠCreates Ġthe Ġappropriate Ġ[ The ora Packet ] Ċĉĉ Ġ* Ġinstance Ġbased Ġon Ġthe Ġtype . Ċĉĉ Ġ*/ Ċĉ ĉ fun Ġcreate ( packet : ĠO gg Packet ): ĠThe ora Packet Ġ{ Ċĉĉ ĉ val Ġtype Ġ= Ġpacket . data [ 0 ] ĊĊĉĉ ĉ // ĠSpecial Ġheader Ġtypes Ġdetection Ċĉĉ ĉ if Ġ( is The ora Special ( packet )) Ġ{ Ċĉĉĉ ĉ when Ġ( type ) Ġ{ Ċĉĉĉĉ ĉ TYPE _ IDENT IFICATION Ġas ĠByte Ġ-> Ġreturn ĠThe ora Info ( packet ) Ċĉĉĉĉ ĉ TYPE _ COMMENTS Ġas ĠByte Ġ-> Ġreturn ĠThe ora Comments ( packet ) Ċĉĉĉĉ ĉ TYPE _ SETUP Ġas ĠByte Ġ-> Ġreturn ĠThe ora Setup ( packet ) Ċĉĉĉ ĉ } Ċĉĉ ĉ } ĊĊĉĉ ĉ return ĠThe ora Video Data ( packet ) Ċĉ ĉ } Ċ ĉ } Ċ } Ċ