UVC Kamera / Usb Kamera özel uygulama için Android inceleme by AndroidFreeware
Android-UVC-Kamera
Uygulama, Android cihazınızdan bir USB kameraya bağlanır. (OTG kablosu veya OTG Hub gereklidir)
Bu proje, UVC kameralar ile tüm Android cihazları (4.1 Ice Cream Sandwich üzeri) için Isochronous Video Akışı gerçekleştirmek üzere oluşturulmuştur. Program, kamera cihazınızla isokron transferi gerçekleştirmek için kullanıcı alanı USB cihaz sürücünüzü kullanır.
Kendi kullanıcı alanı cihaz sürücünüzü ayarlamak için bu yolu izleyin:
Öncelikle, cihazınız için tüm kamera ayarlarını yapmalısınız. Program daha sonra değerleri kaydeder ve bunları daha sonra geri yükleyebilir veya başka değerlerle üzerine yazabilirsiniz. Değerleri ayarlamak için Düzenle/Kaydet/Geri Yükle düğmesini kullanın. Kamerayı bulmak ve ayarlamak için otomatik kamera aramasını kullanın.
Açıklama:
Otomatik arama başarılı olduğunda, öncelikle MAKSİMUM PAKET BOYUTU'nu ayarlarsınız. Cihazınız bir mediathek cihazıysa, maksimum paket boyutu için değeri düşürmeniz gerekebilir. İSTEK BAŞINA PAKETLER değeri, cihaza gönderilen paket sayısını tanımlar: Bir paket 3000 bayt boyutundadır ve aynı anda 16 paket gönderirsiniz. Burada gönderilen Bayt miktarını tanımlarsınız.
Sonraki şey USB İSTEK BLOKLARI (activeUrb)dır: Bunlar maksimum paket boyutuyla ilişkilidir. Burada cihazınız için doğru değerleri bulmalı ve Isoread menü noktası altında ekranda çıktıyı kontrol etmelisiniz. Qualcom cihazları için bazı tipik değerler: activeUrbs için 8 ve İstek Başına 16 Paket....
Isoread yönteminin ilk kısmı, kamera cihazına bir Kontrol transferidir:
Kontrol transferi başarılı olursa, o zaman hazırsınız.
Sonraki adımda çerçevelere bakın.
Aynı ve uzun çerçeveler aldığınızda, çerçevelerin ekranınızda görüntülendiği Isostream yöntemine geçebilirsiniz.
Bir Çerçevenin ne kadar büyük olması gerektiğini bilmek için, kameranın kontrol transferi çıktısına bakabilirsiniz: maxVideoFrameSize. Bu değer kameradan döner ve geçerli çerçeve boyutu olmalıdır (Değer, Görüntü genişliği x Görüntü yüksekliği x 2 ile hesaplanır).
IsochronousRead1 sınıfı, çerçevelerin kamera tarafından nasıl yapılandırıldığını gösterir. Farklı kamera ayarları == Farklı Çerçeve yapıları. Farklı ayarlarla deneyin ve çıktıya bakın. eof ipucu, günlükte çerçeve boyutunu gösterir. Geçerli kamera ayarları için boyut, kontrol transferinin maxFrameSize değerine eşit olmalıdır.
Isoread çıktısı: (Kontrol transferi) Öncelikle program, kamera cihazınıza bir kontrol transferi gönderecektir. Çıktısı aşağıdaki gibidir:
Başlangıç akış parametreleri: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=0 maxPayloadTransferSize=0
Sondaj yapılmış akış parametreleri: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
Son akış parametreleri: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
İlk satır, kamerayı bağlamak için programda ayarladığınız değerlerdir. (Başlangıç akış parametreleri)
İkinci satır, kameranın sizin değerlerinizden döndürdüğü değerlerdir.
Ve üçüncü satır, USB kameradan kaydedilen ve son değerlerdir.
İlk Yöntemden Çıktı: isoRead:
EOF frameLen=10436. --> Örneğin burada bir çerçeve, kontrol transferinden beklediğimiz 614400 yerine 10436 uzunluğunda sona eriyor, bu nedenle geçerli bir çerçeve boyutu almak için programınızdaki bazı değerleri değiştirmeniz gerekebilir.