【问题标题】:How to get memory address of the FileDescriptor of mmap() function in Linux, for Video4Linux如何在 Linux 中获取 mmap() 函数的 FileDescriptor 的内存地址,用于 Video4Linux
【发布时间】:2015-01-09 20:38:38
【问题描述】:

下午好,

我正在尝试确定视频为 linux 的 IO_METHOD_MMAP 分配的缓冲区的物理内存位置

通过mmap函数查看,

    mmap(NULL /* start anywhere */,
                            buf.length,
                            PROT_READ | PROT_WRITE /* required */,
                            MAP_SHARED /* recommended */,
                            fd, //FileDescriptor
                            buf.m.offset);

我看到 buf.m.offset 为 0,然后将每个平面的 buf.length 值递增。

我正在寻找的是 /dev/video0 设备创建的文件描述符 (fd) 在内存中的物理地址。

这是在 Im6 上。

这样做的目的是将该物理地址传递给 Gpu,

谢谢,

【问题讨论】:

    标签: c++ linux memory yocto video4linux


    【解决方案1】:

    mmap 成功后,您可以open(例如使用fopen),然后依次读取(例如使用fgets)文本(类似管道)/proc/self/maps 文件(或也/proc/self/smaps) .

    请参阅 proc(5)this answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      相关资源
      最近更新 更多