This page hosts a formal specification of .mov file format of QuickTime, MP4 ISO 14496-14 media using Kaitai Struct. This specification can be automatically translated into a variety of programming languages to get a parsing library.
// Code generated by kaitai-struct-compiler from a .ksy source file. DO NOT EDIT.
import (
"github.com/kaitai-io/kaitai_struct_go_runtime/kaitai"
"bytes"
)
/**
* @see <a href="https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap1/qtff1.html#//apple_ref/doc/uid/TP40000939-CH203-BBCGDDDF">Source</a>
*/
type QuicktimeMov_AtomType int
const (
QuicktimeMov_AtomType__Xtra QuicktimeMov_AtomType = 1484026465
QuicktimeMov_AtomType__Dinf QuicktimeMov_AtomType = 1684631142
QuicktimeMov_AtomType__Dref QuicktimeMov_AtomType = 1685218662
QuicktimeMov_AtomType__Edts QuicktimeMov_AtomType = 1701082227
QuicktimeMov_AtomType__Elst QuicktimeMov_AtomType = 1701606260
QuicktimeMov_AtomType__Free QuicktimeMov_AtomType = 1718773093
QuicktimeMov_AtomType__Ftyp QuicktimeMov_AtomType = 1718909296
QuicktimeMov_AtomType__Hdlr QuicktimeMov_AtomType = 1751411826
QuicktimeMov_AtomType__Iods QuicktimeMov_AtomType = 1768907891
QuicktimeMov_AtomType__Mdat QuicktimeMov_AtomType = 1835295092
QuicktimeMov_AtomType__Mdhd QuicktimeMov_AtomType = 1835296868
QuicktimeMov_AtomType__Mdia QuicktimeMov_AtomType = 1835297121
QuicktimeMov_AtomType__Meta QuicktimeMov_AtomType = 1835365473
QuicktimeMov_AtomType__Minf QuicktimeMov_AtomType = 1835626086
QuicktimeMov_AtomType__Moof QuicktimeMov_AtomType = 1836019558
QuicktimeMov_AtomType__Moov QuicktimeMov_AtomType = 1836019574
QuicktimeMov_AtomType__Mvhd QuicktimeMov_AtomType = 1836476516
QuicktimeMov_AtomType__Smhd QuicktimeMov_AtomType = 1936549988
QuicktimeMov_AtomType__Stbl QuicktimeMov_AtomType = 1937007212
QuicktimeMov_AtomType__Stco QuicktimeMov_AtomType = 1937007471
QuicktimeMov_AtomType__Stsc QuicktimeMov_AtomType = 1937011555
QuicktimeMov_AtomType__Stsd QuicktimeMov_AtomType = 1937011556
QuicktimeMov_AtomType__Stsz QuicktimeMov_AtomType = 1937011578
QuicktimeMov_AtomType__Stts QuicktimeMov_AtomType = 1937011827
QuicktimeMov_AtomType__Tkhd QuicktimeMov_AtomType = 1953196132
QuicktimeMov_AtomType__Traf QuicktimeMov_AtomType = 1953653094
QuicktimeMov_AtomType__Trak QuicktimeMov_AtomType = 1953653099
QuicktimeMov_AtomType__Tref QuicktimeMov_AtomType = 1953654118
QuicktimeMov_AtomType__Udta QuicktimeMov_AtomType = 1969517665
QuicktimeMov_AtomType__Vmhd QuicktimeMov_AtomType = 1986881636
)
var values_QuicktimeMov_AtomType = map[QuicktimeMov_AtomType]struct{}{1484026465: {}, 1684631142: {}, 1685218662: {}, 1701082227: {}, 1701606260: {}, 1718773093: {}, 1718909296: {}, 1751411826: {}, 1768907891: {}, 1835295092: {}, 1835296868: {}, 1835297121: {}, 1835365473: {}, 1835626086: {}, 1836019558: {}, 1836019574: {}, 1836476516: {}, 1936549988: {}, 1937007212: {}, 1937007471: {}, 1937011555: {}, 1937011556: {}, 1937011578: {}, 1937011827: {}, 1953196132: {}, 1953653094: {}, 1953653099: {}, 1953654118: {}, 1969517665: {}, 1986881636: {}}
func (v QuicktimeMov_AtomType) isDefined() bool {
_, ok := values_QuicktimeMov_AtomType[v]
return ok
}
type QuicktimeMov_Brand int
const (
QuicktimeMov_Brand__X3g2a QuicktimeMov_Brand = 862401121
QuicktimeMov_Brand__X3ge6 QuicktimeMov_Brand = 862414134
QuicktimeMov_Brand__X3ge7 QuicktimeMov_Brand = 862414135
QuicktimeMov_Brand__X3ge9 QuicktimeMov_Brand = 862414137
QuicktimeMov_Brand__X3gf9 QuicktimeMov_Brand = 862414393
QuicktimeMov_Brand__X3gg6 QuicktimeMov_Brand = 862414646
QuicktimeMov_Brand__X3gg9 QuicktimeMov_Brand = 862414649
QuicktimeMov_Brand__X3gh9 QuicktimeMov_Brand = 862414905
QuicktimeMov_Brand__X3gm9 QuicktimeMov_Brand = 862416185
QuicktimeMov_Brand__X3gma QuicktimeMov_Brand = 862416193
QuicktimeMov_Brand__X3gp4 QuicktimeMov_Brand = 862416948
QuicktimeMov_Brand__X3gp5 QuicktimeMov_Brand = 862416949
QuicktimeMov_Brand__X3gp6 QuicktimeMov_Brand = 862416950
QuicktimeMov_Brand__X3gp7 QuicktimeMov_Brand = 862416951
QuicktimeMov_Brand__X3gp8 QuicktimeMov_Brand = 862416952
QuicktimeMov_Brand__X3gp9 QuicktimeMov_Brand = 862416953
QuicktimeMov_Brand__X3gr6 QuicktimeMov_Brand = 862417462
QuicktimeMov_Brand__X3gr9 QuicktimeMov_Brand = 862417465
QuicktimeMov_Brand__X3gs6 QuicktimeMov_Brand = 862417718
QuicktimeMov_Brand__X3gs9 QuicktimeMov_Brand = 862417721
QuicktimeMov_Brand__X3gt8 QuicktimeMov_Brand = 862417976
QuicktimeMov_Brand__X3gt9 QuicktimeMov_Brand = 862417977
QuicktimeMov_Brand__X3gtv QuicktimeMov_Brand = 862418038
QuicktimeMov_Brand__X3gvr QuicktimeMov_Brand = 862418546
QuicktimeMov_Brand__X3vra QuicktimeMov_Brand = 863400545
QuicktimeMov_Brand__X3vrb QuicktimeMov_Brand = 863400546
QuicktimeMov_Brand__X3vrm QuicktimeMov_Brand = 863400557
QuicktimeMov_Brand__Arri QuicktimeMov_Brand = 1095914057
QuicktimeMov_Brand__Caep QuicktimeMov_Brand = 1128351056
QuicktimeMov_Brand__Cdes QuicktimeMov_Brand = 1128555891
QuicktimeMov_Brand__J2p0 QuicktimeMov_Brand = 1244811312
QuicktimeMov_Brand__J2p1 QuicktimeMov_Brand = 1244811313
QuicktimeMov_Brand__Lcag QuicktimeMov_Brand = 1279476039
QuicktimeMov_Brand__M4a QuicktimeMov_Brand = 1295270176
QuicktimeMov_Brand__M4b QuicktimeMov_Brand = 1295270432
QuicktimeMov_Brand__M4p QuicktimeMov_Brand = 1295274016
QuicktimeMov_Brand__M4v QuicktimeMov_Brand = 1295275552
QuicktimeMov_Brand__Ma1a QuicktimeMov_Brand = 1296118081
QuicktimeMov_Brand__Ma1b QuicktimeMov_Brand = 1296118082
QuicktimeMov_Brand__Mfsm QuicktimeMov_Brand = 1296454477
QuicktimeMov_Brand__Mgsv QuicktimeMov_Brand = 1296520022
QuicktimeMov_Brand__Mppi QuicktimeMov_Brand = 1297109065
QuicktimeMov_Brand__Msnv QuicktimeMov_Brand = 1297305174
QuicktimeMov_Brand__Miab QuicktimeMov_Brand = 1298743618
QuicktimeMov_Brand__Miac QuicktimeMov_Brand = 1298743619
QuicktimeMov_Brand__Mian QuicktimeMov_Brand = 1298743662
QuicktimeMov_Brand__Mibu QuicktimeMov_Brand = 1298743925
QuicktimeMov_Brand__Micm QuicktimeMov_Brand = 1298744173
QuicktimeMov_Brand__Miha QuicktimeMov_Brand = 1298745409
QuicktimeMov_Brand__Mihb QuicktimeMov_Brand = 1298745410
QuicktimeMov_Brand__Mihe QuicktimeMov_Brand = 1298745413
QuicktimeMov_Brand__Mipr QuicktimeMov_Brand = 1298747506
QuicktimeMov_Brand__Ross QuicktimeMov_Brand = 1380930387
QuicktimeMov_Brand__Seau QuicktimeMov_Brand = 1397047637
QuicktimeMov_Brand__Sebk QuicktimeMov_Brand = 1397047883
QuicktimeMov_Brand__Xavc QuicktimeMov_Brand = 1480676931
QuicktimeMov_Brand__Adti QuicktimeMov_Brand = 1633973353
QuicktimeMov_Brand__Aid3 QuicktimeMov_Brand = 1634296883
QuicktimeMov_Brand__Av01 QuicktimeMov_Brand = 1635135537
QuicktimeMov_Brand__Avc1 QuicktimeMov_Brand = 1635148593
QuicktimeMov_Brand__Avci QuicktimeMov_Brand = 1635148649
QuicktimeMov_Brand__Avcs QuicktimeMov_Brand = 1635148659
QuicktimeMov_Brand__Avde QuicktimeMov_Brand = 1635148901
QuicktimeMov_Brand__Avif QuicktimeMov_Brand = 1635150182
QuicktimeMov_Brand__Avio QuicktimeMov_Brand = 1635150191
QuicktimeMov_Brand__Avis QuicktimeMov_Brand = 1635150195
QuicktimeMov_Brand__Bbxm QuicktimeMov_Brand = 1650620525
QuicktimeMov_Brand__Ca4m QuicktimeMov_Brand = 1667314797
QuicktimeMov_Brand__Ca4s QuicktimeMov_Brand = 1667314803
QuicktimeMov_Brand__Caaa QuicktimeMov_Brand = 1667326305
QuicktimeMov_Brand__Caac QuicktimeMov_Brand = 1667326307
QuicktimeMov_Brand__Cabl QuicktimeMov_Brand = 1667326572
QuicktimeMov_Brand__Cama QuicktimeMov_Brand = 1667329377
QuicktimeMov_Brand__Camc QuicktimeMov_Brand = 1667329379
QuicktimeMov_Brand__Caqv QuicktimeMov_Brand = 1667330422
QuicktimeMov_Brand__Casu QuicktimeMov_Brand = 1667330933
QuicktimeMov_Brand__Ccea QuicktimeMov_Brand = 1667458401
QuicktimeMov_Brand__Ccff QuicktimeMov_Brand = 1667458662
QuicktimeMov_Brand__Cdm1 QuicktimeMov_Brand = 1667525937
QuicktimeMov_Brand__Cdm4 QuicktimeMov_Brand = 1667525940
QuicktimeMov_Brand__Ceac QuicktimeMov_Brand = 1667588451
QuicktimeMov_Brand__Cfhd QuicktimeMov_Brand = 1667655780
QuicktimeMov_Brand__Cfsd QuicktimeMov_Brand = 1667658596
QuicktimeMov_Brand__Chd1 QuicktimeMov_Brand = 1667785777
QuicktimeMov_Brand__Chd2 QuicktimeMov_Brand = 1667785778
QuicktimeMov_Brand__Chdf QuicktimeMov_Brand = 1667785830
QuicktimeMov_Brand__Chev QuicktimeMov_Brand = 1667786102
QuicktimeMov_Brand__Chh1 QuicktimeMov_Brand = 1667786801
QuicktimeMov_Brand__Chhd QuicktimeMov_Brand = 1667786852
QuicktimeMov_Brand__Cint QuicktimeMov_Brand = 1667853940
QuicktimeMov_Brand__Clg1 QuicktimeMov_Brand = 1668048689
QuicktimeMov_Brand__Clg2 QuicktimeMov_Brand = 1668048690
QuicktimeMov_Brand__Cmf2 QuicktimeMov_Brand = 1668113970
QuicktimeMov_Brand__Cmfc QuicktimeMov_Brand = 1668114019
QuicktimeMov_Brand__Cmff QuicktimeMov_Brand = 1668114022
QuicktimeMov_Brand__Cmfl QuicktimeMov_Brand = 1668114028
QuicktimeMov_Brand__Cmfs QuicktimeMov_Brand = 1668114035
QuicktimeMov_Brand__Cmhm QuicktimeMov_Brand = 1668114541
QuicktimeMov_Brand__Cmhs QuicktimeMov_Brand = 1668114547
QuicktimeMov_Brand__Comp QuicktimeMov_Brand = 1668246896
QuicktimeMov_Brand__Csh1 QuicktimeMov_Brand = 1668507697
QuicktimeMov_Brand__Cud1 QuicktimeMov_Brand = 1668637745
QuicktimeMov_Brand__Cud2 QuicktimeMov_Brand = 1668637746
QuicktimeMov_Brand__Cud8 QuicktimeMov_Brand = 1668637752
QuicktimeMov_Brand__Cud9 QuicktimeMov_Brand = 1668637753
QuicktimeMov_Brand__Cuvd QuicktimeMov_Brand = 1668642404
QuicktimeMov_Brand__Cvid QuicktimeMov_Brand = 1668704612
QuicktimeMov_Brand__Cvvc QuicktimeMov_Brand = 1668707939
QuicktimeMov_Brand__Cwvt QuicktimeMov_Brand = 1668773492
QuicktimeMov_Brand__Da0a QuicktimeMov_Brand = 1684090977
QuicktimeMov_Brand__Da0b QuicktimeMov_Brand = 1684090978
QuicktimeMov_Brand__Da1a QuicktimeMov_Brand = 1684091233
QuicktimeMov_Brand__Da1b QuicktimeMov_Brand = 1684091234
QuicktimeMov_Brand__Da2a QuicktimeMov_Brand = 1684091489
QuicktimeMov_Brand__Da2b QuicktimeMov_Brand = 1684091490
QuicktimeMov_Brand__Da3a QuicktimeMov_Brand = 1684091745
QuicktimeMov_Brand__Da3b QuicktimeMov_Brand = 1684091746
QuicktimeMov_Brand__Dash QuicktimeMov_Brand = 1684108136
QuicktimeMov_Brand__Dby1 QuicktimeMov_Brand = 1684175153
QuicktimeMov_Brand__Dmb1 QuicktimeMov_Brand = 1684890161
QuicktimeMov_Brand__Dsms QuicktimeMov_Brand = 1685286259
QuicktimeMov_Brand__Dts1 QuicktimeMov_Brand = 1685353265
QuicktimeMov_Brand__Dts2 QuicktimeMov_Brand = 1685353266
QuicktimeMov_Brand__Dts3 QuicktimeMov_Brand = 1685353267
QuicktimeMov_Brand__Dv1a QuicktimeMov_Brand = 1685467489
QuicktimeMov_Brand__Dv1b QuicktimeMov_Brand = 1685467490
QuicktimeMov_Brand__Dv2a QuicktimeMov_Brand = 1685467745
QuicktimeMov_Brand__Dv2b QuicktimeMov_Brand = 1685467746
QuicktimeMov_Brand__Dv3a QuicktimeMov_Brand = 1685468001
QuicktimeMov_Brand__Dv3b QuicktimeMov_Brand = 1685468002
QuicktimeMov_Brand__Dvr1 QuicktimeMov_Brand = 1685484081
QuicktimeMov_Brand__Dvt1 QuicktimeMov_Brand = 1685484593
QuicktimeMov_Brand__Dxo QuicktimeMov_Brand = 1685614368
QuicktimeMov_Brand__Emsg QuicktimeMov_Brand = 1701671783
QuicktimeMov_Brand__Heic QuicktimeMov_Brand = 1751476579
QuicktimeMov_Brand__Heim QuicktimeMov_Brand = 1751476589
QuicktimeMov_Brand__Heis QuicktimeMov_Brand = 1751476595
QuicktimeMov_Brand__Heix QuicktimeMov_Brand = 1751476600
QuicktimeMov_Brand__Heoi QuicktimeMov_Brand = 1751478121
QuicktimeMov_Brand__Hevc QuicktimeMov_Brand = 1751479907
QuicktimeMov_Brand__Hevd QuicktimeMov_Brand = 1751479908
QuicktimeMov_Brand__Hevi QuicktimeMov_Brand = 1751479913
QuicktimeMov_Brand__Hevm QuicktimeMov_Brand = 1751479917
QuicktimeMov_Brand__Hevs QuicktimeMov_Brand = 1751479923
QuicktimeMov_Brand__Hevx QuicktimeMov_Brand = 1751479928
QuicktimeMov_Brand__Hvce QuicktimeMov_Brand = 1752589157
QuicktimeMov_Brand__Hvci QuicktimeMov_Brand = 1752589161
QuicktimeMov_Brand__Hvcx QuicktimeMov_Brand = 1752589176
QuicktimeMov_Brand__Hvti QuicktimeMov_Brand = 1752593513
QuicktimeMov_Brand__Ifaa QuicktimeMov_Brand = 1768317281
QuicktimeMov_Brand__Ifah QuicktimeMov_Brand = 1768317288
QuicktimeMov_Brand__Ifai QuicktimeMov_Brand = 1768317289
QuicktimeMov_Brand__Ifas QuicktimeMov_Brand = 1768317299
QuicktimeMov_Brand__Ifau QuicktimeMov_Brand = 1768317301
QuicktimeMov_Brand__Ifav QuicktimeMov_Brand = 1768317302
QuicktimeMov_Brand__Ifhd QuicktimeMov_Brand = 1768319076
QuicktimeMov_Brand__Ifhh QuicktimeMov_Brand = 1768319080
QuicktimeMov_Brand__Ifhr QuicktimeMov_Brand = 1768319090
QuicktimeMov_Brand__Ifhs QuicktimeMov_Brand = 1768319091
QuicktimeMov_Brand__Ifhu QuicktimeMov_Brand = 1768319093
QuicktimeMov_Brand__Ifhx QuicktimeMov_Brand = 1768319096
QuicktimeMov_Brand__Ifrm QuicktimeMov_Brand = 1768321645
QuicktimeMov_Brand__Ifsd QuicktimeMov_Brand = 1768321892
QuicktimeMov_Brand__Im1i QuicktimeMov_Brand = 1768763753
QuicktimeMov_Brand__Im1t QuicktimeMov_Brand = 1768763764
QuicktimeMov_Brand__Im2i QuicktimeMov_Brand = 1768764009
QuicktimeMov_Brand__Im2t QuicktimeMov_Brand = 1768764020
QuicktimeMov_Brand__Isc2 QuicktimeMov_Brand = 1769169714
QuicktimeMov_Brand__Iso2 QuicktimeMov_Brand = 1769172786
QuicktimeMov_Brand__Iso3 QuicktimeMov_Brand = 1769172787
QuicktimeMov_Brand__Iso4 QuicktimeMov_Brand = 1769172788
QuicktimeMov_Brand__Iso5 QuicktimeMov_Brand = 1769172789
QuicktimeMov_Brand__Iso6 QuicktimeMov_Brand = 1769172790
QuicktimeMov_Brand__Iso7 QuicktimeMov_Brand = 1769172791
QuicktimeMov_Brand__Iso8 QuicktimeMov_Brand = 1769172792
QuicktimeMov_Brand__Iso9 QuicktimeMov_Brand = 1769172793
QuicktimeMov_Brand__Isoa QuicktimeMov_Brand = 1769172833
QuicktimeMov_Brand__Isob QuicktimeMov_Brand = 1769172834
QuicktimeMov_Brand__Isoc QuicktimeMov_Brand = 1769172835
QuicktimeMov_Brand__Isom QuicktimeMov_Brand = 1769172845
QuicktimeMov_Brand__J2is QuicktimeMov_Brand = 1781688691
QuicktimeMov_Brand__J2ki QuicktimeMov_Brand = 1781689193
QuicktimeMov_Brand__J2ks QuicktimeMov_Brand = 1781689203
QuicktimeMov_Brand__Jp2 QuicktimeMov_Brand = 1785737760
QuicktimeMov_Brand__Jpeg QuicktimeMov_Brand = 1785750887
QuicktimeMov_Brand__Jpgs QuicktimeMov_Brand = 1785751411
QuicktimeMov_Brand__Jpm QuicktimeMov_Brand = 1785752864
QuicktimeMov_Brand__Jpoi QuicktimeMov_Brand = 1785753449
QuicktimeMov_Brand__Jpsi QuicktimeMov_Brand = 1785754473
QuicktimeMov_Brand__Jpx QuicktimeMov_Brand = 1785755680
QuicktimeMov_Brand__Jpxb QuicktimeMov_Brand = 1785755746
QuicktimeMov_Brand__Jxl QuicktimeMov_Brand = 1786276896
QuicktimeMov_Brand__Jxs QuicktimeMov_Brand = 1786278688
QuicktimeMov_Brand__Jxsc QuicktimeMov_Brand = 1786278755
QuicktimeMov_Brand__Jxsi QuicktimeMov_Brand = 1786278761
QuicktimeMov_Brand__Jxss QuicktimeMov_Brand = 1786278771
QuicktimeMov_Brand__Lhte QuicktimeMov_Brand = 1818784869
QuicktimeMov_Brand__Lhti QuicktimeMov_Brand = 1818784873
QuicktimeMov_Brand__Lmsg QuicktimeMov_Brand = 1819112295
QuicktimeMov_Brand__Miaf QuicktimeMov_Brand = 1835622758
QuicktimeMov_Brand__Mif1 QuicktimeMov_Brand = 1835623985
QuicktimeMov_Brand__Mif2 QuicktimeMov_Brand = 1835623986
QuicktimeMov_Brand__Mj2s QuicktimeMov_Brand = 1835676275
QuicktimeMov_Brand__Mjp2 QuicktimeMov_Brand = 1835692082
QuicktimeMov_Brand__Mp21 QuicktimeMov_Brand = 1836069425
QuicktimeMov_Brand__Mp41 QuicktimeMov_Brand = 1836069937
QuicktimeMov_Brand__Mp42 QuicktimeMov_Brand = 1836069938
QuicktimeMov_Brand__Mp71 QuicktimeMov_Brand = 1836070705
QuicktimeMov_Brand__Mpuf QuicktimeMov_Brand = 1836086630
QuicktimeMov_Brand__Msdh QuicktimeMov_Brand = 1836278888
QuicktimeMov_Brand__Msf1 QuicktimeMov_Brand = 1836279345
QuicktimeMov_Brand__Msix QuicktimeMov_Brand = 1836280184
QuicktimeMov_Brand__Niko QuicktimeMov_Brand = 1852402543
QuicktimeMov_Brand__Nlsl QuicktimeMov_Brand = 1852601196
QuicktimeMov_Brand__Nras QuicktimeMov_Brand = 1852989811
QuicktimeMov_Brand__Oa2d QuicktimeMov_Brand = 1868640868
QuicktimeMov_Brand__Oabl QuicktimeMov_Brand = 1868653164
QuicktimeMov_Brand__Odcf QuicktimeMov_Brand = 1868850022
QuicktimeMov_Brand__Ompp QuicktimeMov_Brand = 1869443184
QuicktimeMov_Brand__Opf2 QuicktimeMov_Brand = 1869637170
QuicktimeMov_Brand__Opx2 QuicktimeMov_Brand = 1869641778
QuicktimeMov_Brand__Ovdp QuicktimeMov_Brand = 1870029936
QuicktimeMov_Brand__Ovly QuicktimeMov_Brand = 1870031993
QuicktimeMov_Brand__Paff QuicktimeMov_Brand = 1885431398
QuicktimeMov_Brand__Pana QuicktimeMov_Brand = 1885433441
QuicktimeMov_Brand__Piff QuicktimeMov_Brand = 1885955686
QuicktimeMov_Brand__Pmff QuicktimeMov_Brand = 1886217830
QuicktimeMov_Brand__Pnvi QuicktimeMov_Brand = 1886287465
QuicktimeMov_Brand__Pred QuicktimeMov_Brand = 1886545252
QuicktimeMov_Brand__Qt QuicktimeMov_Brand = 1903435808
QuicktimeMov_Brand__Relo QuicktimeMov_Brand = 1919249519
QuicktimeMov_Brand__Risx QuicktimeMov_Brand = 1919513464
QuicktimeMov_Brand__Sdv QuicktimeMov_Brand = 1935963680
QuicktimeMov_Brand__Senv QuicktimeMov_Brand = 1936027254
QuicktimeMov_Brand__Sims QuicktimeMov_Brand = 1936289139
QuicktimeMov_Brand__Sisx QuicktimeMov_Brand = 1936290680
QuicktimeMov_Brand__Siti QuicktimeMov_Brand = 1936290921
QuicktimeMov_Brand__Sitv QuicktimeMov_Brand = 1936290934
QuicktimeMov_Brand__Slh1 QuicktimeMov_Brand = 1936484401
QuicktimeMov_Brand__Slh2 QuicktimeMov_Brand = 1936484402
QuicktimeMov_Brand__Slh3 QuicktimeMov_Brand = 1936484403
QuicktimeMov_Brand__Ssss QuicktimeMov_Brand = 1936946035
QuicktimeMov_Brand__Ttml QuicktimeMov_Brand = 1953787244
QuicktimeMov_Brand__Ttwv QuicktimeMov_Brand = 1953789814
QuicktimeMov_Brand__Uhvi QuicktimeMov_Brand = 1969780329
QuicktimeMov_Brand__Unif QuicktimeMov_Brand = 1970170214
QuicktimeMov_Brand__Uvvu QuicktimeMov_Brand = 1970697845
QuicktimeMov_Brand__V3mp QuicktimeMov_Brand = 1983081840
QuicktimeMov_Brand__V3mt QuicktimeMov_Brand = 1983081844
QuicktimeMov_Brand__V3nt QuicktimeMov_Brand = 1983082100
QuicktimeMov_Brand__V3st QuicktimeMov_Brand = 1983083380
QuicktimeMov_Brand__Vvci QuicktimeMov_Brand = 1987470185
QuicktimeMov_Brand__Vvoi QuicktimeMov_Brand = 1987473257
QuicktimeMov_Brand__Vwpt QuicktimeMov_Brand = 1987539060
QuicktimeMov_Brand__Yt4 QuicktimeMov_Brand = 2037658656
)
var values_QuicktimeMov_Brand = map[QuicktimeMov_Brand]struct{}{862401121: {}, 862414134: {}, 862414135: {}, 862414137: {}, 862414393: {}, 862414646: {}, 862414649: {}, 862414905: {}, 862416185: {}, 862416193: {}, 862416948: {}, 862416949: {}, 862416950: {}, 862416951: {}, 862416952: {}, 862416953: {}, 862417462: {}, 862417465: {}, 862417718: {}, 862417721: {}, 862417976: {}, 862417977: {}, 862418038: {}, 862418546: {}, 863400545: {}, 863400546: {}, 863400557: {}, 1095914057: {}, 1128351056: {}, 1128555891: {}, 1244811312: {}, 1244811313: {}, 1279476039: {}, 1295270176: {}, 1295270432: {}, 1295274016: {}, 1295275552: {}, 1296118081: {}, 1296118082: {}, 1296454477: {}, 1296520022: {}, 1297109065: {}, 1297305174: {}, 1298743618: {}, 1298743619: {}, 1298743662: {}, 1298743925: {}, 1298744173: {}, 1298745409: {}, 1298745410: {}, 1298745413: {}, 1298747506: {}, 1380930387: {}, 1397047637: {}, 1397047883: {}, 1480676931: {}, 1633973353: {}, 1634296883: {}, 1635135537: {}, 1635148593: {}, 1635148649: {}, 1635148659: {}, 1635148901: {}, 1635150182: {}, 1635150191: {}, 1635150195: {}, 1650620525: {}, 1667314797: {}, 1667314803: {}, 1667326305: {}, 1667326307: {}, 1667326572: {}, 1667329377: {}, 1667329379: {}, 1667330422: {}, 1667330933: {}, 1667458401: {}, 1667458662: {}, 1667525937: {}, 1667525940: {}, 1667588451: {}, 1667655780: {}, 1667658596: {}, 1667785777: {}, 1667785778: {}, 1667785830: {}, 1667786102: {}, 1667786801: {}, 1667786852: {}, 1667853940: {}, 1668048689: {}, 1668048690: {}, 1668113970: {}, 1668114019: {}, 1668114022: {}, 1668114028: {}, 1668114035: {}, 1668114541: {}, 1668114547: {}, 1668246896: {}, 1668507697: {}, 1668637745: {}, 1668637746: {}, 1668637752: {}, 1668637753: {}, 1668642404: {}, 1668704612: {}, 1668707939: {}, 1668773492: {}, 1684090977: {}, 1684090978: {}, 1684091233: {}, 1684091234: {}, 1684091489: {}, 1684091490: {}, 1684091745: {}, 1684091746: {}, 1684108136: {}, 1684175153: {}, 1684890161: {}, 1685286259: {}, 1685353265: {}, 1685353266: {}, 1685353267: {}, 1685467489: {}, 1685467490: {}, 1685467745: {}, 1685467746: {}, 1685468001: {}, 1685468002: {}, 1685484081: {}, 1685484593: {}, 1685614368: {}, 1701671783: {}, 1751476579: {}, 1751476589: {}, 1751476595: {}, 1751476600: {}, 1751478121: {}, 1751479907: {}, 1751479908: {}, 1751479913: {}, 1751479917: {}, 1751479923: {}, 1751479928: {}, 1752589157: {}, 1752589161: {}, 1752589176: {}, 1752593513: {}, 1768317281: {}, 1768317288: {}, 1768317289: {}, 1768317299: {}, 1768317301: {}, 1768317302: {}, 1768319076: {}, 1768319080: {}, 1768319090: {}, 1768319091: {}, 1768319093: {}, 1768319096: {}, 1768321645: {}, 1768321892: {}, 1768763753: {}, 1768763764: {}, 1768764009: {}, 1768764020: {}, 1769169714: {}, 1769172786: {}, 1769172787: {}, 1769172788: {}, 1769172789: {}, 1769172790: {}, 1769172791: {}, 1769172792: {}, 1769172793: {}, 1769172833: {}, 1769172834: {}, 1769172835: {}, 1769172845: {}, 1781688691: {}, 1781689193: {}, 1781689203: {}, 1785737760: {}, 1785750887: {}, 1785751411: {}, 1785752864: {}, 1785753449: {}, 1785754473: {}, 1785755680: {}, 1785755746: {}, 1786276896: {}, 1786278688: {}, 1786278755: {}, 1786278761: {}, 1786278771: {}, 1818784869: {}, 1818784873: {}, 1819112295: {}, 1835622758: {}, 1835623985: {}, 1835623986: {}, 1835676275: {}, 1835692082: {}, 1836069425: {}, 1836069937: {}, 1836069938: {}, 1836070705: {}, 1836086630: {}, 1836278888: {}, 1836279345: {}, 1836280184: {}, 1852402543: {}, 1852601196: {}, 1852989811: {}, 1868640868: {}, 1868653164: {}, 1868850022: {}, 1869443184: {}, 1869637170: {}, 1869641778: {}, 1870029936: {}, 1870031993: {}, 1885431398: {}, 1885433441: {}, 1885955686: {}, 1886217830: {}, 1886287465: {}, 1886545252: {}, 1903435808: {}, 1919249519: {}, 1919513464: {}, 1935963680: {}, 1936027254: {}, 1936289139: {}, 1936290680: {}, 1936290921: {}, 1936290934: {}, 1936484401: {}, 1936484402: {}, 1936484403: {}, 1936946035: {}, 1953787244: {}, 1953789814: {}, 1969780329: {}, 1970170214: {}, 1970697845: {}, 1983081840: {}, 1983081844: {}, 1983082100: {}, 1983083380: {}, 1987470185: {}, 1987473257: {}, 1987539060: {}, 2037658656: {}}
func (v QuicktimeMov_Brand) isDefined() bool {
_, ok := values_QuicktimeMov_Brand[v]
return ok
}
type QuicktimeMov struct {
Atoms *QuicktimeMov_AtomList
_io *kaitai.Stream
_root *QuicktimeMov
_parent kaitai.Struct
}
func NewQuicktimeMov() *QuicktimeMov {
return &QuicktimeMov{
}
}
func (this QuicktimeMov) IO_() *kaitai.Stream {
return this._io
}
func (this *QuicktimeMov) Read(io *kaitai.Stream, parent kaitai.Struct, root *QuicktimeMov) (err error) {
this._io = io
this._parent = parent
this._root = root
tmp1 := NewQuicktimeMov_AtomList()
err = tmp1.Read(this._io, this, this._root)
if err != nil {
return err
}
this.Atoms = tmp1
return err
}
type QuicktimeMov_Atom struct {
Len32 uint32
AtomType QuicktimeMov_AtomType
Len64 uint64
Body interface{}
_io *kaitai.Stream
_root *QuicktimeMov
_parent *QuicktimeMov_AtomList
_raw_Body []byte
_f_len bool
len int
}
func NewQuicktimeMov_Atom() *QuicktimeMov_Atom {
return &QuicktimeMov_Atom{
}
}
func (this QuicktimeMov_Atom) IO_() *kaitai.Stream {
return this._io
}
func (this *QuicktimeMov_Atom) Read(io *kaitai.Stream, parent *QuicktimeMov_AtomList, root *QuicktimeMov) (err error) {
this._io = io
this._parent = parent
this._root = root
tmp2, err := this._io.ReadU4be()
if err != nil {
return err
}
this.Len32 = uint32(tmp2)
tmp3, err := this._io.ReadU4be()
if err != nil {
return err
}
this.AtomType = QuicktimeMov_AtomType(tmp3)
if (this.Len32 == 1) {
tmp4, err := this._io.ReadU8be()
if err != nil {
return err
}
this.Len64 = uint64(tmp4)
}
switch (this.AtomType) {
case QuicktimeMov_AtomType__Dinf:
tmp5, err := this.Len()
if err != nil {
return err
}
tmp6, err := this._io.ReadBytes(int(tmp5))
if err != nil {
return err
}
tmp6 = tmp6
this._raw_Body = tmp6
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp7 := NewQuicktimeMov_AtomList()
err = tmp7.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp7
case QuicktimeMov_AtomType__Ftyp:
tmp8, err := this.Len()
if err != nil {
return err
}
tmp9, err := this._io.ReadBytes(int(tmp8))
if err != nil {
return err
}
tmp9 = tmp9
this._raw_Body = tmp9
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp10 := NewQuicktimeMov_FtypBody()
err = tmp10.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp10
case QuicktimeMov_AtomType__Mdia:
tmp11, err := this.Len()
if err != nil {
return err
}
tmp12, err := this._io.ReadBytes(int(tmp11))
if err != nil {
return err
}
tmp12 = tmp12
this._raw_Body = tmp12
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp13 := NewQuicktimeMov_AtomList()
err = tmp13.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp13
case QuicktimeMov_AtomType__Minf:
tmp14, err := this.Len()
if err != nil {
return err
}
tmp15, err := this._io.ReadBytes(int(tmp14))
if err != nil {
return err
}
tmp15 = tmp15
this._raw_Body = tmp15
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp16 := NewQuicktimeMov_AtomList()
err = tmp16.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp16
case QuicktimeMov_AtomType__Moof:
tmp17, err := this.Len()
if err != nil {
return err
}
tmp18, err := this._io.ReadBytes(int(tmp17))
if err != nil {
return err
}
tmp18 = tmp18
this._raw_Body = tmp18
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp19 := NewQuicktimeMov_AtomList()
err = tmp19.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp19
case QuicktimeMov_AtomType__Moov:
tmp20, err := this.Len()
if err != nil {
return err
}
tmp21, err := this._io.ReadBytes(int(tmp20))
if err != nil {
return err
}
tmp21 = tmp21
this._raw_Body = tmp21
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp22 := NewQuicktimeMov_AtomList()
err = tmp22.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp22
case QuicktimeMov_AtomType__Mvhd:
tmp23, err := this.Len()
if err != nil {
return err
}
tmp24, err := this._io.ReadBytes(int(tmp23))
if err != nil {
return err
}
tmp24 = tmp24
this._raw_Body = tmp24
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp25 := NewQuicktimeMov_MvhdBody()
err = tmp25.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp25
case QuicktimeMov_AtomType__Stbl:
tmp26, err := this.Len()
if err != nil {
return err
}
tmp27, err := this._io.ReadBytes(int(tmp26))
if err != nil {
return err
}
tmp27 = tmp27
this._raw_Body = tmp27
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp28 := NewQuicktimeMov_AtomList()
err = tmp28.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp28
case QuicktimeMov_AtomType__Tkhd:
tmp29, err := this.Len()
if err != nil {
return err
}
tmp30, err := this._io.ReadBytes(int(tmp29))
if err != nil {
return err
}
tmp30 = tmp30
this._raw_Body = tmp30
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp31 := NewQuicktimeMov_TkhdBody()
err = tmp31.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp31
case QuicktimeMov_AtomType__Traf:
tmp32, err := this.Len()
if err != nil {
return err
}
tmp33, err := this._io.ReadBytes(int(tmp32))
if err != nil {
return err
}
tmp33 = tmp33
this._raw_Body = tmp33
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp34 := NewQuicktimeMov_AtomList()
err = tmp34.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp34
case QuicktimeMov_AtomType__Trak:
tmp35, err := this.Len()
if err != nil {
return err
}
tmp36, err := this._io.ReadBytes(int(tmp35))
if err != nil {
return err
}
tmp36 = tmp36
this._raw_Body = tmp36
_io__raw_Body := kaitai.NewStream(bytes.NewReader(this._raw_Body))
tmp37 := NewQuicktimeMov_AtomList()
err = tmp37.Read(_io__raw_Body, this, this._root)
if err != nil {
return err
}
this.Body = tmp37
default:
tmp38, err := this.Len()
if err != nil {
return err
}
tmp39, err := this._io.ReadBytes(int(tmp38))
if err != nil {
return err
}
tmp39 = tmp39
this._raw_Body = tmp39
}
return err
}
func (this *QuicktimeMov_Atom) Len() (v int, err error) {
if (this._f_len) {
return this.len, nil
}
this._f_len = true
var tmp40 int;
if (this.Len32 == 0) {
tmp41, err := this._io.Size()
if err != nil {
return 0, err
}
tmp40 = tmp41 - 8
} else {
var tmp42 int;
if (this.Len32 == 1) {
tmp42 = this.Len64 - 16
} else {
tmp42 = this.Len32 - 8
}
tmp40 = tmp42
}
this.len = int(tmp40)
return this.len, nil
}
type QuicktimeMov_AtomList struct {
Items []*QuicktimeMov_Atom
_io *kaitai.Stream
_root *QuicktimeMov
_parent kaitai.Struct
}
func NewQuicktimeMov_AtomList() *QuicktimeMov_AtomList {
return &QuicktimeMov_AtomList{
}
}
func (this QuicktimeMov_AtomList) IO_() *kaitai.Stream {
return this._io
}
func (this *QuicktimeMov_AtomList) Read(io *kaitai.Stream, parent kaitai.Struct, root *QuicktimeMov) (err error) {
this._io = io
this._parent = parent
this._root = root
for i := 0;; i++ {
tmp43, err := this._io.EOF()
if err != nil {
return err
}
if tmp43 {
break
}
tmp44 := NewQuicktimeMov_Atom()
err = tmp44.Read(this._io, this, this._root)
if err != nil {
return err
}
this.Items = append(this.Items, tmp44)
}
return err
}
/**
* Fixed-point 16-bit number.
*/
type QuicktimeMov_Fixed16 struct {
IntPart int8
FracPart uint8
_io *kaitai.Stream
_root *QuicktimeMov
_parent *QuicktimeMov_MvhdBody
}
func NewQuicktimeMov_Fixed16() *QuicktimeMov_Fixed16 {
return &QuicktimeMov_Fixed16{
}
}
func (this QuicktimeMov_Fixed16) IO_() *kaitai.Stream {
return this._io
}
func (this *QuicktimeMov_Fixed16) Read(io *kaitai.Stream, parent *QuicktimeMov_MvhdBody, root *QuicktimeMov) (err error) {
this._io = io
this._parent = parent
this._root = root
tmp45, err := this._io.ReadS1()
if err != nil {
return err
}
this.IntPart = tmp45
tmp46, err := this._io.ReadU1()
if err != nil {
return err
}
this.FracPart = tmp46
return err
}
/**
* Fixed-point 32-bit number.
*/
type QuicktimeMov_Fixed32 struct {
IntPart int16
FracPart uint16
_io *kaitai.Stream
_root *QuicktimeMov
_parent kaitai.Struct
}
func NewQuicktimeMov_Fixed32() *QuicktimeMov_Fixed32 {
return &QuicktimeMov_Fixed32{
}
}
func (this QuicktimeMov_Fixed32) IO_() *kaitai.Stream {
return this._io
}
func (this *QuicktimeMov_Fixed32) Read(io *kaitai.Stream, parent kaitai.Struct, root *QuicktimeMov) (err error) {
this._io = io
this._parent = parent
this._root = root
tmp47, err := this._io.ReadS2be()
if err != nil {
return err
}
this.IntPart = int16(tmp47)
tmp48, err := this._io.ReadU2be()
if err != nil {
return err
}
this.FracPart = uint16(tmp48)
return err
}
/**
* @see <a href="https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap1/qtff1.html#//apple_ref/doc/uid/TP40000939-CH203-CJBCBIFF">Source</a>
*/
type QuicktimeMov_FtypBody struct {
MajorBrand QuicktimeMov_Brand
MinorVersion []byte
CompatibleBrands []QuicktimeMov_Brand
_io *kaitai.Stream
_root *QuicktimeMov
_parent *QuicktimeMov_Atom
}
func NewQuicktimeMov_FtypBody() *QuicktimeMov_FtypBody {
return &QuicktimeMov_FtypBody{
}
}
func (this QuicktimeMov_FtypBody) IO_() *kaitai.Stream {
return this._io
}
func (this *QuicktimeMov_FtypBody) Read(io *kaitai.Stream, parent *QuicktimeMov_Atom, root *QuicktimeMov) (err error) {
this._io = io
this._parent = parent
this._root = root
tmp49, err := this._io.ReadU4be()
if err != nil {
return err
}
this.MajorBrand = QuicktimeMov_Brand(tmp49)
tmp50, err := this._io.ReadBytes(int(4))
if err != nil {
return err
}
tmp50 = tmp50
this.MinorVersion = tmp50
for i := 0;; i++ {
tmp51, err := this._io.EOF()
if err != nil {
return err
}
if tmp51 {
break
}
tmp52, err := this._io.ReadU4be()
if err != nil {
return err
}
this.CompatibleBrands = append(this.CompatibleBrands, QuicktimeMov_Brand(tmp52))
}
return err
}
/**
* @see <a href="https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-BBCGFGJG">Source</a>
*/
type QuicktimeMov_MvhdBody struct {
Version uint8
Flags []byte
CreationTime uint32
ModificationTime uint32
TimeScale uint32
Duration uint32
PreferredRate *QuicktimeMov_Fixed32
PreferredVolume *QuicktimeMov_Fixed16
Reserved1 []byte
Matrix []byte
PreviewTime uint32
PreviewDuration uint32
PosterTime uint32
SelectionTime uint32
SelectionDuration uint32
CurrentTime uint32
NextTrackId uint32
_io *kaitai.Stream
_root *QuicktimeMov
_parent *QuicktimeMov_Atom
}
func NewQuicktimeMov_MvhdBody() *QuicktimeMov_MvhdBody {
return &QuicktimeMov_MvhdBody{
}
}
func (this QuicktimeMov_MvhdBody) IO_() *kaitai.Stream {
return this._io
}
func (this *QuicktimeMov_MvhdBody) Read(io *kaitai.Stream, parent *QuicktimeMov_Atom, root *QuicktimeMov) (err error) {
this._io = io
this._parent = parent
this._root = root
tmp53, err := this._io.ReadU1()
if err != nil {
return err
}
this.Version = tmp53
tmp54, err := this._io.ReadBytes(int(3))
if err != nil {
return err
}
tmp54 = tmp54
this.Flags = tmp54
tmp55, err := this._io.ReadU4be()
if err != nil {
return err
}
this.CreationTime = uint32(tmp55)
tmp56, err := this._io.ReadU4be()
if err != nil {
return err
}
this.ModificationTime = uint32(tmp56)
tmp57, err := this._io.ReadU4be()
if err != nil {
return err
}
this.TimeScale = uint32(tmp57)
tmp58, err := this._io.ReadU4be()
if err != nil {
return err
}
this.Duration = uint32(tmp58)
tmp59 := NewQuicktimeMov_Fixed32()
err = tmp59.Read(this._io, this, this._root)
if err != nil {
return err
}
this.PreferredRate = tmp59
tmp60 := NewQuicktimeMov_Fixed16()
err = tmp60.Read(this._io, this, this._root)
if err != nil {
return err
}
this.PreferredVolume = tmp60
tmp61, err := this._io.ReadBytes(int(10))
if err != nil {
return err
}
tmp61 = tmp61
this.Reserved1 = tmp61
tmp62, err := this._io.ReadBytes(int(36))
if err != nil {
return err
}
tmp62 = tmp62
this.Matrix = tmp62
tmp63, err := this._io.ReadU4be()
if err != nil {
return err
}
this.PreviewTime = uint32(tmp63)
tmp64, err := this._io.ReadU4be()
if err != nil {
return err
}
this.PreviewDuration = uint32(tmp64)
tmp65, err := this._io.ReadU4be()
if err != nil {
return err
}
this.PosterTime = uint32(tmp65)
tmp66, err := this._io.ReadU4be()
if err != nil {
return err
}
this.SelectionTime = uint32(tmp66)
tmp67, err := this._io.ReadU4be()
if err != nil {
return err
}
this.SelectionDuration = uint32(tmp67)
tmp68, err := this._io.ReadU4be()
if err != nil {
return err
}
this.CurrentTime = uint32(tmp68)
tmp69, err := this._io.ReadU4be()
if err != nil {
return err
}
this.NextTrackId = uint32(tmp69)
return err
}
/**
* Version of this movie header atom
*/
/**
* A time value that indicates the time scale for this
* movie - the number of time units that pass per second
* in its time coordinate system. A time coordinate system that
* measures time in sixtieths of a second, for example, has a
* time scale of 60.
*/
/**
* A time value that indicates the duration of the movie in
* time scale units. Note that this property is derived from
* the movie's tracks. The value of this field corresponds to
* the duration of the longest track in the movie.
*/
/**
* The rate at which to play this movie. A value of 1.0 indicates normal rate.
*/
/**
* How loud to play this movie's sound. A value of 1.0 indicates full volume.
*/
/**
* A matrix shows how to map points from one coordinate space into another.
*/
/**
* The time value in the movie at which the preview begins.
*/
/**
* The duration of the movie preview in movie time scale units.
*/
/**
* The time value of the time of the movie poster.
*/
/**
* The time value for the start time of the current selection.
*/
/**
* The duration of the current selection in movie time scale units.
*/
/**
* The time value for current time position within the movie.
*/
/**
* Indicates a value to use for the track ID number of the next
* track added to this movie. Note that 0 is not a valid track
* ID value.
*/
/**
* @see <a href="https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25550">Source</a>
*/
type QuicktimeMov_TkhdBody struct {
Version uint8
Flags []byte
CreationTime uint32
ModificationTime uint32
TrackId uint32
Reserved1 []byte
Duration uint32
Reserved2 []byte
Layer uint16
AlternativeGroup uint16
Volume uint16
Reserved3 uint16
Matrix []byte
Width *QuicktimeMov_Fixed32
Height *QuicktimeMov_Fixed32
_io *kaitai.Stream
_root *QuicktimeMov
_parent *QuicktimeMov_Atom
}
func NewQuicktimeMov_TkhdBody() *QuicktimeMov_TkhdBody {
return &QuicktimeMov_TkhdBody{
}
}
func (this QuicktimeMov_TkhdBody) IO_() *kaitai.Stream {
return this._io
}
func (this *QuicktimeMov_TkhdBody) Read(io *kaitai.Stream, parent *QuicktimeMov_Atom, root *QuicktimeMov) (err error) {
this._io = io
this._parent = parent
this._root = root
tmp70, err := this._io.ReadU1()
if err != nil {
return err
}
this.Version = tmp70
tmp71, err := this._io.ReadBytes(int(3))
if err != nil {
return err
}
tmp71 = tmp71
this.Flags = tmp71
tmp72, err := this._io.ReadU4be()
if err != nil {
return err
}
this.CreationTime = uint32(tmp72)
tmp73, err := this._io.ReadU4be()
if err != nil {
return err
}
this.ModificationTime = uint32(tmp73)
tmp74, err := this._io.ReadU4be()
if err != nil {
return err
}
this.TrackId = uint32(tmp74)
tmp75, err := this._io.ReadBytes(int(4))
if err != nil {
return err
}
tmp75 = tmp75
this.Reserved1 = tmp75
tmp76, err := this._io.ReadU4be()
if err != nil {
return err
}
this.Duration = uint32(tmp76)
tmp77, err := this._io.ReadBytes(int(8))
if err != nil {
return err
}
tmp77 = tmp77
this.Reserved2 = tmp77
tmp78, err := this._io.ReadU2be()
if err != nil {
return err
}
this.Layer = uint16(tmp78)
tmp79, err := this._io.ReadU2be()
if err != nil {
return err
}
this.AlternativeGroup = uint16(tmp79)
tmp80, err := this._io.ReadU2be()
if err != nil {
return err
}
this.Volume = uint16(tmp80)
tmp81, err := this._io.ReadU2be()
if err != nil {
return err
}
this.Reserved3 = uint16(tmp81)
tmp82, err := this._io.ReadBytes(int(36))
if err != nil {
return err
}
tmp82 = tmp82
this.Matrix = tmp82
tmp83 := NewQuicktimeMov_Fixed32()
err = tmp83.Read(this._io, this, this._root)
if err != nil {
return err
}
this.Width = tmp83
tmp84 := NewQuicktimeMov_Fixed32()
err = tmp84.Read(this._io, this, this._root)
if err != nil {
return err
}
this.Height = tmp84
return err
}
/**
* Integer that uniquely identifies the track. The value 0 cannot be used.
*/