mr-dangvanhien / mp4parser

Automatically exported from code.google.com/p/mp4parser
0 stars 0 forks source link

Enhancement - Support additional avcC paths #54

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Gather up itunes originated mp4/mov/m4v files that contain pasp or drmi atoms
2. Read them with mp4parser
3. AVC configurations are absent

What is the expected output? What do you see instead?
I expect to have access to avc configuration data when its not on the expected 
path

What version of the product are you using? On what operating system?
Latest RC and trunk

Please provide any additional information below.

I would like to submit this partial patch for review. Its partial because I 
can't seem to figure out how to get the isoFile to detect and fill these new 
boxes. I have noted their paths in the javadoc. I have also attached my 
AtomicParsley dump of one of my test files.

Original issue reported on code.google.com by mondain on 31 Jan 2013 at 5:31

Attachments:

GoogleCodeExporter commented 9 years ago
Attachment text file failed, so here is the hitman structure:
Atom ftyp @ 0 of size: 32, ends @ 32
Atom moov @ 32 of size: 2712081, ends @ 2712113
     Atom mvhd @ 40 of size: 108, ends @ 148
     Atom trak @ 148 of size: 1403891, ends @ 1404039
         Atom tkhd @ 156 of size: 92, ends @ 248
         Atom edts @ 248 of size: 36, ends @ 284
             Atom elst @ 256 of size: 28, ends @ 284
         Atom tref @ 284 of size: 24, ends @ 308
             Atom chap @ 292 of size: 16, ends @ 308
         Atom mdia @ 308 of size: 1403709, ends @ 1404017
             Atom mdhd @ 316 of size: 32, ends @ 348
             Atom hdlr @ 348 of size: 58, ends @ 406
             Atom minf @ 406 of size: 1403611, ends @ 1404017
                 Atom smhd @ 414 of size: 16, ends @ 430
                 Atom dinf @ 430 of size: 36, ends @ 466
                     Atom dref @ 438 of size: 28, ends @ 466
                 Atom stbl @ 466 of size: 1403551, ends @ 1404017
                     Atom stsd @ 474 of size: 999, ends @ 1473
                         Atom drms @ 490 of size: 983, ends @ 1473
                             Atom esds @ 526 of size: 51, ends @ 577
                             Atom sinf @ 577 of size: 896, ends @ 1473
                                 Atom frma @ 585 of size: 12, ends @ 597
                                 Atom schm @ 597 of size: 20, ends @ 617
                                 Atom schi @ 617 of size: 856, ends @ 1473
                                     Atom user @ 625 of size: 12, ends @ 637
                                     Atom key  @ 637 of size: 12, ends @ 649
                                     Atom iviv @ 649 of size: 24, ends @ 673
                                     Atom righ @ 673 of size: 88, ends @ 761
                                     Atom name @ 761 of size: 264, ends @ 1025
                                     Atom priv @ 1025 of size: 448, ends @ 1473
                     Atom stts @ 1473 of size: 24, ends @ 1497
                     Atom stsc @ 1497 of size: 321364, ends @ 322861
                     Atom stsz @ 322861 of size: 974024, ends @ 1296885
                     Atom stco @ 1296885 of size: 107132, ends @ 1404017
         Atom udta @ 1404017 of size: 22, ends @ 1404039
             Atom name @ 1404025 of size: 14, ends @ 1404039
     Atom trak @ 1404039 of size: 937, ends @ 1404976
         Atom tkhd @ 1404047 of size: 92, ends @ 1404139
         Atom load @ 1404139 of size: 24, ends @ 1404163                     ~
         Atom edts @ 1404163 of size: 36, ends @ 1404199
             Atom elst @ 1404171 of size: 28, ends @ 1404199
         Atom mdia @ 1404199 of size: 777, ends @ 1404976
             Atom mdhd @ 1404207 of size: 32, ends @ 1404239
             Atom hdlr @ 1404239 of size: 57, ends @ 1404296
             Atom minf @ 1404296 of size: 680, ends @ 1404976
                 Atom gmhd @ 1404304 of size: 76, ends @ 1404380
                 Atom dinf @ 1404380 of size: 36, ends @ 1404416
                     Atom dref @ 1404388 of size: 28, ends @ 1404416
                 Atom stbl @ 1404416 of size: 560, ends @ 1404976
                     Atom stsd @ 1404424 of size: 88, ends @ 1404512
                         Atom tx3g @ 1404440 of size: 72, ends @ 1404512
                             Atom ftab @ 1404486 of size: 26, ends @ 1404512
                     Atom stts @ 1404512 of size: 208, ends @ 1404720
                     Atom stsc @ 1404720 of size: 28, ends @ 1404748
                     Atom stsz @ 1404748 of size: 116, ends @ 1404864
                     Atom stco @ 1404864 of size: 112, ends @ 1404976
     Atom trak @ 1404976 of size: 1051926, ends @ 2456902
         Atom tkhd @ 1404984 of size: 92, ends @ 1405076
         Atom edts @ 1405076 of size: 36, ends @ 1405112
             Atom elst @ 1405084 of size: 28, ends @ 1405112
         Atom tref @ 1405112 of size: 24, ends @ 1405136
             Atom chap @ 1405120 of size: 16, ends @ 1405136
         Atom mdia @ 1405136 of size: 1051738, ends @ 2456874
             Atom mdhd @ 1405144 of size: 32, ends @ 1405176
             Atom hdlr @ 1405176 of size: 58, ends @ 1405234
             Atom minf @ 1405234 of size: 1051640, ends @ 2456874
                 Atom vmhd @ 1405242 of size: 20, ends @ 1405262
                 Atom dinf @ 1405262 of size: 36, ends @ 1405298
                     Atom dref @ 1405270 of size: 28, ends @ 1405298
                 Atom stbl @ 1405298 of size: 1051576, ends @ 2456874
                     Atom stsd @ 1405306 of size: 1110, ends @ 1406416
                         Atom drmi @ 1405322 of size: 1094, ends @ 1406416
                             Atom avcC @ 1405408 of size: 48, ends @ 1405456
                             Atom uuid=6b6840f2-5f24-4fc5-ba39-a51bcf0323f3 @ 1405456 of size: 28, ends @ 1405484
                             Atom pasp @ 1405484 of size: 16, ends @ 1405500             ~
                     Atom stts @ 1406416 of size: 24, ends @ 1406440
                     Atom stss @ 1406440 of size: 10688, ends @ 1417128
                     Atom sdtp @ 1417128 of size: 135574, ends @ 1552702
                     Atom stsc @ 1552702 of size: 271420, ends @ 1824122
                     Atom stsz @ 1824122 of size: 542268, ends @ 2366390
                     Atom stco @ 2366390 of size: 90484, ends @ 2456874
         Atom udta @ 2456874 of size: 28, ends @ 2456902
             Atom name @ 2456882 of size: 20, ends @ 2456902
     Atom trak @ 2456902 of size: 896, ends @ 2457798
         Atom tkhd @ 2456910 of size: 92, ends @ 2457002
         Atom load @ 2457002 of size: 24, ends @ 2457026                     ~
         Atom edts @ 2457026 of size: 36, ends @ 2457062
             Atom elst @ 2457034 of size: 28, ends @ 2457062
         Atom mdia @ 2457062 of size: 736, ends @ 2457798
             Atom mdhd @ 2457070 of size: 32, ends @ 2457102
             Atom hdlr @ 2457102 of size: 58, ends @ 2457160
             Atom minf @ 2457160 of size: 638, ends @ 2457798
                 Atom vmhd @ 2457168 of size: 20, ends @ 2457188
                 Atom dinf @ 2457188 of size: 36, ends @ 2457224
                     Atom dref @ 2457196 of size: 28, ends @ 2457224
                 Atom stbl @ 2457224 of size: 574, ends @ 2457798
                     Atom stsd @ 2457232 of size: 102, ends @ 2457334
                         Atom jpeg @ 2457248 of size: 86, ends @ 2457334
                     Atom stts @ 2457334 of size: 208, ends @ 2457542
                     Atom stsc @ 2457542 of size: 28, ends @ 2457570
                     Atom stsz @ 2457570 of size: 116, ends @ 2457686
                     Atom stco @ 2457686 of size: 112, ends @ 2457798
     Atom udta @ 2457798 of size: 254315, ends @ 2712113
         Atom meta @ 2457806 of size: 254307, ends @ 2712113
             Atom hdlr @ 2457818 of size: 34, ends @ 2457852
             Atom free @ 2457852 of size: 2048, ends @ 2459900
             Atom ilst @ 2459900 of size: 252213, ends @ 2712113
                 Atom ©nam @ 2459908 of size: 30, ends @ 2459938
                     Atom data @ 2459916 of size: 22, ends @ 2459938
                 Atom ©ART @ 2459938 of size: 35, ends @ 2459973
                     Atom data @ 2459946 of size: 27, ends @ 2459973
                 Atom ©day @ 2459973 of size: 44, ends @ 2460017
                     Atom data @ 2459981 of size: 36, ends @ 2460017
                 Atom cpil @ 2460017 of size: 25, ends @ 2460042
                     Atom data @ 2460025 of size: 17, ends @ 2460042
                 Atom pgap @ 2460042 of size: 25, ends @ 2460067
                     Atom data @ 2460050 of size: 17, ends @ 2460067
                 Atom apID @ 2460067 of size: 31, ends @ 2460098
                     Atom data @ 2460075 of size: 23, ends @ 2460098
                 Atom cprt @ 2460098 of size: 63, ends @ 2460161
                     Atom data @ 2460106 of size: 55, ends @ 2460161
                 Atom cnID @ 2460161 of size: 28, ends @ 2460189
                     Atom data @ 2460169 of size: 20, ends @ 2460189
                 Atom rtng @ 2460189 of size: 25, ends @ 2460214
                     Atom data @ 2460197 of size: 17, ends @ 2460214
                 Atom atID @ 2460214 of size: 28, ends @ 2460242
                     Atom data @ 2460222 of size: 20, ends @ 2460242
                 Atom sfID @ 2460242 of size: 28, ends @ 2460270
                     Atom data @ 2460250 of size: 20, ends @ 2460270
                 Atom akID @ 2460270 of size: 25, ends @ 2460295
                     Atom data @ 2460278 of size: 17, ends @ 2460295
                 Atom desc @ 2460295 of size: 281, ends @ 2460576
                     Atom data @ 2460303 of size: 273, ends @ 2460576
                 Atom stik @ 2460576 of size: 25, ends @ 2460601
                     Atom data @ 2460584 of size: 17, ends @ 2460601
                 Atom purd @ 2460601 of size: 43, ends @ 2460644
                     Atom data @ 2460609 of size: 35, ends @ 2460644
                 Atom ---- @ 2460644 of size: 89, ends @ 2460733
                     Atom mean @ 2460652 of size: 28, ends @ 2460680
                     Atom name @ 2460680 of size: 20, ends @ 2460700
                     Atom data @ 2460700 of size: 33, ends @ 2460733
                 Atom ldes @ 2460733 of size: 720, ends @ 2461453
                     Atom data @ 2460741 of size: 712, ends @ 2461453
                 Atom ---- @ 2461453 of size: 1918, ends @ 2463371
                     Atom mean @ 2461461 of size: 28, ends @ 2461489
                     Atom name @ 2461489 of size: 20, ends @ 2461509
                     Atom data @ 2461509 of size: 1862, ends @ 2463371
                 Atom covr @ 2463371 of size: 248742, ends @ 2712113
                     Atom data @ 2463379 of size: 248734, ends @ 2712113
Atom free @ 2712113 of size: 796121, ends @ 3508234
Atom mdat @ 3508234 of size: 1143044374, ends @ 1146552608

 ~ denotes an unknown atom

Original comment by mondain on 31 Jan 2013 at 5:33

GoogleCodeExporter commented 9 years ago
added pasp & load box in the trunk. A snapshot is available in this repository: 
http://oss.sonatype.org/content/repositories/snapshots

        <dependency>
            <groupId>com.googlecode.mp4parser</groupId>
            <artifactId>isoparser</artifactId>
            <version>1.0-RC-19-SNAPSHOT</version>
        </dependency>

Original comment by Sebastian.Annies on 1 Feb 2013 at 11:51