[ANNOUNCE] av.jit.iidc - an IIDC wrapper for Jitter


    Apr 02 2010 | 12:45 pm
    Hi all,
    A new external that enables the communication to IIDC Cameras (all firewire cameras). It provides access to advance parameters of industrial cameras such as Format 7 and ROI settings.
    It's still a beta release tested with an AVT Guppy F033B, a Sony XCD-V60, an Unibrain Fire-i and an Apple iSight.
    It uses the libdc1394 library by Damien Douxchamps and that's why it's Mac OS X only (the library isn't ported to Windows yet).
    This external is available on my web site (only in french, sorry) :
    Feel free to send me bug reports, feature requests and coffee.
    Best
    a.

    • Apr 02 2010 | 1:43 pm
      Hi Antoine
      I get a "av.jit.iidc: unable to load object bundle executable" error when I try using it.
      I installed the libdc1394 library but still no go.
      Have I missed something?
      /mattias
      MacBook Pro
      MacOs 10.6.3
      Max 5.1.3
    • Apr 04 2010 | 1:34 pm
      Hi Matthias,
      first, thank for your attention
      did you install the dc1394.framework available on my site or just install the libdc1394 binaries ?
      i've tested the external under Mac OS 10.6.3 and 10.5.8
      but Xcode and the Developement tools are installed on these machines
      i don't really understand for now how exactly this works but i noticed that if the dc1394 framework isn't insalled i've got the same error
      but i'm sure there is a way to avoid the installation of the framework
      if anyone knows how, he's welcome !
      a.
    • Apr 08 2010 | 11:09 pm
      Mattias,
      I have the same problem on a machine without Xcode & Apple Developper Kit, so I'm working on fixing it...
      I think something is wrong in the deployment configuration around including the dc1394 framework in the bundle.
      best
      a.
    • May 01 2010 | 11:17 pm
      Hi all,
      some news from av.jit.iidc dev
      a new version is online, the same as the previous one but compiled in another way
      it is intel only this time, and it appears that you must install the Xcode tools and the dclibdc1394.framework before you can use it
      i am working on fixing this drawback but... i need help !
      so... feel free to contact me, i will be happy to share the code
      best
      a.
    • Oct 14 2010 | 2:29 pm
      Bonjour Antoine,
      I am trying to make your IIDC wrapper work with OSX (MacbookPro i7) and an older Firewire Firefly Point Grey camera.
      I have the libdc1394 framework installed, apple developer tools installed. The object loads properly as best I can tell. The camera is recognized correctly in the max window. However I do get an error when the digitizer is opened, i get these messages:
      av.jit.iidc: Using camera Point Grey Research Firefly MV FFMV-03MTC with GUID 00B09D010060BDA8
      av.jit.iidc: IIDC error -23 : Invalid ISO speed - Could not set iso speed
      av.jit.iidc: Could not setup capture
      I assume the ISO speed error isnt a big issue (i see it is in the ToDo list)
      The capture issue seems to be bigger...I never get any frames out of this....
      any clues?
      best
      matthew
    • Dec 06 2010 | 12:05 pm
      Hi Antoine,
      the community of Openframeworks had some issues close to yours on building a grabber for IIDC camera. The issue was with static and dynamic link with libdc1394 library.
      Please take a look at http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=2487&start=60
      I will receive my firefly soon and I will be happy to try it on OSX.5.
      I'll let you know
      Best
    • Mar 05 2013 | 9:53 am
      Hi,
      I got this error and max can't create the object
      can you help me?
      Thanks
      MAX 6
      OSX 10.8.2
      Mac book Pro
      Jitter initialized
      av.jit.iidc: unable to load object bundle executable
      2013-03-05 10:41:06.362 Max[8359:c07] Error loading /Applications/Max6/Rajan/av.jit-master/externals/OSX/av.jit.iidc.mxo/Contents/MacOS/av.jit.iidc: dlopen(/Applications/Max6/Rajan/av.jit-master/externals/OSX/av.jit.iidc.mxo/Contents/MacOS/av.jit.iidc, 2
      62): Library not loaded: @executable_path/../Frameworks/dc1394.framework/Versions/A/dc1394
      Referenced from: /Applications/Max6/Rajan/av.jit-master/externals/OSX/av.jit.iidc.mxo/Contents/MacOS/av.jit.iidc
      Reason: image not found
    • Mar 05 2013 | 11:08 am
      Hello Micron,
      it seems that your are missing IIDC Framework.
      This should have been embedded in the external, but it seems that it doesn't...
      It's available on my github, next to av.jit.iidc sources
      https://github.com/avilleret/av.jit
      Try to put it manually in the .mxo in av.jit.iidc.mxo/Contents/Frameworks
      But I'm sure this works and I haven't an OS X machine to check it.
      Moreover, I've never try it under Max 6 but I see no reasons why.
      Cheers
      antoine
    • Mar 05 2013 | 6:20 pm
      Hello Antoine,
      thanks for your reply,
      I tried your suggestion but i got the same error
      I tried also on iMac OSX 10.7 an got the same
      also tried with max 5 and get the same error
      can you point me to a tested version of this external?
      this is my email studio[at]rajancraveri.it
      Thanks
    • Mar 05 2013 | 9:59 pm
      @micron: I would suggest you try putting that bundle in /Library/Frameworks.
      @antoine: It sounds like the external is not properly loading the framework from within the .mxo bundle, which is a complete pain to set up in XCode, actually. You might want to do the dynamic loading, or copy to the application package frameworks bundle (not the .mxo bundle) we discussed in the following thread:
      Another relevant thread for this sort of thing, esp when considering standalones:
      Good luck!
    • Mar 05 2013 | 11:39 pm
      Hi,
      josh, you were quicker than me !
      I was just about to reply.
      And yes, the key is to put the dc1394.framework in /Library/Frameworks.
      I've just check it.
      I think it's possible to include it the .mxo in the building step but I can't manage Xcode to link with for now, and I've no time for that now.
      And sorry I forgot my own post...
      Does anybody know if someone manage to build av.jit.iidc (or an equivalent) on Windows ?
      I saw of release of libiidc a while ago.
      Cheers
      Antoine
    • Mar 06 2013 | 10:55 am
      Thanks Joshua and thanks Antoine,
      yes copy dc1394.framework in Library/Frameworks seems to change something but now on Max 6.0.8
      every time I try to create a new object av.jit.iidc Max crash with this message
      Process: Max [284]
      Path: /Applications/Max6/Max.app/Contents/MacOS/Max
      Identifier: com.cycling74.Max
      Version: 6.0.8 [a0c1b20] (6.0.8)
      Code Type: X86 (Native)
      Parent Process: launchd [265]
      User ID: 501
      Date/Time: 2013-03-06 11:41:23.788 +0100
      OS Version: Mac OS X 10.8.2 (12C60)
      Report Version: 10
      Interval Since Last Report: 25494 sec
      Crashes Since Last Report: 11
      Per-App Interval Since Last Report: 21763 sec
      Per-App Crashes Since Last Report: 9
      Anonymous UUID: 52268152-294D-828A-FFFB-0138E669D2B9
      Crashed Thread: 0 Java: AWT-AppKit Dispatch queue: com.apple.main-thread
      Exception Type: EXC_BAD_ACCESS (SIGSEGV)
      Exception Codes: KERN_INVALID_ADDRESS at 0x000000003ae7a830
      VM Regions Near 0x3ae7a830:
      MALLOC_TINY 000000003ad00000-000000003ae00000 [ 1024K] rw-/rwx SM=COW
      -->
      IOKit 000000003af11000-000000003af21000 [ 64K] rw-/rw- SM=ALI
      Application Specific Information:
      Java information:
      Exception type: Bus Error (0xa) at pc=000000000f461845
      Java VM: Java HotSpot(TM) Client VM (20.12-b01-434 mixed mode macosx-x86)
      Current thread (000000001f0f5c00): JavaThread "AWT-AppKit" [_thread_in_native, id=-1398838744, stack(00000000bf800000,00000000c0000000)]
      Stack: [00000000bf800000,00000000c0000000]
      Java Threads: ( => current thread )
      0000000036163800 JavaThread "AWT-Shutdown" [_thread_blocked, id=-1313009664, stack(00000000b1ad1000,00000000b1bd1000)]
      000000001f216c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=-1315655680, stack(00000000b184b000,00000000b194b000)]
      000000001f215c00 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=-1316712448, stack(00000000b1749000,00000000b1849000)]
      000000001f214c00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=-1317769216, stack(00000000b1647000,00000000b1747000)]
      000000001f213c00 JavaThread "Surrogate Locker Thread (Concurrent GC)" daemon [_thread_blocked, id=-1318825984, stack(00000000b1545000,00000000b1645000)]
      000000001f207800 JavaThread "Finalizer" daemon [_thread_blocked, id=-1319882752, stack(00000000b1443000,00000000b1543000)]
      000000001f206800 JavaThread "Reference Handler" daemon [_thread_blocked, id=-1320939520, stack(00000000b1341000,00000000b1441000)]
      =>000000001f0f5c00 JavaThread "AWT-AppKit" [_thread_in_native, id=-1398838744, stack(00000000bf800000,00000000c0000000)]
      Other Threads:
      000000001f204000 VMThread [stack: 00000000b123f000,00000000b133f000] [id=-1321996288]
      000000001f220400 WatcherThread [stack: 00000000b194d000,00000000b1a4d000] [id=-1314598912]
      VM state:not at safepoint (normal execution)
      VM Mutex/Monitor currently owned by a thread: None
      Heap
      par new generation total 14784K, used 7730K [0000000021810000, 0000000022810000, 0000000023810000)
      eden space 13184K, 58% used [0000000021810000, 0000000021f9ca20, 00000000224f0000)
      from space 1600K, 0% used [00000000224f0000, 00000000224f0000, 0000000022680000)
      to space 1600K, 0% used [0000000022680000, 0000000022680000, 0000000022810000)
      concurrent mark-sweep generation total 49152K, used 0K [0000000023810000, 0000000026810000, 0000000031810000)
      concurrent-mark-sweep perm gen total 12288K, used 4281K [0000000031810000, 0000000032410000, 0000000035810000)
      Code Cache [000000001f801000, 000000001f89a000, 0000000021801000)
      total_blobs=204 nmethods=70 adapters=78 free_code_cache=32955584 largest_free_block=0
      Virtual Machine Arguments:
      JVM Args: -Xincgc -Xms64m -Xmx256m
      Java Command:
      Launcher Type: generic
      Physical Memory: Page Size = 4k, Total = 3968M, Free = 1695M
      Thread 0 Crashed:: Java: AWT-AppKit Dispatch queue: com.apple.main-thread
      0 av.jit.iidc 0x0f461845 jit_iidc_table_init + 2251
      1 av.jit.iidc 0x0f45db66 jit_iidc_new + 190
      2 com.cycling74.Max 0x000b9ef4 object_new + 133
      3 com.cycling74.MaxAPI 0x04aa615b object_new + 139
      4 com.cycling74.JitterAPI 0x0fb5642d jit_object_new + 206
      5 av.jit.iidc 0x0f4627e9 max_jit_iidc_new + 86
      6 com.cycling74.Max 0x000261a2 typedmess_fun + 1008
      7 com.cycling74.Max 0x000ba5b6 object_new_typed_flags + 332
      8 com.cycling74.Max 0x000ba5f0 object_new_typed + 46
      9 com.cycling74.Max 0x000183f5 auxtable_search + 114
      10 com.cycling74.Max 0x0001988a newload_internal + 83
    • Mar 06 2013 | 11:45 am
      hum,
      I dunno what it means exactly, it seems that Java crashed but av.jit.iidc doesn't use Java at all...
      is it the same with Max 5 ?
      cheers
      a
    • Mar 06 2013 | 4:09 pm
      The java portion of the crash log is likely a red herring. Looks like invalid memory access in jit_iidc_table_init. Maybe uninitialized memory, or running off the end of an array you've allocated (easy mistake if you allocate number of bytes rather than number of whatever typesize the array is), etc.
      0 av.jit.iidc 0x0f461845 jit_iidc_table_init + 2251
      1 av.jit.iidc 0x0f45db66 jit_iidc_new + 190
      2 com.cycling74.Max 0x000b9ef4 object_new + 133
      3 com.cycling74.MaxAPI 0x04aa615b object_new + 139
      4 com.cycling74.JitterAPI 0x0fb5642d jit_object_new + 206
      5 av.jit.iidc 0x0f4627e9 max_jit_iidc_new + 86
      6 com.cycling74.Max 0x000261a2 typedmess_fun + 1008
      7 com.cycling74.Max 0x000ba5b6 object_new_typed_flags + 332
      8 com.cycling74.Max 0x000ba5f0 object_new_typed + 46
      9 com.cycling74.Max 0x000183f5 auxtable_search + 114
      10 com.cycling74.Max 0x0001988a newload_internal + 83
    • Mar 06 2013 | 7:12 pm
      Hi Antoine, crash also with max 5
      here the log
      Process: MaxMSP [21413]
      Path: /Applications/Max5/MaxMSP.app/Contents/MacOS/MaxMSP
      Identifier: com.cycling74.MaxMSP
      Version: 5.1.9 [48561] (5.1.9)
      Code Type: X86 (Native)
      Parent Process: launchd [265]
      User ID: 501
      Date/Time: 2013-03-06 20:00:13.825 +0100
      OS Version: Mac OS X 10.8.2 (12C60)
      Report Version: 10
      Interval Since Last Report: 40583 sec
      Crashes Since Last Report: 13
      Per-App Interval Since Last Report: 920 sec
      Per-App Crashes Since Last Report: 3
      Anonymous UUID: 52268152-294D-828A-FFFB-0138E669D2B9
      Crashed Thread: 0 Dispatch queue: com.apple.main-thread
      Exception Type: EXC_BAD_ACCESS (SIGSEGV)
      Exception Codes: KERN_INVALID_ADDRESS at 0x00000000110464f0
      VM Regions Near 0x110464f0:
      __LINKEDIT 000000000f91f000-000000000f932000 [ 76K] r--/rwx SM=COW /Library/Frameworks/dc1394.framework/Versions/A/dc1394
      -->
      __TEXT 000000008fe98000-000000008fecb000 [ 204K] r-x/rwx SM=COW /usr/lib/dyld
      Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
      0 av.jit.iidc 0x0f8a8845 jit_iidc_table_init + 2251
      1 av.jit.iidc 0x0f8a4b66 jit_iidc_new + 190
      2 com.cycling74.MaxMSP 0x000b800a object_new + 250
      3 com.cycling74.MaxAPI 0x045a0f25 object_new + 156
      4 com.cycling74.JitterAPI 0x0dbef33e jit_object_new + 235
      5 av.jit.iidc 0x0f8a97e9 max_jit_iidc_new + 86
      6 com.cycling74.MaxMSP 0x0001caef typedmess_fun + 1973
      7 com.cycling74.MaxMSP 0x000bc3d3 object_new_typed_flags + 637
      8 com.cycling74.MaxMSP 0x000bc412 object_new_typed + 46
      9 com.cycling74.MaxMSP 0x000114ed newload_internal + 165
      10 com.cycling74.MaxMSP 0x000117f2 newload + 40
      11 com.cycling74.MaxMSP 0x0001caef typedmess_fun + 1973
      12 com.cycling74.MaxMSP 0x0001cb79 typedmess + 83
      13 com.cycling74.MaxMSP 0x0001d1f9 aeval + 899
      14 com.cycling74.MaxMSP 0x000083e0 atombuf_eval + 152
      15 com.cycling74.MaxMSP 0x0016311b jnewobj_new + 2283
      16 com.cycling74.MaxMSP 0x0001caef typedmess_fun + 1973
      17 com.cycling74.MaxMSP 0x000bc398 object_new_typed_flags + 578
      18 com.cycling74.MaxMSP 0x000bc412 object_new_typed + 46
      19 com.cycling74.MaxMSP 0x00170c1e jpatcher_newobject + 380
      20 com.cycling74.MaxMSP 0x00171240 jpatcher_pastefromdictionary + 670
    • Mar 11 2013 | 3:25 pm
      hello,
      I made few changes according to JKC advices.
      This is pushed to my github : https://github.com/avilleret/av.jit but it's crapy, I don't know if someone else could build it just after pulling.
      The binary is attached.
      The object still load on my old macbook pro but I've no camera to test it yet.
      So please check it and let me now.
      Cheers
    • Mar 11 2013 | 11:40 pm
      macbook pro 10.6.8
      max 6.08
      2013-03-12 10:26:35.094 Max[267:207] Error loading /Users/tel/Documents/Max Docs/av.jit.iidc.mxo/Contents/MacOS/av.jit.iidc: dlopen(/Users/tel/Documents/Max Docs/av.jit.iidc.mxo/Contents/MacOS/av.jit.iidc, 262): Library not loaded: @executable_path/../Fr
      ameworks/dc1394.framework/Versions/A/dc1394
      Referenced from: /Users/tel/Documents/Max Docs/av.jit.iidc.mxo/Contents/MacOS/av.jit.iidc
      Reason: image not found
    • Mar 11 2013 | 11:52 pm
      did you put the dc1394.framework in /Library/Framework ?
    • Mar 12 2013 | 1:19 am
      OK, sorry about that! I have now and it's loaded, and I found the help file on github, but it's not initialising the camera (unibrain fire-i). These are the sort of messages I get in the max window:
      dc1394: getcameraguid
      av.jit.iidc: Camera not initialized
      dumpout: cameraguid
      dc1394: close
      dc1394: open
      av.jit.iidc: opening a device
      av.jit.iidc: enumerating cameras
      av.jit.iidc: Failed to initialize camera with guid 0814436102632150
      dc1394: getisospeed
      dumpout: isospeed 0
      dc1394: getcameraguidlist
      Camera with GUID 0814436102632150
      dumpout: cameraguidlist 0814436102632150
      dc1394: cameraguid 0814436102632150
      av.jit.iidc: Failed to initialize camera with guid 0814436102632150
      dc1394: getisospeed
      dumpout: isospeed 0
      dc1394: isospeed 0
      dc1394: getvideomode
      av.jit.iidc: Camera not initialized
      dumpout: videomode
      dc1394: getvideomodelist
      av.jit.iidc: open a camera before trying to get its video mode
      this is the help file I used:
    • Mar 12 2013 | 9:05 am
      hi,
      does your camera work with another IIDC software on your Mac ?
      do you have another IIDC camera to test with ?
      As I remember, I had some issue with Unibrain Fire-i a while ago.
      Did you try to force to legacy mode ?
      try [isospeed 2( before [open(
      Cheers
      a
    • Mar 12 2013 | 11:02 am
      I've never tried the camera on this mac before, just had it in my desk drawer and thought I'd try it out in your wrapper. I managed to get it working, but when I pointed it at myself I was an attractive purple colour-- tried a different video mode, which caused max to crash.
      Anyway, it probably would work if I knew what I was doing...;-)
    • Mar 15 2013 | 4:08 pm
      Hi Antoine,
      I tested your external,
      now it loads well and I'm able to open and get information from camera but
      when i try to bang it or if I turn on the metro of help patch Max locks itself
      it doesn't crash but i have to force quit it because it freeze
      here my test patch.
      (I tried also isospeed 2)
      (the camera works with jit.qt.grab only if I set 640 480)
      (the camera works with message and Skype)
      If you want I can test your external
      thanks
    • Mar 15 2013 | 4:18 pm
      Hi,
      thanks for this feedback
      unfortunately I haven't a camera here so I'm a blind debugger for now !
      I can just check if it's loading properly...
      I will try to manage a setup here with the machine I used 3 years ago to write code and a camera as soon as possible.
      But if you have time and you want to help, feel free to clone my github !
      i'll let you know when i can do some test
      cheers
      a
    • Mar 15 2013 | 4:41 pm
      sorry I want help you in this project but I'm not able to write jitter external in Xcode
      I'm here if you need a test on Firefly MV Point Grey camera
      thanks for your work
    • Mar 16 2013 | 1:10 pm
      @micron : your patch is working here with a macbook pro 5,5 under OS X 10.6.8 with a Sony XCD-V60 and Max 5.1.9
      so I may need a more recent machine and a newer version of Max to find out why it's not working for you...
      but I can say that the external I send in this thread 4 days ago is working, at least if the dc1394.framework is put in the right place and with Max 5.1.9 under OS X 10.6.8
      Maybe there are some differences between Max 5 and Max 6 SDK that lead to the hang
      cheers
      antoine
    • Mar 16 2013 | 3:37 pm
      Hi Antoine,
      I tested the patch with the new external in max 5 and I got the same behavior Max freeze and I have to force quit it.
      OS X 10.8.2
      maybe could be the camera?
    • Mar 19 2013 | 11:33 am
      hi,
      i sucessfully tested the external on Mac OS 10.7.4 x86_64 with both max 5.1.9 and Max 6.1.1 (f7fb88c) 32 bit
      tested with an AVT Guppy F-033B
      i made few changes to your test patch here my version (with comments) :
      I don't have a Mac OS 10.8 here (and it's a shame) so I can't test it
      But i'll try to find one
      cheers
      antoine
    • May 23 2014 | 5:20 am
      I was able to compile a dc1394.framework for the latest 1394 (2.2) by adapting a Xcode project I found on the web. I then linked that to the code above and eventually I got it to compile! Mavericks 10.9.2, Xcode 5.1.1, latest Max SDK 6.1.4.
      Unfortunately, as soon as I load it up in Max, the whole thing crashes. I had to make substantial changes to the code above as I could not have it load nicely in a Xcode project. I am not a C expert, much less a Max C external, so I may have screwed up..
      My main interest to recompile the framework and the mxo was that I was trying to use a flea3 USB3 that I borrowed, so I will need to compile with libusb.
      At this point, I am back to my old dragonexpress. Is there a point grey that works well with latest macs? Is there a firewire camera that just plugs and works? Supporting c-mount would be nice.
    • May 23 2014 | 8:44 am
      hi,
      Quitcktime used to support IIDC over Firewire since the very first i-sight camera was IIDC compliant.
      But it was something like 10 years ago...
      I hope Quicktime still support IIDC camera, but don't know if it supports IIDC over USB.
      I wrote this external because I need to access advanced camera features such as camera mode.
      But I no longer use it because I switched to open source software.
      So in short, firewire IIDC camera should work with Quicktime but I don't know anything about USB IIDC support.
      Cheers
      a