| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106 |
- !(function (e, t) {
- 'object' == typeof exports && 'object' == typeof module
- ? (module.exports = t())
- : 'function' == typeof define && define.amd
- ? define([], t)
- : 'object' == typeof exports
- ? (exports.flvjs = t())
- : (e.flvjs = t());
- })(self, function () {
- return (function () {
- var e = {
- 264: function (e, t, i) {
- /*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version v4.2.8+1e68dce6
- */
- e.exports = (function () {
- 'use strict';
- function e(e) {
- var t = typeof e;
- return null !== e && ('object' === t || 'function' === t);
- }
- function t(e) {
- return 'function' == typeof e;
- }
- var n = Array.isArray
- ? Array.isArray
- : function (e) {
- return (
- '[object Array]' === Object.prototype.toString.call(e)
- );
- },
- r = 0,
- s = void 0,
- o = void 0,
- a = function (e, t) {
- (b[r] = e), (b[r + 1] = t), 2 === (r += 2) && (o ? o(E) : A());
- };
- function h(e) {
- o = e;
- }
- function u(e) {
- a = e;
- }
- var l = 'undefined' != typeof window ? window : void 0,
- d = l || {},
- c = d.MutationObserver || d.WebKitMutationObserver,
- f =
- 'undefined' == typeof self &&
- 'undefined' != typeof process &&
- '[object process]' === {}.toString.call(process),
- _ =
- 'undefined' != typeof Uint8ClampedArray &&
- 'undefined' != typeof importScripts &&
- 'undefined' != typeof MessageChannel;
- function p() {
- return function () {
- return process.nextTick(E);
- };
- }
- function m() {
- return void 0 !== s
- ? function () {
- s(E);
- }
- : y();
- }
- function g() {
- var e = 0,
- t = new c(E),
- i = document.createTextNode('');
- return (
- t.observe(i, { characterData: !0 }),
- function () {
- i.data = e = ++e % 2;
- }
- );
- }
- function v() {
- var e = new MessageChannel();
- return (
- (e.port1.onmessage = E),
- function () {
- return e.port2.postMessage(0);
- }
- );
- }
- function y() {
- var e = setTimeout;
- return function () {
- return e(E, 1);
- };
- }
- var b = new Array(1e3);
- function E() {
- for (var e = 0; e < r; e += 2)
- (0, b[e])(b[e + 1]), (b[e] = void 0), (b[e + 1] = void 0);
- r = 0;
- }
- function S() {
- try {
- var e = Function('return this')().require('vertx');
- return (s = e.runOnLoop || e.runOnContext), m();
- } catch (e) {
- return y();
- }
- }
- var A = void 0;
- function L(e, t) {
- var i = this,
- n = new this.constructor(O);
- void 0 === n[w] && W(n);
- var r = i._state;
- if (r) {
- var s = arguments[r - 1];
- a(function () {
- return V(r, n, s, i._result);
- });
- } else G(i, n, e, t);
- return n;
- }
- function R(e) {
- var t = this;
- if (e && 'object' == typeof e && e.constructor === t) return e;
- var i = new t(O);
- return U(i, e), i;
- }
- A = f ? p() : c ? g() : _ ? v() : void 0 === l ? S() : y();
- var w = Math.random().toString(36).substring(2);
- function O() {}
- var T = void 0,
- C = 1,
- k = 2;
- function D() {
- return new TypeError('You cannot resolve a promise with itself');
- }
- function I() {
- return new TypeError(
- 'A promises callback cannot return that same promise.'
- );
- }
- function M(e, t, i, n) {
- try {
- e.call(t, i, n);
- } catch (e) {
- return e;
- }
- }
- function B(e, t, i) {
- a(function (e) {
- var n = !1,
- r = M(
- i,
- t,
- function (i) {
- n || ((n = !0), t !== i ? U(e, i) : Z(e, i));
- },
- function (t) {
- n || ((n = !0), F(e, t));
- },
- 'Settle: ' + (e._label || ' unknown promise')
- );
- !n && r && ((n = !0), F(e, r));
- }, e);
- }
- function x(e, t) {
- t._state === C
- ? Z(e, t._result)
- : t._state === k
- ? F(e, t._result)
- : G(
- t,
- void 0,
- function (t) {
- return U(e, t);
- },
- function (t) {
- return F(e, t);
- }
- );
- }
- function P(e, i, n) {
- i.constructor === e.constructor &&
- n === L &&
- i.constructor.resolve === R
- ? x(e, i)
- : void 0 === n
- ? Z(e, i)
- : t(n)
- ? B(e, i, n)
- : Z(e, i);
- }
- function U(t, i) {
- if (t === i) F(t, D());
- else if (e(i)) {
- var n = void 0;
- try {
- n = i.then;
- } catch (e) {
- return void F(t, e);
- }
- P(t, i, n);
- } else Z(t, i);
- }
- function N(e) {
- e._onerror && e._onerror(e._result), j(e);
- }
- function Z(e, t) {
- e._state === T &&
- ((e._result = t),
- (e._state = C),
- 0 !== e._subscribers.length && a(j, e));
- }
- function F(e, t) {
- e._state === T && ((e._state = k), (e._result = t), a(N, e));
- }
- function G(e, t, i, n) {
- var r = e._subscribers,
- s = r.length;
- (e._onerror = null),
- (r[s] = t),
- (r[s + C] = i),
- (r[s + k] = n),
- 0 === s && e._state && a(j, e);
- }
- function j(e) {
- var t = e._subscribers,
- i = e._state;
- if (0 !== t.length) {
- for (
- var n = void 0, r = void 0, s = e._result, o = 0;
- o < t.length;
- o += 3
- )
- (n = t[o]), (r = t[o + i]), n ? V(i, n, r, s) : r(s);
- e._subscribers.length = 0;
- }
- }
- function V(e, i, n, r) {
- var s = t(n),
- o = void 0,
- a = void 0,
- h = !0;
- if (s) {
- try {
- o = n(r);
- } catch (e) {
- (h = !1), (a = e);
- }
- if (i === o) return void F(i, I());
- } else o = r;
- i._state !== T ||
- (s && h
- ? U(i, o)
- : !1 === h
- ? F(i, a)
- : e === C
- ? Z(i, o)
- : e === k && F(i, o));
- }
- function z(e, t) {
- try {
- t(
- function (t) {
- U(e, t);
- },
- function (t) {
- F(e, t);
- }
- );
- } catch (t) {
- F(e, t);
- }
- }
- var K = 0;
- function H() {
- return K++;
- }
- function W(e) {
- (e[w] = K++),
- (e._state = void 0),
- (e._result = void 0),
- (e._subscribers = []);
- }
- function q() {
- return new Error('Array Methods must be provided an Array');
- }
- var Y = (function () {
- function e(e, t) {
- (this._instanceConstructor = e),
- (this.promise = new e(O)),
- this.promise[w] || W(this.promise),
- n(t)
- ? ((this.length = t.length),
- (this._remaining = t.length),
- (this._result = new Array(this.length)),
- 0 === this.length
- ? Z(this.promise, this._result)
- : ((this.length = this.length || 0),
- this._enumerate(t),
- 0 === this._remaining &&
- Z(this.promise, this._result)))
- : F(this.promise, q());
- }
- return (
- (e.prototype._enumerate = function (e) {
- for (var t = 0; this._state === T && t < e.length; t++)
- this._eachEntry(e[t], t);
- }),
- (e.prototype._eachEntry = function (e, t) {
- var i = this._instanceConstructor,
- n = i.resolve;
- if (n === R) {
- var r = void 0,
- s = void 0,
- o = !1;
- try {
- r = e.then;
- } catch (e) {
- (o = !0), (s = e);
- }
- if (r === L && e._state !== T)
- this._settledAt(e._state, t, e._result);
- else if ('function' != typeof r)
- this._remaining--, (this._result[t] = e);
- else if (i === te) {
- var a = new i(O);
- o ? F(a, s) : P(a, e, r), this._willSettleAt(a, t);
- } else
- this._willSettleAt(
- new i(function (t) {
- return t(e);
- }),
- t
- );
- } else this._willSettleAt(n(e), t);
- }),
- (e.prototype._settledAt = function (e, t, i) {
- var n = this.promise;
- n._state === T &&
- (this._remaining--,
- e === k ? F(n, i) : (this._result[t] = i)),
- 0 === this._remaining && Z(n, this._result);
- }),
- (e.prototype._willSettleAt = function (e, t) {
- var i = this;
- G(
- e,
- void 0,
- function (e) {
- return i._settledAt(C, t, e);
- },
- function (e) {
- return i._settledAt(k, t, e);
- }
- );
- }),
- e
- );
- })();
- function X(e) {
- return new Y(this, e).promise;
- }
- function J(e) {
- var t = this;
- return n(e)
- ? new t(function (i, n) {
- for (var r = e.length, s = 0; s < r; s++)
- t.resolve(e[s]).then(i, n);
- })
- : new t(function (e, t) {
- return t(new TypeError('You must pass an array to race.'));
- });
- }
- function Q(e) {
- var t = new this(O);
- return F(t, e), t;
- }
- function $() {
- throw new TypeError(
- 'You must pass a resolver function as the first argument to the promise constructor'
- );
- }
- function ee() {
- throw new TypeError(
- "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."
- );
- }
- var te = (function () {
- function e(t) {
- (this[w] = H()),
- (this._result = this._state = void 0),
- (this._subscribers = []),
- O !== t &&
- ('function' != typeof t && $(),
- this instanceof e ? z(this, t) : ee());
- }
- return (
- (e.prototype.catch = function (e) {
- return this.then(null, e);
- }),
- (e.prototype.finally = function (e) {
- var i = this,
- n = i.constructor;
- return t(e)
- ? i.then(
- function (t) {
- return n.resolve(e()).then(function () {
- return t;
- });
- },
- function (t) {
- return n.resolve(e()).then(function () {
- throw t;
- });
- }
- )
- : i.then(e, e);
- }),
- e
- );
- })();
- function ie() {
- var e = void 0;
- if (void 0 !== i.g) e = i.g;
- else if ('undefined' != typeof self) e = self;
- else
- try {
- e = Function('return this')();
- } catch (e) {
- throw new Error(
- 'polyfill failed because global object is unavailable in this environment'
- );
- }
- var t = e.Promise;
- if (t) {
- var n = null;
- try {
- n = Object.prototype.toString.call(t.resolve());
- } catch (e) {}
- if ('[object Promise]' === n && !t.cast) return;
- }
- e.Promise = te;
- }
- return (
- (te.prototype.then = L),
- (te.all = X),
- (te.race = J),
- (te.resolve = R),
- (te.reject = Q),
- (te._setScheduler = h),
- (te._setAsap = u),
- (te._asap = a),
- (te.polyfill = ie),
- (te.Promise = te),
- te
- );
- })();
- },
- 716: function (e) {
- 'use strict';
- var t,
- i = 'object' == typeof Reflect ? Reflect : null,
- n =
- i && 'function' == typeof i.apply
- ? i.apply
- : function (e, t, i) {
- return Function.prototype.apply.call(e, t, i);
- };
- t =
- i && 'function' == typeof i.ownKeys
- ? i.ownKeys
- : Object.getOwnPropertySymbols
- ? function (e) {
- return Object.getOwnPropertyNames(e).concat(
- Object.getOwnPropertySymbols(e)
- );
- }
- : function (e) {
- return Object.getOwnPropertyNames(e);
- };
- var r =
- Number.isNaN ||
- function (e) {
- return e != e;
- };
- function s() {
- s.init.call(this);
- }
- (e.exports = s),
- (e.exports.once = function (e, t) {
- return new Promise(function (i, n) {
- function r(i) {
- e.removeListener(t, s), n(i);
- }
- function s() {
- 'function' == typeof e.removeListener &&
- e.removeListener('error', r),
- i([].slice.call(arguments));
- }
- p(e, t, s, { once: !0 }),
- 'error' !== t &&
- (function (e, t, i) {
- 'function' == typeof e.on && p(e, 'error', t, i);
- })(e, r, { once: !0 });
- });
- }),
- (s.EventEmitter = s),
- (s.prototype._events = void 0),
- (s.prototype._eventsCount = 0),
- (s.prototype._maxListeners = void 0);
- var o = 10;
- function a(e) {
- if ('function' != typeof e)
- throw new TypeError(
- 'The "listener" argument must be of type Function. Received type ' +
- typeof e
- );
- }
- function h(e) {
- return void 0 === e._maxListeners
- ? s.defaultMaxListeners
- : e._maxListeners;
- }
- function u(e, t, i, n) {
- var r, s, o, u;
- if (
- (a(i),
- void 0 === (s = e._events)
- ? ((s = e._events = Object.create(null)), (e._eventsCount = 0))
- : (void 0 !== s.newListener &&
- (e.emit('newListener', t, i.listener ? i.listener : i),
- (s = e._events)),
- (o = s[t])),
- void 0 === o)
- )
- (o = s[t] = i), ++e._eventsCount;
- else if (
- ('function' == typeof o
- ? (o = s[t] = n ? [i, o] : [o, i])
- : n
- ? o.unshift(i)
- : o.push(i),
- (r = h(e)) > 0 && o.length > r && !o.warned)
- ) {
- o.warned = !0;
- var l = new Error(
- 'Possible EventEmitter memory leak detected. ' +
- o.length +
- ' ' +
- String(t) +
- ' listeners added. Use emitter.setMaxListeners() to increase limit'
- );
- (l.name = 'MaxListenersExceededWarning'),
- (l.emitter = e),
- (l.type = t),
- (l.count = o.length),
- (u = l),
- console && console.warn && console.warn(u);
- }
- return e;
- }
- function l() {
- if (!this.fired)
- return (
- this.target.removeListener(this.type, this.wrapFn),
- (this.fired = !0),
- 0 === arguments.length
- ? this.listener.call(this.target)
- : this.listener.apply(this.target, arguments)
- );
- }
- function d(e, t, i) {
- var n = {
- fired: !1,
- wrapFn: void 0,
- target: e,
- type: t,
- listener: i,
- },
- r = l.bind(n);
- return (r.listener = i), (n.wrapFn = r), r;
- }
- function c(e, t, i) {
- var n = e._events;
- if (void 0 === n) return [];
- var r = n[t];
- return void 0 === r
- ? []
- : 'function' == typeof r
- ? i
- ? [r.listener || r]
- : [r]
- : i
- ? (function (e) {
- for (var t = new Array(e.length), i = 0; i < t.length; ++i)
- t[i] = e[i].listener || e[i];
- return t;
- })(r)
- : _(r, r.length);
- }
- function f(e) {
- var t = this._events;
- if (void 0 !== t) {
- var i = t[e];
- if ('function' == typeof i) return 1;
- if (void 0 !== i) return i.length;
- }
- return 0;
- }
- function _(e, t) {
- for (var i = new Array(t), n = 0; n < t; ++n) i[n] = e[n];
- return i;
- }
- function p(e, t, i, n) {
- if ('function' == typeof e.on) n.once ? e.once(t, i) : e.on(t, i);
- else {
- if ('function' != typeof e.addEventListener)
- throw new TypeError(
- 'The "emitter" argument must be of type EventEmitter. Received type ' +
- typeof e
- );
- e.addEventListener(t, function r(s) {
- n.once && e.removeEventListener(t, r), i(s);
- });
- }
- }
- Object.defineProperty(s, 'defaultMaxListeners', {
- enumerable: !0,
- get: function () {
- return o;
- },
- set: function (e) {
- if ('number' != typeof e || e < 0 || r(e))
- throw new RangeError(
- 'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' +
- e +
- '.'
- );
- o = e;
- },
- }),
- (s.init = function () {
- (void 0 !== this._events &&
- this._events !== Object.getPrototypeOf(this)._events) ||
- ((this._events = Object.create(null)), (this._eventsCount = 0)),
- (this._maxListeners = this._maxListeners || void 0);
- }),
- (s.prototype.setMaxListeners = function (e) {
- if ('number' != typeof e || e < 0 || r(e))
- throw new RangeError(
- 'The value of "n" is out of range. It must be a non-negative number. Received ' +
- e +
- '.'
- );
- return (this._maxListeners = e), this;
- }),
- (s.prototype.getMaxListeners = function () {
- return h(this);
- }),
- (s.prototype.emit = function (e) {
- for (var t = [], i = 1; i < arguments.length; i++)
- t.push(arguments[i]);
- var r = 'error' === e,
- s = this._events;
- if (void 0 !== s) r = r && void 0 === s.error;
- else if (!r) return !1;
- if (r) {
- var o;
- if ((t.length > 0 && (o = t[0]), o instanceof Error)) throw o;
- var a = new Error(
- 'Unhandled error.' + (o ? ' (' + o.message + ')' : '')
- );
- throw ((a.context = o), a);
- }
- var h = s[e];
- if (void 0 === h) return !1;
- if ('function' == typeof h) n(h, this, t);
- else {
- var u = h.length,
- l = _(h, u);
- for (i = 0; i < u; ++i) n(l[i], this, t);
- }
- return !0;
- }),
- (s.prototype.addListener = function (e, t) {
- return u(this, e, t, !1);
- }),
- (s.prototype.on = s.prototype.addListener),
- (s.prototype.prependListener = function (e, t) {
- return u(this, e, t, !0);
- }),
- (s.prototype.once = function (e, t) {
- return a(t), this.on(e, d(this, e, t)), this;
- }),
- (s.prototype.prependOnceListener = function (e, t) {
- return a(t), this.prependListener(e, d(this, e, t)), this;
- }),
- (s.prototype.removeListener = function (e, t) {
- var i, n, r, s, o;
- if ((a(t), void 0 === (n = this._events))) return this;
- if (void 0 === (i = n[e])) return this;
- if (i === t || i.listener === t)
- 0 == --this._eventsCount
- ? (this._events = Object.create(null))
- : (delete n[e],
- n.removeListener &&
- this.emit('removeListener', e, i.listener || t));
- else if ('function' != typeof i) {
- for (r = -1, s = i.length - 1; s >= 0; s--)
- if (i[s] === t || i[s].listener === t) {
- (o = i[s].listener), (r = s);
- break;
- }
- if (r < 0) return this;
- 0 === r
- ? i.shift()
- : (function (e, t) {
- for (; t + 1 < e.length; t++) e[t] = e[t + 1];
- e.pop();
- })(i, r),
- 1 === i.length && (n[e] = i[0]),
- void 0 !== n.removeListener &&
- this.emit('removeListener', e, o || t);
- }
- return this;
- }),
- (s.prototype.off = s.prototype.removeListener),
- (s.prototype.removeAllListeners = function (e) {
- var t, i, n;
- if (void 0 === (i = this._events)) return this;
- if (void 0 === i.removeListener)
- return (
- 0 === arguments.length
- ? ((this._events = Object.create(null)),
- (this._eventsCount = 0))
- : void 0 !== i[e] &&
- (0 == --this._eventsCount
- ? (this._events = Object.create(null))
- : delete i[e]),
- this
- );
- if (0 === arguments.length) {
- var r,
- s = Object.keys(i);
- for (n = 0; n < s.length; ++n)
- 'removeListener' !== (r = s[n]) && this.removeAllListeners(r);
- return (
- this.removeAllListeners('removeListener'),
- (this._events = Object.create(null)),
- (this._eventsCount = 0),
- this
- );
- }
- if ('function' == typeof (t = i[e])) this.removeListener(e, t);
- else if (void 0 !== t)
- for (n = t.length - 1; n >= 0; n--)
- this.removeListener(e, t[n]);
- return this;
- }),
- (s.prototype.listeners = function (e) {
- return c(this, e, !0);
- }),
- (s.prototype.rawListeners = function (e) {
- return c(this, e, !1);
- }),
- (s.listenerCount = function (e, t) {
- return 'function' == typeof e.listenerCount
- ? e.listenerCount(t)
- : f.call(e, t);
- }),
- (s.prototype.listenerCount = f),
- (s.prototype.eventNames = function () {
- return this._eventsCount > 0 ? t(this._events) : [];
- });
- },
- 397: function (e, t, i) {
- function n(e) {
- var t = {};
- function i(n) {
- if (t[n]) return t[n].exports;
- var r = (t[n] = { i: n, l: !1, exports: {} });
- return (
- e[n].call(r.exports, r, r.exports, i), (r.l = !0), r.exports
- );
- }
- (i.m = e),
- (i.c = t),
- (i.i = function (e) {
- return e;
- }),
- (i.d = function (e, t, n) {
- i.o(e, t) ||
- Object.defineProperty(e, t, {
- configurable: !1,
- enumerable: !0,
- get: n,
- });
- }),
- (i.r = function (e) {
- Object.defineProperty(e, '__esModule', { value: !0 });
- }),
- (i.n = function (e) {
- var t =
- e && e.__esModule
- ? function () {
- return e.default;
- }
- : function () {
- return e;
- };
- return i.d(t, 'a', t), t;
- }),
- (i.o = function (e, t) {
- return Object.prototype.hasOwnProperty.call(e, t);
- }),
- (i.p = '/'),
- (i.oe = function (e) {
- throw (console.error(e), e);
- });
- var n = i((i.s = ENTRY_MODULE));
- return n.default || n;
- }
- var r = '[\\.|\\-|\\+|\\w|/|@]+',
- s = '\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)';
- function o(e) {
- return (e + '').replace(/[.?*+^$[\]\\(){}|-]/g, '\\$&');
- }
- function a(e, t, n) {
- var a = {};
- a[n] = [];
- var h = t.toString(),
- u = h.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);
- if (!u) return a;
- for (
- var l, d = u[1], c = new RegExp('(\\\\n|\\W)' + o(d) + s, 'g');
- (l = c.exec(h));
- )
- 'dll-reference' !== l[3] && a[n].push(l[3]);
- for (
- c = new RegExp(
- '\\(' + o(d) + '\\("(dll-reference\\s(' + r + '))"\\)\\)' + s,
- 'g'
- );
- (l = c.exec(h));
- )
- e[l[2]] || (a[n].push(l[1]), (e[l[2]] = i(l[1]).m)),
- (a[l[2]] = a[l[2]] || []),
- a[l[2]].push(l[4]);
- for (var f, _ = Object.keys(a), p = 0; p < _.length; p++)
- for (var m = 0; m < a[_[p]].length; m++)
- (f = a[_[p]][m]), isNaN(1 * f) || (a[_[p]][m] = 1 * a[_[p]][m]);
- return a;
- }
- function h(e) {
- return Object.keys(e).reduce(function (t, i) {
- return t || e[i].length > 0;
- }, !1);
- }
- e.exports = function (e, t) {
- t = t || {};
- var r = { main: i.m },
- s = t.all
- ? { main: Object.keys(r.main) }
- : (function (e, t) {
- for (
- var i = { main: [t] }, n = { main: [] }, r = { main: {} };
- h(i);
- )
- for (var s = Object.keys(i), o = 0; o < s.length; o++) {
- var u = s[o],
- l = i[u].pop();
- if (((r[u] = r[u] || {}), !r[u][l] && e[u][l])) {
- (r[u][l] = !0), (n[u] = n[u] || []), n[u].push(l);
- for (
- var d = a(e, e[u][l], u), c = Object.keys(d), f = 0;
- f < c.length;
- f++
- )
- (i[c[f]] = i[c[f]] || []),
- (i[c[f]] = i[c[f]].concat(d[c[f]]));
- }
- }
- return n;
- })(r, e),
- o = '';
- Object.keys(s)
- .filter(function (e) {
- return 'main' !== e;
- })
- .forEach(function (e) {
- for (var t = 0; s[e][t]; ) t++;
- s[e].push(t),
- (r[e][t] =
- '(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })'),
- (o =
- o +
- 'var ' +
- e +
- ' = (' +
- n.toString().replace('ENTRY_MODULE', JSON.stringify(t)) +
- ')({' +
- s[e]
- .map(function (t) {
- return JSON.stringify(t) + ': ' + r[e][t].toString();
- })
- .join(',') +
- '});\n');
- }),
- (o =
- o +
- 'new ((' +
- n.toString().replace('ENTRY_MODULE', JSON.stringify(e)) +
- ')({' +
- s.main
- .map(function (e) {
- return JSON.stringify(e) + ': ' + r.main[e].toString();
- })
- .join(',') +
- '}))(self);');
- var u = new window.Blob([o], { type: 'text/javascript' });
- if (t.bare) return u;
- var l = (
- window.URL ||
- window.webkitURL ||
- window.mozURL ||
- window.msURL
- ).createObjectURL(u),
- d = new window.Worker(l);
- return (d.objectURL = l), d;
- };
- },
- 118: function (e, t) {
- 'use strict';
- var i = (function () {
- function e() {
- (this.mimeType = null),
- (this.duration = null),
- (this.hasAudio = null),
- (this.hasVideo = null),
- (this.audioCodec = null),
- (this.videoCodec = null),
- (this.audioDataRate = null),
- (this.videoDataRate = null),
- (this.audioSampleRate = null),
- (this.audioChannelCount = null),
- (this.width = null),
- (this.height = null),
- (this.fps = null),
- (this.profile = null),
- (this.level = null),
- (this.refFrames = null),
- (this.chromaFormat = null),
- (this.sarNum = null),
- (this.sarDen = null),
- (this.metadata = null),
- (this.segments = null),
- (this.segmentCount = null),
- (this.hasKeyframesIndex = null),
- (this.keyframesIndex = null);
- }
- return (
- (e.prototype.isComplete = function () {
- var e =
- !1 === this.hasAudio ||
- (!0 === this.hasAudio &&
- null != this.audioCodec &&
- null != this.audioSampleRate &&
- null != this.audioChannelCount),
- t =
- !1 === this.hasVideo ||
- (!0 === this.hasVideo &&
- null != this.videoCodec &&
- null != this.width &&
- null != this.height &&
- null != this.fps &&
- null != this.profile &&
- null != this.level &&
- null != this.refFrames &&
- null != this.chromaFormat &&
- null != this.sarNum &&
- null != this.sarDen);
- return (
- null != this.mimeType &&
- null != this.duration &&
- null != this.metadata &&
- null != this.hasKeyframesIndex &&
- e &&
- t
- );
- }),
- (e.prototype.isSeekable = function () {
- return !0 === this.hasKeyframesIndex;
- }),
- (e.prototype.getNearestKeyframe = function (e) {
- if (null == this.keyframesIndex) return null;
- var t = this.keyframesIndex,
- i = this._search(t.times, e);
- return {
- index: i,
- milliseconds: t.times[i],
- fileposition: t.filepositions[i],
- };
- }),
- (e.prototype._search = function (e, t) {
- var i = 0,
- n = e.length - 1,
- r = 0,
- s = 0,
- o = n;
- for (t < e[0] && ((i = 0), (s = o + 1)); s <= o; ) {
- if (
- (r = s + Math.floor((o - s) / 2)) === n ||
- (t >= e[r] && t < e[r + 1])
- ) {
- i = r;
- break;
- }
- e[r] < t ? (s = r + 1) : (o = r - 1);
- }
- return i;
- }),
- e
- );
- })();
- t.Z = i;
- },
- 51: function (e, t, i) {
- 'use strict';
- i.d(t, {
- Wk: function () {
- return n;
- },
- Yy: function () {
- return r;
- },
- Vn: function () {
- return s;
- },
- J1: function () {
- return o;
- },
- });
- var n = function (e, t, i, n, r) {
- (this.dts = e),
- (this.pts = t),
- (this.duration = i),
- (this.originalDts = n),
- (this.isSyncPoint = r),
- (this.fileposition = null);
- },
- r = (function () {
- function e() {
- (this.beginDts = 0),
- (this.endDts = 0),
- (this.beginPts = 0),
- (this.endPts = 0),
- (this.originalBeginDts = 0),
- (this.originalEndDts = 0),
- (this.syncPoints = []),
- (this.firstSample = null),
- (this.lastSample = null);
- }
- return (
- (e.prototype.appendSyncPoint = function (e) {
- (e.isSyncPoint = !0), this.syncPoints.push(e);
- }),
- e
- );
- })(),
- s = (function () {
- function e() {
- this._list = [];
- }
- return (
- (e.prototype.clear = function () {
- this._list = [];
- }),
- (e.prototype.appendArray = function (e) {
- var t = this._list;
- 0 !== e.length &&
- (t.length > 0 &&
- e[0].originalDts < t[t.length - 1].originalDts &&
- this.clear(),
- Array.prototype.push.apply(t, e));
- }),
- (e.prototype.getLastSyncPointBeforeDts = function (e) {
- if (0 == this._list.length) return null;
- var t = this._list,
- i = 0,
- n = t.length - 1,
- r = 0,
- s = 0,
- o = n;
- for (e < t[0].dts && ((i = 0), (s = o + 1)); s <= o; ) {
- if (
- (r = s + Math.floor((o - s) / 2)) === n ||
- (e >= t[r].dts && e < t[r + 1].dts)
- ) {
- i = r;
- break;
- }
- t[r].dts < e ? (s = r + 1) : (o = r - 1);
- }
- return this._list[i];
- }),
- e
- );
- })(),
- o = (function () {
- function e(e) {
- (this._type = e),
- (this._list = []),
- (this._lastAppendLocation = -1);
- }
- return (
- Object.defineProperty(e.prototype, 'type', {
- get: function () {
- return this._type;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'length', {
- get: function () {
- return this._list.length;
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.prototype.isEmpty = function () {
- return 0 === this._list.length;
- }),
- (e.prototype.clear = function () {
- (this._list = []), (this._lastAppendLocation = -1);
- }),
- (e.prototype._searchNearestSegmentBefore = function (e) {
- var t = this._list;
- if (0 === t.length) return -2;
- var i = t.length - 1,
- n = 0,
- r = 0,
- s = i,
- o = 0;
- if (e < t[0].originalBeginDts) return (o = -1);
- for (; r <= s; ) {
- if (
- (n = r + Math.floor((s - r) / 2)) === i ||
- (e > t[n].lastSample.originalDts &&
- e < t[n + 1].originalBeginDts)
- ) {
- o = n;
- break;
- }
- t[n].originalBeginDts < e ? (r = n + 1) : (s = n - 1);
- }
- return o;
- }),
- (e.prototype._searchNearestSegmentAfter = function (e) {
- return this._searchNearestSegmentBefore(e) + 1;
- }),
- (e.prototype.append = function (e) {
- var t = this._list,
- i = e,
- n = this._lastAppendLocation,
- r = 0;
- -1 !== n &&
- n < t.length &&
- i.originalBeginDts >= t[n].lastSample.originalDts &&
- (n === t.length - 1 ||
- (n < t.length - 1 &&
- i.originalBeginDts < t[n + 1].originalBeginDts))
- ? (r = n + 1)
- : t.length > 0 &&
- (r =
- this._searchNearestSegmentBefore(i.originalBeginDts) +
- 1),
- (this._lastAppendLocation = r),
- this._list.splice(r, 0, i);
- }),
- (e.prototype.getLastSegmentBefore = function (e) {
- var t = this._searchNearestSegmentBefore(e);
- return t >= 0 ? this._list[t] : null;
- }),
- (e.prototype.getLastSampleBefore = function (e) {
- var t = this.getLastSegmentBefore(e);
- return null != t ? t.lastSample : null;
- }),
- (e.prototype.getLastSyncPointBefore = function (e) {
- for (
- var t = this._searchNearestSegmentBefore(e),
- i = this._list[t].syncPoints;
- 0 === i.length && t > 0;
- )
- t--, (i = this._list[t].syncPoints);
- return i.length > 0 ? i[i.length - 1] : null;
- }),
- e
- );
- })();
- },
- 949: function (e, t, i) {
- 'use strict';
- i.d(t, {
- Z: function () {
- return R;
- },
- });
- var n = i(716),
- r = i.n(n),
- s = i(300),
- o = i(538),
- a = i(118);
- function h(e, t, i) {
- var n = e;
- if (t + i < n.length) {
- for (; i--; ) if (128 != (192 & n[++t])) return !1;
- return !0;
- }
- return !1;
- }
- var u,
- l = function (e) {
- for (var t = [], i = e, n = 0, r = e.length; n < r; )
- if (i[n] < 128) t.push(String.fromCharCode(i[n])), ++n;
- else {
- if (i[n] < 192);
- else if (i[n] < 224) {
- if (h(i, n, 1))
- if ((s = ((31 & i[n]) << 6) | (63 & i[n + 1])) >= 128) {
- t.push(String.fromCharCode(65535 & s)), (n += 2);
- continue;
- }
- } else if (i[n] < 240) {
- if (h(i, n, 2))
- if (
- (s =
- ((15 & i[n]) << 12) |
- ((63 & i[n + 1]) << 6) |
- (63 & i[n + 2])) >= 2048 &&
- 55296 != (63488 & s)
- ) {
- t.push(String.fromCharCode(65535 & s)), (n += 3);
- continue;
- }
- } else if (i[n] < 248) {
- var s;
- if (h(i, n, 3))
- if (
- (s =
- ((7 & i[n]) << 18) |
- ((63 & i[n + 1]) << 12) |
- ((63 & i[n + 2]) << 6) |
- (63 & i[n + 3])) > 65536 &&
- s < 1114112
- ) {
- (s -= 65536),
- t.push(String.fromCharCode((s >>> 10) | 55296)),
- t.push(String.fromCharCode((1023 & s) | 56320)),
- (n += 4);
- continue;
- }
- }
- t.push(String.fromCharCode(65533)), ++n;
- }
- return t.join('');
- },
- d = i(29),
- c =
- ((u = new ArrayBuffer(2)),
- new DataView(u).setInt16(0, 256, !0),
- 256 === new Int16Array(u)[0]),
- f = (function () {
- function e() {}
- return (
- (e.parseScriptData = function (t, i, n) {
- var r = {};
- try {
- var o = e.parseValue(t, i, n),
- a = e.parseValue(t, i + o.size, n - o.size);
- r[o.data] = a.data;
- } catch (e) {
- s.Z.e('AMF', e.toString());
- }
- return r;
- }),
- (e.parseObject = function (t, i, n) {
- if (n < 3)
- throw new d.rT(
- 'Data not enough when parse ScriptDataObject'
- );
- var r = e.parseString(t, i, n),
- s = e.parseValue(t, i + r.size, n - r.size),
- o = s.objectEnd;
- return {
- data: { name: r.data, value: s.data },
- size: r.size + s.size,
- objectEnd: o,
- };
- }),
- (e.parseVariable = function (t, i, n) {
- return e.parseObject(t, i, n);
- }),
- (e.parseString = function (e, t, i) {
- if (i < 2)
- throw new d.rT('Data not enough when parse String');
- var n = new DataView(e, t, i).getUint16(0, !c);
- return {
- data: n > 0 ? l(new Uint8Array(e, t + 2, n)) : '',
- size: 2 + n,
- };
- }),
- (e.parseLongString = function (e, t, i) {
- if (i < 4)
- throw new d.rT('Data not enough when parse LongString');
- var n = new DataView(e, t, i).getUint32(0, !c);
- return {
- data: n > 0 ? l(new Uint8Array(e, t + 4, n)) : '',
- size: 4 + n,
- };
- }),
- (e.parseDate = function (e, t, i) {
- if (i < 10)
- throw new d.rT('Data size invalid when parse Date');
- var n = new DataView(e, t, i),
- r = n.getFloat64(0, !c),
- s = n.getInt16(8, !c);
- return { data: new Date((r += 60 * s * 1e3)), size: 10 };
- }),
- (e.parseValue = function (t, i, n) {
- if (n < 1) throw new d.rT('Data not enough when parse Value');
- var r,
- o = new DataView(t, i, n),
- a = 1,
- h = o.getUint8(0),
- u = !1;
- try {
- switch (h) {
- case 0:
- (r = o.getFloat64(1, !c)), (a += 8);
- break;
- case 1:
- (r = !!o.getUint8(1)), (a += 1);
- break;
- case 2:
- var l = e.parseString(t, i + 1, n - 1);
- (r = l.data), (a += l.size);
- break;
- case 3:
- r = {};
- var f = 0;
- for (
- 9 == (16777215 & o.getUint32(n - 4, !c)) && (f = 3);
- a < n - 4;
- ) {
- var _ = e.parseObject(t, i + a, n - a - f);
- if (_.objectEnd) break;
- (r[_.data.name] = _.data.value), (a += _.size);
- }
- if (a <= n - 3)
- 9 === (16777215 & o.getUint32(a - 1, !c)) && (a += 3);
- break;
- case 8:
- (r = {}), (a += 4);
- f = 0;
- for (
- 9 == (16777215 & o.getUint32(n - 4, !c)) && (f = 3);
- a < n - 8;
- ) {
- var p = e.parseVariable(t, i + a, n - a - f);
- if (p.objectEnd) break;
- (r[p.data.name] = p.data.value), (a += p.size);
- }
- if (a <= n - 3)
- 9 === (16777215 & o.getUint32(a - 1, !c)) && (a += 3);
- break;
- case 9:
- (r = void 0), (a = 1), (u = !0);
- break;
- case 10:
- r = [];
- var m = o.getUint32(1, !c);
- a += 4;
- for (var g = 0; g < m; g++) {
- var v = e.parseValue(t, i + a, n - a);
- r.push(v.data), (a += v.size);
- }
- break;
- case 11:
- var y = e.parseDate(t, i + 1, n - 1);
- (r = y.data), (a += y.size);
- break;
- case 12:
- var b = e.parseString(t, i + 1, n - 1);
- (r = b.data), (a += b.size);
- break;
- default:
- (a = n),
- s.Z.w('AMF', 'Unsupported AMF value type ' + h);
- }
- } catch (e) {
- s.Z.e('AMF', e.toString());
- }
- return { data: r, size: a, objectEnd: u };
- }),
- e
- );
- })(),
- _ = (function () {
- function e(e) {
- (this.TAG = 'ExpGolomb'),
- (this._buffer = e),
- (this._buffer_index = 0),
- (this._total_bytes = e.byteLength),
- (this._total_bits = 8 * e.byteLength),
- (this._current_word = 0),
- (this._current_word_bits_left = 0);
- }
- return (
- (e.prototype.destroy = function () {
- this._buffer = null;
- }),
- (e.prototype._fillCurrentWord = function () {
- var e = this._total_bytes - this._buffer_index;
- if (e <= 0)
- throw new d.rT(
- 'ExpGolomb: _fillCurrentWord() but no bytes available'
- );
- var t = Math.min(4, e),
- i = new Uint8Array(4);
- i.set(
- this._buffer.subarray(
- this._buffer_index,
- this._buffer_index + t
- )
- ),
- (this._current_word = new DataView(i.buffer).getUint32(
- 0,
- !1
- )),
- (this._buffer_index += t),
- (this._current_word_bits_left = 8 * t);
- }),
- (e.prototype.readBits = function (e) {
- if (e > 32)
- throw new d.OC(
- 'ExpGolomb: readBits() bits exceeded max 32bits!'
- );
- if (e <= this._current_word_bits_left) {
- var t = this._current_word >>> (32 - e);
- return (
- (this._current_word <<= e),
- (this._current_word_bits_left -= e),
- t
- );
- }
- var i = this._current_word_bits_left ? this._current_word : 0;
- i >>>= 32 - this._current_word_bits_left;
- var n = e - this._current_word_bits_left;
- this._fillCurrentWord();
- var r = Math.min(n, this._current_word_bits_left),
- s = this._current_word >>> (32 - r);
- return (
- (this._current_word <<= r),
- (this._current_word_bits_left -= r),
- (i = (i << r) | s)
- );
- }),
- (e.prototype.readBool = function () {
- return 1 === this.readBits(1);
- }),
- (e.prototype.readByte = function () {
- return this.readBits(8);
- }),
- (e.prototype._skipLeadingZero = function () {
- var e;
- for (e = 0; e < this._current_word_bits_left; e++)
- if (0 != (this._current_word & (2147483648 >>> e)))
- return (
- (this._current_word <<= e),
- (this._current_word_bits_left -= e),
- e
- );
- return this._fillCurrentWord(), e + this._skipLeadingZero();
- }),
- (e.prototype.readUEG = function () {
- var e = this._skipLeadingZero();
- return this.readBits(e + 1) - 1;
- }),
- (e.prototype.readSEG = function () {
- var e = this.readUEG();
- return 1 & e ? (e + 1) >>> 1 : -1 * (e >>> 1);
- }),
- e
- );
- })(),
- p = (function () {
- function e() {}
- return (
- (e._ebsp2rbsp = function (e) {
- for (
- var t = e,
- i = t.byteLength,
- n = new Uint8Array(i),
- r = 0,
- s = 0;
- s < i;
- s++
- )
- (s >= 2 &&
- 3 === t[s] &&
- 0 === t[s - 1] &&
- 0 === t[s - 2]) ||
- ((n[r] = t[s]), r++);
- return new Uint8Array(n.buffer, 0, r);
- }),
- (e.parseSPS = function (t) {
- var i = e._ebsp2rbsp(t),
- n = new _(i);
- n.readByte();
- var r = n.readByte();
- n.readByte();
- var s = n.readByte();
- n.readUEG();
- var o = e.getProfileString(r),
- a = e.getLevelString(s),
- h = 1,
- u = 420,
- l = 8;
- if (
- (100 === r ||
- 110 === r ||
- 122 === r ||
- 244 === r ||
- 44 === r ||
- 83 === r ||
- 86 === r ||
- 118 === r ||
- 128 === r ||
- 138 === r ||
- 144 === r) &&
- (3 === (h = n.readUEG()) && n.readBits(1),
- h <= 3 && (u = [0, 420, 422, 444][h]),
- (l = n.readUEG() + 8),
- n.readUEG(),
- n.readBits(1),
- n.readBool())
- )
- for (var d = 3 !== h ? 8 : 12, c = 0; c < d; c++)
- n.readBool() &&
- (c < 6
- ? e._skipScalingList(n, 16)
- : e._skipScalingList(n, 64));
- n.readUEG();
- var f = n.readUEG();
- if (0 === f) n.readUEG();
- else if (1 === f) {
- n.readBits(1), n.readSEG(), n.readSEG();
- var p = n.readUEG();
- for (c = 0; c < p; c++) n.readSEG();
- }
- var m = n.readUEG();
- n.readBits(1);
- var g = n.readUEG(),
- v = n.readUEG(),
- y = n.readBits(1);
- 0 === y && n.readBits(1), n.readBits(1);
- var b = 0,
- E = 0,
- S = 0,
- A = 0;
- n.readBool() &&
- ((b = n.readUEG()),
- (E = n.readUEG()),
- (S = n.readUEG()),
- (A = n.readUEG()));
- var L = 1,
- R = 1,
- w = 0,
- O = !0,
- T = 0,
- C = 0;
- if (n.readBool()) {
- if (n.readBool()) {
- var k = n.readByte();
- k > 0 && k < 16
- ? ((L = [
- 1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160,
- 4, 3, 2,
- ][k - 1]),
- (R = [
- 1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99,
- 3, 2, 1,
- ][k - 1]))
- : 255 === k &&
- ((L = (n.readByte() << 8) | n.readByte()),
- (R = (n.readByte() << 8) | n.readByte()));
- }
- if (
- (n.readBool() && n.readBool(),
- n.readBool() &&
- (n.readBits(4), n.readBool() && n.readBits(24)),
- n.readBool() && (n.readUEG(), n.readUEG()),
- n.readBool())
- ) {
- var D = n.readBits(32),
- I = n.readBits(32);
- (O = n.readBool()), (w = (T = I) / (C = 2 * D));
- }
- }
- var M = 1;
- (1 === L && 1 === R) || (M = L / R);
- var B = 0,
- x = 0;
- 0 === h
- ? ((B = 1), (x = 2 - y))
- : ((B = 3 === h ? 1 : 2),
- (x = (1 === h ? 2 : 1) * (2 - y)));
- var P = 16 * (g + 1),
- U = 16 * (v + 1) * (2 - y);
- (P -= (b + E) * B), (U -= (S + A) * x);
- var N = Math.ceil(P * M);
- return (
- n.destroy(),
- (n = null),
- {
- profile_string: o,
- level_string: a,
- bit_depth: l,
- ref_frames: m,
- chroma_format: u,
- chroma_format_string: e.getChromaFormatString(u),
- frame_rate: { fixed: O, fps: w, fps_den: C, fps_num: T },
- sar_ratio: { width: L, height: R },
- codec_size: { width: P, height: U },
- present_size: { width: N, height: U },
- }
- );
- }),
- (e._skipScalingList = function (e, t) {
- for (var i = 8, n = 8, r = 0; r < t; r++)
- 0 !== n && (n = (i + e.readSEG() + 256) % 256),
- (i = 0 === n ? i : n);
- }),
- (e.getProfileString = function (e) {
- switch (e) {
- case 66:
- return 'Baseline';
- case 77:
- return 'Main';
- case 88:
- return 'Extended';
- case 100:
- return 'High';
- case 110:
- return 'High10';
- case 122:
- return 'High422';
- case 244:
- return 'High444';
- default:
- return 'Unknown';
- }
- }),
- (e.getLevelString = function (e) {
- return (e / 10).toFixed(1);
- }),
- (e.getChromaFormatString = function (e) {
- switch (e) {
- case 420:
- return '4:2:0';
- case 422:
- return '4:2:2';
- case 444:
- return '4:4:4';
- default:
- return 'Unknown';
- }
- }),
- e
- );
- })(),
- m = i(600);
- var g = (function () {
- function e(e, t) {
- (this.TAG = 'FLVDemuxer'),
- (this._config = t),
- (this._onError = null),
- (this._onMediaInfo = null),
- (this._onMetaDataArrived = null),
- (this._onScriptDataArrived = null),
- (this._onTrackMetadata = null),
- (this._onDataAvailable = null),
- (this._dataOffset = e.dataOffset),
- (this._firstParse = !0),
- (this._dispatch = !1),
- (this._hasAudio = e.hasAudioTrack),
- (this._hasVideo = e.hasVideoTrack),
- (this._hasAudioFlagOverrided = !1),
- (this._hasVideoFlagOverrided = !1),
- (this._audioInitialMetadataDispatched = !1),
- (this._videoInitialMetadataDispatched = !1),
- (this._mediaInfo = new a.Z()),
- (this._mediaInfo.hasAudio = this._hasAudio),
- (this._mediaInfo.hasVideo = this._hasVideo),
- (this._metadata = null),
- (this._audioMetadata = null),
- (this._videoMetadata = null),
- (this._naluLengthSize = 4),
- (this._timestampBase = 0),
- (this._timescale = 1e3),
- (this._duration = 0),
- (this._durationOverrided = !1),
- (this._referenceFrameRate = {
- fixed: !0,
- fps: 23.976,
- fps_num: 23976,
- fps_den: 1e3,
- }),
- (this._flvSoundRateTable = [5500, 11025, 22050, 44100, 48e3]),
- (this._mpegSamplingRates = [
- 96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3,
- 12e3, 11025, 8e3, 7350,
- ]),
- (this._mpegAudioV10SampleRateTable = [44100, 48e3, 32e3, 0]),
- (this._mpegAudioV20SampleRateTable = [22050, 24e3, 16e3, 0]),
- (this._mpegAudioV25SampleRateTable = [11025, 12e3, 8e3, 0]),
- (this._mpegAudioL1BitRateTable = [
- 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384,
- 416, 448, -1,
- ]),
- (this._mpegAudioL2BitRateTable = [
- 0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256,
- 320, 384, -1,
- ]),
- (this._mpegAudioL3BitRateTable = [
- 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256,
- 320, -1,
- ]),
- (this._videoTrack = {
- type: 'video',
- id: 1,
- sequenceNumber: 0,
- samples: [],
- length: 0,
- }),
- (this._audioTrack = {
- type: 'audio',
- id: 2,
- sequenceNumber: 0,
- samples: [],
- length: 0,
- }),
- (this._littleEndian = (function () {
- var e = new ArrayBuffer(2);
- return (
- new DataView(e).setInt16(0, 256, !0),
- 256 === new Int16Array(e)[0]
- );
- })());
- }
- return (
- (e.prototype.destroy = function () {
- (this._mediaInfo = null),
- (this._metadata = null),
- (this._audioMetadata = null),
- (this._videoMetadata = null),
- (this._videoTrack = null),
- (this._audioTrack = null),
- (this._onError = null),
- (this._onMediaInfo = null),
- (this._onMetaDataArrived = null),
- (this._onScriptDataArrived = null),
- (this._onTrackMetadata = null),
- (this._onDataAvailable = null);
- }),
- (e.probe = function (e) {
- var t = new Uint8Array(e),
- i = { match: !1 };
- if (70 !== t[0] || 76 !== t[1] || 86 !== t[2] || 1 !== t[3])
- return i;
- var n,
- r,
- s = (4 & t[4]) >>> 2 != 0,
- o = 0 != (1 & t[4]),
- a =
- ((n = t)[(r = 5)] << 24) |
- (n[r + 1] << 16) |
- (n[r + 2] << 8) |
- n[r + 3];
- return a < 9
- ? i
- : {
- match: !0,
- consumed: a,
- dataOffset: a,
- hasAudioTrack: s,
- hasVideoTrack: o,
- };
- }),
- (e.prototype.bindDataSource = function (e) {
- return (e.onDataArrival = this.parseChunks.bind(this)), this;
- }),
- Object.defineProperty(e.prototype, 'onTrackMetadata', {
- get: function () {
- return this._onTrackMetadata;
- },
- set: function (e) {
- this._onTrackMetadata = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onMediaInfo', {
- get: function () {
- return this._onMediaInfo;
- },
- set: function (e) {
- this._onMediaInfo = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onMetaDataArrived', {
- get: function () {
- return this._onMetaDataArrived;
- },
- set: function (e) {
- this._onMetaDataArrived = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onScriptDataArrived', {
- get: function () {
- return this._onScriptDataArrived;
- },
- set: function (e) {
- this._onScriptDataArrived = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onError', {
- get: function () {
- return this._onError;
- },
- set: function (e) {
- this._onError = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onDataAvailable', {
- get: function () {
- return this._onDataAvailable;
- },
- set: function (e) {
- this._onDataAvailable = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'timestampBase', {
- get: function () {
- return this._timestampBase;
- },
- set: function (e) {
- this._timestampBase = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'overridedDuration', {
- get: function () {
- return this._duration;
- },
- set: function (e) {
- (this._durationOverrided = !0),
- (this._duration = e),
- (this._mediaInfo.duration = e);
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'overridedHasAudio', {
- set: function (e) {
- (this._hasAudioFlagOverrided = !0),
- (this._hasAudio = e),
- (this._mediaInfo.hasAudio = e);
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'overridedHasVideo', {
- set: function (e) {
- (this._hasVideoFlagOverrided = !0),
- (this._hasVideo = e),
- (this._mediaInfo.hasVideo = e);
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.prototype.resetMediaInfo = function () {
- this._mediaInfo = new a.Z();
- }),
- (e.prototype._isInitialMetadataDispatched = function () {
- return this._hasAudio && this._hasVideo
- ? this._audioInitialMetadataDispatched &&
- this._videoInitialMetadataDispatched
- : this._hasAudio && !this._hasVideo
- ? this._audioInitialMetadataDispatched
- : !(this._hasAudio || !this._hasVideo) &&
- this._videoInitialMetadataDispatched;
- }),
- (e.prototype.parseChunks = function (t, i) {
- if (
- !(
- this._onError &&
- this._onMediaInfo &&
- this._onTrackMetadata &&
- this._onDataAvailable
- )
- )
- throw new d.rT(
- 'Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified'
- );
- var n = 0,
- r = this._littleEndian;
- if (0 === i) {
- if (!(t.byteLength > 13)) return 0;
- n = e.probe(t).dataOffset;
- }
- this._firstParse &&
- ((this._firstParse = !1),
- i + n !== this._dataOffset &&
- s.Z.w(
- this.TAG,
- 'First time parsing but chunk byteStart invalid!'
- ),
- 0 !== (o = new DataView(t, n)).getUint32(0, !r) &&
- s.Z.w(this.TAG, 'PrevTagSize0 !== 0 !!!'),
- (n += 4));
- for (; n < t.byteLength; ) {
- this._dispatch = !0;
- var o = new DataView(t, n);
- if (n + 11 + 4 > t.byteLength) break;
- var a = o.getUint8(0),
- h = 16777215 & o.getUint32(0, !r);
- if (n + 11 + h + 4 > t.byteLength) break;
- if (8 === a || 9 === a || 18 === a) {
- var u = o.getUint8(4),
- l = o.getUint8(5),
- c =
- o.getUint8(6) |
- (l << 8) |
- (u << 16) |
- (o.getUint8(7) << 24);
- 0 !== (16777215 & o.getUint32(7, !r)) &&
- s.Z.w(this.TAG, 'Meet tag which has StreamID != 0!');
- var f = n + 11;
- switch (a) {
- case 8:
- this._parseAudioData(t, f, h, c);
- break;
- case 9:
- this._parseVideoData(t, f, h, c, i + n);
- break;
- case 18:
- this._parseScriptData(t, f, h);
- }
- var _ = o.getUint32(11 + h, !r);
- _ !== 11 + h &&
- s.Z.w(this.TAG, 'Invalid PrevTagSize ' + _),
- (n += 11 + h + 4);
- } else
- s.Z.w(
- this.TAG,
- 'Unsupported tag type ' + a + ', skipped'
- ),
- (n += 11 + h + 4);
- }
- return (
- this._isInitialMetadataDispatched() &&
- this._dispatch &&
- (this._audioTrack.length || this._videoTrack.length) &&
- this._onDataAvailable(this._audioTrack, this._videoTrack),
- n
- );
- }),
- (e.prototype._parseScriptData = function (e, t, i) {
- var n = f.parseScriptData(e, t, i);
- if (n.hasOwnProperty('onMetaData')) {
- if (null == n.onMetaData || 'object' != typeof n.onMetaData)
- return void s.Z.w(
- this.TAG,
- 'Invalid onMetaData structure!'
- );
- this._metadata &&
- s.Z.w(this.TAG, 'Found another onMetaData tag!'),
- (this._metadata = n);
- var r = this._metadata.onMetaData;
- if (
- (this._onMetaDataArrived &&
- this._onMetaDataArrived(Object.assign({}, r)),
- 'boolean' == typeof r.hasAudio &&
- !1 === this._hasAudioFlagOverrided &&
- ((this._hasAudio = r.hasAudio),
- (this._mediaInfo.hasAudio = this._hasAudio)),
- 'boolean' == typeof r.hasVideo &&
- !1 === this._hasVideoFlagOverrided &&
- ((this._hasVideo = r.hasVideo),
- (this._mediaInfo.hasVideo = this._hasVideo)),
- 'number' == typeof r.audiodatarate &&
- (this._mediaInfo.audioDataRate = r.audiodatarate),
- 'number' == typeof r.videodatarate &&
- (this._mediaInfo.videoDataRate = r.videodatarate),
- 'number' == typeof r.width &&
- (this._mediaInfo.width = r.width),
- 'number' == typeof r.height &&
- (this._mediaInfo.height = r.height),
- 'number' == typeof r.duration)
- ) {
- if (!this._durationOverrided) {
- var o = Math.floor(r.duration * this._timescale);
- (this._duration = o), (this._mediaInfo.duration = o);
- }
- } else this._mediaInfo.duration = 0;
- if ('number' == typeof r.framerate) {
- var a = Math.floor(1e3 * r.framerate);
- if (a > 0) {
- var h = a / 1e3;
- (this._referenceFrameRate.fixed = !0),
- (this._referenceFrameRate.fps = h),
- (this._referenceFrameRate.fps_num = a),
- (this._referenceFrameRate.fps_den = 1e3),
- (this._mediaInfo.fps = h);
- }
- }
- if ('object' == typeof r.keyframes) {
- this._mediaInfo.hasKeyframesIndex = !0;
- var u = r.keyframes;
- (this._mediaInfo.keyframesIndex =
- this._parseKeyframesIndex(u)),
- (r.keyframes = null);
- } else this._mediaInfo.hasKeyframesIndex = !1;
- (this._dispatch = !1),
- (this._mediaInfo.metadata = r),
- s.Z.v(this.TAG, 'Parsed onMetaData'),
- this._mediaInfo.isComplete() &&
- this._onMediaInfo(this._mediaInfo);
- }
- Object.keys(n).length > 0 &&
- this._onScriptDataArrived &&
- this._onScriptDataArrived(Object.assign({}, n));
- }),
- (e.prototype._parseKeyframesIndex = function (e) {
- for (var t = [], i = [], n = 1; n < e.times.length; n++) {
- var r = this._timestampBase + Math.floor(1e3 * e.times[n]);
- t.push(r), i.push(e.filepositions[n]);
- }
- return { times: t, filepositions: i };
- }),
- (e.prototype._parseAudioData = function (e, t, i, n) {
- if (i <= 1)
- s.Z.w(
- this.TAG,
- 'Flv: Invalid audio packet, missing SoundData payload!'
- );
- else if (
- !0 !== this._hasAudioFlagOverrided ||
- !1 !== this._hasAudio
- ) {
- this._littleEndian;
- var r = new DataView(e, t, i).getUint8(0),
- o = r >>> 4;
- if (2 === o || 10 === o) {
- var a = 0,
- h = (12 & r) >>> 2;
- if (h >= 0 && h <= 4) {
- a = this._flvSoundRateTable[h];
- var u = 1 & r,
- l = this._audioMetadata,
- d = this._audioTrack;
- if (
- (l ||
- (!1 === this._hasAudio &&
- !1 === this._hasAudioFlagOverrided &&
- ((this._hasAudio = !0),
- (this._mediaInfo.hasAudio = !0)),
- ((l = this._audioMetadata = {}).type = 'audio'),
- (l.id = d.id),
- (l.timescale = this._timescale),
- (l.duration = this._duration),
- (l.audioSampleRate = a),
- (l.channelCount = 0 === u ? 1 : 2)),
- 10 === o)
- ) {
- var c = this._parseAACAudioData(e, t + 1, i - 1);
- if (null == c) return;
- if (0 === c.packetType) {
- l.config &&
- s.Z.w(
- this.TAG,
- 'Found another AudioSpecificConfig!'
- );
- var f = c.data;
- (l.audioSampleRate = f.samplingRate),
- (l.channelCount = f.channelCount),
- (l.codec = f.codec),
- (l.originalCodec = f.originalCodec),
- (l.config = f.config),
- (l.refSampleDuration =
- (1024 / l.audioSampleRate) * l.timescale),
- s.Z.v(this.TAG, 'Parsed AudioSpecificConfig'),
- this._isInitialMetadataDispatched()
- ? this._dispatch &&
- (this._audioTrack.length ||
- this._videoTrack.length) &&
- this._onDataAvailable(
- this._audioTrack,
- this._videoTrack
- )
- : (this._audioInitialMetadataDispatched = !0),
- (this._dispatch = !1),
- this._onTrackMetadata('audio', l),
- ((g = this._mediaInfo).audioCodec =
- l.originalCodec),
- (g.audioSampleRate = l.audioSampleRate),
- (g.audioChannelCount = l.channelCount),
- g.hasVideo
- ? null != g.videoCodec &&
- (g.mimeType =
- 'video/x-flv; codecs="' +
- g.videoCodec +
- ',' +
- g.audioCodec +
- '"')
- : (g.mimeType =
- 'video/x-flv; codecs="' +
- g.audioCodec +
- '"'),
- g.isComplete() && this._onMediaInfo(g);
- } else if (1 === c.packetType) {
- var _ = this._timestampBase + n,
- p = {
- unit: c.data,
- length: c.data.byteLength,
- dts: _,
- pts: _,
- };
- d.samples.push(p), (d.length += c.data.length);
- } else
- s.Z.e(
- this.TAG,
- 'Flv: Unsupported AAC data type ' + c.packetType
- );
- } else if (2 === o) {
- if (!l.codec) {
- var g;
- if (
- null ==
- (f = this._parseMP3AudioData(e, t + 1, i - 1, !0))
- )
- return;
- (l.audioSampleRate = f.samplingRate),
- (l.channelCount = f.channelCount),
- (l.codec = f.codec),
- (l.originalCodec = f.originalCodec),
- (l.refSampleDuration =
- (1152 / l.audioSampleRate) * l.timescale),
- s.Z.v(this.TAG, 'Parsed MPEG Audio Frame Header'),
- (this._audioInitialMetadataDispatched = !0),
- this._onTrackMetadata('audio', l),
- ((g = this._mediaInfo).audioCodec = l.codec),
- (g.audioSampleRate = l.audioSampleRate),
- (g.audioChannelCount = l.channelCount),
- (g.audioDataRate = f.bitRate),
- g.hasVideo
- ? null != g.videoCodec &&
- (g.mimeType =
- 'video/x-flv; codecs="' +
- g.videoCodec +
- ',' +
- g.audioCodec +
- '"')
- : (g.mimeType =
- 'video/x-flv; codecs="' +
- g.audioCodec +
- '"'),
- g.isComplete() && this._onMediaInfo(g);
- }
- var v = this._parseMP3AudioData(e, t + 1, i - 1, !1);
- if (null == v) return;
- _ = this._timestampBase + n;
- var y = {
- unit: v,
- length: v.byteLength,
- dts: _,
- pts: _,
- };
- d.samples.push(y), (d.length += v.length);
- }
- } else
- this._onError(
- m.Z.FORMAT_ERROR,
- 'Flv: Invalid audio sample rate idx: ' + h
- );
- } else
- this._onError(
- m.Z.CODEC_UNSUPPORTED,
- 'Flv: Unsupported audio codec idx: ' + o
- );
- }
- }),
- (e.prototype._parseAACAudioData = function (e, t, i) {
- if (!(i <= 1)) {
- var n = {},
- r = new Uint8Array(e, t, i);
- return (
- (n.packetType = r[0]),
- 0 === r[0]
- ? (n.data = this._parseAACAudioSpecificConfig(
- e,
- t + 1,
- i - 1
- ))
- : (n.data = r.subarray(1)),
- n
- );
- }
- s.Z.w(
- this.TAG,
- 'Flv: Invalid AAC packet, missing AACPacketType or/and Data!'
- );
- }),
- (e.prototype._parseAACAudioSpecificConfig = function (e, t, i) {
- var n,
- r,
- s = new Uint8Array(e, t, i),
- o = null,
- a = 0,
- h = null;
- if (
- ((a = n = s[0] >>> 3),
- (r = ((7 & s[0]) << 1) | (s[1] >>> 7)) < 0 ||
- r >= this._mpegSamplingRates.length)
- )
- this._onError(
- m.Z.FORMAT_ERROR,
- 'Flv: AAC invalid sampling frequency index!'
- );
- else {
- var u = this._mpegSamplingRates[r],
- l = (120 & s[1]) >>> 3;
- if (!(l < 0 || l >= 8)) {
- 5 === a &&
- ((h = ((7 & s[1]) << 1) | (s[2] >>> 7)),
- (124 & s[2]) >>> 2);
- var d = self.navigator.userAgent.toLowerCase();
- return (
- -1 !== d.indexOf('firefox')
- ? r >= 6
- ? ((a = 5), (o = new Array(4)), (h = r - 3))
- : ((a = 2), (o = new Array(2)), (h = r))
- : -1 !== d.indexOf('android')
- ? ((a = 2), (o = new Array(2)), (h = r))
- : ((a = 5),
- (h = r),
- (o = new Array(4)),
- r >= 6
- ? (h = r - 3)
- : 1 === l &&
- ((a = 2), (o = new Array(2)), (h = r))),
- (o[0] = a << 3),
- (o[0] |= (15 & r) >>> 1),
- (o[1] = (15 & r) << 7),
- (o[1] |= (15 & l) << 3),
- 5 === a &&
- ((o[1] |= (15 & h) >>> 1),
- (o[2] = (1 & h) << 7),
- (o[2] |= 8),
- (o[3] = 0)),
- {
- config: o,
- samplingRate: u,
- channelCount: l,
- codec: 'mp4a.40.' + a,
- originalCodec: 'mp4a.40.' + n,
- }
- );
- }
- this._onError(
- m.Z.FORMAT_ERROR,
- 'Flv: AAC invalid channel configuration'
- );
- }
- }),
- (e.prototype._parseMP3AudioData = function (e, t, i, n) {
- if (!(i < 4)) {
- this._littleEndian;
- var r = new Uint8Array(e, t, i),
- o = null;
- if (n) {
- if (255 !== r[0]) return;
- var a = (r[1] >>> 3) & 3,
- h = (6 & r[1]) >> 1,
- u = (240 & r[2]) >>> 4,
- l = (12 & r[2]) >>> 2,
- d = 3 !== ((r[3] >>> 6) & 3) ? 2 : 1,
- c = 0,
- f = 0;
- switch (a) {
- case 0:
- c = this._mpegAudioV25SampleRateTable[l];
- break;
- case 2:
- c = this._mpegAudioV20SampleRateTable[l];
- break;
- case 3:
- c = this._mpegAudioV10SampleRateTable[l];
- }
- switch (h) {
- case 1:
- 34,
- u < this._mpegAudioL3BitRateTable.length &&
- (f = this._mpegAudioL3BitRateTable[u]);
- break;
- case 2:
- 33,
- u < this._mpegAudioL2BitRateTable.length &&
- (f = this._mpegAudioL2BitRateTable[u]);
- break;
- case 3:
- 32,
- u < this._mpegAudioL1BitRateTable.length &&
- (f = this._mpegAudioL1BitRateTable[u]);
- }
- o = {
- bitRate: f,
- samplingRate: c,
- channelCount: d,
- codec: 'mp3',
- originalCodec: 'mp3',
- };
- } else o = r;
- return o;
- }
- s.Z.w(this.TAG, 'Flv: Invalid MP3 packet, header missing!');
- }),
- (e.prototype._parseVideoData = function (e, t, i, n, r) {
- if (i <= 1)
- s.Z.w(
- this.TAG,
- 'Flv: Invalid video packet, missing VideoData payload!'
- );
- else if (
- !0 !== this._hasVideoFlagOverrided ||
- !1 !== this._hasVideo
- ) {
- var o = new Uint8Array(e, t, i)[0],
- a = (240 & o) >>> 4,
- h = 15 & o;
- 7 === h
- ? this._parseAVCVideoPacket(e, t + 1, i - 1, n, r, a)
- : this._onError(
- m.Z.CODEC_UNSUPPORTED,
- 'Flv: Unsupported codec in video frame: ' + h
- );
- }
- }),
- (e.prototype._parseAVCVideoPacket = function (
- e,
- t,
- i,
- n,
- r,
- o
- ) {
- if (i < 4)
- s.Z.w(
- this.TAG,
- 'Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime'
- );
- else {
- var a = this._littleEndian,
- h = new DataView(e, t, i),
- u = h.getUint8(0),
- l = ((16777215 & h.getUint32(0, !a)) << 8) >> 8;
- if (0 === u)
- this._parseAVCDecoderConfigurationRecord(e, t + 4, i - 4);
- else if (1 === u)
- this._parseAVCVideoData(e, t + 4, i - 4, n, r, o, l);
- else if (2 !== u)
- return void this._onError(
- m.Z.FORMAT_ERROR,
- 'Flv: Invalid video packet type ' + u
- );
- }
- }),
- (e.prototype._parseAVCDecoderConfigurationRecord = function (
- e,
- t,
- i
- ) {
- if (i < 7)
- s.Z.w(
- this.TAG,
- 'Flv: Invalid AVCDecoderConfigurationRecord, lack of data!'
- );
- else {
- var n = this._videoMetadata,
- r = this._videoTrack,
- o = this._littleEndian,
- a = new DataView(e, t, i);
- n
- ? void 0 !== n.avcc &&
- s.Z.w(
- this.TAG,
- 'Found another AVCDecoderConfigurationRecord!'
- )
- : (!1 === this._hasVideo &&
- !1 === this._hasVideoFlagOverrided &&
- ((this._hasVideo = !0),
- (this._mediaInfo.hasVideo = !0)),
- ((n = this._videoMetadata = {}).type = 'video'),
- (n.id = r.id),
- (n.timescale = this._timescale),
- (n.duration = this._duration));
- var h = a.getUint8(0),
- u = a.getUint8(1);
- a.getUint8(2), a.getUint8(3);
- if (1 === h && 0 !== u)
- if (
- ((this._naluLengthSize = 1 + (3 & a.getUint8(4))),
- 3 === this._naluLengthSize ||
- 4 === this._naluLengthSize)
- ) {
- var l = 31 & a.getUint8(5);
- if (0 !== l) {
- l > 1 &&
- s.Z.w(
- this.TAG,
- 'Flv: Strange AVCDecoderConfigurationRecord: SPS Count = ' +
- l
- );
- for (var d = 6, c = 0; c < l; c++) {
- var f = a.getUint16(d, !o);
- if (((d += 2), 0 !== f)) {
- var _ = new Uint8Array(e, t + d, f);
- d += f;
- var g = p.parseSPS(_);
- if (0 === c) {
- (n.codecWidth = g.codec_size.width),
- (n.codecHeight = g.codec_size.height),
- (n.presentWidth = g.present_size.width),
- (n.presentHeight = g.present_size.height),
- (n.profile = g.profile_string),
- (n.level = g.level_string),
- (n.bitDepth = g.bit_depth),
- (n.chromaFormat = g.chroma_format),
- (n.sarRatio = g.sar_ratio),
- (n.frameRate = g.frame_rate),
- (!1 !== g.frame_rate.fixed &&
- 0 !== g.frame_rate.fps_num &&
- 0 !== g.frame_rate.fps_den) ||
- (n.frameRate = this._referenceFrameRate);
- var v = n.frameRate.fps_den,
- y = n.frameRate.fps_num;
- n.refSampleDuration = n.timescale * (v / y);
- for (
- var b = _.subarray(1, 4), E = 'avc1.', S = 0;
- S < 3;
- S++
- ) {
- var A = b[S].toString(16);
- A.length < 2 && (A = '0' + A), (E += A);
- }
- n.codec = E;
- var L = this._mediaInfo;
- (L.width = n.codecWidth),
- (L.height = n.codecHeight),
- (L.fps = n.frameRate.fps),
- (L.profile = n.profile),
- (L.level = n.level),
- (L.refFrames = g.ref_frames),
- (L.chromaFormat = g.chroma_format_string),
- (L.sarNum = n.sarRatio.width),
- (L.sarDen = n.sarRatio.height),
- (L.videoCodec = E),
- L.hasAudio
- ? null != L.audioCodec &&
- (L.mimeType =
- 'video/x-flv; codecs="' +
- L.videoCodec +
- ',' +
- L.audioCodec +
- '"')
- : (L.mimeType =
- 'video/x-flv; codecs="' +
- L.videoCodec +
- '"'),
- L.isComplete() && this._onMediaInfo(L);
- }
- }
- }
- var R = a.getUint8(d);
- if (0 !== R) {
- R > 1 &&
- s.Z.w(
- this.TAG,
- 'Flv: Strange AVCDecoderConfigurationRecord: PPS Count = ' +
- R
- ),
- d++;
- for (c = 0; c < R; c++) {
- f = a.getUint16(d, !o);
- (d += 2), 0 !== f && (d += f);
- }
- (n.avcc = new Uint8Array(i)),
- n.avcc.set(new Uint8Array(e, t, i), 0),
- s.Z.v(
- this.TAG,
- 'Parsed AVCDecoderConfigurationRecord'
- ),
- this._isInitialMetadataDispatched()
- ? this._dispatch &&
- (this._audioTrack.length ||
- this._videoTrack.length) &&
- this._onDataAvailable(
- this._audioTrack,
- this._videoTrack
- )
- : (this._videoInitialMetadataDispatched = !0),
- (this._dispatch = !1),
- this._onTrackMetadata('video', n);
- } else
- this._onError(
- m.Z.FORMAT_ERROR,
- 'Flv: Invalid AVCDecoderConfigurationRecord: No PPS'
- );
- } else
- this._onError(
- m.Z.FORMAT_ERROR,
- 'Flv: Invalid AVCDecoderConfigurationRecord: No SPS'
- );
- } else
- this._onError(
- m.Z.FORMAT_ERROR,
- 'Flv: Strange NaluLengthSizeMinusOne: ' +
- (this._naluLengthSize - 1)
- );
- else
- this._onError(
- m.Z.FORMAT_ERROR,
- 'Flv: Invalid AVCDecoderConfigurationRecord'
- );
- }
- }),
- (e.prototype._parseAVCVideoData = function (
- e,
- t,
- i,
- n,
- r,
- o,
- a
- ) {
- for (
- var h = this._littleEndian,
- u = new DataView(e, t, i),
- l = [],
- d = 0,
- c = 0,
- f = this._naluLengthSize,
- _ = this._timestampBase + n,
- p = 1 === o;
- c < i;
- ) {
- if (c + 4 >= i) {
- s.Z.w(
- this.TAG,
- 'Malformed Nalu near timestamp ' +
- _ +
- ', offset = ' +
- c +
- ', dataSize = ' +
- i
- );
- break;
- }
- var m = u.getUint32(c, !h);
- if ((3 === f && (m >>>= 8), m > i - f))
- return void s.Z.w(
- this.TAG,
- 'Malformed Nalus near timestamp ' +
- _ +
- ', NaluSize > DataSize!'
- );
- var g = 31 & u.getUint8(c + f);
- 5 === g && (p = !0);
- var v = new Uint8Array(e, t + c, f + m),
- y = { type: g, data: v };
- l.push(y), (d += v.byteLength), (c += f + m);
- }
- if (l.length) {
- var b = this._videoTrack,
- E = {
- units: l,
- length: d,
- isKeyframe: p,
- dts: _,
- cts: a,
- pts: _ + a,
- };
- p && (E.fileposition = r),
- b.samples.push(E),
- (b.length += d);
- }
- }),
- e
- );
- })(),
- v = (function () {
- function e() {}
- return (
- (e.init = function () {
- for (var t in ((e.types = {
- avc1: [],
- avcC: [],
- btrt: [],
- dinf: [],
- dref: [],
- esds: [],
- ftyp: [],
- hdlr: [],
- mdat: [],
- mdhd: [],
- mdia: [],
- mfhd: [],
- minf: [],
- moof: [],
- moov: [],
- mp4a: [],
- mvex: [],
- mvhd: [],
- sdtp: [],
- stbl: [],
- stco: [],
- stsc: [],
- stsd: [],
- stsz: [],
- stts: [],
- tfdt: [],
- tfhd: [],
- traf: [],
- trak: [],
- trun: [],
- trex: [],
- tkhd: [],
- vmhd: [],
- smhd: [],
- '.mp3': [],
- }),
- e.types))
- e.types.hasOwnProperty(t) &&
- (e.types[t] = [
- t.charCodeAt(0),
- t.charCodeAt(1),
- t.charCodeAt(2),
- t.charCodeAt(3),
- ]);
- var i = (e.constants = {});
- (i.FTYP = new Uint8Array([
- 105, 115, 111, 109, 0, 0, 0, 1, 105, 115, 111, 109, 97, 118,
- 99, 49,
- ])),
- (i.STSD_PREFIX = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1])),
- (i.STTS = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])),
- (i.STSC = i.STCO = i.STTS),
- (i.STSZ = new Uint8Array([
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- ])),
- (i.HDLR_VIDEO = new Uint8Array([
- 0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101, 111, 72, 97, 110,
- 100, 108, 101, 114, 0,
- ])),
- (i.HDLR_AUDIO = new Uint8Array([
- 0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110,
- 100, 108, 101, 114, 0,
- ])),
- (i.DREF = new Uint8Array([
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0,
- 0, 0, 1,
- ])),
- (i.SMHD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])),
- (i.VMHD = new Uint8Array([
- 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- ]));
- }),
- (e.box = function (e) {
- for (
- var t = 8,
- i = null,
- n = Array.prototype.slice.call(arguments, 1),
- r = n.length,
- s = 0;
- s < r;
- s++
- )
- t += n[s].byteLength;
- ((i = new Uint8Array(t))[0] = (t >>> 24) & 255),
- (i[1] = (t >>> 16) & 255),
- (i[2] = (t >>> 8) & 255),
- (i[3] = 255 & t),
- i.set(e, 4);
- var o = 8;
- for (s = 0; s < r; s++)
- i.set(n[s], o), (o += n[s].byteLength);
- return i;
- }),
- (e.generateInitSegment = function (t) {
- var i = e.box(e.types.ftyp, e.constants.FTYP),
- n = e.moov(t),
- r = new Uint8Array(i.byteLength + n.byteLength);
- return r.set(i, 0), r.set(n, i.byteLength), r;
- }),
- (e.moov = function (t) {
- var i = e.mvhd(t.timescale, t.duration),
- n = e.trak(t),
- r = e.mvex(t);
- return e.box(e.types.moov, i, n, r);
- }),
- (e.mvhd = function (t, i) {
- return e.box(
- e.types.mvhd,
- new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- (t >>> 24) & 255,
- (t >>> 16) & 255,
- (t >>> 8) & 255,
- 255 & t,
- (i >>> 24) & 255,
- (i >>> 16) & 255,
- (i >>> 8) & 255,
- 255 & i,
- 0,
- 1,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 64,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 255,
- 255,
- 255,
- 255,
- ])
- );
- }),
- (e.trak = function (t) {
- return e.box(e.types.trak, e.tkhd(t), e.mdia(t));
- }),
- (e.tkhd = function (t) {
- var i = t.id,
- n = t.duration,
- r = t.presentWidth,
- s = t.presentHeight;
- return e.box(
- e.types.tkhd,
- new Uint8Array([
- 0,
- 0,
- 0,
- 7,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- (i >>> 24) & 255,
- (i >>> 16) & 255,
- (i >>> 8) & 255,
- 255 & i,
- 0,
- 0,
- 0,
- 0,
- (n >>> 24) & 255,
- (n >>> 16) & 255,
- (n >>> 8) & 255,
- 255 & n,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 64,
- 0,
- 0,
- 0,
- (r >>> 8) & 255,
- 255 & r,
- 0,
- 0,
- (s >>> 8) & 255,
- 255 & s,
- 0,
- 0,
- ])
- );
- }),
- (e.mdia = function (t) {
- return e.box(e.types.mdia, e.mdhd(t), e.hdlr(t), e.minf(t));
- }),
- (e.mdhd = function (t) {
- var i = t.timescale,
- n = t.duration;
- return e.box(
- e.types.mdhd,
- new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- (i >>> 24) & 255,
- (i >>> 16) & 255,
- (i >>> 8) & 255,
- 255 & i,
- (n >>> 24) & 255,
- (n >>> 16) & 255,
- (n >>> 8) & 255,
- 255 & n,
- 85,
- 196,
- 0,
- 0,
- ])
- );
- }),
- (e.hdlr = function (t) {
- var i = null;
- return (
- (i =
- 'audio' === t.type
- ? e.constants.HDLR_AUDIO
- : e.constants.HDLR_VIDEO),
- e.box(e.types.hdlr, i)
- );
- }),
- (e.minf = function (t) {
- var i = null;
- return (
- (i =
- 'audio' === t.type
- ? e.box(e.types.smhd, e.constants.SMHD)
- : e.box(e.types.vmhd, e.constants.VMHD)),
- e.box(e.types.minf, i, e.dinf(), e.stbl(t))
- );
- }),
- (e.dinf = function () {
- return e.box(
- e.types.dinf,
- e.box(e.types.dref, e.constants.DREF)
- );
- }),
- (e.stbl = function (t) {
- return e.box(
- e.types.stbl,
- e.stsd(t),
- e.box(e.types.stts, e.constants.STTS),
- e.box(e.types.stsc, e.constants.STSC),
- e.box(e.types.stsz, e.constants.STSZ),
- e.box(e.types.stco, e.constants.STCO)
- );
- }),
- (e.stsd = function (t) {
- return 'audio' === t.type
- ? 'mp3' === t.codec
- ? e.box(e.types.stsd, e.constants.STSD_PREFIX, e.mp3(t))
- : e.box(e.types.stsd, e.constants.STSD_PREFIX, e.mp4a(t))
- : e.box(e.types.stsd, e.constants.STSD_PREFIX, e.avc1(t));
- }),
- (e.mp3 = function (t) {
- var i = t.channelCount,
- n = t.audioSampleRate,
- r = new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- i,
- 0,
- 16,
- 0,
- 0,
- 0,
- 0,
- (n >>> 8) & 255,
- 255 & n,
- 0,
- 0,
- ]);
- return e.box(e.types['.mp3'], r);
- }),
- (e.mp4a = function (t) {
- var i = t.channelCount,
- n = t.audioSampleRate,
- r = new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- i,
- 0,
- 16,
- 0,
- 0,
- 0,
- 0,
- (n >>> 8) & 255,
- 255 & n,
- 0,
- 0,
- ]);
- return e.box(e.types.mp4a, r, e.esds(t));
- }),
- (e.esds = function (t) {
- var i = t.config || [],
- n = i.length,
- r = new Uint8Array(
- [
- 0,
- 0,
- 0,
- 0,
- 3,
- 23 + n,
- 0,
- 1,
- 0,
- 4,
- 15 + n,
- 64,
- 21,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 5,
- ]
- .concat([n])
- .concat(i)
- .concat([6, 1, 2])
- );
- return e.box(e.types.esds, r);
- }),
- (e.avc1 = function (t) {
- var i = t.avcc,
- n = t.codecWidth,
- r = t.codecHeight,
- s = new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- (n >>> 8) & 255,
- 255 & n,
- (r >>> 8) & 255,
- 255 & r,
- 0,
- 72,
- 0,
- 0,
- 0,
- 72,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 10,
- 120,
- 113,
- 113,
- 47,
- 102,
- 108,
- 118,
- 46,
- 106,
- 115,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 24,
- 255,
- 255,
- ]);
- return e.box(e.types.avc1, s, e.box(e.types.avcC, i));
- }),
- (e.mvex = function (t) {
- return e.box(e.types.mvex, e.trex(t));
- }),
- (e.trex = function (t) {
- var i = t.id,
- n = new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- (i >>> 24) & 255,
- (i >>> 16) & 255,
- (i >>> 8) & 255,
- 255 & i,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 1,
- ]);
- return e.box(e.types.trex, n);
- }),
- (e.moof = function (t, i) {
- return e.box(
- e.types.moof,
- e.mfhd(t.sequenceNumber),
- e.traf(t, i)
- );
- }),
- (e.mfhd = function (t) {
- var i = new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- (t >>> 24) & 255,
- (t >>> 16) & 255,
- (t >>> 8) & 255,
- 255 & t,
- ]);
- return e.box(e.types.mfhd, i);
- }),
- (e.traf = function (t, i) {
- var n = t.id,
- r = e.box(
- e.types.tfhd,
- new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- (n >>> 24) & 255,
- (n >>> 16) & 255,
- (n >>> 8) & 255,
- 255 & n,
- ])
- ),
- s = e.box(
- e.types.tfdt,
- new Uint8Array([
- 0,
- 0,
- 0,
- 0,
- (i >>> 24) & 255,
- (i >>> 16) & 255,
- (i >>> 8) & 255,
- 255 & i,
- ])
- ),
- o = e.sdtp(t),
- a = e.trun(t, o.byteLength + 16 + 16 + 8 + 16 + 8 + 8);
- return e.box(e.types.traf, r, s, a, o);
- }),
- (e.sdtp = function (t) {
- for (
- var i = t.samples || [],
- n = i.length,
- r = new Uint8Array(4 + n),
- s = 0;
- s < n;
- s++
- ) {
- var o = i[s].flags;
- r[s + 4] =
- (o.isLeading << 6) |
- (o.dependsOn << 4) |
- (o.isDependedOn << 2) |
- o.hasRedundancy;
- }
- return e.box(e.types.sdtp, r);
- }),
- (e.trun = function (t, i) {
- var n = t.samples || [],
- r = n.length,
- s = 12 + 16 * r,
- o = new Uint8Array(s);
- (i += 8 + s),
- o.set(
- [
- 0,
- 0,
- 15,
- 1,
- (r >>> 24) & 255,
- (r >>> 16) & 255,
- (r >>> 8) & 255,
- 255 & r,
- (i >>> 24) & 255,
- (i >>> 16) & 255,
- (i >>> 8) & 255,
- 255 & i,
- ],
- 0
- );
- for (var a = 0; a < r; a++) {
- var h = n[a].duration,
- u = n[a].size,
- l = n[a].flags,
- d = n[a].cts;
- o.set(
- [
- (h >>> 24) & 255,
- (h >>> 16) & 255,
- (h >>> 8) & 255,
- 255 & h,
- (u >>> 24) & 255,
- (u >>> 16) & 255,
- (u >>> 8) & 255,
- 255 & u,
- (l.isLeading << 2) | l.dependsOn,
- (l.isDependedOn << 6) |
- (l.hasRedundancy << 4) |
- l.isNonSync,
- 0,
- 0,
- (d >>> 24) & 255,
- (d >>> 16) & 255,
- (d >>> 8) & 255,
- 255 & d,
- ],
- 12 + 16 * a
- );
- }
- return e.box(e.types.trun, o);
- }),
- (e.mdat = function (t) {
- return e.box(e.types.mdat, t);
- }),
- e
- );
- })();
- v.init();
- var y = v,
- b = (function () {
- function e() {}
- return (
- (e.getSilentFrame = function (e, t) {
- if ('mp4a.40.2' === e) {
- if (1 === t)
- return new Uint8Array([0, 200, 0, 128, 35, 128]);
- if (2 === t)
- return new Uint8Array([
- 33, 0, 73, 144, 2, 25, 0, 35, 128,
- ]);
- if (3 === t)
- return new Uint8Array([
- 0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142,
- ]);
- if (4 === t)
- return new Uint8Array([
- 0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44,
- 128, 8, 2, 56,
- ]);
- if (5 === t)
- return new Uint8Array([
- 0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48,
- 4, 153, 0, 33, 144, 2, 56,
- ]);
- if (6 === t)
- return new Uint8Array([
- 0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48,
- 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224,
- ]);
- } else {
- if (1 === t)
- return new Uint8Array([
- 1, 64, 34, 128, 163, 78, 230, 128, 186, 8, 0, 0, 0, 28,
- 6, 241, 193, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 94,
- ]);
- if (2 === t)
- return new Uint8Array([
- 1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0,
- 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 94,
- ]);
- if (3 === t)
- return new Uint8Array([
- 1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0,
- 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 94,
- ]);
- }
- return null;
- }),
- e
- );
- })(),
- E = i(51),
- S = (function () {
- function e(e) {
- (this.TAG = 'MP4Remuxer'),
- (this._config = e),
- (this._isLive = !0 === e.isLive),
- (this._dtsBase = -1),
- (this._dtsBaseInited = !1),
- (this._audioDtsBase = 1 / 0),
- (this._videoDtsBase = 1 / 0),
- (this._audioNextDts = void 0),
- (this._videoNextDts = void 0),
- (this._audioStashedLastSample = null),
- (this._videoStashedLastSample = null),
- (this._audioMeta = null),
- (this._videoMeta = null),
- (this._audioSegmentInfoList = new E.J1('audio')),
- (this._videoSegmentInfoList = new E.J1('video')),
- (this._onInitSegment = null),
- (this._onMediaSegment = null),
- (this._forceFirstIDR = !(
- !o.Z.chrome ||
- !(
- o.Z.version.major < 50 ||
- (50 === o.Z.version.major && o.Z.version.build < 2661)
- )
- )),
- (this._fillSilentAfterSeek = o.Z.msedge || o.Z.msie),
- (this._mp3UseMpegAudio = !o.Z.firefox),
- (this._fillAudioTimestampGap =
- this._config.fixAudioTimestampGap);
- }
- return (
- (e.prototype.destroy = function () {
- (this._dtsBase = -1),
- (this._dtsBaseInited = !1),
- (this._audioMeta = null),
- (this._videoMeta = null),
- this._audioSegmentInfoList.clear(),
- (this._audioSegmentInfoList = null),
- this._videoSegmentInfoList.clear(),
- (this._videoSegmentInfoList = null),
- (this._onInitSegment = null),
- (this._onMediaSegment = null);
- }),
- (e.prototype.bindDataSource = function (e) {
- return (
- (e.onDataAvailable = this.remux.bind(this)),
- (e.onTrackMetadata =
- this._onTrackMetadataReceived.bind(this)),
- this
- );
- }),
- Object.defineProperty(e.prototype, 'onInitSegment', {
- get: function () {
- return this._onInitSegment;
- },
- set: function (e) {
- this._onInitSegment = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onMediaSegment', {
- get: function () {
- return this._onMediaSegment;
- },
- set: function (e) {
- this._onMediaSegment = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.prototype.insertDiscontinuity = function () {
- this._audioNextDts = this._videoNextDts = void 0;
- }),
- (e.prototype.seek = function (e) {
- (this._audioStashedLastSample = null),
- (this._videoStashedLastSample = null),
- this._videoSegmentInfoList.clear(),
- this._audioSegmentInfoList.clear();
- }),
- (e.prototype.remux = function (e, t) {
- if (!this._onMediaSegment)
- throw new d.rT(
- 'MP4Remuxer: onMediaSegment callback must be specificed!'
- );
- this._dtsBaseInited || this._calculateDtsBase(e, t),
- this._remuxVideo(t),
- this._remuxAudio(e);
- }),
- (e.prototype._onTrackMetadataReceived = function (e, t) {
- var i = null,
- n = 'mp4',
- r = t.codec;
- if ('audio' === e)
- (this._audioMeta = t),
- 'mp3' === t.codec && this._mp3UseMpegAudio
- ? ((n = 'mpeg'), (r = ''), (i = new Uint8Array()))
- : (i = y.generateInitSegment(t));
- else {
- if ('video' !== e) return;
- (this._videoMeta = t), (i = y.generateInitSegment(t));
- }
- if (!this._onInitSegment)
- throw new d.rT(
- 'MP4Remuxer: onInitSegment callback must be specified!'
- );
- this._onInitSegment(e, {
- type: e,
- data: i.buffer,
- codec: r,
- container: e + '/' + n,
- mediaDuration: t.duration,
- });
- }),
- (e.prototype._calculateDtsBase = function (e, t) {
- this._dtsBaseInited ||
- (e.samples &&
- e.samples.length &&
- (this._audioDtsBase = e.samples[0].dts),
- t.samples &&
- t.samples.length &&
- (this._videoDtsBase = t.samples[0].dts),
- (this._dtsBase = Math.min(
- this._audioDtsBase,
- this._videoDtsBase
- )),
- (this._dtsBaseInited = !0));
- }),
- (e.prototype.flushStashedSamples = function () {
- var e = this._videoStashedLastSample,
- t = this._audioStashedLastSample,
- i = {
- type: 'video',
- id: 1,
- sequenceNumber: 0,
- samples: [],
- length: 0,
- };
- null != e && (i.samples.push(e), (i.length = e.length));
- var n = {
- type: 'audio',
- id: 2,
- sequenceNumber: 0,
- samples: [],
- length: 0,
- };
- null != t && (n.samples.push(t), (n.length = t.length)),
- (this._videoStashedLastSample = null),
- (this._audioStashedLastSample = null),
- this._remuxVideo(i, !0),
- this._remuxAudio(n, !0);
- }),
- (e.prototype._remuxAudio = function (e, t) {
- if (null != this._audioMeta) {
- var i,
- n = e,
- r = n.samples,
- a = void 0,
- h = -1,
- u = this._audioMeta.refSampleDuration,
- l =
- 'mp3' === this._audioMeta.codec &&
- this._mp3UseMpegAudio,
- d = this._dtsBaseInited && void 0 === this._audioNextDts,
- c = !1;
- if (r && 0 !== r.length && (1 !== r.length || t)) {
- var f = 0,
- _ = null,
- p = 0;
- l
- ? ((f = 0), (p = n.length))
- : ((f = 8), (p = 8 + n.length));
- var m = null;
- if (
- (r.length > 1 && (p -= (m = r.pop()).length),
- null != this._audioStashedLastSample)
- ) {
- var g = this._audioStashedLastSample;
- (this._audioStashedLastSample = null),
- r.unshift(g),
- (p += g.length);
- }
- null != m && (this._audioStashedLastSample = m);
- var v = r[0].dts - this._dtsBase;
- if (this._audioNextDts) a = v - this._audioNextDts;
- else if (this._audioSegmentInfoList.isEmpty())
- (a = 0),
- this._fillSilentAfterSeek &&
- !this._videoSegmentInfoList.isEmpty() &&
- 'mp3' !== this._audioMeta.originalCodec &&
- (c = !0);
- else {
- var S =
- this._audioSegmentInfoList.getLastSampleBefore(v);
- if (null != S) {
- var A = v - (S.originalDts + S.duration);
- A <= 3 && (A = 0), (a = v - (S.dts + S.duration + A));
- } else a = 0;
- }
- if (c) {
- var L = v - a,
- R =
- this._videoSegmentInfoList.getLastSegmentBefore(v);
- if (null != R && R.beginDts < L) {
- if (
- (P = b.getSilentFrame(
- this._audioMeta.originalCodec,
- this._audioMeta.channelCount
- ))
- ) {
- var w = R.beginDts,
- O = L - R.beginDts;
- s.Z.v(
- this.TAG,
- 'InsertPrefixSilentAudio: dts: ' +
- w +
- ', duration: ' +
- O
- ),
- r.unshift({ unit: P, dts: w, pts: w }),
- (p += P.byteLength);
- }
- } else c = !1;
- }
- for (var T = [], C = 0; C < r.length; C++) {
- var k = (g = r[C]).unit,
- D = g.dts - this._dtsBase,
- I = ((w = D), !1),
- M = null,
- B = 0;
- if (!(D < -0.001)) {
- if ('mp3' !== this._audioMeta.codec) {
- var x = D;
- if (
- (this._audioNextDts && (x = this._audioNextDts),
- (a = D - x) <= -3 * u)
- ) {
- s.Z.w(
- this.TAG,
- 'Dropping 1 audio frame (originalDts: ' +
- D +
- ' ms ,curRefDts: ' +
- x +
- ' ms) due to dtsCorrection: ' +
- a +
- ' ms overlap.'
- );
- continue;
- }
- if (
- a >= 3 * u &&
- this._fillAudioTimestampGap &&
- !o.Z.safari
- ) {
- I = !0;
- var P,
- U = Math.floor(a / u);
- s.Z.w(
- this.TAG,
- 'Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: ' +
- D +
- ' ms, curRefDts: ' +
- x +
- ' ms, dtsCorrection: ' +
- Math.round(a) +
- ' ms, generate: ' +
- U +
- ' frames'
- ),
- (w = Math.floor(x)),
- (B = Math.floor(x + u) - w),
- null ==
- (P = b.getSilentFrame(
- this._audioMeta.originalCodec,
- this._audioMeta.channelCount
- )) &&
- (s.Z.w(
- this.TAG,
- 'Unable to generate silent frame for ' +
- this._audioMeta.originalCodec +
- ' with ' +
- this._audioMeta.channelCount +
- ' channels, repeat last frame'
- ),
- (P = k)),
- (M = []);
- for (var N = 0; N < U; N++) {
- x += u;
- var Z = Math.floor(x),
- F = Math.floor(x + u) - Z,
- G = {
- dts: Z,
- pts: Z,
- cts: 0,
- unit: P,
- size: P.byteLength,
- duration: F,
- originalDts: D,
- flags: {
- isLeading: 0,
- dependsOn: 1,
- isDependedOn: 0,
- hasRedundancy: 0,
- },
- };
- M.push(G), (p += G.size);
- }
- this._audioNextDts = x + u;
- } else
- (w = Math.floor(x)),
- (B = Math.floor(x + u) - w),
- (this._audioNextDts = x + u);
- } else {
- if (((w = D - a), C !== r.length - 1))
- B = r[C + 1].dts - this._dtsBase - a - w;
- else if (null != m)
- B = m.dts - this._dtsBase - a - w;
- else
- B =
- T.length >= 1
- ? T[T.length - 1].duration
- : Math.floor(u);
- this._audioNextDts = w + B;
- }
- -1 === h && (h = w),
- T.push({
- dts: w,
- pts: w,
- cts: 0,
- unit: g.unit,
- size: g.unit.byteLength,
- duration: B,
- originalDts: D,
- flags: {
- isLeading: 0,
- dependsOn: 1,
- isDependedOn: 0,
- hasRedundancy: 0,
- },
- }),
- I && T.push.apply(T, M);
- }
- }
- if (0 === T.length)
- return (n.samples = []), void (n.length = 0);
- l
- ? (_ = new Uint8Array(p))
- : (((_ = new Uint8Array(p))[0] = (p >>> 24) & 255),
- (_[1] = (p >>> 16) & 255),
- (_[2] = (p >>> 8) & 255),
- (_[3] = 255 & p),
- _.set(y.types.mdat, 4));
- for (C = 0; C < T.length; C++) {
- k = T[C].unit;
- _.set(k, f), (f += k.byteLength);
- }
- var j = T[T.length - 1];
- i = j.dts + j.duration;
- var V = new E.Yy();
- (V.beginDts = h),
- (V.endDts = i),
- (V.beginPts = h),
- (V.endPts = i),
- (V.originalBeginDts = T[0].originalDts),
- (V.originalEndDts = j.originalDts + j.duration),
- (V.firstSample = new E.Wk(
- T[0].dts,
- T[0].pts,
- T[0].duration,
- T[0].originalDts,
- !1
- )),
- (V.lastSample = new E.Wk(
- j.dts,
- j.pts,
- j.duration,
- j.originalDts,
- !1
- )),
- this._isLive || this._audioSegmentInfoList.append(V),
- (n.samples = T),
- n.sequenceNumber++;
- var z = null;
- (z = l ? new Uint8Array() : y.moof(n, h)),
- (n.samples = []),
- (n.length = 0);
- var K = {
- type: 'audio',
- data: this._mergeBoxes(z, _).buffer,
- sampleCount: T.length,
- info: V,
- };
- l && d && (K.timestampOffset = h),
- this._onMediaSegment('audio', K);
- }
- }
- }),
- (e.prototype._remuxVideo = function (e, t) {
- if (null != this._videoMeta) {
- var i,
- n,
- r = e,
- s = r.samples,
- o = void 0,
- a = -1,
- h = -1;
- if (s && 0 !== s.length && (1 !== s.length || t)) {
- var u = 8,
- l = null,
- d = 8 + e.length,
- c = null;
- if (
- (s.length > 1 && (d -= (c = s.pop()).length),
- null != this._videoStashedLastSample)
- ) {
- var f = this._videoStashedLastSample;
- (this._videoStashedLastSample = null),
- s.unshift(f),
- (d += f.length);
- }
- null != c && (this._videoStashedLastSample = c);
- var _ = s[0].dts - this._dtsBase;
- if (this._videoNextDts) o = _ - this._videoNextDts;
- else if (this._videoSegmentInfoList.isEmpty()) o = 0;
- else {
- var p =
- this._videoSegmentInfoList.getLastSampleBefore(_);
- if (null != p) {
- var m = _ - (p.originalDts + p.duration);
- m <= 3 && (m = 0), (o = _ - (p.dts + p.duration + m));
- } else o = 0;
- }
- for (
- var g = new E.Yy(), v = [], b = 0;
- b < s.length;
- b++
- ) {
- var S = (f = s[b]).dts - this._dtsBase,
- A = f.isKeyframe,
- L = S - o,
- R = f.cts,
- w = L + R;
- -1 === a && ((a = L), (h = w));
- var O = 0;
- if (b !== s.length - 1)
- O = s[b + 1].dts - this._dtsBase - o - L;
- else if (null != c) O = c.dts - this._dtsBase - o - L;
- else
- O =
- v.length >= 1
- ? v[v.length - 1].duration
- : Math.floor(this._videoMeta.refSampleDuration);
- if (A) {
- var T = new E.Wk(L, w, O, f.dts, !0);
- (T.fileposition = f.fileposition),
- g.appendSyncPoint(T);
- }
- v.push({
- dts: L,
- pts: w,
- cts: R,
- units: f.units,
- size: f.length,
- isKeyframe: A,
- duration: O,
- originalDts: S,
- flags: {
- isLeading: 0,
- dependsOn: A ? 2 : 1,
- isDependedOn: A ? 1 : 0,
- hasRedundancy: 0,
- isNonSync: A ? 0 : 1,
- },
- });
- }
- ((l = new Uint8Array(d))[0] = (d >>> 24) & 255),
- (l[1] = (d >>> 16) & 255),
- (l[2] = (d >>> 8) & 255),
- (l[3] = 255 & d),
- l.set(y.types.mdat, 4);
- for (b = 0; b < v.length; b++)
- for (var C = v[b].units; C.length; ) {
- var k = C.shift().data;
- l.set(k, u), (u += k.byteLength);
- }
- var D = v[v.length - 1];
- if (
- ((i = D.dts + D.duration),
- (n = D.pts + D.duration),
- (this._videoNextDts = i),
- (g.beginDts = a),
- (g.endDts = i),
- (g.beginPts = h),
- (g.endPts = n),
- (g.originalBeginDts = v[0].originalDts),
- (g.originalEndDts = D.originalDts + D.duration),
- (g.firstSample = new E.Wk(
- v[0].dts,
- v[0].pts,
- v[0].duration,
- v[0].originalDts,
- v[0].isKeyframe
- )),
- (g.lastSample = new E.Wk(
- D.dts,
- D.pts,
- D.duration,
- D.originalDts,
- D.isKeyframe
- )),
- this._isLive || this._videoSegmentInfoList.append(g),
- (r.samples = v),
- r.sequenceNumber++,
- this._forceFirstIDR)
- ) {
- var I = v[0].flags;
- (I.dependsOn = 2), (I.isNonSync = 0);
- }
- var M = y.moof(r, a);
- (r.samples = []),
- (r.length = 0),
- this._onMediaSegment('video', {
- type: 'video',
- data: this._mergeBoxes(M, l).buffer,
- sampleCount: v.length,
- info: g,
- });
- }
- }
- }),
- (e.prototype._mergeBoxes = function (e, t) {
- var i = new Uint8Array(e.byteLength + t.byteLength);
- return i.set(e, 0), i.set(t, e.byteLength), i;
- }),
- e
- );
- })(),
- A = i(191),
- L = i(257),
- R = (function () {
- function e(e, t) {
- (this.TAG = 'TransmuxingController'),
- (this._emitter = new (r())()),
- (this._config = t),
- e.segments ||
- (e.segments = [
- {
- duration: e.duration,
- filesize: e.filesize,
- url: e.url,
- },
- ]),
- 'boolean' != typeof e.cors && (e.cors = !0),
- 'boolean' != typeof e.withCredentials &&
- (e.withCredentials = !1),
- (this._mediaDataSource = e),
- (this._currentSegmentIndex = 0);
- var i = 0;
- this._mediaDataSource.segments.forEach(function (n) {
- (n.timestampBase = i),
- (i += n.duration),
- (n.cors = e.cors),
- (n.withCredentials = e.withCredentials),
- t.referrerPolicy && (n.referrerPolicy = t.referrerPolicy);
- }),
- isNaN(i) ||
- this._mediaDataSource.duration === i ||
- (this._mediaDataSource.duration = i),
- (this._mediaInfo = null),
- (this._demuxer = null),
- (this._remuxer = null),
- (this._ioctl = null),
- (this._pendingSeekTime = null),
- (this._pendingResolveSeekPoint = null),
- (this._statisticsReporter = null);
- }
- return (
- (e.prototype.destroy = function () {
- (this._mediaInfo = null),
- (this._mediaDataSource = null),
- this._statisticsReporter &&
- this._disableStatisticsReporter(),
- this._ioctl &&
- (this._ioctl.destroy(), (this._ioctl = null)),
- this._demuxer &&
- (this._demuxer.destroy(), (this._demuxer = null)),
- this._remuxer &&
- (this._remuxer.destroy(), (this._remuxer = null)),
- this._emitter.removeAllListeners(),
- (this._emitter = null);
- }),
- (e.prototype.on = function (e, t) {
- this._emitter.addListener(e, t);
- }),
- (e.prototype.off = function (e, t) {
- this._emitter.removeListener(e, t);
- }),
- (e.prototype.start = function () {
- this._loadSegment(0), this._enableStatisticsReporter();
- }),
- (e.prototype._loadSegment = function (e, t) {
- this._currentSegmentIndex = e;
- var i = this._mediaDataSource.segments[e],
- n = (this._ioctl = new A.Z(i, this._config, e));
- (n.onError = this._onIOException.bind(this)),
- (n.onSeeked = this._onIOSeeked.bind(this)),
- (n.onComplete = this._onIOComplete.bind(this)),
- (n.onRedirect = this._onIORedirect.bind(this)),
- (n.onRecoveredEarlyEof =
- this._onIORecoveredEarlyEof.bind(this)),
- t
- ? this._demuxer.bindDataSource(this._ioctl)
- : (n.onDataArrival = this._onInitChunkArrival.bind(this)),
- n.open(t);
- }),
- (e.prototype.stop = function () {
- this._internalAbort(), this._disableStatisticsReporter();
- }),
- (e.prototype._internalAbort = function () {
- this._ioctl && (this._ioctl.destroy(), (this._ioctl = null));
- }),
- (e.prototype.pause = function () {
- this._ioctl &&
- this._ioctl.isWorking() &&
- (this._ioctl.pause(), this._disableStatisticsReporter());
- }),
- (e.prototype.resume = function () {
- this._ioctl &&
- this._ioctl.isPaused() &&
- (this._ioctl.resume(), this._enableStatisticsReporter());
- }),
- (e.prototype.seek = function (e) {
- if (null != this._mediaInfo && this._mediaInfo.isSeekable()) {
- var t = this._searchSegmentIndexContains(e);
- if (t === this._currentSegmentIndex) {
- var i = this._mediaInfo.segments[t];
- if (null == i) this._pendingSeekTime = e;
- else {
- var n = i.getNearestKeyframe(e);
- this._remuxer.seek(n.milliseconds),
- this._ioctl.seek(n.fileposition),
- (this._pendingResolveSeekPoint = n.milliseconds);
- }
- } else {
- var r = this._mediaInfo.segments[t];
- if (null == r)
- (this._pendingSeekTime = e),
- this._internalAbort(),
- this._remuxer.seek(),
- this._remuxer.insertDiscontinuity(),
- this._loadSegment(t);
- else {
- n = r.getNearestKeyframe(e);
- this._internalAbort(),
- this._remuxer.seek(e),
- this._remuxer.insertDiscontinuity(),
- this._demuxer.resetMediaInfo(),
- (this._demuxer.timestampBase =
- this._mediaDataSource.segments[t].timestampBase),
- this._loadSegment(t, n.fileposition),
- (this._pendingResolveSeekPoint = n.milliseconds),
- this._reportSegmentMediaInfo(t);
- }
- }
- this._enableStatisticsReporter();
- }
- }),
- (e.prototype._searchSegmentIndexContains = function (e) {
- for (
- var t = this._mediaDataSource.segments,
- i = t.length - 1,
- n = 0;
- n < t.length;
- n++
- )
- if (e < t[n].timestampBase) {
- i = n - 1;
- break;
- }
- return i;
- }),
- (e.prototype._onInitChunkArrival = function (e, t) {
- var i = this,
- n = null,
- r = 0;
- if (t > 0)
- this._demuxer.bindDataSource(this._ioctl),
- (this._demuxer.timestampBase =
- this._mediaDataSource.segments[
- this._currentSegmentIndex
- ].timestampBase),
- (r = this._demuxer.parseChunks(e, t));
- else if ((n = g.probe(e)).match) {
- (this._demuxer = new g(n, this._config)),
- this._remuxer || (this._remuxer = new S(this._config));
- var o = this._mediaDataSource;
- null == o.duration ||
- isNaN(o.duration) ||
- (this._demuxer.overridedDuration = o.duration),
- 'boolean' == typeof o.hasAudio &&
- (this._demuxer.overridedHasAudio = o.hasAudio),
- 'boolean' == typeof o.hasVideo &&
- (this._demuxer.overridedHasVideo = o.hasVideo),
- (this._demuxer.timestampBase =
- o.segments[this._currentSegmentIndex].timestampBase),
- (this._demuxer.onError =
- this._onDemuxException.bind(this)),
- (this._demuxer.onMediaInfo =
- this._onMediaInfo.bind(this)),
- (this._demuxer.onMetaDataArrived =
- this._onMetaDataArrived.bind(this)),
- (this._demuxer.onScriptDataArrived =
- this._onScriptDataArrived.bind(this)),
- this._remuxer.bindDataSource(
- this._demuxer.bindDataSource(this._ioctl)
- ),
- (this._remuxer.onInitSegment =
- this._onRemuxerInitSegmentArrival.bind(this)),
- (this._remuxer.onMediaSegment =
- this._onRemuxerMediaSegmentArrival.bind(this)),
- (r = this._demuxer.parseChunks(e, t));
- } else
- (n = null),
- s.Z.e(this.TAG, 'Non-FLV, Unsupported media type!'),
- Promise.resolve().then(function () {
- i._internalAbort();
- }),
- this._emitter.emit(
- L.Z.DEMUX_ERROR,
- m.Z.FORMAT_UNSUPPORTED,
- 'Non-FLV, Unsupported media type'
- ),
- (r = 0);
- return r;
- }),
- (e.prototype._onMediaInfo = function (e) {
- var t = this;
- null == this._mediaInfo &&
- ((this._mediaInfo = Object.assign({}, e)),
- (this._mediaInfo.keyframesIndex = null),
- (this._mediaInfo.segments = []),
- (this._mediaInfo.segmentCount =
- this._mediaDataSource.segments.length),
- Object.setPrototypeOf(this._mediaInfo, a.Z.prototype));
- var i = Object.assign({}, e);
- Object.setPrototypeOf(i, a.Z.prototype),
- (this._mediaInfo.segments[this._currentSegmentIndex] = i),
- this._reportSegmentMediaInfo(this._currentSegmentIndex),
- null != this._pendingSeekTime &&
- Promise.resolve().then(function () {
- var e = t._pendingSeekTime;
- (t._pendingSeekTime = null), t.seek(e);
- });
- }),
- (e.prototype._onMetaDataArrived = function (e) {
- this._emitter.emit(L.Z.METADATA_ARRIVED, e);
- }),
- (e.prototype._onScriptDataArrived = function (e) {
- this._emitter.emit(L.Z.SCRIPTDATA_ARRIVED, e);
- }),
- (e.prototype._onIOSeeked = function () {
- this._remuxer.insertDiscontinuity();
- }),
- (e.prototype._onIOComplete = function (e) {
- var t = e + 1;
- t < this._mediaDataSource.segments.length
- ? (this._internalAbort(),
- this._remuxer.flushStashedSamples(),
- this._loadSegment(t))
- : (this._remuxer.flushStashedSamples(),
- this._emitter.emit(L.Z.LOADING_COMPLETE),
- this._disableStatisticsReporter());
- }),
- (e.prototype._onIORedirect = function (e) {
- var t = this._ioctl.extraData;
- this._mediaDataSource.segments[t].redirectedURL = e;
- }),
- (e.prototype._onIORecoveredEarlyEof = function () {
- this._emitter.emit(L.Z.RECOVERED_EARLY_EOF);
- }),
- (e.prototype._onIOException = function (e, t) {
- s.Z.e(
- this.TAG,
- 'IOException: type = ' +
- e +
- ', code = ' +
- t.code +
- ', msg = ' +
- t.msg
- ),
- this._emitter.emit(L.Z.IO_ERROR, e, t),
- this._disableStatisticsReporter();
- }),
- (e.prototype._onDemuxException = function (e, t) {
- s.Z.e(
- this.TAG,
- 'DemuxException: type = ' + e + ', info = ' + t
- ),
- this._emitter.emit(L.Z.DEMUX_ERROR, e, t);
- }),
- (e.prototype._onRemuxerInitSegmentArrival = function (e, t) {
- this._emitter.emit(L.Z.INIT_SEGMENT, e, t);
- }),
- (e.prototype._onRemuxerMediaSegmentArrival = function (e, t) {
- if (
- null == this._pendingSeekTime &&
- (this._emitter.emit(L.Z.MEDIA_SEGMENT, e, t),
- null != this._pendingResolveSeekPoint && 'video' === e)
- ) {
- var i = t.info.syncPoints,
- n = this._pendingResolveSeekPoint;
- (this._pendingResolveSeekPoint = null),
- o.Z.safari &&
- i.length > 0 &&
- i[0].originalDts === n &&
- (n = i[0].pts),
- this._emitter.emit(L.Z.RECOMMEND_SEEKPOINT, n);
- }
- }),
- (e.prototype._enableStatisticsReporter = function () {
- null == this._statisticsReporter &&
- (this._statisticsReporter = self.setInterval(
- this._reportStatisticsInfo.bind(this),
- this._config.statisticsInfoReportInterval
- ));
- }),
- (e.prototype._disableStatisticsReporter = function () {
- this._statisticsReporter &&
- (self.clearInterval(this._statisticsReporter),
- (this._statisticsReporter = null));
- }),
- (e.prototype._reportSegmentMediaInfo = function (e) {
- var t = this._mediaInfo.segments[e],
- i = Object.assign({}, t);
- (i.duration = this._mediaInfo.duration),
- (i.segmentCount = this._mediaInfo.segmentCount),
- delete i.segments,
- delete i.keyframesIndex,
- this._emitter.emit(L.Z.MEDIA_INFO, i);
- }),
- (e.prototype._reportStatisticsInfo = function () {
- var e = {};
- (e.url = this._ioctl.currentURL),
- (e.hasRedirect = this._ioctl.hasRedirect),
- e.hasRedirect &&
- (e.redirectedURL = this._ioctl.currentRedirectedURL),
- (e.speed = this._ioctl.currentSpeed),
- (e.loaderType = this._ioctl.loaderType),
- (e.currentSegmentIndex = this._currentSegmentIndex),
- (e.totalSegmentCount =
- this._mediaDataSource.segments.length),
- this._emitter.emit(L.Z.STATISTICS_INFO, e);
- }),
- e
- );
- })();
- },
- 257: function (e, t) {
- 'use strict';
- t.Z = {
- IO_ERROR: 'io_error',
- DEMUX_ERROR: 'demux_error',
- INIT_SEGMENT: 'init_segment',
- MEDIA_SEGMENT: 'media_segment',
- LOADING_COMPLETE: 'loading_complete',
- RECOVERED_EARLY_EOF: 'recovered_early_eof',
- MEDIA_INFO: 'media_info',
- METADATA_ARRIVED: 'metadata_arrived',
- SCRIPTDATA_ARRIVED: 'scriptdata_arrived',
- STATISTICS_INFO: 'statistics_info',
- RECOMMEND_SEEKPOINT: 'recommend_seekpoint',
- };
- },
- 82: function (e, t, i) {
- 'use strict';
- i(846), i(219), i(949), i(257);
- },
- 600: function (e, t) {
- 'use strict';
- t.Z = {
- OK: 'OK',
- FORMAT_ERROR: 'FormatError',
- FORMAT_UNSUPPORTED: 'FormatUnsupported',
- CODEC_UNSUPPORTED: 'CodecUnsupported',
- };
- },
- 60: function (e, t, i) {
- 'use strict';
- i.d(t, {
- default: function () {
- return D;
- },
- });
- var n = i(219),
- r = i(191),
- s = {
- enableWorker: !1,
- enableStashBuffer: !0,
- stashInitialSize: void 0,
- isLive: !1,
- lazyLoad: !0,
- lazyLoadMaxDuration: 180,
- lazyLoadRecoverDuration: 30,
- deferLoadAfterSourceOpen: !0,
- autoCleanupMaxBackwardDuration: 180,
- autoCleanupMinBackwardDuration: 120,
- statisticsInfoReportInterval: 600,
- fixAudioTimestampGap: !0,
- accurateSeek: !1,
- seekType: 'range',
- seekParamStart: 'bstart',
- seekParamEnd: 'bend',
- rangeLoadZeroStart: !1,
- customSeekHandler: void 0,
- reuseRedirectedURL: !1,
- headers: void 0,
- customLoader: void 0,
- };
- function o() {
- return Object.assign({}, s);
- }
- var a = (function () {
- function e() {}
- return (
- (e.supportMSEH264Playback = function () {
- return (
- window.MediaSource &&
- window.MediaSource.isTypeSupported(
- 'video/mp4; codecs="avc1.42E01E,mp4a.40.2"'
- )
- );
- }),
- (e.supportNetworkStreamIO = function () {
- var e = new r.Z({}, o()),
- t = e.loaderType;
- return (
- e.destroy(),
- 'fetch-stream-loader' == t || 'xhr-moz-chunked-loader' == t
- );
- }),
- (e.getNetworkLoaderTypeName = function () {
- var e = new r.Z({}, o()),
- t = e.loaderType;
- return e.destroy(), t;
- }),
- (e.supportNativeMediaPlayback = function (t) {
- null == e.videoElement &&
- (e.videoElement = window.document.createElement('video'));
- var i = e.videoElement.canPlayType(t);
- return 'probably' === i || 'maybe' == i;
- }),
- (e.getFeatureList = function () {
- var t = {
- mseFlvPlayback: !1,
- mseLiveFlvPlayback: !1,
- networkStreamIO: !1,
- networkLoaderName: '',
- nativeMP4H264Playback: !1,
- nativeWebmVP8Playback: !1,
- nativeWebmVP9Playback: !1,
- };
- return (
- (t.mseFlvPlayback = e.supportMSEH264Playback()),
- (t.networkStreamIO = e.supportNetworkStreamIO()),
- (t.networkLoaderName = e.getNetworkLoaderTypeName()),
- (t.mseLiveFlvPlayback =
- t.mseFlvPlayback && t.networkStreamIO),
- (t.nativeMP4H264Playback = e.supportNativeMediaPlayback(
- 'video/mp4; codecs="avc1.42001E, mp4a.40.2"'
- )),
- (t.nativeWebmVP8Playback = e.supportNativeMediaPlayback(
- 'video/webm; codecs="vp8.0, vorbis"'
- )),
- (t.nativeWebmVP9Playback = e.supportNativeMediaPlayback(
- 'video/webm; codecs="vp9"'
- )),
- t
- );
- }),
- e
- );
- })(),
- h = i(939),
- u = i(716),
- l = i.n(u),
- d = i(300),
- c = i(538),
- f = {
- ERROR: 'error',
- LOADING_COMPLETE: 'loading_complete',
- RECOVERED_EARLY_EOF: 'recovered_early_eof',
- MEDIA_INFO: 'media_info',
- METADATA_ARRIVED: 'metadata_arrived',
- SCRIPTDATA_ARRIVED: 'scriptdata_arrived',
- STATISTICS_INFO: 'statistics_info',
- },
- _ = i(397),
- p = i.n(_),
- m = i(846),
- g = i(949),
- v = i(257),
- y = i(118),
- b = (function () {
- function e(e, t) {
- if (
- ((this.TAG = 'Transmuxer'),
- (this._emitter = new (l())()),
- t.enableWorker && 'undefined' != typeof Worker)
- )
- try {
- (this._worker = p()(82)),
- (this._workerDestroying = !1),
- this._worker.addEventListener(
- 'message',
- this._onWorkerMessage.bind(this)
- ),
- this._worker.postMessage({ cmd: 'init', param: [e, t] }),
- (this.e = {
- onLoggingConfigChanged:
- this._onLoggingConfigChanged.bind(this),
- }),
- m.Z.registerListener(this.e.onLoggingConfigChanged),
- this._worker.postMessage({
- cmd: 'logging_config',
- param: m.Z.getConfig(),
- });
- } catch (i) {
- d.Z.e(
- this.TAG,
- 'Error while initialize transmuxing worker, fallback to inline transmuxing'
- ),
- (this._worker = null),
- (this._controller = new g.Z(e, t));
- }
- else this._controller = new g.Z(e, t);
- if (this._controller) {
- var i = this._controller;
- i.on(v.Z.IO_ERROR, this._onIOError.bind(this)),
- i.on(v.Z.DEMUX_ERROR, this._onDemuxError.bind(this)),
- i.on(v.Z.INIT_SEGMENT, this._onInitSegment.bind(this)),
- i.on(v.Z.MEDIA_SEGMENT, this._onMediaSegment.bind(this)),
- i.on(
- v.Z.LOADING_COMPLETE,
- this._onLoadingComplete.bind(this)
- ),
- i.on(
- v.Z.RECOVERED_EARLY_EOF,
- this._onRecoveredEarlyEof.bind(this)
- ),
- i.on(v.Z.MEDIA_INFO, this._onMediaInfo.bind(this)),
- i.on(
- v.Z.METADATA_ARRIVED,
- this._onMetaDataArrived.bind(this)
- ),
- i.on(
- v.Z.SCRIPTDATA_ARRIVED,
- this._onScriptDataArrived.bind(this)
- ),
- i.on(
- v.Z.STATISTICS_INFO,
- this._onStatisticsInfo.bind(this)
- ),
- i.on(
- v.Z.RECOMMEND_SEEKPOINT,
- this._onRecommendSeekpoint.bind(this)
- );
- }
- }
- return (
- (e.prototype.destroy = function () {
- this._worker
- ? this._workerDestroying ||
- ((this._workerDestroying = !0),
- this._worker.postMessage({ cmd: 'destroy' }),
- m.Z.removeListener(this.e.onLoggingConfigChanged),
- (this.e = null))
- : (this._controller.destroy(), (this._controller = null)),
- this._emitter.removeAllListeners(),
- (this._emitter = null);
- }),
- (e.prototype.on = function (e, t) {
- this._emitter.addListener(e, t);
- }),
- (e.prototype.off = function (e, t) {
- this._emitter.removeListener(e, t);
- }),
- (e.prototype.hasWorker = function () {
- return null != this._worker;
- }),
- (e.prototype.open = function () {
- this._worker
- ? this._worker.postMessage({ cmd: 'start' })
- : this._controller.start();
- }),
- (e.prototype.close = function () {
- this._worker
- ? this._worker.postMessage({ cmd: 'stop' })
- : this._controller.stop();
- }),
- (e.prototype.seek = function (e) {
- this._worker
- ? this._worker.postMessage({ cmd: 'seek', param: e })
- : this._controller.seek(e);
- }),
- (e.prototype.pause = function () {
- this._worker
- ? this._worker.postMessage({ cmd: 'pause' })
- : this._controller.pause();
- }),
- (e.prototype.resume = function () {
- this._worker
- ? this._worker.postMessage({ cmd: 'resume' })
- : this._controller.resume();
- }),
- (e.prototype._onInitSegment = function (e, t) {
- var i = this;
- Promise.resolve().then(function () {
- i._emitter.emit(v.Z.INIT_SEGMENT, e, t);
- });
- }),
- (e.prototype._onMediaSegment = function (e, t) {
- var i = this;
- Promise.resolve().then(function () {
- i._emitter.emit(v.Z.MEDIA_SEGMENT, e, t);
- });
- }),
- (e.prototype._onLoadingComplete = function () {
- var e = this;
- Promise.resolve().then(function () {
- e._emitter.emit(v.Z.LOADING_COMPLETE);
- });
- }),
- (e.prototype._onRecoveredEarlyEof = function () {
- var e = this;
- Promise.resolve().then(function () {
- e._emitter.emit(v.Z.RECOVERED_EARLY_EOF);
- });
- }),
- (e.prototype._onMediaInfo = function (e) {
- var t = this;
- Promise.resolve().then(function () {
- t._emitter.emit(v.Z.MEDIA_INFO, e);
- });
- }),
- (e.prototype._onMetaDataArrived = function (e) {
- var t = this;
- Promise.resolve().then(function () {
- t._emitter.emit(v.Z.METADATA_ARRIVED, e);
- });
- }),
- (e.prototype._onScriptDataArrived = function (e) {
- var t = this;
- Promise.resolve().then(function () {
- t._emitter.emit(v.Z.SCRIPTDATA_ARRIVED, e);
- });
- }),
- (e.prototype._onStatisticsInfo = function (e) {
- var t = this;
- Promise.resolve().then(function () {
- t._emitter.emit(v.Z.STATISTICS_INFO, e);
- });
- }),
- (e.prototype._onIOError = function (e, t) {
- var i = this;
- Promise.resolve().then(function () {
- i._emitter.emit(v.Z.IO_ERROR, e, t);
- });
- }),
- (e.prototype._onDemuxError = function (e, t) {
- var i = this;
- Promise.resolve().then(function () {
- i._emitter.emit(v.Z.DEMUX_ERROR, e, t);
- });
- }),
- (e.prototype._onRecommendSeekpoint = function (e) {
- var t = this;
- Promise.resolve().then(function () {
- t._emitter.emit(v.Z.RECOMMEND_SEEKPOINT, e);
- });
- }),
- (e.prototype._onLoggingConfigChanged = function (e) {
- this._worker &&
- this._worker.postMessage({
- cmd: 'logging_config',
- param: e,
- });
- }),
- (e.prototype._onWorkerMessage = function (e) {
- var t = e.data,
- i = t.data;
- if ('destroyed' === t.msg || this._workerDestroying)
- return (
- (this._workerDestroying = !1),
- this._worker.terminate(),
- void (this._worker = null)
- );
- switch (t.msg) {
- case v.Z.INIT_SEGMENT:
- case v.Z.MEDIA_SEGMENT:
- this._emitter.emit(t.msg, i.type, i.data);
- break;
- case v.Z.LOADING_COMPLETE:
- case v.Z.RECOVERED_EARLY_EOF:
- this._emitter.emit(t.msg);
- break;
- case v.Z.MEDIA_INFO:
- Object.setPrototypeOf(i, y.Z.prototype),
- this._emitter.emit(t.msg, i);
- break;
- case v.Z.METADATA_ARRIVED:
- case v.Z.SCRIPTDATA_ARRIVED:
- case v.Z.STATISTICS_INFO:
- this._emitter.emit(t.msg, i);
- break;
- case v.Z.IO_ERROR:
- case v.Z.DEMUX_ERROR:
- this._emitter.emit(t.msg, i.type, i.info);
- break;
- case v.Z.RECOMMEND_SEEKPOINT:
- this._emitter.emit(t.msg, i);
- break;
- case 'logcat_callback':
- d.Z.emitter.emit('log', i.type, i.logcat);
- }
- }),
- e
- );
- })(),
- E = {
- ERROR: 'error',
- SOURCE_OPEN: 'source_open',
- UPDATE_END: 'update_end',
- BUFFER_FULL: 'buffer_full',
- },
- S = i(51),
- A = i(29),
- L = (function () {
- function e(e) {
- (this.TAG = 'MSEController'),
- (this._config = e),
- (this._emitter = new (l())()),
- this._config.isLive &&
- null == this._config.autoCleanupSourceBuffer &&
- (this._config.autoCleanupSourceBuffer = !0),
- (this.e = {
- onSourceOpen: this._onSourceOpen.bind(this),
- onSourceEnded: this._onSourceEnded.bind(this),
- onSourceClose: this._onSourceClose.bind(this),
- onSourceBufferError: this._onSourceBufferError.bind(this),
- onSourceBufferUpdateEnd:
- this._onSourceBufferUpdateEnd.bind(this),
- }),
- (this._mediaSource = null),
- (this._mediaSourceObjectURL = null),
- (this._mediaElement = null),
- (this._isBufferFull = !1),
- (this._hasPendingEos = !1),
- (this._requireSetMediaDuration = !1),
- (this._pendingMediaDuration = 0),
- (this._pendingSourceBufferInit = []),
- (this._mimeTypes = { video: null, audio: null }),
- (this._sourceBuffers = { video: null, audio: null }),
- (this._lastInitSegments = { video: null, audio: null }),
- (this._pendingSegments = { video: [], audio: [] }),
- (this._pendingRemoveRanges = { video: [], audio: [] }),
- (this._idrList = new S.Vn());
- }
- return (
- (e.prototype.destroy = function () {
- (this._mediaElement || this._mediaSource) &&
- this.detachMediaElement(),
- (this.e = null),
- this._emitter.removeAllListeners(),
- (this._emitter = null);
- }),
- (e.prototype.on = function (e, t) {
- this._emitter.addListener(e, t);
- }),
- (e.prototype.off = function (e, t) {
- this._emitter.removeListener(e, t);
- }),
- (e.prototype.attachMediaElement = function (e) {
- if (this._mediaSource)
- throw new A.rT(
- 'MediaSource has been attached to an HTMLMediaElement!'
- );
- var t = (this._mediaSource = new window.MediaSource());
- t.addEventListener('sourceopen', this.e.onSourceOpen),
- t.addEventListener('sourceended', this.e.onSourceEnded),
- t.addEventListener('sourceclose', this.e.onSourceClose),
- (this._mediaElement = e),
- (this._mediaSourceObjectURL = window.URL.createObjectURL(
- this._mediaSource
- )),
- (e.src = this._mediaSourceObjectURL);
- }),
- (e.prototype.detachMediaElement = function () {
- if (this._mediaSource) {
- var e = this._mediaSource;
- for (var t in this._sourceBuffers) {
- var i = this._pendingSegments[t];
- i.splice(0, i.length),
- (this._pendingSegments[t] = null),
- (this._pendingRemoveRanges[t] = null),
- (this._lastInitSegments[t] = null);
- var n = this._sourceBuffers[t];
- if (n) {
- if ('closed' !== e.readyState) {
- try {
- e.removeSourceBuffer(n);
- } catch (e) {
- d.Z.e(this.TAG, e.message);
- }
- n.removeEventListener(
- 'error',
- this.e.onSourceBufferError
- ),
- n.removeEventListener(
- 'updateend',
- this.e.onSourceBufferUpdateEnd
- );
- }
- (this._mimeTypes[t] = null),
- (this._sourceBuffers[t] = null);
- }
- }
- if ('open' === e.readyState)
- try {
- e.endOfStream();
- } catch (e) {
- d.Z.e(this.TAG, e.message);
- }
- e.removeEventListener('sourceopen', this.e.onSourceOpen),
- e.removeEventListener(
- 'sourceended',
- this.e.onSourceEnded
- ),
- e.removeEventListener(
- 'sourceclose',
- this.e.onSourceClose
- ),
- (this._pendingSourceBufferInit = []),
- (this._isBufferFull = !1),
- this._idrList.clear(),
- (this._mediaSource = null);
- }
- this._mediaElement &&
- ((this._mediaElement.src = ''),
- this._mediaElement.removeAttribute('src'),
- (this._mediaElement = null)),
- this._mediaSourceObjectURL &&
- (window.URL.revokeObjectURL(this._mediaSourceObjectURL),
- (this._mediaSourceObjectURL = null));
- }),
- (e.prototype.appendInitSegment = function (e, t) {
- if (
- !this._mediaSource ||
- 'open' !== this._mediaSource.readyState
- )
- return (
- this._pendingSourceBufferInit.push(e),
- void this._pendingSegments[e.type].push(e)
- );
- var i = e,
- n = '' + i.container;
- i.codec && i.codec.length > 0 && (n += ';codecs=' + i.codec);
- var r = !1;
- if (
- (d.Z.v(
- this.TAG,
- 'Received Initialization Segment, mimeType: ' + n
- ),
- (this._lastInitSegments[i.type] = i),
- n !== this._mimeTypes[i.type])
- ) {
- if (this._mimeTypes[i.type])
- d.Z.v(
- this.TAG,
- 'Notice: ' +
- i.type +
- ' mimeType changed, origin: ' +
- this._mimeTypes[i.type] +
- ', target: ' +
- n
- );
- else {
- r = !0;
- try {
- var s = (this._sourceBuffers[i.type] =
- this._mediaSource.addSourceBuffer(n));
- s.addEventListener('error', this.e.onSourceBufferError),
- s.addEventListener(
- 'updateend',
- this.e.onSourceBufferUpdateEnd
- );
- } catch (e) {
- return (
- d.Z.e(this.TAG, e.message),
- void this._emitter.emit(E.ERROR, {
- code: e.code,
- msg: e.message,
- })
- );
- }
- }
- this._mimeTypes[i.type] = n;
- }
- t || this._pendingSegments[i.type].push(i),
- r ||
- (this._sourceBuffers[i.type] &&
- !this._sourceBuffers[i.type].updating &&
- this._doAppendSegments()),
- c.Z.safari &&
- 'audio/mpeg' === i.container &&
- i.mediaDuration > 0 &&
- ((this._requireSetMediaDuration = !0),
- (this._pendingMediaDuration = i.mediaDuration / 1e3),
- this._updateMediaSourceDuration());
- }),
- (e.prototype.appendMediaSegment = function (e) {
- var t = e;
- this._pendingSegments[t.type].push(t),
- this._config.autoCleanupSourceBuffer &&
- this._needCleanupSourceBuffer() &&
- this._doCleanupSourceBuffer();
- var i = this._sourceBuffers[t.type];
- !i ||
- i.updating ||
- this._hasPendingRemoveRanges() ||
- this._doAppendSegments();
- }),
- (e.prototype.seek = function (e) {
- for (var t in this._sourceBuffers)
- if (this._sourceBuffers[t]) {
- var i = this._sourceBuffers[t];
- if ('open' === this._mediaSource.readyState)
- try {
- i.abort();
- } catch (e) {
- d.Z.e(this.TAG, e.message);
- }
- this._idrList.clear();
- var n = this._pendingSegments[t];
- if (
- (n.splice(0, n.length),
- 'closed' !== this._mediaSource.readyState)
- ) {
- for (var r = 0; r < i.buffered.length; r++) {
- var s = i.buffered.start(r),
- o = i.buffered.end(r);
- this._pendingRemoveRanges[t].push({
- start: s,
- end: o,
- });
- }
- if (
- (i.updating || this._doRemoveRanges(), c.Z.safari)
- ) {
- var a = this._lastInitSegments[t];
- a &&
- (this._pendingSegments[t].push(a),
- i.updating || this._doAppendSegments());
- }
- }
- }
- }),
- (e.prototype.endOfStream = function () {
- var e = this._mediaSource,
- t = this._sourceBuffers;
- e && 'open' === e.readyState
- ? (t.video && t.video.updating) ||
- (t.audio && t.audio.updating)
- ? (this._hasPendingEos = !0)
- : ((this._hasPendingEos = !1), e.endOfStream())
- : e &&
- 'closed' === e.readyState &&
- this._hasPendingSegments() &&
- (this._hasPendingEos = !0);
- }),
- (e.prototype.getNearestKeyframe = function (e) {
- return this._idrList.getLastSyncPointBeforeDts(e);
- }),
- (e.prototype._needCleanupSourceBuffer = function () {
- if (!this._config.autoCleanupSourceBuffer) return !1;
- var e = this._mediaElement.currentTime;
- for (var t in this._sourceBuffers) {
- var i = this._sourceBuffers[t];
- if (i) {
- var n = i.buffered;
- if (
- n.length >= 1 &&
- e - n.start(0) >=
- this._config.autoCleanupMaxBackwardDuration
- )
- return !0;
- }
- }
- return !1;
- }),
- (e.prototype._doCleanupSourceBuffer = function () {
- var e = this._mediaElement.currentTime;
- for (var t in this._sourceBuffers) {
- var i = this._sourceBuffers[t];
- if (i) {
- for (
- var n = i.buffered, r = !1, s = 0;
- s < n.length;
- s++
- ) {
- var o = n.start(s),
- a = n.end(s);
- if (o <= e && e < a + 3) {
- if (
- e - o >=
- this._config.autoCleanupMaxBackwardDuration
- ) {
- r = !0;
- var h =
- e - this._config.autoCleanupMinBackwardDuration;
- this._pendingRemoveRanges[t].push({
- start: o,
- end: h,
- });
- }
- } else
- a < e &&
- ((r = !0),
- this._pendingRemoveRanges[t].push({
- start: o,
- end: a,
- }));
- }
- r && !i.updating && this._doRemoveRanges();
- }
- }
- }),
- (e.prototype._updateMediaSourceDuration = function () {
- var e = this._sourceBuffers;
- if (
- 0 !== this._mediaElement.readyState &&
- 'open' === this._mediaSource.readyState &&
- !(
- (e.video && e.video.updating) ||
- (e.audio && e.audio.updating)
- )
- ) {
- var t = this._mediaSource.duration,
- i = this._pendingMediaDuration;
- i > 0 &&
- (isNaN(t) || i > t) &&
- (d.Z.v(
- this.TAG,
- 'Update MediaSource duration from ' + t + ' to ' + i
- ),
- (this._mediaSource.duration = i)),
- (this._requireSetMediaDuration = !1),
- (this._pendingMediaDuration = 0);
- }
- }),
- (e.prototype._doRemoveRanges = function () {
- for (var e in this._pendingRemoveRanges)
- if (
- this._sourceBuffers[e] &&
- !this._sourceBuffers[e].updating
- )
- for (
- var t = this._sourceBuffers[e],
- i = this._pendingRemoveRanges[e];
- i.length && !t.updating;
- ) {
- var n = i.shift();
- t.remove(n.start, n.end);
- }
- }),
- (e.prototype._doAppendSegments = function () {
- var e = this._pendingSegments;
- for (var t in e)
- if (
- this._sourceBuffers[t] &&
- !this._sourceBuffers[t].updating &&
- e[t].length > 0
- ) {
- var i = e[t].shift();
- if (i.timestampOffset) {
- var n = this._sourceBuffers[t].timestampOffset,
- r = i.timestampOffset / 1e3;
- Math.abs(n - r) > 0.1 &&
- (d.Z.v(
- this.TAG,
- 'Update MPEG audio timestampOffset from ' +
- n +
- ' to ' +
- r
- ),
- (this._sourceBuffers[t].timestampOffset = r)),
- delete i.timestampOffset;
- }
- if (!i.data || 0 === i.data.byteLength) continue;
- try {
- this._sourceBuffers[t].appendBuffer(i.data),
- (this._isBufferFull = !1),
- 'video' === t &&
- i.hasOwnProperty('info') &&
- this._idrList.appendArray(i.info.syncPoints);
- } catch (e) {
- this._pendingSegments[t].unshift(i),
- 22 === e.code
- ? (this._isBufferFull ||
- this._emitter.emit(E.BUFFER_FULL),
- (this._isBufferFull = !0))
- : (d.Z.e(this.TAG, e.message),
- this._emitter.emit(E.ERROR, {
- code: e.code,
- msg: e.message,
- }));
- }
- }
- }),
- (e.prototype._onSourceOpen = function () {
- if (
- (d.Z.v(this.TAG, 'MediaSource onSourceOpen'),
- this._mediaSource.removeEventListener(
- 'sourceopen',
- this.e.onSourceOpen
- ),
- this._pendingSourceBufferInit.length > 0)
- )
- for (var e = this._pendingSourceBufferInit; e.length; ) {
- var t = e.shift();
- this.appendInitSegment(t, !0);
- }
- this._hasPendingSegments() && this._doAppendSegments(),
- this._emitter.emit(E.SOURCE_OPEN);
- }),
- (e.prototype._onSourceEnded = function () {
- d.Z.v(this.TAG, 'MediaSource onSourceEnded');
- }),
- (e.prototype._onSourceClose = function () {
- d.Z.v(this.TAG, 'MediaSource onSourceClose'),
- this._mediaSource &&
- null != this.e &&
- (this._mediaSource.removeEventListener(
- 'sourceopen',
- this.e.onSourceOpen
- ),
- this._mediaSource.removeEventListener(
- 'sourceended',
- this.e.onSourceEnded
- ),
- this._mediaSource.removeEventListener(
- 'sourceclose',
- this.e.onSourceClose
- ));
- }),
- (e.prototype._hasPendingSegments = function () {
- var e = this._pendingSegments;
- return e.video.length > 0 || e.audio.length > 0;
- }),
- (e.prototype._hasPendingRemoveRanges = function () {
- var e = this._pendingRemoveRanges;
- return e.video.length > 0 || e.audio.length > 0;
- }),
- (e.prototype._onSourceBufferUpdateEnd = function () {
- this._requireSetMediaDuration
- ? this._updateMediaSourceDuration()
- : this._hasPendingRemoveRanges()
- ? this._doRemoveRanges()
- : this._hasPendingSegments()
- ? this._doAppendSegments()
- : this._hasPendingEos && this.endOfStream(),
- this._emitter.emit(E.UPDATE_END);
- }),
- (e.prototype._onSourceBufferError = function (e) {
- d.Z.e(this.TAG, 'SourceBuffer Error: ' + e);
- }),
- e
- );
- })(),
- R = i(600),
- w = {
- NETWORK_ERROR: 'NetworkError',
- MEDIA_ERROR: 'MediaError',
- OTHER_ERROR: 'OtherError',
- },
- O = {
- NETWORK_EXCEPTION: h.nm.EXCEPTION,
- NETWORK_STATUS_CODE_INVALID: h.nm.HTTP_STATUS_CODE_INVALID,
- NETWORK_TIMEOUT: h.nm.CONNECTING_TIMEOUT,
- NETWORK_UNRECOVERABLE_EARLY_EOF: h.nm.UNRECOVERABLE_EARLY_EOF,
- MEDIA_MSE_ERROR: 'MediaMSEError',
- MEDIA_FORMAT_ERROR: R.Z.FORMAT_ERROR,
- MEDIA_FORMAT_UNSUPPORTED: R.Z.FORMAT_UNSUPPORTED,
- MEDIA_CODEC_UNSUPPORTED: R.Z.CODEC_UNSUPPORTED,
- },
- T = (function () {
- function e(e, t) {
- if (
- ((this.TAG = 'FlvPlayer'),
- (this._type = 'FlvPlayer'),
- (this._emitter = new (l())()),
- (this._config = o()),
- 'object' == typeof t && Object.assign(this._config, t),
- 'flv' !== e.type.toLowerCase())
- )
- throw new A.OC(
- 'FlvPlayer requires an flv MediaDataSource input!'
- );
- !0 === e.isLive && (this._config.isLive = !0),
- (this.e = {
- onvLoadedMetadata: this._onvLoadedMetadata.bind(this),
- onvSeeking: this._onvSeeking.bind(this),
- onvCanPlay: this._onvCanPlay.bind(this),
- onvStalled: this._onvStalled.bind(this),
- onvProgress: this._onvProgress.bind(this),
- }),
- self.performance && self.performance.now
- ? (this._now = self.performance.now.bind(self.performance))
- : (this._now = Date.now),
- (this._pendingSeekTime = null),
- (this._requestSetTime = !1),
- (this._seekpointRecord = null),
- (this._progressChecker = null),
- (this._mediaDataSource = e),
- (this._mediaElement = null),
- (this._msectl = null),
- (this._transmuxer = null),
- (this._mseSourceOpened = !1),
- (this._hasPendingLoad = !1),
- (this._receivedCanPlay = !1),
- (this._mediaInfo = null),
- (this._statisticsInfo = null);
- var i =
- c.Z.chrome &&
- (c.Z.version.major < 50 ||
- (50 === c.Z.version.major && c.Z.version.build < 2661));
- (this._alwaysSeekKeyframe = !!(i || c.Z.msedge || c.Z.msie)),
- this._alwaysSeekKeyframe && (this._config.accurateSeek = !1);
- }
- return (
- (e.prototype.destroy = function () {
- null != this._progressChecker &&
- (window.clearInterval(this._progressChecker),
- (this._progressChecker = null)),
- this._transmuxer && this.unload(),
- this._mediaElement && this.detachMediaElement(),
- (this.e = null),
- (this._mediaDataSource = null),
- this._emitter.removeAllListeners(),
- (this._emitter = null);
- }),
- (e.prototype.on = function (e, t) {
- var i = this;
- e === f.MEDIA_INFO
- ? null != this._mediaInfo &&
- Promise.resolve().then(function () {
- i._emitter.emit(f.MEDIA_INFO, i.mediaInfo);
- })
- : e === f.STATISTICS_INFO &&
- null != this._statisticsInfo &&
- Promise.resolve().then(function () {
- i._emitter.emit(f.STATISTICS_INFO, i.statisticsInfo);
- }),
- this._emitter.addListener(e, t);
- }),
- (e.prototype.off = function (e, t) {
- this._emitter.removeListener(e, t);
- }),
- (e.prototype.attachMediaElement = function (e) {
- var t = this;
- if (
- ((this._mediaElement = e),
- e.addEventListener(
- 'loadedmetadata',
- this.e.onvLoadedMetadata
- ),
- e.addEventListener('seeking', this.e.onvSeeking),
- e.addEventListener('canplay', this.e.onvCanPlay),
- e.addEventListener('stalled', this.e.onvStalled),
- e.addEventListener('progress', this.e.onvProgress),
- (this._msectl = new L(this._config)),
- this._msectl.on(
- E.UPDATE_END,
- this._onmseUpdateEnd.bind(this)
- ),
- this._msectl.on(
- E.BUFFER_FULL,
- this._onmseBufferFull.bind(this)
- ),
- this._msectl.on(E.SOURCE_OPEN, function () {
- (t._mseSourceOpened = !0),
- t._hasPendingLoad &&
- ((t._hasPendingLoad = !1), t.load());
- }),
- this._msectl.on(E.ERROR, function (e) {
- t._emitter.emit(
- f.ERROR,
- w.MEDIA_ERROR,
- O.MEDIA_MSE_ERROR,
- e
- );
- }),
- this._msectl.attachMediaElement(e),
- null != this._pendingSeekTime)
- )
- try {
- (e.currentTime = this._pendingSeekTime),
- (this._pendingSeekTime = null);
- } catch (e) {}
- }),
- (e.prototype.detachMediaElement = function () {
- this._mediaElement &&
- (this._msectl.detachMediaElement(),
- this._mediaElement.removeEventListener(
- 'loadedmetadata',
- this.e.onvLoadedMetadata
- ),
- this._mediaElement.removeEventListener(
- 'seeking',
- this.e.onvSeeking
- ),
- this._mediaElement.removeEventListener(
- 'canplay',
- this.e.onvCanPlay
- ),
- this._mediaElement.removeEventListener(
- 'stalled',
- this.e.onvStalled
- ),
- this._mediaElement.removeEventListener(
- 'progress',
- this.e.onvProgress
- ),
- (this._mediaElement = null)),
- this._msectl &&
- (this._msectl.destroy(), (this._msectl = null));
- }),
- (e.prototype.load = function () {
- var e = this;
- if (!this._mediaElement)
- throw new A.rT(
- 'HTMLMediaElement must be attached before load()!'
- );
- if (this._transmuxer)
- throw new A.rT(
- 'FlvPlayer.load() has been called, please call unload() first!'
- );
- this._hasPendingLoad ||
- (this._config.deferLoadAfterSourceOpen &&
- !1 === this._mseSourceOpened
- ? (this._hasPendingLoad = !0)
- : (this._mediaElement.readyState > 0 &&
- ((this._requestSetTime = !0),
- (this._mediaElement.currentTime = 0)),
- (this._transmuxer = new b(
- this._mediaDataSource,
- this._config
- )),
- this._transmuxer.on(v.Z.INIT_SEGMENT, function (t, i) {
- e._msectl.appendInitSegment(i);
- }),
- this._transmuxer.on(v.Z.MEDIA_SEGMENT, function (t, i) {
- if (
- (e._msectl.appendMediaSegment(i),
- e._config.lazyLoad && !e._config.isLive)
- ) {
- var n = e._mediaElement.currentTime;
- i.info.endDts >=
- 1e3 * (n + e._config.lazyLoadMaxDuration) &&
- null == e._progressChecker &&
- (d.Z.v(
- e.TAG,
- 'Maximum buffering duration exceeded, suspend transmuxing task'
- ),
- e._suspendTransmuxer());
- }
- }),
- this._transmuxer.on(v.Z.LOADING_COMPLETE, function () {
- e._msectl.endOfStream(),
- e._emitter.emit(f.LOADING_COMPLETE);
- }),
- this._transmuxer.on(
- v.Z.RECOVERED_EARLY_EOF,
- function () {
- e._emitter.emit(f.RECOVERED_EARLY_EOF);
- }
- ),
- this._transmuxer.on(v.Z.IO_ERROR, function (t, i) {
- e._emitter.emit(f.ERROR, w.NETWORK_ERROR, t, i);
- }),
- this._transmuxer.on(v.Z.DEMUX_ERROR, function (t, i) {
- e._emitter.emit(f.ERROR, w.MEDIA_ERROR, t, {
- code: -1,
- msg: i,
- });
- }),
- this._transmuxer.on(v.Z.MEDIA_INFO, function (t) {
- (e._mediaInfo = t),
- e._emitter.emit(f.MEDIA_INFO, Object.assign({}, t));
- }),
- this._transmuxer.on(v.Z.METADATA_ARRIVED, function (t) {
- e._emitter.emit(f.METADATA_ARRIVED, t);
- }),
- this._transmuxer.on(
- v.Z.SCRIPTDATA_ARRIVED,
- function (t) {
- e._emitter.emit(f.SCRIPTDATA_ARRIVED, t);
- }
- ),
- this._transmuxer.on(v.Z.STATISTICS_INFO, function (t) {
- (e._statisticsInfo = e._fillStatisticsInfo(t)),
- e._emitter.emit(
- f.STATISTICS_INFO,
- Object.assign({}, e._statisticsInfo)
- );
- }),
- this._transmuxer.on(
- v.Z.RECOMMEND_SEEKPOINT,
- function (t) {
- e._mediaElement &&
- !e._config.accurateSeek &&
- ((e._requestSetTime = !0),
- (e._mediaElement.currentTime = t / 1e3));
- }
- ),
- this._transmuxer.open()));
- }),
- (e.prototype.unload = function () {
- this._mediaElement && this._mediaElement.pause(),
- this._msectl && this._msectl.seek(0),
- this._transmuxer &&
- (this._transmuxer.close(),
- this._transmuxer.destroy(),
- (this._transmuxer = null));
- }),
- (e.prototype.play = function () {
- return this._mediaElement.play();
- }),
- (e.prototype.pause = function () {
- this._mediaElement.pause();
- }),
- Object.defineProperty(e.prototype, 'type', {
- get: function () {
- return this._type;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'buffered', {
- get: function () {
- return this._mediaElement.buffered;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'duration', {
- get: function () {
- return this._mediaElement.duration;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'volume', {
- get: function () {
- return this._mediaElement.volume;
- },
- set: function (e) {
- this._mediaElement.volume = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'muted', {
- get: function () {
- return this._mediaElement.muted;
- },
- set: function (e) {
- this._mediaElement.muted = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'currentTime', {
- get: function () {
- return this._mediaElement
- ? this._mediaElement.currentTime
- : 0;
- },
- set: function (e) {
- this._mediaElement
- ? this._internalSeek(e)
- : (this._pendingSeekTime = e);
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'mediaInfo', {
- get: function () {
- return Object.assign({}, this._mediaInfo);
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'statisticsInfo', {
- get: function () {
- return (
- null == this._statisticsInfo &&
- (this._statisticsInfo = {}),
- (this._statisticsInfo = this._fillStatisticsInfo(
- this._statisticsInfo
- )),
- Object.assign({}, this._statisticsInfo)
- );
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.prototype._fillStatisticsInfo = function (e) {
- if (
- ((e.playerType = this._type),
- !(this._mediaElement instanceof HTMLVideoElement))
- )
- return e;
- var t = !0,
- i = 0,
- n = 0;
- if (this._mediaElement.getVideoPlaybackQuality) {
- var r = this._mediaElement.getVideoPlaybackQuality();
- (i = r.totalVideoFrames), (n = r.droppedVideoFrames);
- } else
- null != this._mediaElement.webkitDecodedFrameCount
- ? ((i = this._mediaElement.webkitDecodedFrameCount),
- (n = this._mediaElement.webkitDroppedFrameCount))
- : (t = !1);
- return t && ((e.decodedFrames = i), (e.droppedFrames = n)), e;
- }),
- (e.prototype._onmseUpdateEnd = function () {
- if (this._config.lazyLoad && !this._config.isLive) {
- for (
- var e = this._mediaElement.buffered,
- t = this._mediaElement.currentTime,
- i = 0,
- n = 0;
- n < e.length;
- n++
- ) {
- var r = e.start(n),
- s = e.end(n);
- if (r <= t && t < s) {
- r, (i = s);
- break;
- }
- }
- i >= t + this._config.lazyLoadMaxDuration &&
- null == this._progressChecker &&
- (d.Z.v(
- this.TAG,
- 'Maximum buffering duration exceeded, suspend transmuxing task'
- ),
- this._suspendTransmuxer());
- }
- }),
- (e.prototype._onmseBufferFull = function () {
- d.Z.v(
- this.TAG,
- 'MSE SourceBuffer is full, suspend transmuxing task'
- ),
- null == this._progressChecker && this._suspendTransmuxer();
- }),
- (e.prototype._suspendTransmuxer = function () {
- this._transmuxer &&
- (this._transmuxer.pause(),
- null == this._progressChecker &&
- (this._progressChecker = window.setInterval(
- this._checkProgressAndResume.bind(this),
- 1e3
- )));
- }),
- (e.prototype._checkProgressAndResume = function () {
- for (
- var e = this._mediaElement.currentTime,
- t = this._mediaElement.buffered,
- i = !1,
- n = 0;
- n < t.length;
- n++
- ) {
- var r = t.start(n),
- s = t.end(n);
- if (e >= r && e < s) {
- e >= s - this._config.lazyLoadRecoverDuration && (i = !0);
- break;
- }
- }
- i &&
- (window.clearInterval(this._progressChecker),
- (this._progressChecker = null),
- i &&
- (d.Z.v(this.TAG, 'Continue loading from paused position'),
- this._transmuxer.resume()));
- }),
- (e.prototype._isTimepointBuffered = function (e) {
- for (
- var t = this._mediaElement.buffered, i = 0;
- i < t.length;
- i++
- ) {
- var n = t.start(i),
- r = t.end(i);
- if (e >= n && e < r) return !0;
- }
- return !1;
- }),
- (e.prototype._internalSeek = function (e) {
- var t = this._isTimepointBuffered(e),
- i = !1,
- n = 0;
- if (e < 1 && this._mediaElement.buffered.length > 0) {
- var r = this._mediaElement.buffered.start(0);
- ((r < 1 && e < r) || c.Z.safari) &&
- ((i = !0), (n = c.Z.safari ? 0.1 : r));
- }
- if (i)
- (this._requestSetTime = !0),
- (this._mediaElement.currentTime = n);
- else if (t) {
- if (this._alwaysSeekKeyframe) {
- var s = this._msectl.getNearestKeyframe(
- Math.floor(1e3 * e)
- );
- (this._requestSetTime = !0),
- (this._mediaElement.currentTime =
- null != s ? s.dts / 1e3 : e);
- } else
- (this._requestSetTime = !0),
- (this._mediaElement.currentTime = e);
- null != this._progressChecker &&
- this._checkProgressAndResume();
- } else
- null != this._progressChecker &&
- (window.clearInterval(this._progressChecker),
- (this._progressChecker = null)),
- this._msectl.seek(e),
- this._transmuxer.seek(Math.floor(1e3 * e)),
- this._config.accurateSeek &&
- ((this._requestSetTime = !0),
- (this._mediaElement.currentTime = e));
- }),
- (e.prototype._checkAndApplyUnbufferedSeekpoint = function () {
- if (this._seekpointRecord)
- if (this._seekpointRecord.recordTime <= this._now() - 100) {
- var e = this._mediaElement.currentTime;
- (this._seekpointRecord = null),
- this._isTimepointBuffered(e) ||
- (null != this._progressChecker &&
- (window.clearTimeout(this._progressChecker),
- (this._progressChecker = null)),
- this._msectl.seek(e),
- this._transmuxer.seek(Math.floor(1e3 * e)),
- this._config.accurateSeek &&
- ((this._requestSetTime = !0),
- (this._mediaElement.currentTime = e)));
- } else
- window.setTimeout(
- this._checkAndApplyUnbufferedSeekpoint.bind(this),
- 50
- );
- }),
- (e.prototype._checkAndResumeStuckPlayback = function (e) {
- var t = this._mediaElement;
- if (e || !this._receivedCanPlay || t.readyState < 2) {
- var i = t.buffered;
- i.length > 0 &&
- t.currentTime < i.start(0) &&
- (d.Z.w(
- this.TAG,
- 'Playback seems stuck at ' +
- t.currentTime +
- ', seek to ' +
- i.start(0)
- ),
- (this._requestSetTime = !0),
- (this._mediaElement.currentTime = i.start(0)),
- this._mediaElement.removeEventListener(
- 'progress',
- this.e.onvProgress
- ));
- } else
- this._mediaElement.removeEventListener(
- 'progress',
- this.e.onvProgress
- );
- }),
- (e.prototype._onvLoadedMetadata = function (e) {
- null != this._pendingSeekTime &&
- ((this._mediaElement.currentTime = this._pendingSeekTime),
- (this._pendingSeekTime = null));
- }),
- (e.prototype._onvSeeking = function (e) {
- var t = this._mediaElement.currentTime,
- i = this._mediaElement.buffered;
- if (this._requestSetTime) this._requestSetTime = !1;
- else {
- if (t < 1 && i.length > 0) {
- var n = i.start(0);
- if ((n < 1 && t < n) || c.Z.safari)
- return (
- (this._requestSetTime = !0),
- void (this._mediaElement.currentTime = c.Z.safari
- ? 0.1
- : n)
- );
- }
- if (this._isTimepointBuffered(t)) {
- if (this._alwaysSeekKeyframe) {
- var r = this._msectl.getNearestKeyframe(
- Math.floor(1e3 * t)
- );
- null != r &&
- ((this._requestSetTime = !0),
- (this._mediaElement.currentTime = r.dts / 1e3));
- }
- null != this._progressChecker &&
- this._checkProgressAndResume();
- } else
- (this._seekpointRecord = {
- seekPoint: t,
- recordTime: this._now(),
- }),
- window.setTimeout(
- this._checkAndApplyUnbufferedSeekpoint.bind(this),
- 50
- );
- }
- }),
- (e.prototype._onvCanPlay = function (e) {
- (this._receivedCanPlay = !0),
- this._mediaElement.removeEventListener(
- 'canplay',
- this.e.onvCanPlay
- );
- }),
- (e.prototype._onvStalled = function (e) {
- this._checkAndResumeStuckPlayback(!0);
- }),
- (e.prototype._onvProgress = function (e) {
- this._checkAndResumeStuckPlayback();
- }),
- e
- );
- })(),
- C = (function () {
- function e(e, t) {
- if (
- ((this.TAG = 'NativePlayer'),
- (this._type = 'NativePlayer'),
- (this._emitter = new (l())()),
- (this._config = o()),
- 'object' == typeof t && Object.assign(this._config, t),
- 'flv' === e.type.toLowerCase())
- )
- throw new A.OC(
- "NativePlayer does't support flv MediaDataSource input!"
- );
- if (e.hasOwnProperty('segments'))
- throw new A.OC(
- 'NativePlayer(' +
- e.type +
- ") doesn't support multipart playback!"
- );
- (this.e = {
- onvLoadedMetadata: this._onvLoadedMetadata.bind(this),
- }),
- (this._pendingSeekTime = null),
- (this._statisticsReporter = null),
- (this._mediaDataSource = e),
- (this._mediaElement = null);
- }
- return (
- (e.prototype.destroy = function () {
- this._mediaElement &&
- (this.unload(), this.detachMediaElement()),
- (this.e = null),
- (this._mediaDataSource = null),
- this._emitter.removeAllListeners(),
- (this._emitter = null);
- }),
- (e.prototype.on = function (e, t) {
- var i = this;
- e === f.MEDIA_INFO
- ? null != this._mediaElement &&
- 0 !== this._mediaElement.readyState &&
- Promise.resolve().then(function () {
- i._emitter.emit(f.MEDIA_INFO, i.mediaInfo);
- })
- : e === f.STATISTICS_INFO &&
- null != this._mediaElement &&
- 0 !== this._mediaElement.readyState &&
- Promise.resolve().then(function () {
- i._emitter.emit(f.STATISTICS_INFO, i.statisticsInfo);
- }),
- this._emitter.addListener(e, t);
- }),
- (e.prototype.off = function (e, t) {
- this._emitter.removeListener(e, t);
- }),
- (e.prototype.attachMediaElement = function (e) {
- if (
- ((this._mediaElement = e),
- e.addEventListener(
- 'loadedmetadata',
- this.e.onvLoadedMetadata
- ),
- null != this._pendingSeekTime)
- )
- try {
- (e.currentTime = this._pendingSeekTime),
- (this._pendingSeekTime = null);
- } catch (e) {}
- }),
- (e.prototype.detachMediaElement = function () {
- this._mediaElement &&
- ((this._mediaElement.src = ''),
- this._mediaElement.removeAttribute('src'),
- this._mediaElement.removeEventListener(
- 'loadedmetadata',
- this.e.onvLoadedMetadata
- ),
- (this._mediaElement = null)),
- null != this._statisticsReporter &&
- (window.clearInterval(this._statisticsReporter),
- (this._statisticsReporter = null));
- }),
- (e.prototype.load = function () {
- if (!this._mediaElement)
- throw new A.rT(
- 'HTMLMediaElement must be attached before load()!'
- );
- (this._mediaElement.src = this._mediaDataSource.url),
- this._mediaElement.readyState > 0 &&
- (this._mediaElement.currentTime = 0),
- (this._mediaElement.preload = 'auto'),
- this._mediaElement.load(),
- (this._statisticsReporter = window.setInterval(
- this._reportStatisticsInfo.bind(this),
- this._config.statisticsInfoReportInterval
- ));
- }),
- (e.prototype.unload = function () {
- this._mediaElement &&
- ((this._mediaElement.src = ''),
- this._mediaElement.removeAttribute('src')),
- null != this._statisticsReporter &&
- (window.clearInterval(this._statisticsReporter),
- (this._statisticsReporter = null));
- }),
- (e.prototype.play = function () {
- return this._mediaElement.play();
- }),
- (e.prototype.pause = function () {
- this._mediaElement.pause();
- }),
- Object.defineProperty(e.prototype, 'type', {
- get: function () {
- return this._type;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'buffered', {
- get: function () {
- return this._mediaElement.buffered;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'duration', {
- get: function () {
- return this._mediaElement.duration;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'volume', {
- get: function () {
- return this._mediaElement.volume;
- },
- set: function (e) {
- this._mediaElement.volume = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'muted', {
- get: function () {
- return this._mediaElement.muted;
- },
- set: function (e) {
- this._mediaElement.muted = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'currentTime', {
- get: function () {
- return this._mediaElement
- ? this._mediaElement.currentTime
- : 0;
- },
- set: function (e) {
- this._mediaElement
- ? (this._mediaElement.currentTime = e)
- : (this._pendingSeekTime = e);
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'mediaInfo', {
- get: function () {
- var e = {
- mimeType:
- (this._mediaElement instanceof HTMLAudioElement
- ? 'audio/'
- : 'video/') + this._mediaDataSource.type,
- };
- return (
- this._mediaElement &&
- ((e.duration = Math.floor(
- 1e3 * this._mediaElement.duration
- )),
- this._mediaElement instanceof HTMLVideoElement &&
- ((e.width = this._mediaElement.videoWidth),
- (e.height = this._mediaElement.videoHeight))),
- e
- );
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'statisticsInfo', {
- get: function () {
- var e = {
- playerType: this._type,
- url: this._mediaDataSource.url,
- };
- if (!(this._mediaElement instanceof HTMLVideoElement))
- return e;
- var t = !0,
- i = 0,
- n = 0;
- if (this._mediaElement.getVideoPlaybackQuality) {
- var r = this._mediaElement.getVideoPlaybackQuality();
- (i = r.totalVideoFrames), (n = r.droppedVideoFrames);
- } else
- null != this._mediaElement.webkitDecodedFrameCount
- ? ((i = this._mediaElement.webkitDecodedFrameCount),
- (n = this._mediaElement.webkitDroppedFrameCount))
- : (t = !1);
- return (
- t && ((e.decodedFrames = i), (e.droppedFrames = n)), e
- );
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.prototype._onvLoadedMetadata = function (e) {
- null != this._pendingSeekTime &&
- ((this._mediaElement.currentTime = this._pendingSeekTime),
- (this._pendingSeekTime = null)),
- this._emitter.emit(f.MEDIA_INFO, this.mediaInfo);
- }),
- (e.prototype._reportStatisticsInfo = function () {
- this._emitter.emit(f.STATISTICS_INFO, this.statisticsInfo);
- }),
- e
- );
- })();
- n.Z.install();
- var k = {
- createPlayer: function (e, t) {
- var i = e;
- if (null == i || 'object' != typeof i)
- throw new A.OC('MediaDataSource must be an javascript object!');
- if (!i.hasOwnProperty('type'))
- throw new A.OC(
- 'MediaDataSource must has type field to indicate video file type!'
- );
- switch (i.type) {
- case 'flv':
- return new T(i, t);
- default:
- return new C(i, t);
- }
- },
- isSupported: function () {
- return a.supportMSEH264Playback();
- },
- getFeatureList: function () {
- return a.getFeatureList();
- },
- };
- (k.BaseLoader = h.fp),
- (k.LoaderStatus = h.GM),
- (k.LoaderErrors = h.nm),
- (k.Events = f),
- (k.ErrorTypes = w),
- (k.ErrorDetails = O),
- (k.FlvPlayer = T),
- (k.NativePlayer = C),
- (k.LoggingControl = m.Z),
- Object.defineProperty(k, 'version', {
- enumerable: !0,
- get: function () {
- return '1.6.2';
- },
- });
- var D = k;
- },
- 324: function (e, t, i) {
- e.exports = i(60).default;
- },
- 191: function (e, t, i) {
- 'use strict';
- i.d(t, {
- Z: function () {
- return y;
- },
- });
- var n,
- r = i(300),
- s = (function () {
- function e() {
- (this._firstCheckpoint = 0),
- (this._lastCheckpoint = 0),
- (this._intervalBytes = 0),
- (this._totalBytes = 0),
- (this._lastSecondBytes = 0),
- self.performance && self.performance.now
- ? (this._now = self.performance.now.bind(self.performance))
- : (this._now = Date.now);
- }
- return (
- (e.prototype.reset = function () {
- (this._firstCheckpoint = this._lastCheckpoint = 0),
- (this._totalBytes = this._intervalBytes = 0),
- (this._lastSecondBytes = 0);
- }),
- (e.prototype.addBytes = function (e) {
- 0 === this._firstCheckpoint
- ? ((this._firstCheckpoint = this._now()),
- (this._lastCheckpoint = this._firstCheckpoint),
- (this._intervalBytes += e),
- (this._totalBytes += e))
- : this._now() - this._lastCheckpoint < 1e3
- ? ((this._intervalBytes += e), (this._totalBytes += e))
- : ((this._lastSecondBytes = this._intervalBytes),
- (this._intervalBytes = e),
- (this._totalBytes += e),
- (this._lastCheckpoint = this._now()));
- }),
- Object.defineProperty(e.prototype, 'currentKBps', {
- get: function () {
- this.addBytes(0);
- var e = (this._now() - this._lastCheckpoint) / 1e3;
- return 0 == e && (e = 1), this._intervalBytes / e / 1024;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'lastSecondKBps', {
- get: function () {
- return (
- this.addBytes(0),
- 0 !== this._lastSecondBytes
- ? this._lastSecondBytes / 1024
- : this._now() - this._lastCheckpoint >= 500
- ? this.currentKBps
- : 0
- );
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'averageKBps', {
- get: function () {
- var e = (this._now() - this._firstCheckpoint) / 1e3;
- return this._totalBytes / e / 1024;
- },
- enumerable: !1,
- configurable: !0,
- }),
- e
- );
- })(),
- o = i(939),
- a = i(538),
- h = i(29),
- u =
- ((n = function (e, t) {
- return (n =
- Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array &&
- function (e, t) {
- e.__proto__ = t;
- }) ||
- function (e, t) {
- for (var i in t)
- Object.prototype.hasOwnProperty.call(t, i) &&
- (e[i] = t[i]);
- })(e, t);
- }),
- function (e, t) {
- if ('function' != typeof t && null !== t)
- throw new TypeError(
- 'Class extends value ' +
- String(t) +
- ' is not a constructor or null'
- );
- function i() {
- this.constructor = e;
- }
- n(e, t),
- (e.prototype =
- null === t
- ? Object.create(t)
- : ((i.prototype = t.prototype), new i()));
- }),
- l = (function (e) {
- function t(t, i) {
- var n = e.call(this, 'fetch-stream-loader') || this;
- return (
- (n.TAG = 'FetchStreamLoader'),
- (n._seekHandler = t),
- (n._config = i),
- (n._needStash = !0),
- (n._requestAbort = !1),
- (n._contentLength = null),
- (n._receivedLength = 0),
- n
- );
- }
- return (
- u(t, e),
- (t.isSupported = function () {
- try {
- var e = a.Z.msedge && a.Z.version.minor >= 15048,
- t = !a.Z.msedge || e;
- return self.fetch && self.ReadableStream && t;
- } catch (e) {
- return !1;
- }
- }),
- (t.prototype.destroy = function () {
- this.isWorking() && this.abort(),
- e.prototype.destroy.call(this);
- }),
- (t.prototype.open = function (e, t) {
- var i = this;
- (this._dataSource = e), (this._range = t);
- var n = e.url;
- this._config.reuseRedirectedURL &&
- null != e.redirectedURL &&
- (n = e.redirectedURL);
- var r = this._seekHandler.getConfig(n, t),
- s = new self.Headers();
- if ('object' == typeof r.headers) {
- var a = r.headers;
- for (var u in a) a.hasOwnProperty(u) && s.append(u, a[u]);
- }
- var l = {
- method: 'GET',
- headers: s,
- mode: 'cors',
- cache: 'default',
- referrerPolicy: 'no-referrer-when-downgrade',
- };
- if ('object' == typeof this._config.headers)
- for (var u in this._config.headers)
- s.append(u, this._config.headers[u]);
- !1 === e.cors && (l.mode = 'same-origin'),
- e.withCredentials && (l.credentials = 'include'),
- e.referrerPolicy && (l.referrerPolicy = e.referrerPolicy),
- self.AbortController &&
- ((this._abortController = new self.AbortController()),
- (l.signal = this._abortController.signal)),
- (this._status = o.GM.kConnecting),
- self
- .fetch(r.url, l)
- .then(function (e) {
- if (i._requestAbort)
- return (i._status = o.GM.kIdle), void e.body.cancel();
- if (e.ok && e.status >= 200 && e.status <= 299) {
- if (e.url !== r.url && i._onURLRedirect) {
- var t = i._seekHandler.removeURLParameters(e.url);
- i._onURLRedirect(t);
- }
- var n = e.headers.get('Content-Length');
- return (
- null != n &&
- ((i._contentLength = parseInt(n)),
- 0 !== i._contentLength &&
- i._onContentLengthKnown &&
- i._onContentLengthKnown(i._contentLength)),
- i._pump.call(i, e.body.getReader())
- );
- }
- if (((i._status = o.GM.kError), !i._onError))
- throw new h.OZ(
- 'FetchStreamLoader: Http code invalid, ' +
- e.status +
- ' ' +
- e.statusText
- );
- i._onError(o.nm.HTTP_STATUS_CODE_INVALID, {
- code: e.status,
- msg: e.statusText,
- });
- })
- .catch(function (e) {
- if (
- !i._abortController ||
- !i._abortController.signal.aborted
- ) {
- if (((i._status = o.GM.kError), !i._onError)) throw e;
- i._onError(o.nm.EXCEPTION, {
- code: -1,
- msg: e.message,
- });
- }
- });
- }),
- (t.prototype.abort = function () {
- if (
- ((this._requestAbort = !0),
- (this._status !== o.GM.kBuffering || !a.Z.chrome) &&
- this._abortController)
- )
- try {
- this._abortController.abort();
- } catch (e) {}
- }),
- (t.prototype._pump = function (e) {
- var t = this;
- return e
- .read()
- .then(function (i) {
- if (i.done)
- if (
- null !== t._contentLength &&
- t._receivedLength < t._contentLength
- ) {
- t._status = o.GM.kError;
- var n = o.nm.EARLY_EOF,
- r = {
- code: -1,
- msg: 'Fetch stream meet Early-EOF',
- };
- if (!t._onError) throw new h.OZ(r.msg);
- t._onError(n, r);
- } else
- (t._status = o.GM.kComplete),
- t._onComplete &&
- t._onComplete(
- t._range.from,
- t._range.from + t._receivedLength - 1
- );
- else {
- if (
- t._abortController &&
- t._abortController.signal.aborted
- )
- return void (t._status = o.GM.kComplete);
- if (!0 === t._requestAbort)
- return (t._status = o.GM.kComplete), e.cancel();
- t._status = o.GM.kBuffering;
- var s = i.value.buffer,
- a = t._range.from + t._receivedLength;
- (t._receivedLength += s.byteLength),
- t._onDataArrival &&
- t._onDataArrival(s, a, t._receivedLength),
- t._pump(e);
- }
- })
- .catch(function (e) {
- if (
- t._abortController &&
- t._abortController.signal.aborted
- )
- t._status = o.GM.kComplete;
- else if (11 !== e.code || !a.Z.msedge) {
- t._status = o.GM.kError;
- var i = 0,
- n = null;
- if (
- ((19 !== e.code && 'network error' !== e.message) ||
- !(
- null === t._contentLength ||
- (null !== t._contentLength &&
- t._receivedLength < t._contentLength)
- )
- ? ((i = o.nm.EXCEPTION),
- (n = { code: e.code, msg: e.message }))
- : ((i = o.nm.EARLY_EOF),
- (n = {
- code: e.code,
- msg: 'Fetch stream meet Early-EOF',
- })),
- !t._onError)
- )
- throw new h.OZ(n.msg);
- t._onError(i, n);
- }
- });
- }),
- t
- );
- })(o.fp),
- d = (function () {
- var e = function (t, i) {
- return (e =
- Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array &&
- function (e, t) {
- e.__proto__ = t;
- }) ||
- function (e, t) {
- for (var i in t)
- Object.prototype.hasOwnProperty.call(t, i) &&
- (e[i] = t[i]);
- })(t, i);
- };
- return function (t, i) {
- if ('function' != typeof i && null !== i)
- throw new TypeError(
- 'Class extends value ' +
- String(i) +
- ' is not a constructor or null'
- );
- function n() {
- this.constructor = t;
- }
- e(t, i),
- (t.prototype =
- null === i
- ? Object.create(i)
- : ((n.prototype = i.prototype), new n()));
- };
- })(),
- c = (function (e) {
- function t(t, i) {
- var n = e.call(this, 'xhr-moz-chunked-loader') || this;
- return (
- (n.TAG = 'MozChunkedLoader'),
- (n._seekHandler = t),
- (n._config = i),
- (n._needStash = !0),
- (n._xhr = null),
- (n._requestAbort = !1),
- (n._contentLength = null),
- (n._receivedLength = 0),
- n
- );
- }
- return (
- d(t, e),
- (t.isSupported = function () {
- try {
- var e = new XMLHttpRequest();
- return (
- e.open('GET', 'https://example.com', !0),
- (e.responseType = 'moz-chunked-arraybuffer'),
- 'moz-chunked-arraybuffer' === e.responseType
- );
- } catch (e) {
- return r.Z.w('MozChunkedLoader', e.message), !1;
- }
- }),
- (t.prototype.destroy = function () {
- this.isWorking() && this.abort(),
- this._xhr &&
- ((this._xhr.onreadystatechange = null),
- (this._xhr.onprogress = null),
- (this._xhr.onloadend = null),
- (this._xhr.onerror = null),
- (this._xhr = null)),
- e.prototype.destroy.call(this);
- }),
- (t.prototype.open = function (e, t) {
- (this._dataSource = e), (this._range = t);
- var i = e.url;
- this._config.reuseRedirectedURL &&
- null != e.redirectedURL &&
- (i = e.redirectedURL);
- var n = this._seekHandler.getConfig(i, t);
- this._requestURL = n.url;
- var r = (this._xhr = new XMLHttpRequest());
- if (
- (r.open('GET', n.url, !0),
- (r.responseType = 'moz-chunked-arraybuffer'),
- (r.onreadystatechange =
- this._onReadyStateChange.bind(this)),
- (r.onprogress = this._onProgress.bind(this)),
- (r.onloadend = this._onLoadEnd.bind(this)),
- (r.onerror = this._onXhrError.bind(this)),
- e.withCredentials && (r.withCredentials = !0),
- 'object' == typeof n.headers)
- ) {
- var s = n.headers;
- for (var a in s)
- s.hasOwnProperty(a) && r.setRequestHeader(a, s[a]);
- }
- if ('object' == typeof this._config.headers) {
- s = this._config.headers;
- for (var a in s)
- s.hasOwnProperty(a) && r.setRequestHeader(a, s[a]);
- }
- (this._status = o.GM.kConnecting), r.send();
- }),
- (t.prototype.abort = function () {
- (this._requestAbort = !0),
- this._xhr && this._xhr.abort(),
- (this._status = o.GM.kComplete);
- }),
- (t.prototype._onReadyStateChange = function (e) {
- var t = e.target;
- if (2 === t.readyState) {
- if (
- null != t.responseURL &&
- t.responseURL !== this._requestURL &&
- this._onURLRedirect
- ) {
- var i = this._seekHandler.removeURLParameters(
- t.responseURL
- );
- this._onURLRedirect(i);
- }
- if (0 !== t.status && (t.status < 200 || t.status > 299)) {
- if (((this._status = o.GM.kError), !this._onError))
- throw new h.OZ(
- 'MozChunkedLoader: Http code invalid, ' +
- t.status +
- ' ' +
- t.statusText
- );
- this._onError(o.nm.HTTP_STATUS_CODE_INVALID, {
- code: t.status,
- msg: t.statusText,
- });
- } else this._status = o.GM.kBuffering;
- }
- }),
- (t.prototype._onProgress = function (e) {
- if (this._status !== o.GM.kError) {
- null === this._contentLength &&
- null !== e.total &&
- 0 !== e.total &&
- ((this._contentLength = e.total),
- this._onContentLengthKnown &&
- this._onContentLengthKnown(this._contentLength));
- var t = e.target.response,
- i = this._range.from + this._receivedLength;
- (this._receivedLength += t.byteLength),
- this._onDataArrival &&
- this._onDataArrival(t, i, this._receivedLength);
- }
- }),
- (t.prototype._onLoadEnd = function (e) {
- !0 !== this._requestAbort
- ? this._status !== o.GM.kError &&
- ((this._status = o.GM.kComplete),
- this._onComplete &&
- this._onComplete(
- this._range.from,
- this._range.from + this._receivedLength - 1
- ))
- : (this._requestAbort = !1);
- }),
- (t.prototype._onXhrError = function (e) {
- this._status = o.GM.kError;
- var t = 0,
- i = null;
- if (
- (this._contentLength && e.loaded < this._contentLength
- ? ((t = o.nm.EARLY_EOF),
- (i = {
- code: -1,
- msg: 'Moz-Chunked stream meet Early-Eof',
- }))
- : ((t = o.nm.EXCEPTION),
- (i = {
- code: -1,
- msg: e.constructor.name + ' ' + e.type,
- })),
- !this._onError)
- )
- throw new h.OZ(i.msg);
- this._onError(t, i);
- }),
- t
- );
- })(o.fp),
- f = (function () {
- var e = function (t, i) {
- return (e =
- Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array &&
- function (e, t) {
- e.__proto__ = t;
- }) ||
- function (e, t) {
- for (var i in t)
- Object.prototype.hasOwnProperty.call(t, i) &&
- (e[i] = t[i]);
- })(t, i);
- };
- return function (t, i) {
- if ('function' != typeof i && null !== i)
- throw new TypeError(
- 'Class extends value ' +
- String(i) +
- ' is not a constructor or null'
- );
- function n() {
- this.constructor = t;
- }
- e(t, i),
- (t.prototype =
- null === i
- ? Object.create(i)
- : ((n.prototype = i.prototype), new n()));
- };
- })(),
- _ = (function (e) {
- function t(t, i) {
- var n = e.call(this, 'xhr-range-loader') || this;
- return (
- (n.TAG = 'RangeLoader'),
- (n._seekHandler = t),
- (n._config = i),
- (n._needStash = !1),
- (n._chunkSizeKBList = [
- 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 5120,
- 6144, 7168, 8192,
- ]),
- (n._currentChunkSizeKB = 384),
- (n._currentSpeedNormalized = 0),
- (n._zeroSpeedChunkCount = 0),
- (n._xhr = null),
- (n._speedSampler = new s()),
- (n._requestAbort = !1),
- (n._waitForTotalLength = !1),
- (n._totalLengthReceived = !1),
- (n._currentRequestURL = null),
- (n._currentRedirectedURL = null),
- (n._currentRequestRange = null),
- (n._totalLength = null),
- (n._contentLength = null),
- (n._receivedLength = 0),
- (n._lastTimeLoaded = 0),
- n
- );
- }
- return (
- f(t, e),
- (t.isSupported = function () {
- try {
- var e = new XMLHttpRequest();
- return (
- e.open('GET', 'https://example.com', !0),
- (e.responseType = 'arraybuffer'),
- 'arraybuffer' === e.responseType
- );
- } catch (e) {
- return r.Z.w('RangeLoader', e.message), !1;
- }
- }),
- (t.prototype.destroy = function () {
- this.isWorking() && this.abort(),
- this._xhr &&
- ((this._xhr.onreadystatechange = null),
- (this._xhr.onprogress = null),
- (this._xhr.onload = null),
- (this._xhr.onerror = null),
- (this._xhr = null)),
- e.prototype.destroy.call(this);
- }),
- Object.defineProperty(t.prototype, 'currentSpeed', {
- get: function () {
- return this._speedSampler.lastSecondKBps;
- },
- enumerable: !1,
- configurable: !0,
- }),
- (t.prototype.open = function (e, t) {
- (this._dataSource = e),
- (this._range = t),
- (this._status = o.GM.kConnecting);
- var i = !1;
- null != this._dataSource.filesize &&
- 0 !== this._dataSource.filesize &&
- ((i = !0), (this._totalLength = this._dataSource.filesize)),
- this._totalLengthReceived || i
- ? this._openSubRange()
- : ((this._waitForTotalLength = !0),
- this._internalOpen(this._dataSource, {
- from: 0,
- to: -1,
- }));
- }),
- (t.prototype._openSubRange = function () {
- var e = 1024 * this._currentChunkSizeKB,
- t = this._range.from + this._receivedLength,
- i = t + e;
- null != this._contentLength &&
- i - this._range.from >= this._contentLength &&
- (i = this._range.from + this._contentLength - 1),
- (this._currentRequestRange = { from: t, to: i }),
- this._internalOpen(
- this._dataSource,
- this._currentRequestRange
- );
- }),
- (t.prototype._internalOpen = function (e, t) {
- this._lastTimeLoaded = 0;
- var i = e.url;
- this._config.reuseRedirectedURL &&
- (null != this._currentRedirectedURL
- ? (i = this._currentRedirectedURL)
- : null != e.redirectedURL && (i = e.redirectedURL));
- var n = this._seekHandler.getConfig(i, t);
- this._currentRequestURL = n.url;
- var r = (this._xhr = new XMLHttpRequest());
- if (
- (r.open('GET', n.url, !0),
- (r.responseType = 'arraybuffer'),
- (r.onreadystatechange =
- this._onReadyStateChange.bind(this)),
- (r.onprogress = this._onProgress.bind(this)),
- (r.onload = this._onLoad.bind(this)),
- (r.onerror = this._onXhrError.bind(this)),
- e.withCredentials && (r.withCredentials = !0),
- 'object' == typeof n.headers)
- ) {
- var s = n.headers;
- for (var o in s)
- s.hasOwnProperty(o) && r.setRequestHeader(o, s[o]);
- }
- if ('object' == typeof this._config.headers) {
- s = this._config.headers;
- for (var o in s)
- s.hasOwnProperty(o) && r.setRequestHeader(o, s[o]);
- }
- r.send();
- }),
- (t.prototype.abort = function () {
- (this._requestAbort = !0),
- this._internalAbort(),
- (this._status = o.GM.kComplete);
- }),
- (t.prototype._internalAbort = function () {
- this._xhr &&
- ((this._xhr.onreadystatechange = null),
- (this._xhr.onprogress = null),
- (this._xhr.onload = null),
- (this._xhr.onerror = null),
- this._xhr.abort(),
- (this._xhr = null));
- }),
- (t.prototype._onReadyStateChange = function (e) {
- var t = e.target;
- if (2 === t.readyState) {
- if (null != t.responseURL) {
- var i = this._seekHandler.removeURLParameters(
- t.responseURL
- );
- t.responseURL !== this._currentRequestURL &&
- i !== this._currentRedirectedURL &&
- ((this._currentRedirectedURL = i),
- this._onURLRedirect && this._onURLRedirect(i));
- }
- if (t.status >= 200 && t.status <= 299) {
- if (this._waitForTotalLength) return;
- this._status = o.GM.kBuffering;
- } else {
- if (((this._status = o.GM.kError), !this._onError))
- throw new h.OZ(
- 'RangeLoader: Http code invalid, ' +
- t.status +
- ' ' +
- t.statusText
- );
- this._onError(o.nm.HTTP_STATUS_CODE_INVALID, {
- code: t.status,
- msg: t.statusText,
- });
- }
- }
- }),
- (t.prototype._onProgress = function (e) {
- if (this._status !== o.GM.kError) {
- if (null === this._contentLength) {
- var t = !1;
- if (this._waitForTotalLength) {
- (this._waitForTotalLength = !1),
- (this._totalLengthReceived = !0),
- (t = !0);
- var i = e.total;
- this._internalAbort(),
- (null != i) & (0 !== i) && (this._totalLength = i);
- }
- if (
- (-1 === this._range.to
- ? (this._contentLength =
- this._totalLength - this._range.from)
- : (this._contentLength =
- this._range.to - this._range.from + 1),
- t)
- )
- return void this._openSubRange();
- this._onContentLengthKnown &&
- this._onContentLengthKnown(this._contentLength);
- }
- var n = e.loaded - this._lastTimeLoaded;
- (this._lastTimeLoaded = e.loaded),
- this._speedSampler.addBytes(n);
- }
- }),
- (t.prototype._normalizeSpeed = function (e) {
- var t = this._chunkSizeKBList,
- i = t.length - 1,
- n = 0,
- r = 0,
- s = i;
- if (e < t[0]) return t[0];
- for (; r <= s; ) {
- if (
- (n = r + Math.floor((s - r) / 2)) === i ||
- (e >= t[n] && e < t[n + 1])
- )
- return t[n];
- t[n] < e ? (r = n + 1) : (s = n - 1);
- }
- }),
- (t.prototype._onLoad = function (e) {
- if (this._status !== o.GM.kError)
- if (this._waitForTotalLength) this._waitForTotalLength = !1;
- else {
- this._lastTimeLoaded = 0;
- var t = this._speedSampler.lastSecondKBps;
- if (
- (0 === t &&
- (this._zeroSpeedChunkCount++,
- this._zeroSpeedChunkCount >= 3 &&
- (t = this._speedSampler.currentKBps)),
- 0 !== t)
- ) {
- var i = this._normalizeSpeed(t);
- this._currentSpeedNormalized !== i &&
- ((this._currentSpeedNormalized = i),
- (this._currentChunkSizeKB = i));
- }
- var n = e.target.response,
- r = this._range.from + this._receivedLength;
- this._receivedLength += n.byteLength;
- var s = !1;
- null != this._contentLength &&
- this._receivedLength < this._contentLength
- ? this._openSubRange()
- : (s = !0),
- this._onDataArrival &&
- this._onDataArrival(n, r, this._receivedLength),
- s &&
- ((this._status = o.GM.kComplete),
- this._onComplete &&
- this._onComplete(
- this._range.from,
- this._range.from + this._receivedLength - 1
- ));
- }
- }),
- (t.prototype._onXhrError = function (e) {
- this._status = o.GM.kError;
- var t = 0,
- i = null;
- if (
- (this._contentLength &&
- this._receivedLength > 0 &&
- this._receivedLength < this._contentLength
- ? ((t = o.nm.EARLY_EOF),
- (i = { code: -1, msg: 'RangeLoader meet Early-Eof' }))
- : ((t = o.nm.EXCEPTION),
- (i = {
- code: -1,
- msg: e.constructor.name + ' ' + e.type,
- })),
- !this._onError)
- )
- throw new h.OZ(i.msg);
- this._onError(t, i);
- }),
- t
- );
- })(o.fp),
- p = (function () {
- var e = function (t, i) {
- return (e =
- Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array &&
- function (e, t) {
- e.__proto__ = t;
- }) ||
- function (e, t) {
- for (var i in t)
- Object.prototype.hasOwnProperty.call(t, i) &&
- (e[i] = t[i]);
- })(t, i);
- };
- return function (t, i) {
- if ('function' != typeof i && null !== i)
- throw new TypeError(
- 'Class extends value ' +
- String(i) +
- ' is not a constructor or null'
- );
- function n() {
- this.constructor = t;
- }
- e(t, i),
- (t.prototype =
- null === i
- ? Object.create(i)
- : ((n.prototype = i.prototype), new n()));
- };
- })(),
- m = (function (e) {
- function t() {
- var t = e.call(this, 'websocket-loader') || this;
- return (
- (t.TAG = 'WebSocketLoader'),
- (t._needStash = !0),
- (t._ws = null),
- (t._requestAbort = !1),
- (t._receivedLength = 0),
- t
- );
- }
- return (
- p(t, e),
- (t.isSupported = function () {
- try {
- return void 0 !== self.WebSocket;
- } catch (e) {
- return !1;
- }
- }),
- (t.prototype.destroy = function () {
- this._ws && this.abort(), e.prototype.destroy.call(this);
- }),
- (t.prototype.open = function (e) {
- try {
- var t = (this._ws = new self.WebSocket(e.url));
- (t.binaryType = 'arraybuffer'),
- (t.onopen = this._onWebSocketOpen.bind(this)),
- (t.onclose = this._onWebSocketClose.bind(this)),
- (t.onmessage = this._onWebSocketMessage.bind(this)),
- (t.onerror = this._onWebSocketError.bind(this)),
- (this._status = o.GM.kConnecting);
- } catch (e) {
- this._status = o.GM.kError;
- var i = { code: e.code, msg: e.message };
- if (!this._onError) throw new h.OZ(i.msg);
- this._onError(o.nm.EXCEPTION, i);
- }
- }),
- (t.prototype.abort = function () {
- var e = this._ws;
- !e ||
- (0 !== e.readyState && 1 !== e.readyState) ||
- ((this._requestAbort = !0), e.close()),
- (this._ws = null),
- (this._status = o.GM.kComplete);
- }),
- (t.prototype._onWebSocketOpen = function (e) {
- this._status = o.GM.kBuffering;
- }),
- (t.prototype._onWebSocketClose = function (e) {
- !0 !== this._requestAbort
- ? ((this._status = o.GM.kComplete),
- this._onComplete &&
- this._onComplete(0, this._receivedLength - 1))
- : (this._requestAbort = !1);
- }),
- (t.prototype._onWebSocketMessage = function (e) {
- var t = this;
- if (e.data instanceof ArrayBuffer)
- this._dispatchArrayBuffer(e.data);
- else if (e.data instanceof Blob) {
- var i = new FileReader();
- (i.onload = function () {
- t._dispatchArrayBuffer(i.result);
- }),
- i.readAsArrayBuffer(e.data);
- } else {
- this._status = o.GM.kError;
- var n = {
- code: -1,
- msg:
- 'Unsupported WebSocket message type: ' +
- e.data.constructor.name,
- };
- if (!this._onError) throw new h.OZ(n.msg);
- this._onError(o.nm.EXCEPTION, n);
- }
- }),
- (t.prototype._dispatchArrayBuffer = function (e) {
- var t = e,
- i = this._receivedLength;
- (this._receivedLength += t.byteLength),
- this._onDataArrival &&
- this._onDataArrival(t, i, this._receivedLength);
- }),
- (t.prototype._onWebSocketError = function (e) {
- this._status = o.GM.kError;
- var t = { code: e.code, msg: e.message };
- if (!this._onError) throw new h.OZ(t.msg);
- this._onError(o.nm.EXCEPTION, t);
- }),
- t
- );
- })(o.fp),
- g = (function () {
- function e(e) {
- this._zeroStart = e || !1;
- }
- return (
- (e.prototype.getConfig = function (e, t) {
- var i = {};
- if (0 !== t.from || -1 !== t.to) {
- var n = void 0;
- (n =
- -1 !== t.to
- ? 'bytes=' + t.from.toString() + '-' + t.to.toString()
- : 'bytes=' + t.from.toString() + '-'),
- (i.Range = n);
- } else this._zeroStart && (i.Range = 'bytes=0-');
- return { url: e, headers: i };
- }),
- (e.prototype.removeURLParameters = function (e) {
- return e;
- }),
- e
- );
- })(),
- v = (function () {
- function e(e, t) {
- (this._startName = e), (this._endName = t);
- }
- return (
- (e.prototype.getConfig = function (e, t) {
- var i = e;
- if (0 !== t.from || -1 !== t.to) {
- var n = !0;
- -1 === i.indexOf('?') && ((i += '?'), (n = !1)),
- n && (i += '&'),
- (i += this._startName + '=' + t.from.toString()),
- -1 !== t.to &&
- (i += '&' + this._endName + '=' + t.to.toString());
- }
- return { url: i, headers: {} };
- }),
- (e.prototype.removeURLParameters = function (e) {
- var t = e.split('?')[0],
- i = void 0,
- n = e.indexOf('?');
- -1 !== n && (i = e.substring(n + 1));
- var r = '';
- if (null != i && i.length > 0)
- for (var s = i.split('&'), o = 0; o < s.length; o++) {
- var a = s[o].split('='),
- h = o > 0;
- a[0] !== this._startName &&
- a[0] !== this._endName &&
- (h && (r += '&'), (r += s[o]));
- }
- return 0 === r.length ? t : t + '?' + r;
- }),
- e
- );
- })(),
- y = (function () {
- function e(e, t, i) {
- (this.TAG = 'IOController'),
- (this._config = t),
- (this._extraData = i),
- (this._stashInitialSize = 393216),
- null != t.stashInitialSize &&
- t.stashInitialSize > 0 &&
- (this._stashInitialSize = t.stashInitialSize),
- (this._stashUsed = 0),
- (this._stashSize = this._stashInitialSize),
- (this._bufferSize = 3145728),
- (this._stashBuffer = new ArrayBuffer(this._bufferSize)),
- (this._stashByteStart = 0),
- (this._enableStash = !0),
- !1 === t.enableStashBuffer && (this._enableStash = !1),
- (this._loader = null),
- (this._loaderClass = null),
- (this._seekHandler = null),
- (this._dataSource = e),
- (this._isWebSocketURL = /wss?:\/\/(.+?)/.test(e.url)),
- (this._refTotalLength = e.filesize ? e.filesize : null),
- (this._totalLength = this._refTotalLength),
- (this._fullRequestFlag = !1),
- (this._currentRange = null),
- (this._redirectedURL = null),
- (this._speedNormalized = 0),
- (this._speedSampler = new s()),
- (this._speedNormalizeList = [
- 64, 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096,
- ]),
- (this._isEarlyEofReconnecting = !1),
- (this._paused = !1),
- (this._resumeFrom = 0),
- (this._onDataArrival = null),
- (this._onSeeked = null),
- (this._onError = null),
- (this._onComplete = null),
- (this._onRedirect = null),
- (this._onRecoveredEarlyEof = null),
- this._selectSeekHandler(),
- this._selectLoader(),
- this._createLoader();
- }
- return (
- (e.prototype.destroy = function () {
- this._loader.isWorking() && this._loader.abort(),
- this._loader.destroy(),
- (this._loader = null),
- (this._loaderClass = null),
- (this._dataSource = null),
- (this._stashBuffer = null),
- (this._stashUsed =
- this._stashSize =
- this._bufferSize =
- this._stashByteStart =
- 0),
- (this._currentRange = null),
- (this._speedSampler = null),
- (this._isEarlyEofReconnecting = !1),
- (this._onDataArrival = null),
- (this._onSeeked = null),
- (this._onError = null),
- (this._onComplete = null),
- (this._onRedirect = null),
- (this._onRecoveredEarlyEof = null),
- (this._extraData = null);
- }),
- (e.prototype.isWorking = function () {
- return (
- this._loader && this._loader.isWorking() && !this._paused
- );
- }),
- (e.prototype.isPaused = function () {
- return this._paused;
- }),
- Object.defineProperty(e.prototype, 'status', {
- get: function () {
- return this._loader.status;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'extraData', {
- get: function () {
- return this._extraData;
- },
- set: function (e) {
- this._extraData = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onDataArrival', {
- get: function () {
- return this._onDataArrival;
- },
- set: function (e) {
- this._onDataArrival = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onSeeked', {
- get: function () {
- return this._onSeeked;
- },
- set: function (e) {
- this._onSeeked = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onError', {
- get: function () {
- return this._onError;
- },
- set: function (e) {
- this._onError = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onComplete', {
- get: function () {
- return this._onComplete;
- },
- set: function (e) {
- this._onComplete = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onRedirect', {
- get: function () {
- return this._onRedirect;
- },
- set: function (e) {
- this._onRedirect = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onRecoveredEarlyEof', {
- get: function () {
- return this._onRecoveredEarlyEof;
- },
- set: function (e) {
- this._onRecoveredEarlyEof = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'currentURL', {
- get: function () {
- return this._dataSource.url;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'hasRedirect', {
- get: function () {
- return (
- null != this._redirectedURL ||
- null != this._dataSource.redirectedURL
- );
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'currentRedirectedURL', {
- get: function () {
- return (
- this._redirectedURL || this._dataSource.redirectedURL
- );
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'currentSpeed', {
- get: function () {
- return this._loaderClass === _
- ? this._loader.currentSpeed
- : this._speedSampler.lastSecondKBps;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'loaderType', {
- get: function () {
- return this._loader.type;
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.prototype._selectSeekHandler = function () {
- var e = this._config;
- if ('range' === e.seekType)
- this._seekHandler = new g(this._config.rangeLoadZeroStart);
- else if ('param' === e.seekType) {
- var t = e.seekParamStart || 'bstart',
- i = e.seekParamEnd || 'bend';
- this._seekHandler = new v(t, i);
- } else {
- if ('custom' !== e.seekType)
- throw new h.OC(
- 'Invalid seekType in config: ' + e.seekType
- );
- if ('function' != typeof e.customSeekHandler)
- throw new h.OC(
- 'Custom seekType specified in config but invalid customSeekHandler!'
- );
- this._seekHandler = new e.customSeekHandler();
- }
- }),
- (e.prototype._selectLoader = function () {
- if (null != this._config.customLoader)
- this._loaderClass = this._config.customLoader;
- else if (this._isWebSocketURL) this._loaderClass = m;
- else if (l.isSupported()) this._loaderClass = l;
- else if (c.isSupported()) this._loaderClass = c;
- else {
- if (!_.isSupported())
- throw new h.OZ(
- "Your browser doesn't support xhr with arraybuffer responseType!"
- );
- this._loaderClass = _;
- }
- }),
- (e.prototype._createLoader = function () {
- (this._loader = new this._loaderClass(
- this._seekHandler,
- this._config
- )),
- !1 === this._loader.needStashBuffer &&
- (this._enableStash = !1),
- (this._loader.onContentLengthKnown =
- this._onContentLengthKnown.bind(this)),
- (this._loader.onURLRedirect =
- this._onURLRedirect.bind(this)),
- (this._loader.onDataArrival =
- this._onLoaderChunkArrival.bind(this)),
- (this._loader.onComplete =
- this._onLoaderComplete.bind(this)),
- (this._loader.onError = this._onLoaderError.bind(this));
- }),
- (e.prototype.open = function (e) {
- (this._currentRange = { from: 0, to: -1 }),
- e && (this._currentRange.from = e),
- this._speedSampler.reset(),
- e || (this._fullRequestFlag = !0),
- this._loader.open(
- this._dataSource,
- Object.assign({}, this._currentRange)
- );
- }),
- (e.prototype.abort = function () {
- this._loader.abort(),
- this._paused &&
- ((this._paused = !1), (this._resumeFrom = 0));
- }),
- (e.prototype.pause = function () {
- this.isWorking() &&
- (this._loader.abort(),
- 0 !== this._stashUsed
- ? ((this._resumeFrom = this._stashByteStart),
- (this._currentRange.to = this._stashByteStart - 1))
- : (this._resumeFrom = this._currentRange.to + 1),
- (this._stashUsed = 0),
- (this._stashByteStart = 0),
- (this._paused = !0));
- }),
- (e.prototype.resume = function () {
- if (this._paused) {
- this._paused = !1;
- var e = this._resumeFrom;
- (this._resumeFrom = 0), this._internalSeek(e, !0);
- }
- }),
- (e.prototype.seek = function (e) {
- (this._paused = !1),
- (this._stashUsed = 0),
- (this._stashByteStart = 0),
- this._internalSeek(e, !0);
- }),
- (e.prototype._internalSeek = function (e, t) {
- this._loader.isWorking() && this._loader.abort(),
- this._flushStashBuffer(t),
- this._loader.destroy(),
- (this._loader = null);
- var i = { from: e, to: -1 };
- (this._currentRange = { from: i.from, to: -1 }),
- this._speedSampler.reset(),
- (this._stashSize = this._stashInitialSize),
- this._createLoader(),
- this._loader.open(this._dataSource, i),
- this._onSeeked && this._onSeeked();
- }),
- (e.prototype.updateUrl = function (e) {
- if (!e || 'string' != typeof e || 0 === e.length)
- throw new h.OC('Url must be a non-empty string!');
- this._dataSource.url = e;
- }),
- (e.prototype._expandBuffer = function (e) {
- for (var t = this._stashSize; t + 1048576 < e; ) t *= 2;
- if ((t += 1048576) !== this._bufferSize) {
- var i = new ArrayBuffer(t);
- if (this._stashUsed > 0) {
- var n = new Uint8Array(
- this._stashBuffer,
- 0,
- this._stashUsed
- );
- new Uint8Array(i, 0, t).set(n, 0);
- }
- (this._stashBuffer = i), (this._bufferSize = t);
- }
- }),
- (e.prototype._normalizeSpeed = function (e) {
- var t = this._speedNormalizeList,
- i = t.length - 1,
- n = 0,
- r = 0,
- s = i;
- if (e < t[0]) return t[0];
- for (; r <= s; ) {
- if (
- (n = r + Math.floor((s - r) / 2)) === i ||
- (e >= t[n] && e < t[n + 1])
- )
- return t[n];
- t[n] < e ? (r = n + 1) : (s = n - 1);
- }
- }),
- (e.prototype._adjustStashSize = function (e) {
- var t = 0;
- (t =
- this._config.isLive || e < 512
- ? e
- : e >= 512 && e <= 1024
- ? Math.floor(1.5 * e)
- : 2 * e) > 8192 && (t = 8192);
- var i = 1024 * t + 1048576;
- this._bufferSize < i && this._expandBuffer(i),
- (this._stashSize = 1024 * t);
- }),
- (e.prototype._dispatchChunks = function (e, t) {
- return (
- (this._currentRange.to = t + e.byteLength - 1),
- this._onDataArrival(e, t)
- );
- }),
- (e.prototype._onURLRedirect = function (e) {
- (this._redirectedURL = e),
- this._onRedirect && this._onRedirect(e);
- }),
- (e.prototype._onContentLengthKnown = function (e) {
- e &&
- this._fullRequestFlag &&
- ((this._totalLength = e), (this._fullRequestFlag = !1));
- }),
- (e.prototype._onLoaderChunkArrival = function (e, t, i) {
- if (!this._onDataArrival)
- throw new h.rT(
- 'IOController: No existing consumer (onDataArrival) callback!'
- );
- if (!this._paused) {
- this._isEarlyEofReconnecting &&
- ((this._isEarlyEofReconnecting = !1),
- this._onRecoveredEarlyEof && this._onRecoveredEarlyEof()),
- this._speedSampler.addBytes(e.byteLength);
- var n = this._speedSampler.lastSecondKBps;
- if (0 !== n) {
- var r = this._normalizeSpeed(n);
- this._speedNormalized !== r &&
- ((this._speedNormalized = r), this._adjustStashSize(r));
- }
- if (this._enableStash)
- if (
- (0 === this._stashUsed &&
- 0 === this._stashByteStart &&
- (this._stashByteStart = t),
- this._stashUsed + e.byteLength <= this._stashSize)
- ) {
- (a = new Uint8Array(
- this._stashBuffer,
- 0,
- this._stashSize
- )).set(new Uint8Array(e), this._stashUsed),
- (this._stashUsed += e.byteLength);
- } else {
- a = new Uint8Array(
- this._stashBuffer,
- 0,
- this._bufferSize
- );
- if (this._stashUsed > 0) {
- var s = this._stashBuffer.slice(0, this._stashUsed);
- if (
- (u = this._dispatchChunks(
- s,
- this._stashByteStart
- )) < s.byteLength
- ) {
- if (u > 0) {
- l = new Uint8Array(s, u);
- a.set(l, 0),
- (this._stashUsed = l.byteLength),
- (this._stashByteStart += u);
- }
- } else
- (this._stashUsed = 0), (this._stashByteStart += u);
- this._stashUsed + e.byteLength > this._bufferSize &&
- (this._expandBuffer(this._stashUsed + e.byteLength),
- (a = new Uint8Array(
- this._stashBuffer,
- 0,
- this._bufferSize
- ))),
- a.set(new Uint8Array(e), this._stashUsed),
- (this._stashUsed += e.byteLength);
- } else {
- if ((u = this._dispatchChunks(e, t)) < e.byteLength)
- (o = e.byteLength - u) > this._bufferSize &&
- (this._expandBuffer(o),
- (a = new Uint8Array(
- this._stashBuffer,
- 0,
- this._bufferSize
- ))),
- a.set(new Uint8Array(e, u), 0),
- (this._stashUsed += o),
- (this._stashByteStart = t + u);
- }
- }
- else if (0 === this._stashUsed) {
- var o;
- if ((u = this._dispatchChunks(e, t)) < e.byteLength)
- (o = e.byteLength - u) > this._bufferSize &&
- this._expandBuffer(o),
- (a = new Uint8Array(
- this._stashBuffer,
- 0,
- this._bufferSize
- )).set(new Uint8Array(e, u), 0),
- (this._stashUsed += o),
- (this._stashByteStart = t + u);
- } else {
- var a, u;
- if (
- (this._stashUsed + e.byteLength > this._bufferSize &&
- this._expandBuffer(this._stashUsed + e.byteLength),
- (a = new Uint8Array(
- this._stashBuffer,
- 0,
- this._bufferSize
- )).set(new Uint8Array(e), this._stashUsed),
- (this._stashUsed += e.byteLength),
- (u = this._dispatchChunks(
- this._stashBuffer.slice(0, this._stashUsed),
- this._stashByteStart
- )) < this._stashUsed && u > 0)
- ) {
- var l = new Uint8Array(this._stashBuffer, u);
- a.set(l, 0);
- }
- (this._stashUsed -= u), (this._stashByteStart += u);
- }
- }
- }),
- (e.prototype._flushStashBuffer = function (e) {
- if (this._stashUsed > 0) {
- var t = this._stashBuffer.slice(0, this._stashUsed),
- i = this._dispatchChunks(t, this._stashByteStart),
- n = t.byteLength - i;
- if (i < t.byteLength) {
- if (!e) {
- if (i > 0) {
- var s = new Uint8Array(
- this._stashBuffer,
- 0,
- this._bufferSize
- ),
- o = new Uint8Array(t, i);
- s.set(o, 0),
- (this._stashUsed = o.byteLength),
- (this._stashByteStart += i);
- }
- return 0;
- }
- r.Z.w(
- this.TAG,
- n +
- ' bytes unconsumed data remain when flush buffer, dropped'
- );
- }
- return (this._stashUsed = 0), (this._stashByteStart = 0), n;
- }
- return 0;
- }),
- (e.prototype._onLoaderComplete = function (e, t) {
- this._flushStashBuffer(!0),
- this._onComplete && this._onComplete(this._extraData);
- }),
- (e.prototype._onLoaderError = function (e, t) {
- switch (
- (r.Z.e(
- this.TAG,
- 'Loader error, code = ' + t.code + ', msg = ' + t.msg
- ),
- this._flushStashBuffer(!1),
- this._isEarlyEofReconnecting &&
- ((this._isEarlyEofReconnecting = !1),
- (e = o.nm.UNRECOVERABLE_EARLY_EOF)),
- e)
- ) {
- case o.nm.EARLY_EOF:
- if (!this._config.isLive && this._totalLength) {
- var i = this._currentRange.to + 1;
- return void (
- i < this._totalLength &&
- (r.Z.w(
- this.TAG,
- 'Connection lost, trying reconnect...'
- ),
- (this._isEarlyEofReconnecting = !0),
- this._internalSeek(i, !1))
- );
- }
- e = o.nm.UNRECOVERABLE_EARLY_EOF;
- break;
- case o.nm.UNRECOVERABLE_EARLY_EOF:
- case o.nm.CONNECTING_TIMEOUT:
- case o.nm.HTTP_STATUS_CODE_INVALID:
- case o.nm.EXCEPTION:
- }
- if (!this._onError) throw new h.OZ('IOException: ' + t.msg);
- this._onError(e, t);
- }),
- e
- );
- })();
- },
- 939: function (e, t, i) {
- 'use strict';
- i.d(t, {
- GM: function () {
- return r;
- },
- nm: function () {
- return s;
- },
- fp: function () {
- return o;
- },
- });
- var n = i(29),
- r = {
- kIdle: 0,
- kConnecting: 1,
- kBuffering: 2,
- kError: 3,
- kComplete: 4,
- },
- s = {
- OK: 'OK',
- EXCEPTION: 'Exception',
- HTTP_STATUS_CODE_INVALID: 'HttpStatusCodeInvalid',
- CONNECTING_TIMEOUT: 'ConnectingTimeout',
- EARLY_EOF: 'EarlyEof',
- UNRECOVERABLE_EARLY_EOF: 'UnrecoverableEarlyEof',
- },
- o = (function () {
- function e(e) {
- (this._type = e || 'undefined'),
- (this._status = r.kIdle),
- (this._needStash = !1),
- (this._onContentLengthKnown = null),
- (this._onURLRedirect = null),
- (this._onDataArrival = null),
- (this._onError = null),
- (this._onComplete = null);
- }
- return (
- (e.prototype.destroy = function () {
- (this._status = r.kIdle),
- (this._onContentLengthKnown = null),
- (this._onURLRedirect = null),
- (this._onDataArrival = null),
- (this._onError = null),
- (this._onComplete = null);
- }),
- (e.prototype.isWorking = function () {
- return (
- this._status === r.kConnecting ||
- this._status === r.kBuffering
- );
- }),
- Object.defineProperty(e.prototype, 'type', {
- get: function () {
- return this._type;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'status', {
- get: function () {
- return this._status;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'needStashBuffer', {
- get: function () {
- return this._needStash;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onContentLengthKnown', {
- get: function () {
- return this._onContentLengthKnown;
- },
- set: function (e) {
- this._onContentLengthKnown = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onURLRedirect', {
- get: function () {
- return this._onURLRedirect;
- },
- set: function (e) {
- this._onURLRedirect = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onDataArrival', {
- get: function () {
- return this._onDataArrival;
- },
- set: function (e) {
- this._onDataArrival = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onError', {
- get: function () {
- return this._onError;
- },
- set: function (e) {
- this._onError = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'onComplete', {
- get: function () {
- return this._onComplete;
- },
- set: function (e) {
- this._onComplete = e;
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.prototype.open = function (e, t) {
- throw new n.do('Unimplemented abstract function!');
- }),
- (e.prototype.abort = function () {
- throw new n.do('Unimplemented abstract function!');
- }),
- e
- );
- })();
- },
- 538: function (e, t) {
- 'use strict';
- var i = {};
- !(function () {
- var e = self.navigator.userAgent.toLowerCase(),
- t =
- /(edge)\/([\w.]+)/.exec(e) ||
- /(opr)[\/]([\w.]+)/.exec(e) ||
- /(chrome)[ \/]([\w.]+)/.exec(e) ||
- /(iemobile)[\/]([\w.]+)/.exec(e) ||
- /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(
- e
- ) ||
- /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(
- e
- ) ||
- /(webkit)[ \/]([\w.]+)/.exec(e) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e) ||
- /(msie) ([\w.]+)/.exec(e) ||
- (e.indexOf('trident') >= 0 && /(rv)(?::| )([\w.]+)/.exec(e)) ||
- (e.indexOf('compatible') < 0 &&
- /(firefox)[ \/]([\w.]+)/.exec(e)) ||
- [],
- n =
- /(ipad)/.exec(e) ||
- /(ipod)/.exec(e) ||
- /(windows phone)/.exec(e) ||
- /(iphone)/.exec(e) ||
- /(kindle)/.exec(e) ||
- /(android)/.exec(e) ||
- /(windows)/.exec(e) ||
- /(mac)/.exec(e) ||
- /(linux)/.exec(e) ||
- /(cros)/.exec(e) ||
- [],
- r = {
- browser: t[5] || t[3] || t[1] || '',
- version: t[2] || t[4] || '0',
- majorVersion: t[4] || t[2] || '0',
- platform: n[0] || '',
- },
- s = {};
- if (r.browser) {
- s[r.browser] = !0;
- var o = r.majorVersion.split('.');
- (s.version = {
- major: parseInt(r.majorVersion, 10),
- string: r.version,
- }),
- o.length > 1 && (s.version.minor = parseInt(o[1], 10)),
- o.length > 2 && (s.version.build = parseInt(o[2], 10));
- }
- if (
- (r.platform && (s[r.platform] = !0),
- (s.chrome || s.opr || s.safari) && (s.webkit = !0),
- s.rv || s.iemobile)
- ) {
- s.rv && delete s.rv;
- var a = 'msie';
- (r.browser = a), (s.msie = !0);
- }
- if (s.edge) {
- delete s.edge;
- var h = 'msedge';
- (r.browser = h), (s.msedge = !0);
- }
- if (s.opr) {
- var u = 'opera';
- (r.browser = u), (s.opera = !0);
- }
- if (s.safari && s.android) {
- var l = 'android';
- (r.browser = l), (s.android = !0);
- }
- for (var d in ((s.name = r.browser), (s.platform = r.platform), i))
- i.hasOwnProperty(d) && delete i[d];
- Object.assign(i, s);
- })(),
- (t.Z = i);
- },
- 29: function (e, t, i) {
- 'use strict';
- i.d(t, {
- OZ: function () {
- return s;
- },
- rT: function () {
- return o;
- },
- OC: function () {
- return a;
- },
- do: function () {
- return h;
- },
- });
- var n,
- r =
- ((n = function (e, t) {
- return (n =
- Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array &&
- function (e, t) {
- e.__proto__ = t;
- }) ||
- function (e, t) {
- for (var i in t)
- Object.prototype.hasOwnProperty.call(t, i) &&
- (e[i] = t[i]);
- })(e, t);
- }),
- function (e, t) {
- if ('function' != typeof t && null !== t)
- throw new TypeError(
- 'Class extends value ' +
- String(t) +
- ' is not a constructor or null'
- );
- function i() {
- this.constructor = e;
- }
- n(e, t),
- (e.prototype =
- null === t
- ? Object.create(t)
- : ((i.prototype = t.prototype), new i()));
- }),
- s = (function () {
- function e(e) {
- this._message = e;
- }
- return (
- Object.defineProperty(e.prototype, 'name', {
- get: function () {
- return 'RuntimeException';
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e.prototype, 'message', {
- get: function () {
- return this._message;
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.prototype.toString = function () {
- return this.name + ': ' + this.message;
- }),
- e
- );
- })(),
- o = (function (e) {
- function t(t) {
- return e.call(this, t) || this;
- }
- return (
- r(t, e),
- Object.defineProperty(t.prototype, 'name', {
- get: function () {
- return 'IllegalStateException';
- },
- enumerable: !1,
- configurable: !0,
- }),
- t
- );
- })(s),
- a = (function (e) {
- function t(t) {
- return e.call(this, t) || this;
- }
- return (
- r(t, e),
- Object.defineProperty(t.prototype, 'name', {
- get: function () {
- return 'InvalidArgumentException';
- },
- enumerable: !1,
- configurable: !0,
- }),
- t
- );
- })(s),
- h = (function (e) {
- function t(t) {
- return e.call(this, t) || this;
- }
- return (
- r(t, e),
- Object.defineProperty(t.prototype, 'name', {
- get: function () {
- return 'NotImplementedException';
- },
- enumerable: !1,
- configurable: !0,
- }),
- t
- );
- })(s);
- },
- 300: function (e, t, i) {
- 'use strict';
- var n = i(716),
- r = i.n(n),
- s = (function () {
- function e() {}
- return (
- (e.e = function (t, i) {
- (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
- var n = '[' + t + '] > ' + i;
- e.ENABLE_CALLBACK && e.emitter.emit('log', 'error', n),
- e.ENABLE_ERROR &&
- (console.error
- ? console.error(n)
- : console.warn
- ? console.warn(n)
- : console.log(n));
- }),
- (e.i = function (t, i) {
- (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
- var n = '[' + t + '] > ' + i;
- e.ENABLE_CALLBACK && e.emitter.emit('log', 'info', n),
- e.ENABLE_INFO &&
- (console.info ? console.info(n) : console.log(n));
- }),
- (e.w = function (t, i) {
- (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
- var n = '[' + t + '] > ' + i;
- e.ENABLE_CALLBACK && e.emitter.emit('log', 'warn', n),
- e.ENABLE_WARN &&
- (console.warn ? console.warn(n) : console.log(n));
- }),
- (e.d = function (t, i) {
- (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
- var n = '[' + t + '] > ' + i;
- e.ENABLE_CALLBACK && e.emitter.emit('log', 'debug', n),
- e.ENABLE_DEBUG &&
- (console.debug ? console.debug(n) : console.log(n));
- }),
- (e.v = function (t, i) {
- (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
- var n = '[' + t + '] > ' + i;
- e.ENABLE_CALLBACK && e.emitter.emit('log', 'verbose', n),
- e.ENABLE_VERBOSE && console.log(n);
- }),
- e
- );
- })();
- (s.GLOBAL_TAG = 'flv.js'),
- (s.FORCE_GLOBAL_TAG = !1),
- (s.ENABLE_ERROR = !0),
- (s.ENABLE_INFO = !0),
- (s.ENABLE_WARN = !0),
- (s.ENABLE_DEBUG = !0),
- (s.ENABLE_VERBOSE = !0),
- (s.ENABLE_CALLBACK = !1),
- (s.emitter = new (r())()),
- (t.Z = s);
- },
- 846: function (e, t, i) {
- 'use strict';
- var n = i(716),
- r = i.n(n),
- s = i(300),
- o = (function () {
- function e() {}
- return (
- Object.defineProperty(e, 'forceGlobalTag', {
- get: function () {
- return s.Z.FORCE_GLOBAL_TAG;
- },
- set: function (t) {
- (s.Z.FORCE_GLOBAL_TAG = t), e._notifyChange();
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e, 'globalTag', {
- get: function () {
- return s.Z.GLOBAL_TAG;
- },
- set: function (t) {
- (s.Z.GLOBAL_TAG = t), e._notifyChange();
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e, 'enableAll', {
- get: function () {
- return (
- s.Z.ENABLE_VERBOSE &&
- s.Z.ENABLE_DEBUG &&
- s.Z.ENABLE_INFO &&
- s.Z.ENABLE_WARN &&
- s.Z.ENABLE_ERROR
- );
- },
- set: function (t) {
- (s.Z.ENABLE_VERBOSE = t),
- (s.Z.ENABLE_DEBUG = t),
- (s.Z.ENABLE_INFO = t),
- (s.Z.ENABLE_WARN = t),
- (s.Z.ENABLE_ERROR = t),
- e._notifyChange();
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e, 'enableDebug', {
- get: function () {
- return s.Z.ENABLE_DEBUG;
- },
- set: function (t) {
- (s.Z.ENABLE_DEBUG = t), e._notifyChange();
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e, 'enableVerbose', {
- get: function () {
- return s.Z.ENABLE_VERBOSE;
- },
- set: function (t) {
- (s.Z.ENABLE_VERBOSE = t), e._notifyChange();
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e, 'enableInfo', {
- get: function () {
- return s.Z.ENABLE_INFO;
- },
- set: function (t) {
- (s.Z.ENABLE_INFO = t), e._notifyChange();
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e, 'enableWarn', {
- get: function () {
- return s.Z.ENABLE_WARN;
- },
- set: function (t) {
- (s.Z.ENABLE_WARN = t), e._notifyChange();
- },
- enumerable: !1,
- configurable: !0,
- }),
- Object.defineProperty(e, 'enableError', {
- get: function () {
- return s.Z.ENABLE_ERROR;
- },
- set: function (t) {
- (s.Z.ENABLE_ERROR = t), e._notifyChange();
- },
- enumerable: !1,
- configurable: !0,
- }),
- (e.getConfig = function () {
- return {
- globalTag: s.Z.GLOBAL_TAG,
- forceGlobalTag: s.Z.FORCE_GLOBAL_TAG,
- enableVerbose: s.Z.ENABLE_VERBOSE,
- enableDebug: s.Z.ENABLE_DEBUG,
- enableInfo: s.Z.ENABLE_INFO,
- enableWarn: s.Z.ENABLE_WARN,
- enableError: s.Z.ENABLE_ERROR,
- enableCallback: s.Z.ENABLE_CALLBACK,
- };
- }),
- (e.applyConfig = function (e) {
- (s.Z.GLOBAL_TAG = e.globalTag),
- (s.Z.FORCE_GLOBAL_TAG = e.forceGlobalTag),
- (s.Z.ENABLE_VERBOSE = e.enableVerbose),
- (s.Z.ENABLE_DEBUG = e.enableDebug),
- (s.Z.ENABLE_INFO = e.enableInfo),
- (s.Z.ENABLE_WARN = e.enableWarn),
- (s.Z.ENABLE_ERROR = e.enableError),
- (s.Z.ENABLE_CALLBACK = e.enableCallback);
- }),
- (e._notifyChange = function () {
- var t = e.emitter;
- if (t.listenerCount('change') > 0) {
- var i = e.getConfig();
- t.emit('change', i);
- }
- }),
- (e.registerListener = function (t) {
- e.emitter.addListener('change', t);
- }),
- (e.removeListener = function (t) {
- e.emitter.removeListener('change', t);
- }),
- (e.addLogListener = function (t) {
- s.Z.emitter.addListener('log', t),
- s.Z.emitter.listenerCount('log') > 0 &&
- ((s.Z.ENABLE_CALLBACK = !0), e._notifyChange());
- }),
- (e.removeLogListener = function (t) {
- s.Z.emitter.removeListener('log', t),
- 0 === s.Z.emitter.listenerCount('log') &&
- ((s.Z.ENABLE_CALLBACK = !1), e._notifyChange());
- }),
- e
- );
- })();
- (o.emitter = new (r())()), (t.Z = o);
- },
- 219: function (e, t, i) {
- 'use strict';
- var n = (function () {
- function e() {}
- return (
- (e.install = function () {
- (Object.setPrototypeOf =
- Object.setPrototypeOf ||
- function (e, t) {
- return (e.__proto__ = t), e;
- }),
- (Object.assign =
- Object.assign ||
- function (e) {
- if (null == e)
- throw new TypeError(
- 'Cannot convert undefined or null to object'
- );
- for (
- var t = Object(e), i = 1;
- i < arguments.length;
- i++
- ) {
- var n = arguments[i];
- if (null != n)
- for (var r in n) n.hasOwnProperty(r) && (t[r] = n[r]);
- }
- return t;
- }),
- 'function' != typeof self.Promise && i(264).polyfill();
- }),
- e
- );
- })();
- n.install(), (t.Z = n);
- },
- },
- t = {};
- function i(n) {
- var r = t[n];
- if (void 0 !== r) return r.exports;
- var s = (t[n] = { exports: {} });
- return e[n].call(s.exports, s, s.exports, i), s.exports;
- }
- return (
- (i.m = e),
- (i.n = function (e) {
- var t =
- e && e.__esModule
- ? function () {
- return e.default;
- }
- : function () {
- return e;
- };
- return i.d(t, { a: t }), t;
- }),
- (i.d = function (e, t) {
- for (var n in t)
- i.o(t, n) &&
- !i.o(e, n) &&
- Object.defineProperty(e, n, { enumerable: !0, get: t[n] });
- }),
- (i.g = (function () {
- if ('object' == typeof globalThis) return globalThis;
- try {
- return this || new Function('return this')();
- } catch (e) {
- if ('object' == typeof window) return window;
- }
- })()),
- (i.o = function (e, t) {
- return Object.prototype.hasOwnProperty.call(e, t);
- }),
- i(324)
- );
- })();
- });
- //# sourceMappingURL=flv.min.js.map
|