Skip to content

Commit 5c1f4bb

Browse files
committed
Correcting the pixel formats and getting OSDs on Rockchip closer to reality
1 parent 271b78b commit 5c1f4bb

File tree

4 files changed

+28
-18
lines changed

4 files changed

+28
-18
lines changed

src/hal/plus/rk_common.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ typedef enum {
4040
} rk_common_mirr;
4141

4242
typedef enum {
43-
RK_PIXFMT_YUV420SP, RK_PIXFMT_YUV = RK_PIXFMT_YUV420SP,
43+
RK_PIXFMT_YUV = 0x0,
44+
RK_PIXFMT_YUV420SP = RK_PIXFMT_YUV,
4445
RK_PIXFMT_YUV420SP_10BIT,
4546
RK_PIXFMT_YUV422SP,
4647
RK_PIXFMT_YUV422SP_10BIT,
@@ -60,7 +61,9 @@ typedef enum {
6061
RK_PIXFMT_YUV422_YVYU,
6162
RK_PIXFMT_YUV422_VYUY,
6263
RK_PIXFMT_YUV_END,
63-
RK_PIXFMT_RGB565, RK_PIXFMT_RGB = RK_PIXFMT_RGB565,
64+
65+
RK_PIXFMT_RGB = 0x10000,
66+
RK_PIXFMT_RGB565 = RK_PIXFMT_RGB,
6467
RK_PIXFMT_BGR565,
6568
RK_PIXFMT_RGB555,
6669
RK_PIXFMT_BGR555,
@@ -86,8 +89,11 @@ typedef enum {
8689
RK_PIXFMT_RGBA4444,
8790
RK_PIXFMT_XBGR8888,
8891
RK_PIXFMT_RGB_END,
92+
8993
RK_PIXFMT_2BPP,
90-
RK_PIXFMT_BAYER_SBGGR_8BPP, RK_PIXFMT_BAYER = RK_PIXFMT_BAYER_SBGGR_8BPP,
94+
95+
RK_PIXFMT_BAYER = 0x20000,
96+
RK_PIXFMT_BAYER_SBGGR_8BPP = RK_PIXFMT_BAYER,
9197
RK_PIXFMT_BAYER_SGBRG_8BPP,
9298
RK_PIXFMT_BAYER_SGRBG_8BPP,
9399
RK_PIXFMT_BAYER_SRGGB_8BPP,

src/hal/plus/rk_hal.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,6 @@ int rk_region_create(char handle, hal_rect rect, short opacity)
348348
region.overlay.pixFmt = RK_PIXFMT_ARGB1555;
349349
region.overlay.size.width = rect.width;
350350
region.overlay.size.height = rect.height;
351-
region.overlay.canvas = handle + 1;
352351

353352
if (rk_rgn.fnGetRegionConfig(handle, &regionCurr)) {
354353
HAL_INFO("rk_rgn", "Creating region %d...\n", handle);
@@ -398,7 +397,8 @@ void rk_region_destroy(char handle)
398397
int rk_region_setbitmap(int handle, hal_bitmap *bitmap)
399398
{
400399
rk_rgn_bmp nativeBmp = { .data = bitmap->data, .pixFmt = RK_PIXFMT_ARGB1555,
401-
.size.height = bitmap->dim.height, .size.width = bitmap->dim.width };
400+
.size.height = bitmap->dim.height,
401+
.size.width = bitmap->dim.width };
402402

403403
return rk_rgn.fnSetBitmap(handle, &nativeBmp);
404404
}

src/hal/plus/rk_rgn.h

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ typedef enum {
1313

1414
typedef enum {
1515
RK_RGN_TYPE_OVERLAY,
16-
RK_RGN_TYPE_OVERLAYEX,
1716
RK_RGN_TYPE_COVER,
1817
RK_RGN_TYPE_MOSAIC,
1918
RK_RGN_TYPE_LINE,
@@ -34,20 +33,15 @@ typedef struct {
3433
unsigned int layer;
3534
int qpProtOn;
3635
int absQualOn;
37-
int forceIpmbOn;
36+
int forceIntraOn;
3837
int quality;
39-
unsigned short colorLut[2];
38+
unsigned int colorLut[2];
39+
rk_common_dim invColorArea;
40+
unsigned int lumThresh;
41+
int lumThreshHighOn;
42+
int invColorOn;
4043
} rk_rgn_ovlc;
4144

42-
typedef struct {
43-
rk_common_pnt point;
44-
unsigned int fgAlpha;
45-
unsigned int bgAlpha;
46-
// Accepts values from 0-15
47-
unsigned int layer;
48-
unsigned short colorLut[2];
49-
} rk_rgn_ovlxc;
50-
5145
typedef struct {
5246
rk_common_rect rect;
5347
unsigned int color;
@@ -62,13 +56,21 @@ typedef struct {
6256
unsigned int layer;
6357
} rk_rgn_mosc;
6458

59+
typedef struct {
60+
unsigned int thick;
61+
unsigned int color;
62+
rk_common_pnt start;
63+
rk_common_pnt end;
64+
} rk_rgn_linc;
65+
6566
typedef struct {
6667
int show;
6768
rk_rgn_type type;
6869
union {
6970
rk_rgn_ovlc overlay;
7071
rk_rgn_covc cover;
7172
rk_rgn_mosc mosaic;
73+
rk_rgn_linc line;
7274
};
7375
} rk_rgn_chn;
7476

@@ -77,6 +79,7 @@ typedef struct {
7779
rk_common_dim size;
7880
unsigned int canvas;
7981
unsigned int colorLutNum;
82+
// Only supported with BGRA8888
8083
unsigned int colorLut[256];
8184
} rk_rgn_ovl;
8285

src/region.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,10 +353,11 @@ void *region_thread(void) {
353353
if (osds[id].updt) {
354354
char font[256];
355355
char *dirs[] = {
356+
".",
357+
"/oem/usr/share",
356358
"/usr/local/share/fonts",
357359
"/usr/share/fonts/truetype",
358360
"/usr/share/fonts",
359-
".",
360361
NULL};
361362
char **dir = dirs;
362363
while (*dir) {

0 commit comments

Comments
 (0)