Mercurial > libavformat.hg
comparison mov.c @ 1418:9720274e2621 libavformat
remove mov_read_leaf and remove useless reading function table, mov_read_default will skip atom with no parsing function anyway
author | bcoudurier |
---|---|
date | Wed, 25 Oct 2006 22:50:49 +0000 |
parents | 3b00fb8ef8e4 |
children | 0f45ff21ea4e |
comparison
equal
deleted
inserted
replaced
1417:84aa565e7da8 | 1418:9720274e2621 |
---|---|
303 typedef struct MOVParseTableEntry { | 303 typedef struct MOVParseTableEntry { |
304 uint32_t type; | 304 uint32_t type; |
305 mov_parse_function func; | 305 mov_parse_function func; |
306 } MOVParseTableEntry; | 306 } MOVParseTableEntry; |
307 | 307 |
308 static int mov_read_leaf(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) | |
309 { | |
310 if (atom.size>1) | |
311 url_fskip(pb, atom.size); | |
312 /* url_seek(pb, atom_offset+atom.size, SEEK_SET); */ | |
313 return 0; | |
314 } | |
315 | |
316 static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) | 308 static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) |
317 { | 309 { |
318 int64_t total_size = 0; | 310 int64_t total_size = 0; |
319 MOV_atom_t a; | 311 MOV_atom_t a; |
320 int i; | 312 int i; |
1414 } | 1406 } |
1415 | 1407 |
1416 static const MOVParseTableEntry mov_default_parse_table[] = { | 1408 static const MOVParseTableEntry mov_default_parse_table[] = { |
1417 /* mp4 atoms */ | 1409 /* mp4 atoms */ |
1418 { MKTAG( 'c', 'o', '6', '4' ), mov_read_stco }, | 1410 { MKTAG( 'c', 'o', '6', '4' ), mov_read_stco }, |
1419 { MKTAG( 'c', 'p', 'r', 't' ), mov_read_default }, | |
1420 { MKTAG( 'c', 'r', 'h', 'd' ), mov_read_default }, | |
1421 { MKTAG( 'c', 't', 't', 's' ), mov_read_ctts }, /* composition time to sample */ | 1411 { MKTAG( 'c', 't', 't', 's' ), mov_read_ctts }, /* composition time to sample */ |
1422 { MKTAG( 'd', 'i', 'n', 'f' ), mov_read_default }, /* data information */ | |
1423 { MKTAG( 'd', 'p', 'n', 'd' ), mov_read_leaf }, | |
1424 { MKTAG( 'd', 'r', 'e', 'f' ), mov_read_leaf }, | |
1425 { MKTAG( 'e', 'd', 't', 's' ), mov_read_default }, | 1412 { MKTAG( 'e', 'd', 't', 's' ), mov_read_default }, |
1426 { MKTAG( 'e', 'l', 's', 't' ), mov_read_elst }, | 1413 { MKTAG( 'e', 'l', 's', 't' ), mov_read_elst }, |
1427 { MKTAG( 'e', 'n', 'd', 'a' ), mov_read_enda }, | 1414 { MKTAG( 'e', 'n', 'd', 'a' ), mov_read_enda }, |
1428 { MKTAG( 'f', 'r', 'e', 'e' ), mov_read_leaf }, | |
1429 { MKTAG( 'f', 't', 'y', 'p' ), mov_read_ftyp }, | 1415 { MKTAG( 'f', 't', 'y', 'p' ), mov_read_ftyp }, |
1430 { MKTAG( 'h', 'd', 'l', 'r' ), mov_read_hdlr }, | 1416 { MKTAG( 'h', 'd', 'l', 'r' ), mov_read_hdlr }, |
1431 { MKTAG( 'h', 'i', 'n', 't' ), mov_read_leaf }, | |
1432 { MKTAG( 'h', 'm', 'h', 'd' ), mov_read_leaf }, | |
1433 { MKTAG( 'i', 'o', 'd', 's' ), mov_read_leaf }, | |
1434 { MKTAG( 'j', 'p', '2', 'h' ), mov_read_jp2h }, | 1417 { MKTAG( 'j', 'p', '2', 'h' ), mov_read_jp2h }, |
1435 { MKTAG( 'm', 'd', 'a', 't' ), mov_read_mdat }, | 1418 { MKTAG( 'm', 'd', 'a', 't' ), mov_read_mdat }, |
1436 { MKTAG( 'm', 'd', 'h', 'd' ), mov_read_mdhd }, | 1419 { MKTAG( 'm', 'd', 'h', 'd' ), mov_read_mdhd }, |
1437 { MKTAG( 'm', 'd', 'i', 'a' ), mov_read_default }, | 1420 { MKTAG( 'm', 'd', 'i', 'a' ), mov_read_default }, |
1438 { MKTAG( 'm', 'i', 'n', 'f' ), mov_read_default }, | 1421 { MKTAG( 'm', 'i', 'n', 'f' ), mov_read_default }, |
1439 { MKTAG( 'm', 'o', 'o', 'v' ), mov_read_moov }, | 1422 { MKTAG( 'm', 'o', 'o', 'v' ), mov_read_moov }, |
1440 { MKTAG( 'm', 'p', '4', 'a' ), mov_read_default }, | |
1441 { MKTAG( 'm', 'p', '4', 's' ), mov_read_default }, | |
1442 { MKTAG( 'm', 'p', '4', 'v' ), mov_read_default }, | |
1443 { MKTAG( 'm', 'p', 'o', 'd' ), mov_read_leaf }, | |
1444 { MKTAG( 'm', 'v', 'h', 'd' ), mov_read_mvhd }, | 1423 { MKTAG( 'm', 'v', 'h', 'd' ), mov_read_mvhd }, |
1445 { MKTAG( 'n', 'm', 'h', 'd' ), mov_read_leaf }, | |
1446 { MKTAG( 'o', 'd', 'h', 'd' ), mov_read_default }, | |
1447 { MKTAG( 's', 'd', 'h', 'd' ), mov_read_default }, | |
1448 { MKTAG( 's', 'k', 'i', 'p' ), mov_read_leaf }, | |
1449 { MKTAG( 's', 'm', 'h', 'd' ), mov_read_leaf }, /* sound media info header */ | |
1450 { MKTAG( 'S', 'M', 'I', ' ' ), mov_read_smi }, /* Sorenson extension ??? */ | 1424 { MKTAG( 'S', 'M', 'I', ' ' ), mov_read_smi }, /* Sorenson extension ??? */ |
1451 { MKTAG( 'a', 'l', 'a', 'c' ), mov_read_alac }, /* alac specific atom */ | 1425 { MKTAG( 'a', 'l', 'a', 'c' ), mov_read_alac }, /* alac specific atom */ |
1452 { MKTAG( 'a', 'v', 'c', 'C' ), mov_read_avcC }, | 1426 { MKTAG( 'a', 'v', 'c', 'C' ), mov_read_avcC }, |
1453 { MKTAG( 's', 't', 'b', 'l' ), mov_read_default }, | 1427 { MKTAG( 's', 't', 'b', 'l' ), mov_read_default }, |
1454 { MKTAG( 's', 't', 'c', 'o' ), mov_read_stco }, | 1428 { MKTAG( 's', 't', 'c', 'o' ), mov_read_stco }, |
1455 { MKTAG( 's', 't', 'd', 'p' ), mov_read_default }, | |
1456 { MKTAG( 's', 't', 's', 'c' ), mov_read_stsc }, | 1429 { MKTAG( 's', 't', 's', 'c' ), mov_read_stsc }, |
1457 { MKTAG( 's', 't', 's', 'd' ), mov_read_stsd }, /* sample description */ | 1430 { MKTAG( 's', 't', 's', 'd' ), mov_read_stsd }, /* sample description */ |
1458 { MKTAG( 's', 't', 's', 'h' ), mov_read_default }, | |
1459 { MKTAG( 's', 't', 's', 's' ), mov_read_stss }, /* sync sample */ | 1431 { MKTAG( 's', 't', 's', 's' ), mov_read_stss }, /* sync sample */ |
1460 { MKTAG( 's', 't', 's', 'z' ), mov_read_stsz }, /* sample size */ | 1432 { MKTAG( 's', 't', 's', 'z' ), mov_read_stsz }, /* sample size */ |
1461 { MKTAG( 's', 't', 't', 's' ), mov_read_stts }, | 1433 { MKTAG( 's', 't', 't', 's' ), mov_read_stts }, |
1462 { MKTAG( 't', 'k', 'h', 'd' ), mov_read_tkhd }, /* track header */ | 1434 { MKTAG( 't', 'k', 'h', 'd' ), mov_read_tkhd }, /* track header */ |
1463 { MKTAG( 't', 'r', 'a', 'k' ), mov_read_trak }, | 1435 { MKTAG( 't', 'r', 'a', 'k' ), mov_read_trak }, |
1464 { MKTAG( 't', 'r', 'e', 'f' ), mov_read_default }, /* not really */ | |
1465 { MKTAG( 'u', 'd', 't', 'a' ), mov_read_leaf }, | |
1466 { MKTAG( 'u', 'r', 'l', ' ' ), mov_read_leaf }, | |
1467 { MKTAG( 'u', 'r', 'n', ' ' ), mov_read_leaf }, | |
1468 { MKTAG( 'u', 'u', 'i', 'd' ), mov_read_leaf }, | |
1469 { MKTAG( 'v', 'm', 'h', 'd' ), mov_read_leaf }, /* video media info header */ | |
1470 { MKTAG( 'w', 'a', 'v', 'e' ), mov_read_wave }, | 1436 { MKTAG( 'w', 'a', 'v', 'e' ), mov_read_wave }, |
1471 /* extra mp4 */ | |
1472 { MKTAG( 'M', 'D', 'E', 'S' ), mov_read_leaf }, | |
1473 /* QT atoms */ | |
1474 { MKTAG( 'c', 'h', 'a', 'p' ), mov_read_leaf }, | |
1475 { MKTAG( 'c', 'l', 'i', 'p' ), mov_read_default }, | |
1476 { MKTAG( 'c', 'r', 'g', 'n' ), mov_read_leaf }, | |
1477 { MKTAG( 'c', 't', 'a', 'b' ), mov_read_ctab }, | 1437 { MKTAG( 'c', 't', 'a', 'b' ), mov_read_ctab }, |
1478 { MKTAG( 'e', 's', 'd', 's' ), mov_read_esds }, | 1438 { MKTAG( 'e', 's', 'd', 's' ), mov_read_esds }, |
1479 { MKTAG( 'k', 'm', 'a', 't' ), mov_read_leaf }, | |
1480 { MKTAG( 'm', 'a', 't', 't' ), mov_read_default }, | |
1481 { MKTAG( 'r', 'd', 'r', 'f' ), mov_read_leaf }, | |
1482 { MKTAG( 'r', 'm', 'd', 'a' ), mov_read_default }, | |
1483 { MKTAG( 'r', 'm', 'd', 'r' ), mov_read_leaf }, | |
1484 { MKTAG( 'r', 'm', 'r', 'a' ), mov_read_default }, | |
1485 { MKTAG( 's', 'c', 'p', 't' ), mov_read_leaf }, | |
1486 { MKTAG( 's', 's', 'r', 'c' ), mov_read_leaf }, | |
1487 { MKTAG( 's', 'y', 'n', 'c' ), mov_read_leaf }, | |
1488 { MKTAG( 't', 'c', 'm', 'd' ), mov_read_leaf }, | |
1489 { MKTAG( 'w', 'i', 'd', 'e' ), mov_read_wide }, /* place holder */ | 1439 { MKTAG( 'w', 'i', 'd', 'e' ), mov_read_wide }, /* place holder */ |
1490 //{ MKTAG( 'r', 'm', 'q', 'u' ), mov_read_leaf }, | |
1491 { MKTAG( 'c', 'm', 'o', 'v' ), mov_read_cmov }, | 1440 { MKTAG( 'c', 'm', 'o', 'v' ), mov_read_cmov }, |
1492 { 0L, mov_read_leaf } | 1441 { 0L, NULL } |
1493 }; | 1442 }; |
1494 | 1443 |
1495 static void mov_free_stream_context(MOVStreamContext *sc) | 1444 static void mov_free_stream_context(MOVStreamContext *sc) |
1496 { | 1445 { |
1497 if(sc) { | 1446 if(sc) { |