/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġped ro SG 9 4 . Ċ Ġ* Ċ Ġ* Ġ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 . ped ro . rt sp . utils Ċ Ċ import Ġandroid . util . Base 6 4 Ċ import Ġjava . nio . ByteBuffer Ċ Ċ fun ĠByteArray . encode ToString ( flags : ĠInt Ġ= ĠBase 6 4 . NO _ WRAP ): ĠString Ġ{ ĊĠ Ġreturn ĠBase 6 4 . encode ToString ( this , Ġflags ) Ċ } Ċ Ċ fun ĠByteBuffer . getData (): ĠByteArray Ġ{ ĊĠ Ġval Ġstart Code Size Ġ= Ġthis . get Video Start Code Size () ĊĠ Ġval Ġbytes Ġ= ĠByteArray ( this . capacity () Ġ- Ġstart Code Size ) ĊĠ Ġthis . position ( start Code Size ) ĊĠ Ġthis . get ( bytes , Ġ 0 , Ġbytes . size ) ĊĠ Ġreturn Ġbytes Ċ } Ċ Ċ fun ĠByteArray . set Long ( n : ĠLong , Ġbegin : ĠInt , Ġend : ĠInt ) Ġ{ ĊĠ Ġvar Ġvalue Ġ= Ġn ĊĠ Ġfor Ġ( i Ġin Ġend Ġ- Ġ 1 Ġdown To Ġbegin Ġstep Ġ 1 ) Ġ{ ĊĠĠĠ Ġthis [ i ] Ġ= Ġ( value Ġ% Ġ 2 5 6 ). to Byte () ĊĠĠĠ Ġvalue Ġ= Ġvalue Ġshr Ġ 8 ĊĠ Ġ} Ċ } Ċ Ċ fun ĠByteBuffer . get Video Start Code Size (): ĠInt Ġ{ ĊĠ Ġvar Ġstart Code Size Ġ= Ġ 0 ĊĠ Ġif Ġ( this . get ( 0 ). toInt () Ġ== Ġ 0 x 0 0 Ġ&& Ġthis . get ( 1 ). toInt () Ġ== Ġ 0 x 0 0 ĊĠĠĠ Ġ&& Ġthis . get ( 2 ). toInt () Ġ== Ġ 0 x 0 0 Ġ&& Ġthis . get ( 3 ). toInt () Ġ== Ġ 0 x 0 1 ) Ġ{ ĊĠĠĠ Ġ// match Ġ 0 0 Ġ 0 0 Ġ 0 0 Ġ 0 1 ĊĠĠĠ Ġstart Code Size Ġ= Ġ 4 ĊĠ Ġ} Ġelse Ġif Ġ( this . get ( 0 ). toInt () Ġ== Ġ 0 x 0 0 Ġ&& Ġthis . get ( 1 ). toInt () Ġ== Ġ 0 x 0 0 ĊĠĠĠ Ġ&& Ġthis . get ( 2 ). toInt () Ġ== Ġ 0 x 0 1 ) Ġ{ ĊĠĠĠ Ġ// match Ġ 0 0 Ġ 0 0 Ġ 0 1 ĊĠĠĠ Ġstart Code Size Ġ= Ġ 3 ĊĠ Ġ} ĊĠ Ġreturn Ġstart Code Size Ċ }