• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/IOFWDVComponents-207.4.1/

Lines Matching refs:deviceDescriptionPtr

183 static OSStatus doAVCTransaction(DeviceDescriptionPtr deviceDescriptionPtr,
186 static OSStatus disableRead(DeviceDescription *deviceDescriptionPtr);
187 static void disableWrite(DeviceDescription *deviceDescriptionPtr);
279 static void dropMsg(DeviceDescription *deviceDescriptionPtr, UInt32 dropped)
281 IsochComponentGlobalsPtr g = deviceDescriptionPtr->fGlobals;
284 pKGSysCall_Insert (kIOFWDVTrace, 'drop', dropped-deviceDescriptionPtr->fOldDrop, dropped, 0, 0, 0);
296 ((IDHDeviceID)deviceDescriptionPtr == clientDeviceID) )
302 dropEvent.eventHeader.deviceID = (IDHDeviceID)deviceDescriptionPtr;
306 dropEvent.newlyDropped = dropped - deviceDescriptionPtr->fOldDrop;
315 // syslog(LOG_INFO,"Just dropped %ld frames (total %ld)!\n", dropped-deviceDescriptionPtr->fOldDrop, dropped);
317 deviceDescriptionPtr->fOldDrop = dropped;
394 static OSStatus closeDeviceControl( IsochComponentInstancePtr ih, DeviceDescriptionPtr deviceDescriptionPtr)
402 if( deviceDescriptionPtr->deviceControlInstance)
404 if( --deviceDescriptionPtr->deviceControlCount <= 0)
406 deviceDescriptionPtr->deviceControlCount = 0;
408 result = DeviceControlDisableAVCTransactions(deviceDescriptionPtr->deviceControlInstance);
409 result = DeviceControlSetDeviceConnectionID(deviceDescriptionPtr->deviceControlInstance,
412 CloseComponent(deviceDescriptionPtr->deviceControlInstance);
414 deviceDescriptionPtr->deviceControlInstance = nil;
962 DeviceDescriptionPtr deviceDescriptionPtr = &globals.deviceDescription[(int)refcon-1];
967 // refcon-1, deviceDescriptionPtr);
968 deviceDescriptionPtr->fActive = false;
969 if(deviceDescriptionPtr->deviceControlInstance) {
970 DeviceControlDisableAVCTransactions(deviceDescriptionPtr->deviceControlInstance);
971 DeviceControlSetDeviceConnectionID(deviceDescriptionPtr->deviceControlInstance,
974 if(deviceDescriptionPtr->fDevice) {
976 if(deviceDescriptionPtr->fRead != NULL)
977 disableRead(deviceDescriptionPtr);
978 if(deviceDescriptionPtr->fWrite != NULL)
979 disableWrite(deviceDescriptionPtr);
981 DVDeviceTerminate(deviceDescriptionPtr->fDevice);
982 deviceDescriptionPtr->fDevice = NULL;
985 postEvent(deviceDescriptionPtr->fGlobals, (IDHDeviceID)deviceDescriptionPtr, kIDHEventDeviceRemoved);
994 static OSStatus enableRead(DeviceDescription *deviceDescriptionPtr)
1002 deviceDescriptionPtr->fNumOutputFrames = 4;
1003 deviceDescriptionPtr->fRead = DVAllocRead(deviceDescriptionPtr->fDevice, globals.fDVThread);
1023 err = doAVCTransaction(deviceDescriptionPtr, &transaction);
1027 result = DVReadSetSignalMode(deviceDescriptionPtr->fRead, in[5]);
1031 result = DVReadAllocFrames(deviceDescriptionPtr->fRead, deviceDescriptionPtr->fNumOutputFrames,
1032 &deviceDescriptionPtr->fReadSharedVars, deviceDescriptionPtr->bufMem);
1034 result = DVReadStart(deviceDescriptionPtr->fRead);
1036 deviceDescriptionPtr->fOldDrop = deviceDescriptionPtr->fReadSharedVars->fDroppedFrames;
1037 DVSetTimeoutTime(deviceDescriptionPtr->fGlobals->fDVThread, CFAbsoluteTimeGetCurrent() + kDCLBlockTime);
1047 static OSStatus disableRead(DeviceDescription *deviceDescriptionPtr)
1054 if(deviceDescriptionPtr->fRead) {
1055 DVReadStop(deviceDescriptionPtr->fRead);
1056 DVReadFreeFrames(deviceDescriptionPtr->fRead);
1057 DVReadFree(deviceDescriptionPtr->fRead);
1058 deviceDescriptionPtr->fRead = NULL;
1068 static OSStatus enableWrite(DeviceDescription *deviceDescriptionPtr)
1077 deviceDescriptionPtr->fNumOutputFrames = 4;
1078 deviceDescriptionPtr->fWrite = DVAllocWrite(deviceDescriptionPtr->fDevice,
1079 deviceDescriptionPtr->fGlobals->fDVThread);
1080 result = DVWriteSetSignalMode(deviceDescriptionPtr->fWrite, deviceDescriptionPtr->fOutputMode);
1081 result = DVWriteAllocFrames(deviceDescriptionPtr->fWrite, deviceDescriptionPtr->fNumOutputFrames,
1082 &deviceDescriptionPtr->fWriteSharedVars, deviceDescriptionPtr->bufMem);
1083 deviceDescriptionPtr->fDCLBuffer = DVWriteGetDCLBuffer(deviceDescriptionPtr->fWrite,
1084 &deviceDescriptionPtr->fSharedWriteVars);
1085 deviceDescriptionPtr->fBufSize = (deviceDescriptionPtr->fDevice->standard == ntscIn)?
1087 if((deviceDescriptionPtr->fOutputMode & 0x7c) == 4)
1088 deviceDescriptionPtr->fBufSize /= 2; // SDL
1089 else if((deviceDescriptionPtr->fOutputMode & 0x7c) == 0x74)
1090 deviceDescriptionPtr->fBufSize *= 2; // DVCPro50
1092 deviceDescriptionPtr->fOldWriteTimeStamps =
1093 (UInt32 *)NewPtr(deviceDescriptionPtr->fSharedWriteVars->fNumGroups*sizeof(UInt32));
1094 for(i=0; i<deviceDescriptionPtr->fSharedWriteVars->fNumGroups; i++) {
1095 deviceDescriptionPtr->fOldWriteTimeStamps[i] = deviceDescriptionPtr->fSharedWriteVars->fTimeStampPtrs[i];
1097 deviceDescriptionPtr->fDCLReadPos = 0;
1098 deviceDescriptionPtr->fBufWritePos = 0;
1099 deviceDescriptionPtr->fFrameBufferPos = 0;
1100 deviceDescriptionPtr->fDCLSavedWritePos = NULL;
1101 deviceDescriptionPtr->fDCLSavedPacketNum = 0;
1103 deviceDescriptionPtr->fWaitingStartWrite = 1;
1104 deviceDescriptionPtr->fWriteSharedVars->fReader = deviceDescriptionPtr->fWriteSharedVars->fWriter = 0;
1105 deviceDescriptionPtr->fOldDrop = deviceDescriptionPtr->fWriteSharedVars->fDroppedFrames;
1107 DVSetTimeoutTime(deviceDescriptionPtr->fGlobals->fDVThread, CFAbsoluteTimeGetCurrent() + kDCLBlockTime);
1116 static void disableWrite(DeviceDescription *deviceDescriptionPtr)
1122 if (deviceDescriptionPtr->fWrite)
1124 DVWriteStop(deviceDescriptionPtr->fWrite);
1125 DVWriteFreeFrames(deviceDescriptionPtr->fWrite);
1126 DVWriteFree(deviceDescriptionPtr->fWrite);
1127 deviceDescriptionPtr->fWrite = NULL;
1128 if(deviceDescriptionPtr->fOldWriteTimeStamps)
1130 DisposePtr((Ptr)deviceDescriptionPtr->fOldWriteTimeStamps);
1131 deviceDescriptionPtr->fOldWriteTimeStamps = NULL;
1136 syslog(LOG_INFO, "IDH: disableWrite called with deviceDescriptionPtr->fWrite == NULL\n");
1150 static OSStatus doAVCTransaction(DeviceDescriptionPtr deviceDescriptionPtr,
1154 if(deviceDescriptionPtr->fConnected) {
1155 if(!deviceDescriptionPtr->fActive)
1157 if(deviceDescriptionPtr->fNoAVC > 1)
1160 result = (*deviceDescriptionPtr->fDevice->fAVCInterface)->AVCCommand(deviceDescriptionPtr->fDevice->fAVCInterface,
1165 deviceDescriptionPtr->fNoAVC++;
1167 deviceDescriptionPtr->fNoAVC = 0;
1179 DeviceDescriptionPtr deviceDescriptionPtr;
1193 deviceDescriptionPtr = &g->deviceDescription[index-1];
1199 deviceDescriptionPtr->fDevice = device;
1200 if(deviceDescriptionPtr->fConnected) {
1202 result = DVDeviceOpen(g->fDVThread, deviceDescriptionPtr->fDevice);
1204 if(deviceDescriptionPtr->readLocks) {
1205 enableRead(deviceDescriptionPtr);
1207 if(deviceDescriptionPtr->writeLocks) {
1208 enableWrite(deviceDescriptionPtr);
1212 deviceDescriptionPtr->fActive = true;
1217 bzero(deviceDescriptionPtr, sizeof(*deviceDescriptionPtr));
1218 deviceDescriptionPtr->fActive = true;
1219 deviceDescriptionPtr->fGlobals = g;
1220 deviceDescriptionPtr->fDevice = device;
1222 deviceDescriptionPtr->fScreenBaseAddr = 0;
1240 deviceDescriptionPtr->clock = FindNextComponent( deviceDescriptionPtr->clock, &clkDesc); // Look for FireWire clock component
1241 FailMessage( deviceDescriptionPtr->clock == nil);
1243 result = QTNewAtomContainer( &deviceDescriptionPtr->deviceContainer);
1247 result = QTInsertChild( deviceDescriptionPtr->deviceContainer, kParentAtomIsContainer, kIDHDeviceAtomType,
1248 (long) deviceDescriptionPtr, 0, 0, nil, &deviceAtom);
1252 result = QTInsertChild( deviceDescriptionPtr->deviceContainer, deviceAtom, kIDHUniqueIDType,
1256 result = cameraNameLookup(deviceDescriptionPtr, cameraName);
1258 result = QTInsertChild( deviceDescriptionPtr->deviceContainer, deviceAtom, kIDHNameAtomType,
1262 result = QTInsertChild( deviceDescriptionPtr->deviceContainer, deviceAtom, kIDHDeviceIDType,
1263 0, 0, sizeof(deviceDescriptionPtr), &deviceDescriptionPtr, nil);
1274 deviceStatus.inputStandard = deviceDescriptionPtr->fDevice->standard;
1277 deviceStatus.outputFormats = deviceDescriptionPtr->fDevice->fDVFormats;
1280 result = QTInsertChild( deviceDescriptionPtr->deviceContainer, deviceAtom, kDVDeviceInfo,
1285 result = QTInsertChild( deviceDescriptionPtr->deviceContainer, deviceAtom, kIDHIsochServiceAtomType,
1290 result = setupVideoAtoms( deviceDescriptionPtr->deviceContainer, isocAtom,
1291 deviceDescriptionPtr->fDevice->standard, false,
1292 deviceDescriptionPtr->fDevice->fDVFormats & (1 << kIDHDVCPro_25));
1294 if(deviceDescriptionPtr->fDevice->fDVFormats & (1 << kIDHDV_SDL)) {
1295 result = setupVideoAtoms( deviceDescriptionPtr->deviceContainer, isocAtom,
1296 deviceDescriptionPtr->fDevice->standard, true,
1297 deviceDescriptionPtr->fDevice->fDVFormats & (1 << kIDHDVCPro_25));
1301 if( deviceDescriptionPtr->fDevice->standard == ntscIn)
1303 result = setup48kAudioAtoms( deviceDescriptionPtr->deviceContainer, isocAtom,
1307 result = setup32kAudioAtoms( deviceDescriptionPtr->deviceContainer, isocAtom,
1313 result = setup44kAudioAtoms( deviceDescriptionPtr->deviceContainer, isocAtom,
1314 deviceDescriptionPtr->fDevice->standard);
1319 deviceDescriptionPtr->fOutputMode = 0;
1320 if(deviceDescriptionPtr->fDevice->standard != ntscIn)
1321 deviceDescriptionPtr->fOutputMode |= 0x80;
1325 postEvent(g, (IDHDeviceID)deviceDescriptionPtr, kIDHEventDeviceAdded);
1333 static UInt8 *getNextFrame(DeviceDescription *deviceDescriptionPtr, IsochComponentInstancePtr client, int slack, int waiting)
1340 if(deviceDescriptionPtr->fWaitingStartWrite) {
1342 res = DVWriteStart(deviceDescriptionPtr->fWrite);
1347 deviceDescriptionPtr->fWaitingStartWrite = 2;
1350 deviceDescriptionPtr->fWaitingStartWrite = 0;
1356 pb->actualCount = deviceDescriptionPtr->fBufSize;
1374 bcopy(pb->buffer, (UInt8 *)deviceDescriptionPtr->bufMem[0], deviceDescriptionPtr->fBufSize);
1380 deviceDescriptionPtr->fWriteSharedVars->fDroppedFrames++;
1381 dropMsg(deviceDescriptionPtr, deviceDescriptionPtr->fWriteSharedVars->fDroppedFrames);
1382 DVSilenceFrame(deviceDescriptionPtr->fOutputMode, (UInt8 *)deviceDescriptionPtr->bufMem[0]);
1388 deviceDescriptionPtr->fFrameBufferPos = 0;
1389 return (UInt8 *)deviceDescriptionPtr->bufMem[0];
1392 static int fillDCLGroup(DeviceDescription *deviceDescriptionPtr, IsochComponentInstancePtr client, int group, int slack)
1396 UInt32 dataSize = deviceDescriptionPtr->fSharedWriteVars->fPacketDataSize;
1397 UInt32 packetSize = deviceDescriptionPtr->fSharedWriteVars->fAlignedPacketSize;
1401 if(deviceDescriptionPtr->fDCLSavedWritePos != NULL) {
1402 dclPtr = deviceDescriptionPtr->fDCLSavedWritePos;
1403 dataPtr = getNextFrame(deviceDescriptionPtr, client, slack, true);
1407 deviceDescriptionPtr->fDCLSavedWritePos = NULL; // Got a frame, carry on
1408 start = deviceDescriptionPtr->fDCLSavedPacketNum;
1409 deviceDescriptionPtr->fDCLSavedPacketNum = 0;
1412 dclPtr = deviceDescriptionPtr->fDCLBuffer + deviceDescriptionPtr->fSharedWriteVars->fDataOffset[group];
1416 if(deviceDescriptionPtr->fWaitingStartWrite) {
1421 bcopy(client->fActiveHead->buffer, (UInt8 *)deviceDescriptionPtr->bufMem[0],
1422 deviceDescriptionPtr->fBufSize);
1425 dataPtr = (UInt8 *)deviceDescriptionPtr->bufMem[0];
1427 dataPtr += deviceDescriptionPtr->fFrameBufferPos;
1429 for(i=start; i<deviceDescriptionPtr->fSharedWriteVars->fGroupSize; i++) {
1441 deviceDescriptionPtr->fFrameBufferPos += dataSize;
1444 if(deviceDescriptionPtr->fFrameBufferPos >= deviceDescriptionPtr->fBufSize) {
1445 dataPtr = getNextFrame(deviceDescriptionPtr, client, slack, false);
1447 deviceDescriptionPtr->fDCLSavedWritePos = dclPtr;
1448 deviceDescriptionPtr->fDCLSavedPacketNum = i+1;
1451 deviceDescriptionPtr->fFrameBufferPos = 0;
1452 deviceDescriptionPtr->fDCLSavedWritePos = NULL;
1453 deviceDescriptionPtr->fDCLSavedPacketNum = 0;
1459 static CFAbsoluteTime processWrites(DeviceDescription *deviceDescriptionPtr)
1465 int numGroups = deviceDescriptionPtr->fSharedWriteVars->fNumGroups;
1470 client = deviceDescriptionPtr->fOpenClients[0];
1473 if(deviceDescriptionPtr->fWaitingStartWrite == 2) {
1474 for(i=0; i<deviceDescriptionPtr->fSharedWriteVars->fNumGroups; i++) {
1475 deviceDescriptionPtr->fOldWriteTimeStamps[i] = deviceDescriptionPtr->fSharedWriteVars->fTimeStampPtrs[i];
1477 //deviceDescriptionPtr->fDCLReadPos = 0;
1478 deviceDescriptionPtr->fBufWritePos = 0;
1479 deviceDescriptionPtr->fFrameBufferPos = 0;
1480 deviceDescriptionPtr->fDCLSavedWritePos = NULL;
1481 deviceDescriptionPtr->fDCLSavedPacketNum = 0;
1482 deviceDescriptionPtr->fWaitingStartWrite = 1;
1485 pos = deviceDescriptionPtr->fSharedWriteVars->fDMAPos;
1486 ahead = deviceDescriptionPtr->fBufWritePos - pos;
1490 //printf("pos %d wripos %d ahead %d\n", pos, deviceDescriptionPtr->fBufWritePos, ahead);
1499 fillDCLGroup(deviceDescriptionPtr, client, (deviceDescriptionPtr->fBufWritePos + i) % numGroups,
1505 deviceDescriptionPtr->fBufWritePos += done;
1506 deviceDescriptionPtr->fBufWritePos %= numGroups;
1510 static CFAbsoluteTime processReads(DeviceDescription *deviceDescriptionPtr)
1520 (*deviceDescriptionPtr->fDevice->fDevInterface)->
1521 GetCycleTime(deviceDescriptionPtr->fDevice->fDevInterface, &cycleTimeNow);
1523 frameIndex = deviceDescriptionPtr->fReadSharedVars->fReader % deviceDescriptionPtr->fNumOutputFrames;
1524 if(deviceDescriptionPtr->fReadSharedVars->fReader <
1525 deviceDescriptionPtr->fReadSharedVars->fWriter) {
1526 UInt8 *buffer = deviceDescriptionPtr->bufMem[frameIndex];
1527 UInt32 frameSize = deviceDescriptionPtr->fReadSharedVars->fFrameSize[frameIndex];
1528 UInt32 frameTime = cycles(deviceDescriptionPtr->fReadSharedVars->fFrameTime[frameIndex]);
1543 deviceDescriptionPtr->fBufferLocks[frameIndex]++;
1544 if(deviceDescriptionPtr->fOldDrop < deviceDescriptionPtr->fReadSharedVars->fDroppedFrames) {
1545 dropMsg(deviceDescriptionPtr, deviceDescriptionPtr->fReadSharedVars->fDroppedFrames);
1548 client = deviceDescriptionPtr->fOpenClients[i];
1552 client, deviceDescriptionPtr, client->fClientIndex, i);
1554 if(deviceDescriptionPtr->fReadStage == 1) {
1568 deviceDescriptionPtr->fBufferLocks[frameIndex]++;
1600 deviceDescriptionPtr->fBufferLocks[frameIndex]--;
1601 if(doneFrames && deviceDescriptionPtr->fBufferLocks[frameIndex] == 0)
1602 deviceDescriptionPtr->fReadSharedVars->fReader += 1; // release buffer
1650 DeviceDescription *deviceDescriptionPtr;
1651 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr); // find the device
1654 FailWithAction( deviceDescriptionPtr->fActive == false, result = kIDHErrDeviceDisconnected, Exit);
1673 FailWithAction( deviceDescriptionPtr->writeLocks, result = kIDHErrDeviceInUse, Exit);
1675 if( deviceDescriptionPtr->readLocks == 0)
1677 result = enableRead(deviceDescriptionPtr);
1681 ++deviceDescriptionPtr->readLocks; // keep track of read count
1683 // ih, deviceDescriptionPtr, deviceDescriptionPtr->readLocks);
1684 RecordEventLogger( 'open', ' Now', ih, deviceDescriptionPtr->readLocks);
1690 FailWithAction( deviceDescriptionPtr->readLocks || deviceDescriptionPtr->writeLocks,
1693 result = enableWrite(deviceDescriptionPtr);
1696 deviceDescriptionPtr->writeLocks = 1; // keep track of write count
1700 // deviceDescriptionPtr->exclusiveAccess = true;
1705 if(!deviceDescriptionPtr->fOpenClients[i]) {
1706 deviceDescriptionPtr->fOpenClients[i] = ih;
1719 DeviceDescription *deviceDescriptionPtr;
1725 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr); // find the device
1730 // ih, deviceDescriptionPtr, deviceDescriptionPtr->readLocks);
1731 if( --deviceDescriptionPtr->readLocks <= 0) // is device completely freed by clients?
1733 if(deviceDescriptionPtr->fActive)
1734 disableRead(deviceDescriptionPtr);
1737 //if(deviceDescriptionPtr->fSharedVars) {
1738 // printf("fWriter: %ld", deviceDescriptionPtr->fSharedVars->fWriter);
1739 // printf(" fReader: %ld", deviceDescriptionPtr->fSharedVars->fReader);
1740 // printf(" fDrop: %ld", deviceDescriptionPtr->fSharedVars->fDroppedFrames);
1741 // printf(" fStatus: %ld", deviceDescriptionPtr->fSharedVars->fStatus);
1745 //deviceDescriptionPtr->exclusiveAccess = false;
1751 if( --deviceDescriptionPtr->writeLocks <= 0) // is device completely freed by clients?
1753 if(deviceDescriptionPtr->fActive)
1754 disableWrite(deviceDescriptionPtr);
1755 //if(deviceDescriptionPtr->fSharedVars) {
1756 // printf("fWriter: %ld", deviceDescriptionPtr->fSharedVars->fWriter);
1757 // printf(" fReader: %ld", deviceDescriptionPtr->fSharedVars->fReader);
1758 // printf(" fDrop: %ld", deviceDescriptionPtr->fSharedVars->fDroppedFrames);
1759 // printf(" fStatus: %ld", deviceDescriptionPtr->fSharedVars->fStatus);
1763 //deviceDescriptionPtr->exclusiveAccess = false;
1767 deviceDescriptionPtr->fOpenClients[ih->fClientIndex] = nil;
1827 DeviceDescription *deviceDescriptionPtr;
1828 deviceDescriptionPtr = &g->deviceDescription[dev];
1831 if(deviceDescriptionPtr && deviceDescriptionPtr->fActive) {
1835 if(deviceDescriptionPtr->fRead) {
1839 if(deviceDescriptionPtr->writeLocks) {
1841 writeDate = processWrites(deviceDescriptionPtr);
1845 if(deviceDescriptionPtr->readLocks) {
1847 readDate = processReads(deviceDescriptionPtr);
1934 DeviceDescriptionPtr deviceDescriptionPtr;
1935 if(findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr) == noErr)
1936 closeDeviceControl( ih, deviceDescriptionPtr);
2078 DeviceDescription *deviceDescriptionPtr;
2121 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2125 if(deviceDescriptionPtr->fDevice->fDevInterface == NULL) {
2126 result = DVDeviceOpen(g->fDVThread, deviceDescriptionPtr->fDevice);
2130 deviceDescriptionPtr->fConnected = 1;
2133 deviceDescriptionPtr->fConnected++;
2135 FailWithAction( deviceDescriptionPtr->fActive == false, result = kIDHErrDeviceDisconnected, Exit);
2284 DeviceDescription *deviceDescriptionPtr;
2305 result = findDeviceDescriptionforDevice( ih, deviceID, &deviceDescriptionPtr); // find description for this device
2308 deviceAtom = QTFindChildByIndex( deviceDescriptionPtr->deviceContainer, kParentAtomIsContainer, kIDHDeviceAtomType, 1, nil);
2312 deviceInfoAtom = QTFindChildByIndex( deviceDescriptionPtr->deviceContainer, deviceAtom, kDVDeviceInfo, 1, nil);
2336 err = doAVCTransaction(deviceDescriptionPtr, &transaction);
2359 err = doAVCTransaction(deviceDescriptionPtr, &transaction);
2367 status->readEnabled = deviceDescriptionPtr->readLocks;
2368 status->writeEnabled = deviceDescriptionPtr->writeLocks;
2369 status->exclusiveAccess = 0;//deviceDescriptionPtr->exclusiveAccess;
2374 status->deviceActive = deviceDescriptionPtr->fActive;
2376 if(deviceDescriptionPtr->fActive) {
2377 status->inputStandard = deviceDescriptionPtr->fDevice->standard;
2381 status->outputFormats = deviceDescriptionPtr->fDevice->fDVFormats;
2385 status->localNodeID = (PsuedoID) deviceDescriptionPtr->fDevice;
2387 result = QTSetAtomData( deviceDescriptionPtr->deviceContainer, deviceInfoAtom, sizeof( IDHDeviceStatus), status);
2402 DeviceDescription *deviceDescriptionPtr;
2411 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2414 // FailWithAction( deviceDescriptionPtr->active == false, result = kIDHErrDeviceDisconnected, Exit);
2416 *clock = deviceDescriptionPtr->clock;
2427 DeviceDescription *deviceDescriptionPtr;
2444 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2447 FailWithAction( deviceDescriptionPtr->fActive == false, result = kIDHErrDeviceDisconnected, Exit);
2451 int frameIndex = deviceDescriptionPtr->fReadSharedVars->fReader % deviceDescriptionPtr->fNumOutputFrames;
2452 UInt8 *buffer = (UInt8 *)deviceDescriptionPtr->bufMem[frameIndex];
2457 if( deviceDescriptionPtr->fOldDrop <
2458 deviceDescriptionPtr->fReadSharedVars->fDroppedFrames) {
2459 dropMsg(deviceDescriptionPtr, deviceDescriptionPtr->fReadSharedVars->fDroppedFrames);
2462 while (deviceDescriptionPtr->fReadSharedVars->fReader >= deviceDescriptionPtr->fReadSharedVars->fWriter)
2466 frameSize = deviceDescriptionPtr->fReadSharedVars->fFrameSize[frameIndex];
2468 pb->reserved1 = cycles(deviceDescriptionPtr->fReadSharedVars->fFrameTime[frameIndex]);
2472 deviceDescriptionPtr->fReadSharedVars->fReader += 1; // release buffer
2489 BlitBufferGraph(deviceDescriptionPtr);
2499 DeviceDescription *deviceDescriptionPtr;
2507 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2509 frameIndex = deviceDescriptionPtr->fReadSharedVars->fReader % deviceDescriptionPtr->fNumOutputFrames;
2510 if(pb->buffer == (Ptr)deviceDescriptionPtr->bufMem[frameIndex]) {
2511 if(--deviceDescriptionPtr->fBufferLocks[frameIndex] == 0)
2512 deviceDescriptionPtr->fReadSharedVars->fReader += 1; // release buffer, this isn't quite right if several buffers are held.
2522 DeviceDescription *deviceDescriptionPtr;
2530 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2537 BlitBufferGraph(deviceDescriptionPtr);
2547 DeviceDescription *deviceDescriptionPtr;
2558 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2561 FailWithAction( deviceDescriptionPtr->fActive == false, result = kIDHErrDeviceDisconnected, Exit);
2580 BlitBufferGraph(deviceDescriptionPtr);
2589 DeviceDescription *deviceDescriptionPtr;
2598 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2601 FailWithAction( deviceDescriptionPtr->fActive == false, result = kIDHErrDeviceDisconnected, Exit);
2608 if ( deviceDescriptionPtr->deviceControlInstance == nil)
2629 (DeviceConnectionID) deviceDescriptionPtr->fDevice->fAVCInterface);
2634 deviceDescriptionPtr->deviceControlInstance = devc;
2638 if( ih->hasDeviceControl == false && deviceDescriptionPtr->deviceControlInstance != nil)
2641 ++deviceDescriptionPtr->deviceControlCount;
2645 *deviceControl = deviceDescriptionPtr->deviceControlInstance;
2696 DeviceDescription *deviceDescriptionPtr;
2718 result = findDeviceDescriptionforDevice( ih, deviceID, &deviceDescriptionPtr);
2721 deviceAtomOld = QTFindChildByIndex( deviceDescriptionPtr->deviceContainer, kParentAtomIsContainer, kIDHDeviceAtomType, 1, nil);
2724 nameAtomOld = QTFindChildByIndex( deviceDescriptionPtr->deviceContainer, deviceAtomOld, kIDHNameAtomType, 1, nil);
2735 // updateCameraName(&deviceDescriptionPtr->uniqueID, newName);
2738 result = QTReplaceAtom( deviceDescriptionPtr->deviceContainer, nameAtomOld, *deviceList, nameAtomNew);
2750 DeviceDescription *deviceDescriptionPtr;
2758 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2761 FailWithAction( deviceDescriptionPtr->fActive == false, result = kIDHErrDeviceDisconnected, Exit);
2763 result = (*deviceDescriptionPtr->fDevice->fDevInterface)->
2764 GetBusCycleTime(deviceDescriptionPtr->fDevice->fDevInterface, &busTime, &cycleTime);
2868 DeviceDescription *deviceDescriptionPtr;
2873 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2876 deviceDescriptionPtr->fOutputMode = format << 2; // Get STYPE field into position
2877 if(deviceDescriptionPtr->fDevice->standard != ntscIn)
2878 deviceDescriptionPtr->fOutputMode |= 0x80; // PAL flag
2888 DeviceDescription *deviceDescriptionPtr;
2893 result = findDeviceDescriptionforDevice( ih, ih->deviceID, &deviceDescriptionPtr);
2896 *format = (deviceDescriptionPtr->fOutputMode >> 2) & 0x1f; // Return just STYPE field, in bottom bits