Wenn Sie das Ergebnis von Memory_alloc()
nicht übergeben können als erstes Argument zu Ihrem mmap()
(wenn es zum Beispiel auch mmap() verwendet, was es unmöglich machen würde, diesen Speicher erneut zuzuordnen), sollten Sie wahrscheinlich eine andere Streaming-I/O-Methode aus dem gegebenen Beispiel verwenden - IO_METHOD_USERPTR
Variation. Es verwendet denselben ioctl
als IO_METHOD_MMAP zum Erfassen von Frames und sollte eine ähnliche Effizienz bieten.
Sie benötigen Treiberunterstützung vom Kameratreiber. mmap
erhält die physischen Seiten, die es abbildet, von dem Treiber, den es abbildet - in diesem Fall die Kamera. Sie können mmap nicht anweisen, einige vorab zugewiesene Seiten zu verwenden, da der zugrunde liegende Treiber angewiesen werden müsste, diese vorab zugewiesenen Seiten zu verwenden.