| 1316 | | OSErr err = noErr; |
| 1317 | | |
| 1318 | | if (info == NULL) |
| 1319 | | { |
| 1320 | | err = paramErr; |
| 1321 | | } |
| 1322 | | else |
| 1323 | | { |
| 1324 | | CodecInfo **tempCodecInfo; |
| 1325 | | |
| 1326 | | switch (glob->componentType) |
| 1327 | | { |
| 1328 | | case 'MPG4': // MS-MPEG4 v1 |
| 1329 | | case 'mpg4': |
| 1330 | | case 'DIV1': |
| 1331 | | case 'div1': |
| 1332 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kDivX1CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1333 | | break; |
| 1334 | | |
| 1335 | | case 'MP42': // MS-MPEG4 v2 |
| 1336 | | case 'mp42': |
| 1337 | | case 'DIV2': |
| 1338 | | case 'div2': |
| 1339 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kDivX2CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1340 | | break; |
| 1341 | | |
| 1342 | | case 'div6': // DivX 3 |
| 1343 | | case 'DIV6': |
| 1344 | | case 'div5': |
| 1345 | | case 'DIV5': |
| 1346 | | case 'div4': |
| 1347 | | case 'DIV4': |
| 1348 | | case 'div3': |
| 1349 | | case 'DIV3': |
| 1350 | | case 'MP43': |
| 1351 | | case 'mp43': |
| 1352 | | case 'MPG3': |
| 1353 | | case 'mpg3': |
| 1354 | | case 'AP41': |
| 1355 | | case 'COL0': |
| 1356 | | case 'col0': |
| 1357 | | case 'COL1': |
| 1358 | | case 'col1': |
| 1359 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kDivX3CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1360 | | break; |
| 1361 | | |
| 1362 | | case 'divx': // DivX 4 |
| 1363 | | case 'DIVX': |
| 1364 | | case 'mp4s': |
| 1365 | | case 'MP4S': |
| 1366 | | case 'm4s2': |
| 1367 | | case 'M4S2': |
| 1368 | | case 0x04000000: |
| 1369 | | case 'UMP4': |
| 1370 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kDivX4CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1371 | | break; |
| 1372 | | |
| 1373 | | case 'IV31': // Indeo 3 |
| 1374 | | case 'IV32': |
| 1375 | | case 'iv31': |
| 1376 | | case 'iv32': |
| 1377 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kIndeo3CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1378 | | break; |
| 1379 | | |
| 1380 | | case 'RT21': // Indeo 2 |
| 1381 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kIndeo2CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1382 | | break; |
| 1383 | | |
| 1384 | | case 'DX50': |
| 1385 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kDivX5CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1386 | | break; |
| 1387 | | |
| 1388 | | case 'XVID': // XVID |
| 1389 | | case 'xvid': |
| 1390 | | case 'XviD': |
| 1391 | | case 'XVIX': |
| 1392 | | case 'BLZ0': |
| 1393 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kXVIDCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1394 | | break; |
| 1395 | | |
| 1396 | | case '3IVD': // 3ivx |
| 1397 | | case '3ivd': |
| 1398 | | case '3IV2': |
| 1399 | | case '3iv2': |
| 1400 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, k3ivxCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1401 | | break; |
| 1402 | | |
| 1403 | | case 'RMP4': // Miscellaneous |
| 1404 | | case 'SEDG': |
| 1405 | | case 'WV1F': |
| 1406 | | case 'FMP4': |
| 1407 | | case 'SMP4': |
| 1408 | | case 'mp4v': |
| 1409 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kMPEG4CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1410 | | break; |
| 1411 | | |
| 1412 | | case 'H264': // H.264 |
| 1413 | | case 'h264': |
| 1414 | | case 'X264': |
| 1415 | | case 'x264': |
| 1416 | | case 'AVC1': |
| 1417 | | case 'avc1': |
| 1418 | | case 'DAVC': |
| 1419 | | case 'VSSH': |
| 1420 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kH264CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1421 | | break; |
| 1422 | | |
| 1423 | | case 'FLV1': |
| 1424 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kFLV1CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1425 | | break; |
| 1426 | | |
| 1427 | | case 'FSV1': |
| 1428 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kFlashSVCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1429 | | break; |
| 1430 | | |
| 1431 | | case 'VP60': |
| 1432 | | case 'VP61': |
| 1433 | | case 'VP62': |
| 1434 | | case 'VP6F': |
| 1435 | | case 'FLV4': |
| 1436 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kVP6CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1437 | | break; |
| 1438 | | |
| 1439 | | case 'I263': |
| 1440 | | case 'i263': |
| 1441 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kI263CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1442 | | break; |
| 1443 | | |
| 1444 | | case 'VP30': |
| 1445 | | case 'VP31': |
| 1446 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kVP3CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1447 | | break; |
| 1448 | | |
| 1449 | | case 'FFVH': |
| 1450 | | case 'HFYU': |
| 1451 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kHuffYUVCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1452 | | break; |
| 1453 | | |
| 1454 | | case 'MPEG': |
| 1455 | | case 'mpg1': |
| 1456 | | case 'mp1v': |
| 1457 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kMPEG1CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1458 | | break; |
| 1459 | | |
| 1460 | | case 'MPG2': |
| 1461 | | case 'mpg2': |
| 1462 | | case 'mp2v': |
| 1463 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kMPEG2CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1464 | | break; |
| 1465 | | |
| 1466 | | case 'FPS1': |
| 1467 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kFRAPSCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1468 | | break; |
| 1469 | | |
| 1470 | | case 'SNOW': |
| 1471 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kSnowCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1472 | | break; |
| 1473 | | |
| 1474 | | case 'RJPG': |
| 1475 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kNuvCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1476 | | break; |
| 1477 | | |
| 1478 | | case 'tscc': |
| 1479 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kTSCCCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1480 | | break; |
| 1481 | | |
| 1482 | | case 'ZMBV': |
| 1483 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kZMBVCodecInfoResID, (Handle *)&tempCodecInfo); |
| 1484 | | break; |
| 1485 | | |
| 1486 | | case 'VP6A': |
| 1487 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kVP6ACodecInfoResID, (Handle *)&tempCodecInfo); |
| 1488 | | break; |
| 1489 | | |
| 1490 | | default: // should never happen but we have to handle the case |
| 1491 | | err = GetComponentResource((Component)glob->self, codecInfoResourceType, kDivX4CodecInfoResID, (Handle *)&tempCodecInfo); |
| 1492 | | |
| 1493 | | } |
| 1494 | | |
| 1495 | | if (err == noErr) |
| 1496 | | { |
| 1497 | | *info = **tempCodecInfo; |
| 1498 | | |
| 1499 | | DisposeHandle((Handle)tempCodecInfo); |
| 1500 | | } |
| 1501 | | } |
| 1502 | | |
| 1503 | | return err; |
| | 1316 | return getPerianCodecInfo(glob->self, glob->componentType, info); |