Project

General

Profile

Actions

Support Request #13957

closed

Could not access webcam within direct show device

Added by hidden about 3 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Customer:
PORSCHE
Department:
Requester's Priority:
Normal
Support Level:
3rd Level
Resolution:
Workaround Available

Description

Supportanfrage

Wir sind auf ein Problem mit ADTF3 (wahrscheinlich im Allgemeinen) und unserer Webcam gestoßen.
Von der Messtechnik aus kriegen wir leider nur die Webcam "Microsoft® LifeCam Studio(TM)" und beim Starten bekommen wir die Meldung, dass das Gerät nicht gefunden werden konnte.
Screenshot der Fehlermeldung ist im Anhang.

Wir hatten dann versucht mittels Registryänderung den "FriendlyName" anzupassen, sodass das "Registered"-Zeichen nicht mehr im Namen auftaucht.
Der Name wird dann so auch wie geändert im Gerätemanager angezeigt, leider scheint ADTF hier den Namen woanders herzubekommen. Denn der Name der Webcam bleibt in ADTF unverändert und die Fehlermeldung taucht wieder auf.

Wird beim Gerätenamen dann "default" eingetragen, funktioniert es. Das Problem scheint das R-Zeichen zu sein, damit kommt ADTF nicht klar.

In ADTF2 funktioniert die Kamera ohne Probleme, da die Kamera nicht mit Namen angesprochen wird, sondern mit einer ID ("Capture_1" o.ä.).

Lösung

Problem ist das registered Zeichen, damit können Properties nicht umgehen.
Ein Workaround wäre das Device per ID zu adressieren als Name, zb: device:1.
Dokuticket für die ":" Syntax erstellt:
  • [ADEVTB-1964] - Document how to address Direct Show Capture Device by ID

Ebenso eine FAQ für das eigentliche Problem


Files

ADTF3-Webcam.jpg (163 KB) ADTF3-Webcam.jpg Error_Message hidden, 2021-04-07 12:20
ADTF3-Webcam-Auswahl.png (23.6 KB) ADTF3-Webcam-Auswahl.png hidden, 2021-04-09 05:59
Actions #1

Updated by hidden about 3 years ago

  • Status changed from New to In Progress
Actions #3

Updated by hidden about 3 years ago

  • Status changed from In Progress to Customer Feedback Required
  • Topic set to DeviceTB::DirectShow

Hallo Alexander,

du kannst Devices auch direkt ansprechen, dazu wird aber nicht der friendly name verwendet, sondern mit ":"-Syntax gearbeitet.
Siehe dazu die Quellen des Direct Show SDK (./src/examples/src/directshow_capture_device/sdk)

DSInput.cpp

HRESULT cDSInput::FindCaptureDevice(const char* strDeviceName, IBaseFilter** ppSrcFilter)
{

    // [...]

    tUInt32 nNameSeparator = static_cast<tUInt32>(strDeviceSpec.Find(':'));

    // [...]
}

d.h. Wenn du zb als Property device:1 setzt, geht es auch.

Wir stellen aber noch mehr Convenience bereit, das DS Capture Device hat eine QML GUI zur Konfiguration, einfach Rechtsklick auf die Source im Graphen und im Kontextmenu Configure Camera... auswählen.
Siehe Help/F1 im CE beim DS Capture Device selbst oder https://support.digitalwerk.net/adtf_addons/adtf-device-toolbox/v3/devicetoolbox_html/page_example_directshow_capture_device.html

Taucht deine Webcam da auf ?

Actions #4

Updated by hidden about 3 years ago

  • Private changed from No to Yes
Actions #5

Updated by hidden about 3 years ago

Hallo Florian,

ja, die Kamera taucht via "Configure Camera" in der Liste der auswählbaren Geräte auf, so hatten wir sie bisher auch immer ausgewählt.
Und da wird die Kamera, obwohl ja in der Registry nun ein anderer Name steht, dennoch der alte Name angezeigt mit dem R-Zeichen.
Dies führt dann am Ende eben zu dem genannten Problem.

Aber danke für den Hinweis mit dem ":"-Syntax!

Actions #6

Updated by hidden about 3 years ago

Hi Alexander,

ich habe nochmal die QMultimedia Doku durchwälzt, man kann an der Stelle nur den displayName via QML auslesen:

d.h. wenn du den Namen von außen nicht ändern kannst, machts leider keinen Sinn.
Die Properties können nicht mit dem registered Zeichen umgehen.

Ist das für dich ein gangbarer Umweg via default oder device:1 ?

Actions #7

Updated by hidden about 3 years ago

Hi Florian,

jain, von außen kann ich ihn ja ändern.
Aber der Weg über "device:X" ist ein gangbarer Weg.
Nur sollte das irgendwo auch erwähnt werden, weil ich bin wahrscheinlich am Ende nicht der einzige der über das Problem stolpert :D

Actions #8

Updated by hidden about 3 years ago

  • Project changed from 16 to Public Support
  • Subject changed from Zugriff auf Webcam nicht möglich to Could not access webcam within direct show device
  • Description updated (diff)
  • Status changed from Customer Feedback Required to To Be Closed
  • Private changed from Yes to No
  • Support Level changed from 2nd Level to 3rd Level
  • Resolution set to Workaround Available
  • Product Issue Numbers set to https://www.cip.audi.de/jira/browse/ADEVTB-1964
  • FAQ Links set to https://support.digitalwerk.net/projects/download-center/wiki/FAQ's#Q-Failed-to-find-configured-Direct-Show-Capture-Device-at-runtime-on-same-machine

Hallo Alexander,

jain, von außen kann ich ihn ja ändern.

Du änderst aber glaube ich den Friendly Name und nicht den Display Name, auf diesen schaut anscheinend die Qt API ?!

Aber der Weg über "device:X" ist ein gangbarer Weg.
Nur sollte das irgendwo auch erwähnt werden, weil ich bin wahrscheinlich am Ende nicht der einzige der über das Problem stolpert :D

Natürlich, das würde ich direkt in die Device TB Doku packen:
  • [ADEVTB-1964] - Document how to address Direct Show Capture Device by ID
und eine FAQ bzgl. der Sonderzeichen:
Actions #9

Updated by hidden about 3 years ago

Hallo Florian,

oh ja, danke für den Hinweis.
Ich werde mal schauen ob ich den DisplayName noch ändern kann.
Aber ansonsten haben wir ja eine Lösung die ja auch besser ist als bei jedem Rechner in der Registry zu pfuschen.
Danke für deine Hilfe!

Actions #10

Updated by hidden over 2 years ago

  • Status changed from To Be Closed to Closed
Actions

Also available in: Atom PDF