chore: A fix for company release requirement

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Id24b2448a0fe1cbda19c1d1421f8ddb7c21c40dd
This commit is contained in:
Herman Chen
2025-05-08 10:45:34 +08:00
parent 38ee436830
commit 359b5c075c
9 changed files with 60 additions and 59 deletions

View File

@@ -60,7 +60,7 @@ MPP用户态的运行平台如Android以及Debian等Linux发行版
- 应用层
MPP层通过MPI对接各种中间件软件如OpenMax、ffmpeg和gstreamer或者直接对接客户的上层应用。
MPP层通过MPI对接各种中间件软件如OpenMax和gstreamer或者直接对接客户的上层应用。
## 1.3 平台支持
@@ -160,7 +160,7 @@ MppBuffer主要用于描述供硬件使用的内存块即缓存提供
![](media/Rockchip_Developer_Guide_MPP/MPP_procedure_pseudo_code_of_external_import_usage.png)
这种方式可以使得解码器使用外部的缓存可以对接OpenMax/ffmpeg/gstreamer这样的中间件也方便对接用户己有的上层代码便于实现零拷贝显示。
这种方式可以使得解码器使用外部的缓存可以对接OpenMax/gstreamer这样的中间件也方便对接用户己有的上层代码便于实现零拷贝显示。
## 2.3 码流封装MppPacket

View File

@@ -58,7 +58,7 @@ Userspace MPP layer shields the differences between different operating systems
- Application layer
MPP layer can adapt to various middleware by MPI, such as OpenMax, ffmpeg and gstreamer, or directly be called by the upper application of customers.
MPP layer can adapt to various middleware by MPI, such as OpenMax and gstreamer, or directly be called by the upper application of customers.
# 1.3 Supported platform
@@ -150,7 +150,7 @@ The procedure pseudo code is shown as follows:
![](media/Rockchip_Developer_Guide_MPP/MPP_procedure_pseudo_code_of_external_import_usage_EN.png)
This procedure can enable decoder to use external buffer, adapt to middleware such as OpenMax/ffmpeg/ gstreamer, easy to adapt to user upper application. Its also easy to implement zero-copy display.
This procedure can enable decoder to use external buffer, adapt to middleware such as OpenMax / gstreamer, easy to adapt to user upper application. Its also easy to implement zero-copy display.
## 2.3 Bitstream structureMppPacket

View File

@@ -18,7 +18,7 @@ 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,
Mpp plans to support serval userspace applications including OpenMax,
gstreamer, libva.
@@ -45,7 +45,7 @@ System Diagram
+---------------------------------------+
| |
| ffmpeg / OpenMax / gstreamer / libva |
| OpenMax / gstreamer / libva |
| |
+---------------------------------------+

View File

@@ -2363,7 +2363,7 @@ static RK_S32 mpp_av1_metadata_scalability(AV1Context *ctx, BitReadCtx_t *gb,
return 0;
}
static RK_S32 mpp_av1_get_dolby_rpu(AV1Context *ctx, BitReadCtx_t *gb)
static RK_S32 mpp_av1_get_dlby_rpu(AV1Context *ctx, BitReadCtx_t *gb)
{
MppFrameHdrDynamicMeta *hdr_dynamic_meta = ctx->hdr_dynamic_meta;
RK_U32 emdf_payload_size = 0;
@@ -2419,7 +2419,7 @@ static RK_S32 mpp_av1_get_dolby_rpu(AV1Context *ctx, BitReadCtx_t *gb)
hdr_dynamic_meta->size = mpp_writer_bytes(&bit_ctx);
hdr_dynamic_meta->hdr_fmt = DOLBY;
av1d_dbg(AV1D_DBG_STRMIN, "dolby rpu size %d -> %d\n",
av1d_dbg(AV1D_DBG_STRMIN, "dlby rpu size %d -> %d\n",
emdf_payload_size, hdr_dynamic_meta->size);
ctx->hdr_dynamic_meta = hdr_dynamic_meta;
@@ -2502,12 +2502,12 @@ static RK_S32 mpp_av1_metadata_itut_t35(AV1Context *ctx, BitReadCtx_t *gb,
current->itu_t_t35_terminal_provider_code);
switch (current->itu_t_t35_terminal_provider_code) {
case 0x3B: {/* dolby provider_code is 0x3b*/
case 0x3B: {/* dlby provider_code is 0x3b*/
READ_BITS_LONG(gb, 32, &current->itu_t_t35_terminal_provider_oriented_code);
av1d_dbg(AV1D_DBG_STRMIN, "itu_t_t35_terminal_provider_oriented_code 0x%x\n",
current->itu_t_t35_terminal_provider_oriented_code);
if (current->itu_t_t35_terminal_provider_oriented_code == 0x800)
mpp_av1_get_dolby_rpu(ctx, gb);
mpp_av1_get_dlby_rpu(ctx, gb);
} break;
case 0x3C: {/* smpte2094_40 provider_code is 0x3c*/
const RK_U16 smpte2094_40_provider_oriented_code = 0x0001;

View File

@@ -2001,7 +2001,8 @@ void hal_vp9d_update_counts(void *buf, void *dxva)
for (n = 0; n < 6; n++) {
for (k = 0; k < 6; k++) {
s->counts.eob[j][m][i][n][k][0] = eob_coef[1];
s->counts.eob[j][m][i][n][k][1] = eob_coef[0] - eob_coef[1]; //ffmpeg need do branch_ct[UNCONSTRAINED_NODES][2] = { neob, eob_counts[i][j][k][l] - neob },
// ff need do branch_ct[UNCONSTRAINED_NODES][2] = { neob, eob_counts[i][j][k][l] - neob },
s->counts.eob[j][m][i][n][k][1] = eob_coef[0] - eob_coef[1];
s->counts.coef[j][m][i][n][k][0] = eob_coef[2];
s->counts.coef[j][m][i][n][k][1] = eob_coef[3];
s->counts.coef[j][m][i][n][k][2] = eob_coef[4];

View File

@@ -60,21 +60,21 @@ static VepuFormatCfg vepu_yuv_cfg[MPP_FMT_YUV_BUTT] = {
};
static VepuFormatCfg vepu_rgb_cfg[MPP_FMT_RGB_BUTT - MPP_FRAME_FMT_RGB] = {
//MPP_FMT_RGB565, ffmpeg: rgb565be, bin(rrrr,rggg,gggb,bbbb) mem MSB-->LSB(gggb,bbbb,rrrr,rggg)
//MPP_FMT_RGB565, ff: rgb565be, bin(rrrr,rggg,gggb,bbbb) mem MSB-->LSB(gggb,bbbb,rrrr,rggg)
{ .format = VEPU_FMT_RGB565, .r_mask = 15, .g_mask = 10, .b_mask = 4, .swap_8_in = 1, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_BGR565, ffmpeg: bgr565be, bin(bbbb,bggg,gggr,rrrr) mem MSB-->LSB(gggr,rrrr,bbbb,bggg)
//MPP_FMT_BGR565, ff: bgr565be, bin(bbbb,bggg,gggr,rrrr) mem MSB-->LSB(gggr,rrrr,bbbb,bggg)
{ .format = VEPU_FMT_RGB565, .r_mask = 4, .g_mask = 10, .b_mask = 15, .swap_8_in = 1, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_RGB555, ffmpeg: rgb555be, bin(0rrr,rrgg,gggb,bbbb) mem MSB-->LSB(gggb,bbbb,0rrr,rrgg)
//MPP_FMT_RGB555, ff: rgb555be, bin(0rrr,rrgg,gggb,bbbb) mem MSB-->LSB(gggb,bbbb,0rrr,rrgg)
{ .format = VEPU_FMT_RGB555, .r_mask = 14, .g_mask = 9, .b_mask = 4, .swap_8_in = 1, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_BGR555, ffmpeg: bgr555be, bin(0bbb,bbgg,gggr,rrrr) mem MSB-->LSB(gggr,rrrr,0bbb,bbgg)
//MPP_FMT_BGR555, ff: bgr555be, bin(0bbb,bbgg,gggr,rrrr) mem MSB-->LSB(gggr,rrrr,0bbb,bbgg)
{ .format = VEPU_FMT_RGB555, .r_mask = 4, .g_mask = 9, .b_mask = 14, .swap_8_in = 1, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_RGB444, ffmpeg: rgb444be, bin(0000,rrrr,gggg,bbbb)
//MPP_FMT_RGB444, ff: rgb444be, bin(0000,rrrr,gggg,bbbb)
{ .format = VEPU_FMT_RGB444, .r_mask = 11, .g_mask = 7, .b_mask = 3, .swap_8_in = 1, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_BGR444, ffmpeg: bgr444be, bin(0000,bbbb,gggg,rrrr)
//MPP_FMT_BGR444, ff: bgr444be, bin(0000,bbbb,gggg,rrrr)
{ .format = VEPU_FMT_RGB444, .r_mask = 3, .g_mask = 7, .b_mask = 11, .swap_8_in = 1, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_RGB888, ffmpeg: rgb24, bin(rrrr,rrrr,gggg,gggg,bbbb,bbbb)
//MPP_FMT_RGB888, ff: rgb24, bin(rrrr,rrrr,gggg,gggg,bbbb,bbbb)
{ .format = VEPU_FMT_BUTT, .r_mask = 0, .g_mask = 0, .b_mask = 0, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 0, },
//MPP_FMT_BGR888, ffmpeg: bgr24, bin(bbbb,bbbb,gggg,gggg,rrrr,rrrr)
//MPP_FMT_BGR888, ff: bgr24, bin(bbbb,bbbb,gggg,gggg,rrrr,rrrr)
{ .format = VEPU_FMT_BUTT, .r_mask = 0, .g_mask = 0, .b_mask = 0, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 0, },
//MPP_FMT_RGB101010, bin(00rr,rrrr,rrrr,gggg,gggg,ggbb,bbbb,bbbb)
{ .format = VEPU_FMT_RGB101010, .r_mask = 29, .g_mask = 19, .b_mask = 9, .swap_8_in = 1, .swap_16_in = 1, .swap_32_in = 1, },
@@ -84,29 +84,29 @@ static VepuFormatCfg vepu_rgb_cfg[MPP_FMT_RGB_BUTT - MPP_FRAME_FMT_RGB] = {
{ .format = VEPU_FMT_RGB888, .r_mask = 15, .g_mask = 23, .b_mask = 31, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 1, },
//MPP_FMT_ABGR8888, ffmepg: rgba, bin(aaaa,aaaa,bbbb,bbbb,gggg,gggg,rrrr,rrrr)
{ .format = VEPU_FMT_RGB888, .r_mask = 31, .g_mask = 23, .b_mask = 15, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 1, },
//MPP_FMT_BGRA8888, ffmpeg: bgra, bin(bbbb,bbbb,gggg,gggg,rrrr,rrrr,aaaa,aaaa)
//MPP_FMT_BGRA8888, ff: bgra, bin(bbbb,bbbb,gggg,gggg,rrrr,rrrr,aaaa,aaaa)
{ .format = VEPU_FMT_RGB888, .r_mask = 23, .g_mask = 15, .b_mask = 7, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 1, },
//MPP_FMT_RGBA8888, ffmpeg: rgba, bin(rrrr,rrrr,gggg,gggg,bbbb,bbbb,aaaa,aaaa)
//MPP_FMT_RGBA8888, ff: rgba, bin(rrrr,rrrr,gggg,gggg,bbbb,bbbb,aaaa,aaaa)
{ .format = VEPU_FMT_RGB888, .r_mask = 7, .g_mask = 15, .b_mask = 23, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 1, },
};
static VepuFormatCfg vepu_rgb_le_cfg[MPP_FMT_RGB_BUTT - MPP_FRAME_FMT_RGB] = {
//for little endian format
//MPP_FMT_RGB565LE, ffmpeg: rgb565le, bin(gggb,bbbb,rrrr,rggg)
//MPP_FMT_RGB565LE, ff: rgb565le, bin(gggb,bbbb,rrrr,rggg)
{ .format = VEPU_FMT_RGB565, .r_mask = 15, .g_mask = 10, .b_mask = 4, .swap_8_in = 0, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_BGR565LE, ffmpeg: bgr565le, bin(gggr,rrrr,bbbb,bggg)
//MPP_FMT_BGR565LE, ff: bgr565le, bin(gggr,rrrr,bbbb,bggg)
{ .format = VEPU_FMT_RGB565, .r_mask = 4, .g_mask = 10, .b_mask = 15, .swap_8_in = 0, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_RGB555LE, ffmpeg: rgb555le, bin(gggb,bbbb,0rrr,rrgg)
//MPP_FMT_RGB555LE, ff: rgb555le, bin(gggb,bbbb,0rrr,rrgg)
{ .format = VEPU_FMT_RGB555, .r_mask = 14, .g_mask = 9, .b_mask = 4, .swap_8_in = 0, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_BGR555LE, ffmpeg: bgr555le, bin(gggr,rrrr,0bbb,bbgg)
//MPP_FMT_BGR555LE, ff: bgr555le, bin(gggr,rrrr,0bbb,bbgg)
{ .format = VEPU_FMT_RGB555, .r_mask = 4, .g_mask = 9, .b_mask = 14, .swap_8_in = 0, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_RGB444LE, ffmpeg: rgb444le, bin(gggg,bbbb,0000,rrrr)
//MPP_FMT_RGB444LE, ff: rgb444le, bin(gggg,bbbb,0000,rrrr)
{ .format = VEPU_FMT_RGB444, .r_mask = 11, .g_mask = 7, .b_mask = 3, .swap_8_in = 0, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_BGR444LE, ffmpeg: bgr444le, bin(gggg,rrrr,0000,bbbb)
//MPP_FMT_BGR444LE, ff: bgr444le, bin(gggg,rrrr,0000,bbbb)
{ .format = VEPU_FMT_RGB444, .r_mask = 3, .g_mask = 7, .b_mask = 11, .swap_8_in = 0, .swap_16_in = 1, .swap_32_in = 1, },
//MPP_FMT_RGB888, ffmpeg: rgb24, bin(rrrr,rrrr,gggg,gggg,bbbb,bbbb)
//MPP_FMT_RGB888, ff: rgb24, bin(rrrr,rrrr,gggg,gggg,bbbb,bbbb)
{ .format = VEPU_FMT_BUTT, .r_mask = 0, .g_mask = 0, .b_mask = 0, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 0, },
//MPP_FMT_BGR888, ffmpeg: bgr24, bin(bbbb,bbbb,gggg,gggg,rrrr,rrrr)
//MPP_FMT_BGR888, ff: bgr24, bin(bbbb,bbbb,gggg,gggg,rrrr,rrrr)
{ .format = VEPU_FMT_BUTT, .r_mask = 0, .g_mask = 0, .b_mask = 0, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 0, },
//MPP_FMT_RGB101010, bin(00rr,rrrr,rrrr,gggg,gggg,ggbb,bbbb,bbbb)
@@ -118,9 +118,9 @@ static VepuFormatCfg vepu_rgb_le_cfg[MPP_FMT_RGB_BUTT - MPP_FRAME_FMT_RGB] = {
{ .format = VEPU_FMT_RGB888, .r_mask = 23, .g_mask = 15, .b_mask = 7, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 1, },
//MPP_FMT_ABGR8888LE, ffmepg: rgba, bin(aaaa,aaaa,bbbb,bbbb,gggg,gggg,rrrr,rrrr)
{ .format = VEPU_FMT_RGB888, .r_mask = 7, .g_mask = 15, .b_mask = 23, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 1, },
//MPP_FMT_BGRA8888LE, ffmpeg: bgra, bin(bbbb,bbbb,gggg,gggg,rrrr,rrrr,aaaa,aaaa)
//MPP_FMT_BGRA8888LE, ff: bgra, bin(bbbb,bbbb,gggg,gggg,rrrr,rrrr,aaaa,aaaa)
{ .format = VEPU_FMT_RGB888, .r_mask = 15, .g_mask = 23, .b_mask = 31, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 1, },
//MPP_FMT_RGBA8888LE, ffmpeg: rgba, bin(rrrr,rrrr,gggg,gggg,bbbb,bbbb,aaaa,aaaa)
//MPP_FMT_RGBA8888LE, ff: rgba, bin(rrrr,rrrr,gggg,gggg,bbbb,bbbb,aaaa,aaaa)
{ .format = VEPU_FMT_RGB888, .r_mask = 31, .g_mask = 23, .b_mask = 15, .swap_8_in = 0, .swap_16_in = 0, .swap_32_in = 1, },
};

View File

@@ -32,7 +32,7 @@
#include "hal_jpegd_common.h"
static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
//ffmpeg: rgb565be, bin(rrrr,rggg, gggb,bbbb) mem MSB-->LSB(gggb,bbbb, rrrr,rggg)
// ff: rgb565be, bin(rrrr,rggg, gggb,bbbb) mem MSB-->LSB(gggb,bbbb, rrrr,rggg)
{
.fmt = MPP_FMT_RGB565, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 1, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 1,
@@ -40,7 +40,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 2, .g_dither = 3, .b_dither = 2,
.r_mask = 0xf800f800, .g_mask = 0x07e007e0, .b_mask = 0x001f001f
},
//ffmpeg: bgr565be, bin(bbbb,bggg, gggr,rrrr) mem MSB-->LSB(gggr,rrrr, bbbb,bggg)
// ff: bgr565be, bin(bbbb,bggg, gggr,rrrr) mem MSB-->LSB(gggr,rrrr, bbbb,bggg)
{
.fmt = MPP_FMT_BGR565, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 1, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 1,
@@ -48,7 +48,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 2, .g_dither = 3, .b_dither = 2,
.r_mask = 0x001f001f, .g_mask = 0x07e007e0, .b_mask = 0xf800f800
},
//ffmpeg: rgb555be, bin(0rrr,rrgg, gggb,bbbb) mem MSB-->LSB(gggb,bbbb, 0rrr,rrgg)
// ff: rgb555be, bin(0rrr,rrgg, gggb,bbbb) mem MSB-->LSB(gggb,bbbb, 0rrr,rrgg)
{
.fmt = MPP_FMT_RGB555, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 1, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 1,
@@ -56,7 +56,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 2, .g_dither = 2, .b_dither = 2,
.r_mask = 0x7c007c00, .g_mask = 0x03e003e0, .b_mask = 0x001f001f
},
//ffmpeg: bgr555be, bin(0bbb,bbgg, gggr,rrrr) mem MSB-->LSB(gggr,rrrr, 0bbb,bbgg)
// ff: bgr555be, bin(0bbb,bbgg, gggr,rrrr) mem MSB-->LSB(gggr,rrrr, 0bbb,bbgg)
{
.fmt = MPP_FMT_BGR555, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 1, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 1,
@@ -64,7 +64,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 2, .g_dither = 2, .b_dither = 2,
.r_mask = 0x001f001f, .g_mask = 0x03e003e0, .b_mask = 0x7c007c00
},
//ffmpeg: rgb444be, bin(0000,rrrr, gggg,bbbb) mem MSB-->LSB(gggg,bbbb, 0000,rrrr)
// ff: rgb444be, bin(0000,rrrr, gggg,bbbb) mem MSB-->LSB(gggg,bbbb, 0000,rrrr)
{
.fmt = MPP_FMT_RGB444, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 0, .swap_16 = 1, .swap_32 = 1, .rgb_in_32 = 1,
@@ -72,7 +72,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 1, .g_dither = 1, .b_dither = 1,
.r_mask = 0x000f000f, .g_mask = 0xf000f000, .b_mask = 0x0f000f00
},
//ffmpeg: bgr444be, bin(0000,bbbb, gggg,rrrr) mem MSB-->LSB(gggg,rrrr, 0000,bbbb)
// ff: bgr444be, bin(0000,bbbb, gggg,rrrr) mem MSB-->LSB(gggg,rrrr, 0000,bbbb)
{
.fmt = MPP_FMT_BGR444, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 0, .swap_16 = 1, .swap_32 = 1, .rgb_in_32 = 1,
@@ -80,7 +80,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 1, .g_dither = 1, .b_dither = 1,
.g_mask = 0xf000f000, .b_mask = 0x000f000f
},
//ffmpeg: argb, bin(aaaa,aaaa, rrrr,rrrr, gggg,gggg, bbbb,bbbb)
// ff: argb, bin(aaaa,aaaa, rrrr,rrrr, gggg,gggg, bbbb,bbbb)
{
.fmt = MPP_FMT_ARGB8888, .pp_out_fmt = PP_OUT_FORMAT_ARGB,
.out_endian = 0, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 0,
@@ -90,7 +90,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.g_mask = 0x00ff0000 | 0xff,
.b_mask = 0xff000000 | 0xff
},
//ffmepg: rgba, bin(aaaa,aaaa, bbbb,bbbb, gggg,gggg, rrrr,rrrr)
// ff: rgba, bin(aaaa,aaaa, bbbb,bbbb, gggg,gggg, rrrr,rrrr)
{
.fmt = MPP_FMT_ABGR8888, .pp_out_fmt = PP_OUT_FORMAT_ARGB,
.out_endian = 0, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 0,
@@ -100,7 +100,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.g_mask = 0x00ff0000 | 0xff,
.b_mask = 0x0000ff00 | 0xff
},
//ffmpeg: bgra, bin(bbbb,bbbb, gggg,gggg, rrrr,rrrr, aaaa,aaaa)
// ff: bgra, bin(bbbb,bbbb, gggg,gggg, rrrr,rrrr, aaaa,aaaa)
{
.fmt = MPP_FMT_BGRA8888, .pp_out_fmt = PP_OUT_FORMAT_ARGB,
.out_endian = 0, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 0,
@@ -110,7 +110,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
.g_mask = 0x0000ff00 | (0xff << 24),
.b_mask = 0x000000ff | (0xff << 24)
},
//ffmpeg: rgba, bin(rrrr,rrrr, gggg,gggg, bbbb,bbbb, aaaa,aaaa)
// ff: rgba, bin(rrrr,rrrr, gggg,gggg, bbbb,bbbb, aaaa,aaaa)
{
.fmt = MPP_FMT_RGBA8888, .pp_out_fmt = PP_OUT_FORMAT_ARGB,
.out_endian = 0, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 0,
@@ -123,7 +123,7 @@ static PpRgbCfg pp_rgb_cfgs[PP_RGB_CFG_LENTH] = {
};
static PpRgbCfg pp_rgb_le_cfgs[PP_RGB_CFG_LENTH] = {
//ffmpeg: rgb565le, bin(gggb,bbbb, rrrr,rggg) mem MSB-->LSB(rrrr,rggg, gggb,bbbb)
// ff: rgb565le, bin(gggb,bbbb, rrrr,rggg) mem MSB-->LSB(rrrr,rggg, gggb,bbbb)
{
.fmt = MPP_FMT_RGB565 | MPP_FRAME_FMT_LE_MASK, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 0, .swap_16 = 1, .swap_32 = 1, .rgb_in_32 = 1,
@@ -131,7 +131,7 @@ static PpRgbCfg pp_rgb_le_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 2, .g_dither = 3, .b_dither = 2,
.r_mask = 0xf800f800, .g_mask = 0x07e007e0, .b_mask = 0x001f001f
},
//ffmpeg: bgr565le, bin(gggr,rrrr, bbbb,bggg) mem MSB-->LSB(bbbb,bggg, gggr,rrrr)
// ff: bgr565le, bin(gggr,rrrr, bbbb,bggg) mem MSB-->LSB(bbbb,bggg, gggr,rrrr)
{
.fmt = MPP_FMT_BGR565 | MPP_FRAME_FMT_LE_MASK, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 0, .swap_16 = 1, .swap_32 = 1, .rgb_in_32 = 1,
@@ -139,7 +139,7 @@ static PpRgbCfg pp_rgb_le_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 2, .g_dither = 3, .b_dither = 2,
.r_mask = 0x001f001f, .g_mask = 0x07e007e0, .b_mask = 0xf800f800
},
//ffmpeg: rgb555le, bin(gggb,bbbb, 0rrr,rrgg) mem MSB-->LSB(0rrr,rrgg, gggb,bbbb)
// ff: rgb555le, bin(gggb,bbbb, 0rrr,rrgg) mem MSB-->LSB(0rrr,rrgg, gggb,bbbb)
{
.fmt = MPP_FMT_RGB555 | MPP_FRAME_FMT_LE_MASK, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 0, .swap_16 = 1, .swap_32 = 1, .rgb_in_32 = 1,
@@ -147,7 +147,7 @@ static PpRgbCfg pp_rgb_le_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 2, .g_dither = 2, .b_dither = 2,
.r_mask = 0x7c007c00, .g_mask = 0x03e003e0, .b_mask = 0x001f001f
},
//ffmpeg: bgr555le, bin(gggr,rrrr, 0bbb,bbgg) mem MSB-->LSB(0bbb,bbgg, gggr,rrrr)
// ff: bgr555le, bin(gggr,rrrr, 0bbb,bbgg) mem MSB-->LSB(0bbb,bbgg, gggr,rrrr)
{
.fmt = MPP_FMT_BGR555 | MPP_FRAME_FMT_LE_MASK, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 0, .swap_16 = 1, .swap_32 = 1, .rgb_in_32 = 1,
@@ -155,7 +155,7 @@ static PpRgbCfg pp_rgb_le_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 2, .g_dither = 2, .b_dither = 2,
.r_mask = 0x001f001f, .g_mask = 0x03e003e0, .b_mask = 0x7c007c00
},
//ffmpeg: rgb444le, bin(gggg,bbbb, 0000,rrrr) mem MSB-->LSB(0000,rrrr, gggg,bbbb)
// ff: rgb444le, bin(gggg,bbbb, 0000,rrrr) mem MSB-->LSB(0000,rrrr, gggg,bbbb)
{
.fmt = MPP_FMT_RGB444 | MPP_FRAME_FMT_LE_MASK, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 1, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 1,
@@ -163,7 +163,7 @@ static PpRgbCfg pp_rgb_le_cfgs[PP_RGB_CFG_LENTH] = {
.r_dither = 1, .g_dither = 1, .b_dither = 1,
.r_mask = 0x000f000f, .g_mask = 0xf000f000, .b_mask = 0x0f000f00
},
//ffmpeg: bgr444le, bin(gggg,rrrr, 0000,bbbb) mem MSB-->LSB(0000,bbbb, gggg,rrrr)
// ff: bgr444le, bin(gggg,rrrr, 0000,bbbb) mem MSB-->LSB(0000,bbbb, gggg,rrrr)
{
.fmt = MPP_FMT_BGR444 | MPP_FRAME_FMT_LE_MASK, .pp_out_fmt = PP_OUT_FORMAT_RGB565,
.out_endian = 1, .swap_16 = 0, .swap_32 = 1, .rgb_in_32 = 1,

View File

@@ -36,8 +36,8 @@ NOTE:
3. Mpp support all format hardware can support except VC1.
4. you can get demo about mpp applied to linux and android.
Liunx : https://github.com/WainDing/mpp_linux_cpp
https://github.com/MUZLATAN/ffmpeg_rtsp_mpp
https://github.com/nyanmisaka/ffmpeg-rockchip
https://github.com/MUZLATAN
https://github.com/nyanmisaka
Android : https://github.com/c-xh/RKMediaCodecDemo
5. offical github: https://github.com/rockchip-linux/mpp
develop github: https://github.com/HermanChen/mpp
@@ -190,7 +190,7 @@ Here is the mpp implement overall framework:
+---------------------------------------+
| |
| ffmpeg / OpenMax / gstreamer / libva |
| OpenMax / gstreamer / libva |
| |
+---------------------------------------+
@@ -232,7 +232,7 @@ Here is the Media Process Interface hierarchical structure
MpiPacket and MpiFrame is the stream I/O data structure.
And MpiBuffer encapsulates different buffer implement like Linux's dma-buf and
Android's ion.
This part is learned from ffmpeg.
This part is learned from ff.
+-------------------+
| |

View File

@@ -658,7 +658,7 @@ static void fill_MPP_FMT_YUV420SP(RK_U8 *buf, RK_U32 width, RK_U32 height,
RK_U32 hor_stride, RK_U32 ver_stride,
RK_U32 frame_count)
{
// MPP_FMT_YUV420SP = ffmpeg: nv12
// MPP_FMT_YUV420SP = ff: nv12
// https://www.fourcc.org/pixel-format/yuv-nv12/
RK_U8 *p = buf;
RK_U32 x, y;
@@ -682,7 +682,7 @@ static void fill_MPP_FMT_YUV422SP(RK_U8 *buf, RK_U32 width, RK_U32 height,
RK_U32 hor_stride, RK_U32 ver_stride,
RK_U32 frame_count)
{
// MPP_FMT_YUV422SP = ffmpeg: nv16
// MPP_FMT_YUV422SP = ff: nv16
// not valid in www.fourcc.org
RK_U8 *p = buf;
RK_U32 x, y;
@@ -744,7 +744,7 @@ static void get_rgb_color(RK_U32 *R, RK_U32 *G, RK_U32 *B, RK_S32 x, RK_S32 y, R
static void fill_MPP_FMT_RGB565(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 be)
{
// MPP_FMT_RGB565 = ffmpeg: rgb565be
// MPP_FMT_RGB565 = ff: rgb565be
// 16 bit pixel MSB --------> LSB
// (rrrr,rggg,gggb,bbbb)
// big endian | byte 0 | byte 1 |
@@ -763,7 +763,7 @@ static void fill_MPP_FMT_RGB565(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 b
static void fill_MPP_FMT_BGR565(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 be)
{
// MPP_FMT_BGR565 = ffmpeg: bgr565be
// MPP_FMT_BGR565 = ff: bgr565be
// 16 bit pixel MSB --------> LSB
// (bbbb,bggg,gggr,rrrr)
// big endian | byte 0 | byte 1 |
@@ -782,7 +782,7 @@ static void fill_MPP_FMT_BGR565(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 b
static void fill_MPP_FMT_RGB555(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 be)
{
// MPP_FMT_RGB555 = ffmpeg: rgb555be
// MPP_FMT_RGB555 = ff: rgb555be
// 16 bit pixel MSB --------> LSB
// (0rrr,rrgg,gggb,bbbb)
// big endian | byte 0 | byte 1 |
@@ -801,7 +801,7 @@ static void fill_MPP_FMT_RGB555(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 b
static void fill_MPP_FMT_BGR555(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 be)
{
// MPP_FMT_BGR555 = ffmpeg: bgr555be
// MPP_FMT_BGR555 = ff: bgr555be
// 16 bit pixel MSB --------> LSB
// (0bbb,bbgg,gggr,rrrr)
// big endian | byte 0 | byte 1 |
@@ -820,7 +820,7 @@ static void fill_MPP_FMT_BGR555(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 b
static void fill_MPP_FMT_RGB444(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 be)
{
// MPP_FMT_RGB444 = ffmpeg: rgb444be
// MPP_FMT_RGB444 = ff: rgb444be
// 16 bit pixel MSB --------> LSB
// (0000,rrrr,gggg,bbbb)
// big endian | byte 0 | byte 1 |
@@ -839,7 +839,7 @@ static void fill_MPP_FMT_RGB444(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 b
static void fill_MPP_FMT_BGR444(RK_U8 *p, RK_U32 R, RK_U32 G, RK_U32 B, RK_U32 be)
{
// MPP_FMT_BGR444 = ffmpeg: bgr444be
// MPP_FMT_BGR444 = ff: bgr444be
// 16 bit pixel MSB --------> LSB
// (0000,bbbb,gggg,rrrr)
// big endian | byte 0 | byte 1 |