Abbiamo un dispositivo con una telecamera analogica. Abbiamo una carta che la campiona e la digitalizza. Questo è tutto fatto in directx. A questo punto, la sostituzione dell'hardware non è un'opzione, ma dobbiamo codificare in modo tale da poter vedere questo feed video in tempo reale, indipendentemente da eventuali modifiche hardware o del sistema operativo sottostante in futuro.Implementare la telecamera IP
Lungo questa linea, abbiamo scelto Qt per implementare una GUI per visualizzare questo feed della telecamera. Tuttavia, se ci spostiamo su Linux o su un'altra piattaforma embedded in futuro e cambiamo l'hardware (incluso il dispositivo fisico in cui risiede la telecamera/il campionatore video), dovremo cambiare anche il software di visualizzazione della videocamera, e questo sarà un dolore perché abbiamo bisogno di integrarlo nella nostra GUI.
Quello che ho proposto è stato migrare a un modello più astratto in cui i dati vengono inviati tramite un socket alla GUI e il video viene visualizzato in tempo reale dopo essere stato analizzato dal flusso di socket.
In primo luogo, questa è una buona idea o una cattiva idea?
In secondo luogo, come implementeresti una cosa del genere? In che modo i campionatori video di solito danno risultati utilizzabili? Come posso spingere questo output su un socket? Una volta che sono sul lato ricevente analizzando l'output, come faccio a sapere cosa fare con l'output (come in come ottenere l'output da renderizzare)? L'unica cosa che posso pensare sarebbe scrivere ogni campione in un file e poi visualizzare il contenuto del file ogni volta che arriva un nuovo campione. Mi sembra una soluzione inefficiente, se funzionasse del tutto.
Come mi consigliate? Esistono librerie cross-platform disponibili per una cosa del genere?
Grazie.
modifica: sono disposto ad accettare suggerimenti su qualcosa di diverso piuttosto che su quanto elencato sopra.
Capisco da dove vieni, ma l'accelerazione hardware locale potrebbe essere su un dispositivo diverso interamente o potrebbe essere sullo stesso dispositivo. In questo momento, viene visualizzato tramite USB sul display. Se buttiamo fuori l'idea delle prese, il che è a posto, conosci qualche LGPL o librerie cross-platform proprietarie che aiuteranno a realizzare una cosa del genere in Qt? –
Inoltre, per favore aggiungi uno spazio o qualcosa alla tua risposta in modo da poterlo fare +1. dice che il voto è troppo vecchio per cambiare. –