IT戦記 このページをアンテナに追加 RSSフィード Twitter

2008-06-09

Mac OSX で Web カメラのリストを取る

iMovie がカメラを認識しない

でも、何をどう解決すればいいのかも分からない><

という訳で

色々調べながらカメラを検出するコードを書いてみた

もちろん、エラー処理はない。

#import <Cocoa/Cocoa.h>
#import <QuickTime/QuickTime.h>

int main(int argc, char *argv[]) {
    // メモリプール
    NSAutoreleasePool* arp = [[NSAutoreleasePool alloc] init];

    // 準備
    SeqGrabComponent sg = OpenDefaultComponent(SeqGrabComponentType, 0);
    SGInitialize(sg);
    SGChannel ch = nil;
    SGNewChannel(sg, VideoMediaType, &ch);

    // デバイスリストの取得
    SGDeviceList list = nil;
    SGGetChannelDeviceList(ch, sgDeviceListIncludeInputs, &list);

    // リストの走査
    int i;
    for (i = 0; i < sgDeviceListIncludeInputs; i++) {
        short n;
        SGGetChannelDeviceAndInputNames(ch, nil, nil, &n);

        // デバイス名の取得
        SGDeviceName name = (SGDeviceName) (*list)->entry[i];
        SGDeviceInputList inputs = name.inputs;
        char* str = (inputs == nil) ? name.name : (*inputs)->entry[n].name;

        // 表示
        NSLog([NSString
            stringWithCString:  str + 1
            length:             str[0]
        ]);
    }

    // 後始末
    SGDisposeDeviceList(sg, list);
    SGDisposeChannel(sg, ch);
    [arp release];

    return 0;
}

で実行すると

ファイル名は、 hoge.m だとして

$ gcc -lobjc hoge.m -framework Cocoa -framework QuickTime
$ ./a.out
2008-06-09 19:21:53.879 a.out[2933:10b] Opening shmem segment /com.allocinit.CTCtrl
2008-06-09 19:21:53.881 a.out[2933:10b] Opening shmem segment /com.allocinit.CTImg0
2008-06-09 19:21:53.882 a.out[2933:10b] Opening shmem segment /com.allocinit.CTImg1
2008-06-09 19:21:53.888 a.out[2933:10b] CamTwist
2008-06-09 19:21:53.889 a.out[2933:10b] DV Video
2008-06-09 19:21:53.898 a.out[2933:10b] IIDC FireWire Video
2008-06-09 19:21:53.906 a.out[2933:10b] Built-in iSight

おおお!

ちゃんと CamTwist とか Built-in iSight とか表示されていますね。

さて

SGGetChannelDeviceList という関数デバイスの一覧を取得していると分かった!

でも、これが分かったところでどうすればいいんだ><!

dtrace?

dtrace で以下のスクリプトを試してみたけどダメだった><

pid$target::SGGetChannelDeviceList:entry 

パスポートの取り方

場所

住民票を登録している都道府県の旅券課(都庁?)

http://www.seikatubunka.metro.tokyo.jp/access/index.html

時間

9:00 〜 19:00

午前中が空いてるらしい

用意するもの

  • 戸籍謄(抄)本 1 通
    • 区役所(?)
  • 住民票 1 通
    • 区役所
  • 写真
    • 45×35
  • 未使用の郵便はがき 1 枚
    • 郵便局
  • 免許証
  • 印鑑

書くもの

  • 一般旅券発給申請書
    • パスポート申し込み窓口にある
  • 持ってきたはがきに住所を書く

プログラミングを 5 日間とことんやろう!「セキュリティ&プログラミングキャンプ 2008 募集開始」

ご存知ですか?

みなさんはセキュリティキャンプという中学生〜大学生を対象にした、無料で参加できるキャンプイベントがあるのはご存知ですか?

去年のセキュリティキャンプのページ

キャンプの内容は、セキュリティ界のスペシャリストが参加者に対して 5 日間の集中講義をするというもので、目的は優秀なセキュリティ人材の早期発掘・育成です。

今年はセキュリティ&プログラミングキャンプ

今年から、そのセキュリティキャンププログラミングコースというコースが新設され「セキュリティ&プログラミングキャンプ」となりました。

今まではセキュリティの講義がメインでしたが、今年からはプログラミングだけを集中してやるという選択が増えたということです。

404 Not Found

そして、今年は僕も JavaScript を教える講師として参加することになりました!

その他の講師陣も、その道のスペシャリストばかりです!

出会い重要

実は、勉強以上に出会い重要です。若いうちの出会いならなおさらです。

このセキュリティ&プログラミングキャンプでは、同じ夢を持った同世代が集まるんです。

こんな機会はめったにありません。

僕自身も色々な人との出会いの中でプログラマとして成長してきました。

だから、若い皆さんにこそ出会って欲しいと思うんです!

僕は、このイベントで将来の IT 業界を変えるような出会いが生まれると思っています!

というわけで

みなさん、ぜひぜひ参加してください!

よろしくお願いします!

404 Not Found