Changeset 1213

Show
Ignore:
Timestamp:
11/26/09 10:10:42 (4 months ago)
Author:
gbooker
Message:

Auto-generate yet another massive case statement. The info is passed as a void * b/c I don't want to include the QuickTime headers in a header file used by so many other files just to have the info typed correctly.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/CodecIDs.h

    r1148 r1213  
    118118 
    119119int getCodecID(OSType componentType); 
     120pascal ComponentResult getPerianCodecInfo(ComponentInstance self, OSType componentType, void *info); 
    120121#endif 
    121122 
  • trunk/FFusionCodec.c

    r1211 r1213  
    13141314pascal ComponentResult FFusionCodecGetCodecInfo(FFusionGlobals glob, CodecInfo *info) 
    13151315{ 
    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); 
    15041317} 
    15051318 
  • trunk/codecID.c.m4

    r1119 r1213  
    1313#include "avcodec.h" 
    1414#include "CodecIDs.h" 
     15#include <QuickTime/QuickTime.h> 
     16#include "PerianResourceIDs.h" 
    1517 
    1618int getCodecID(OSType componentType) 
     
    2729        return codecID; 
    2830} 
     31 
     32undefine(<!lastCase!>)dnl 
     33define(<!doCase!>, <!ifelse($1, lastCase, , <!ifdef(<!lastCase!>, <!                    err = GetComponentResource((Component)self, codecInfoResourceType, lastCase, (Handle *)&tempCodecInfo); 
     34                        break; 
     35                 
     36!>)!>)<!                case $2:!> 
     37define(<!lastCase!>, <!$1!>)!>)dnl 
     38define(<!Codec!>, <!printCaseStatement($1, shift(shift(shift(shift($@)))))!>)dnl 
     39 
     40pascal ComponentResult getPerianCodecInfo(ComponentInstance self, OSType componentType, void *info) 
     41{ 
     42    OSErr err = noErr; 
     43         
     44    if (info == NULL)  
     45    { 
     46        err = paramErr; 
     47    } 
     48    else  
     49    { 
     50        CodecInfo **tempCodecInfo; 
     51                 
     52        switch (componentType) 
     53        { 
     54include(<!codecList.m4!>) 
     55                err = GetComponentResource((Component)self, codecInfoResourceType, lastCase, (Handle *)&tempCodecInfo); 
     56                break; 
     57 
     58 
     59            default:    // should never happen but we have to handle the case 
     60                err = GetComponentResource((Component)self, codecInfoResourceType, kDivX4CodecInfoResID, (Handle *)&tempCodecInfo); 
     61                                 
     62        } 
     63         
     64        if (err == noErr)  
     65        { 
     66            *((CodecInfo *)info) = **tempCodecInfo; 
     67             
     68            DisposeHandle((Handle)tempCodecInfo); 
     69        } 
     70    } 
     71         
     72    return err; 
     73}