Domanda

Sto lavorando su un'applicazione e ho un problema che ho appena cant sembrano trovare una soluzione per. L'applicazione è scritta in VC ++. Che cosa devo fare è di visualizzare un feed video YUV con testo su di esso.

In questo momento funziona correttamente disegnando il testo nel metodo OnPaint utilizzando GDI e il video su un overlay DirectDraw. Ho bisogno di sbarazzarsi della sovrapposizione perché causa di molti problemi. E 'abitudine lavorare su alcune schede video, Vista, 7, ecc

Non riesco a capire un modo per completare la stessa cosa in un modo più compatibile. Posso disegnare il video utilizzando DirectDraw con un buffer di schiena e copiarlo nel buffer primario bene. Il problema qui è che il testo in corso di elaborazione in GDI lampeggia a causa della quantità di volte in cui il video viene aggiornato. Mi piacerebbe davvero mantenere il codice per disegnare intatto, se possibile, il testo dal momento che funziona bene.

C'è un modo per disegnare il testo direttamente in un buffer DirectDraw o buffer di memoria o qualcosa e poi BLT al buffer di nuovo? Dovrei essere guardando un altro metodo tutti insieme? I due sistemi operativi importanti sono XP e 7. Se qualcuno ha qualche idea fammelo sapere e io li provare. Grazie.

È stato utile?

Soluzione

Prova a guardare in DirectShow e il campione Ticker su microsoft.com:

campione DirectShow Ticker

Questo esempio utilizza il renderer di missaggio video di fondere video e testo. Esso utilizza l'interfaccia IVMRMixerBitmap9 di fondere il testo sulla parte inferiore della finestra video.

DirectShow è per la costruzione di grafici di filtro per la riproduzione di audio o video stream un aggiunta di filtri diversi per i diversi effetti e manipolazioni video e campioni audio.

Altri suggerimenti

Invece di usare il rendering video di DirectShow di miscelazione, è anche possibile utilizzare il interfaccia ISampleGrabber . Il vantaggio è che si tratta di un filtro che può essere utilizzato con altri motori di rendering, come pure, per esempio quando non mostrare il video sullo schermo, ma lo streaming sulla rete o il dumping in un file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top