Skip to content

Commit

Permalink
media: hantro: Move VP8 common code
Browse files Browse the repository at this point in the history
In order to introduce support for RK3399 VP8 decoding,
move some common VP8 code. This will be reused by
the RK3399 implementation, reducing code duplication.

Signed-off-by: Ezequiel Garcia <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
  • Loading branch information
ezequielgarcia authored and mchehab committed Jul 25, 2019
1 parent 932a931 commit 613326d
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 17 deletions.
17 changes: 0 additions & 17 deletions drivers/staging/media/hantro/hantro_g1_vp8_dec.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
#include "hantro.h"
#include "hantro_g1_regs.h"

#define DEC_8190_ALIGN_MASK 0x07U

/* DCT partition base address regs */
static const struct hantro_reg vp8_dec_dct_base[8] = {
{ G1_REG_ADDR_STR, 0, 0xffffffff },
Expand Down Expand Up @@ -131,21 +129,6 @@ static const struct hantro_reg vp8_dec_pred_bc_tap[8][4] = {
},
};

/*
* filter taps taken to 7-bit precision,
* reference RFC6386#Page-16, filters[8][6]
*/
static const u32 vp8_dec_mc_filter[8][6] = {
{ 0, 0, 128, 0, 0, 0 },
{ 0, -6, 123, 12, -1, 0 },
{ 2, -11, 108, 36, -8, 1 },
{ 0, -9, 93, 50, -6, 0 },
{ 3, -16, 77, 77, -16, 3 },
{ 0, -6, 50, 93, -9, 0 },
{ 1, -8, 36, 108, -11, 2 },
{ 0, -1, 12, 123, -6, 0 }
};

/*
* Set loop filters
*/
Expand Down
4 changes: 4 additions & 0 deletions drivers/staging/media/hantro/hantro_hw.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
#include <media/vp8-ctrls.h>
#include <media/videobuf2-core.h>

#define DEC_8190_ALIGN_MASK 0x07U

struct hantro_dev;
struct hantro_ctx;
struct hantro_buf;
Expand Down Expand Up @@ -93,6 +95,8 @@ extern const struct hantro_variant rk3399_vpu_variant;
extern const struct hantro_variant rk3328_vpu_variant;
extern const struct hantro_variant rk3288_vpu_variant;

extern const u32 vp8_dec_mc_filter[8][6];

void hantro_watchdog(struct work_struct *work);
void hantro_run(struct hantro_ctx *ctx);
void hantro_irq_done(struct hantro_dev *vpu, unsigned int bytesused,
Expand Down
15 changes: 15 additions & 0 deletions drivers/staging/media/hantro/hantro_vp8.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,21 @@ struct vp8_prob_tbl_packed {
u8 padding3[96];
};

/*
* filter taps taken to 7-bit precision,
* reference RFC6386#Page-16, filters[8][6]
*/
const u32 vp8_dec_mc_filter[8][6] = {
{ 0, 0, 128, 0, 0, 0 },
{ 0, -6, 123, 12, -1, 0 },
{ 2, -11, 108, 36, -8, 1 },
{ 0, -9, 93, 50, -6, 0 },
{ 3, -16, 77, 77, -16, 3 },
{ 0, -6, 50, 93, -9, 0 },
{ 1, -8, 36, 108, -11, 2 },
{ 0, -1, 12, 123, -6, 0 }
};

void hantro_vp8_prob_update(struct hantro_ctx *ctx,
const struct v4l2_ctrl_vp8_frame_header *hdr)
{
Expand Down

0 comments on commit 613326d

Please sign in to comment.