VPU-SERVER 怎么使用 (视频开发)

我在linux 系统下看到了 /dev/vpu-server 还有 /dev/h265e这样的设备。
请问大家怎么使用,有没有对应的API接口?

顶一下

你可以看一下rockchip_mpp代码,它里面有用到。
另:印象中/dev/vpu-server 应该是3288板才有的,3399并没有这东西

darkise 发表于 2018-4-11 12:07
你可以看一下rockchip_mpp代码,它里面有用到。
另:印象中/dev/vpu-server 应该是3288板才有的,3399并没 …

请问 rockchip_mpp 的代码在哪里? 我购买的是rk3328
还有我用到的解码是硬件解码还是软件解码怎么区分

#ifndef MPP_DEV_H265E_REGISTER_H
#define MPP_DEV_H265E_REGISTER_H

#define H265E_PO_CONF 0x0000
#define H265E_VCPU_CUR_PC 0x0004
#define H265E_VPU_PDBG_CTRL 0x0010
#define H265E_VPU_PDBG_IDX_REG 0x0014
#define H265E_VPU_PDBG_WDATA_REG 0x0018
#define H265E_VPU_PDBG_RDATA_REG 0x001C
#define H265E_VPU_FIO_CTRL_ADDR 0x0020
#define H265E_VPU_FIO_DATA 0x0024
#define H265E_VPU_VINT_REASON_USR 0x0030
#define H265E_VPU_VINT_REASON_CLR 0x0034
#define H265E_VPU_HOST_INT_REQ 0x0038
#define H265E_VPU_VINT_CLEAR 0x003C
#define H265E_VPU_HINT_CLEAR 0x0040
#define H265E_VPU_VPU_INT_STS 0x0044
#define H265E_VPU_VINT_ENABLE 0x0048

#define H265E_CMD_REG_END 0x0200

#define H265E_VPU_VINT_REASON 0x004c
#define H265E_VPU_RESET_REQ 0x0050
#define H265E_VPU_RESET_STATUS 0x0070
#define H265E_VPU_REMAP_CTRL 0x0060
#define H265E_VPU_REMAP_VADDR 0x0064
#define H265E_VPU_REMAP_PADDR 0x0068
#define H265E_VPU_REMAP_CORE_START 0x006C
#define H265E_VPU_BUSY_STATUS 0x0070
#define H265E_COMMAND 0x0100
#define H265E_CORE_INDEX 0x0104
#define H265E_INST_INDEX 0x0108
#define H265E_ENC_SET_PARAM_OPTION 0x010C
#define H265E_RET_FW_VERSION 0x0118
#define H265E_ADDR_CODE_BASE 0x0118
#define H265E_CODE_SIZE 0x011C
#define H265E_CODE_PARAM 0x0120
#define H265E_HW_OPTION 0x0124

#define H265E_RET_SUCCESS 0x0110
#define H265E_VPU_HOST_INT_REQ 0x0038
#define H265E_SFB_OPTION 0x010C
#define H265E_RET_FAIL_REASON 0x0114
#define H265E_BS_START_ADDR 0x0120
#define H265E_COMMON_PIC_INFO 0x0120
#define H265E_BS_SIZE 0x0124
#define H265E_PIC_SIZE 0x0124
#define H265E_BS_PARAM 0x0128
#define H265E_SET_FB_NUM 0x0128
#define H265E_BS_OPTION 0x012C
#define H265E_BS_RD_PTR 0x0130
#define H265E_BS_WR_PTR 0x0134
#define H265E_ADDR_WORK_BASE 0x0138
#define H265E_WORK_SIZE 0x013c
#define H265E_WORK_PARAM 0x0140
#define H265E_ADDR_TEMP_BASE 0x0144
#define H265E_TEMP_SIZE 0x0148
#define H265E_TEMP_PARAM 0x014C
#define H265E_FBC_STRIDE 0x0154
#define H265E_ENC_SET_PARAM_ENABLE 0x015C
#define H265E_ENC_SEQ_SRC_SIZE 0x0160
#define H265E_ADDR_LUMA_BASE0 0x0160
#define H265E_ADDR_CB_BASE0 0x0164
#define H265E_ADDR_CR_BASE0 0x0168
我这个是从 firefly的内核中找到的。这是他们的H265E的编码的积存器的地址。
就是没有找打vpu_server的 接口文档

darkise 发表于 2018-4-11 12:07
你可以看一下rockchip_mpp代码,它里面有用到。
另:印象中/dev/vpu-server 应该是3288板才有的,3399并没 …

谢谢你

https://github.com/sliver-chen/mpp_linux_cpp
这是正确的路径吗

tanli 发表于 2018-5-25 13:53
谢谢你

https://github.com/sliver-chen/mpp_linux_cpp

https://github.com/HermanChen/mpp

还是这个

MPP (Media Process Platform) design (2016.10.12)

The mpp is a middleware library for Rockchip SoC’s cross platform media process.
The main purpose of mpp is to provide very high performance, high flexibility
and expansibility on multimedia (mainly video and image) process.

The design target of mpp is to connect different Rockchip hardware kernel driver
and different userspace application.

Rockchip has two sets of hardware kernel driver.

The first one is vcodec_service/vpu_service/mpp_service which is a high
performance stateless frame base hardware kernel driver. This driver supports
all available codecs that hardware can provide. This driver is used on Android/
Linux.

The second one is v4l2 driver which is developed for ChromeOS. It currently
supports H.264/H.265/vp8/vp9. This driver is used on ChomeOS/Linux.

Mpp plans to support serval userspace applications including OpenMax, FFmpeg,
gstreamer, libva.

谢谢 darkise

http://opensource.rock-chips.com/wiki_Mpp
这个才是正解

Mpp plans to support serval userspace applications including OpenMax, FFmpeg,
gstreamer, libva.

请问大家有用到过ffmpeg的吗? gstreamer 的实现我已经看到了

tanli 发表于 2018-5-25 14:31
Mpp plans to support serval userspace applications including OpenMax, FFmpeg,
gstreamer, libva.

您好,请问您实现了gstreamer解码视频的方法了吗?可以给一个Demo吗?

tanli 发表于 2018-5-25 14:31
Mpp plans to support serval userspace applications including OpenMax, FFmpeg,
gstreamer, libva.

您好,请问您实现了gstreamer解码视频的方法了吗?可以给一个Demo吗? 在线等。