summaryrefslogtreecommitdiff
authorYuxi Sun <yuxi.sun@amlogic.com>2017-10-23 07:55:13 (GMT)
committer Simon Zheng <simon.zheng@amlogic.com>2017-11-07 08:51:04 (GMT)
commit8bfea47c923d98ece3a3f5e79f731461370f43ed (patch)
tree6599985a7899ec8a32aeee4950c8fdcb6df8e403
parentd73e8402e5a0633b59f472d5f3e641a433c5b127 (diff)
downloadmedia_modules-8bfea47c923d98ece3a3f5e79f731461370f43ed.zip
media_modules-8bfea47c923d98ece3a3f5e79f731461370f43ed.tar.gz
media_modules-8bfea47c923d98ece3a3f5e79f731461370f43ed.tar.bz2
PD#153170: encoder: Add macro to control the enable of GE2D for crop and scale
Change-Id: Ie49442a6ad5eb58fd8e8445db8c5d32843fbdbe3 Signed-off-by: Yuxi Sun <yuxi.sun@amlogic.com>
Diffstat
-rw-r--r--Media.mk3
-rw-r--r--drivers/frame_sink/encoder/h264/encoder.c17
-rw-r--r--drivers/frame_sink/encoder/h264/encoder.h7
3 files changed, 16 insertions, 11 deletions
diff --git a/Media.mk b/Media.mk
index a483ff0..27a1283 100644
--- a/Media.mk
+++ b/Media.mk
@@ -15,7 +15,8 @@ CONFIGS := CONFIG_AMLOGIC_MEDIA_VDEC_MPEG12=m \
CONFIG_AMLOGIC_MEDIA_VDEC_REAL=m \
CONFIG_AMLOGIC_MEDIA_VDEC_AVS=m \
CONFIG_AMLOGIC_MEDIA_VENC_H264=m \
- CONFIG_AMLOGIC_MEDIA_VECN_H265=m
+ CONFIG_AMLOGIC_MEDIA_VECN_H265=m \
+ CONFIG_AMLOGIC_MEDIA_GE2D=y
define copy-media-modules
$(foreach m, $(shell find $(strip $(1)) -name "*.ko"),\
diff --git a/drivers/frame_sink/encoder/h264/encoder.c b/drivers/frame_sink/encoder/h264/encoder.c
index fe28b31..f3f1041 100644
--- a/drivers/frame_sink/encoder/h264/encoder.c
+++ b/drivers/frame_sink/encoder/h264/encoder.c
@@ -1022,7 +1022,7 @@ static void mfdin_basic(u32 input, u8 iformat,
(1 << 18) | (0 << 21));
}
-#ifdef CONFIG_AM_GE2D
+#ifdef CONFIG_AMLOGIC_MEDIA_GE2D
static int scale_frame(struct encode_wq_s *wq,
struct encode_request_s *request,
struct config_para_ex_s *ge2d_config,
@@ -1197,7 +1197,7 @@ static s32 set_input_format(struct encode_wq_s *wq,
picsize_y = wq->pic.encoder_height;
}
if (request->scale_enable) {
-#ifdef CONFIG_AM_GE2D
+#ifdef CONFIG_AMLOGIC_MEDIA_GE2D
struct config_para_ex_s ge2d_config;
memset(&ge2d_config, 0,
sizeof(struct config_para_ex_s));
@@ -1325,7 +1325,7 @@ static s32 set_input_format(struct encode_wq_s *wq,
} else if (request->type == CANVAS_BUFF) {
r2y_en = 0;
if (request->scale_enable) {
-#ifdef CONFIG_AM_GE2D
+#ifdef CONFIG_AMLOGIC_MEDIA_GE2D
struct config_para_ex_s ge2d_config;
memset(&ge2d_config, 0,
sizeof(struct config_para_ex_s));
@@ -1373,7 +1373,9 @@ static s32 set_input_format(struct encode_wq_s *wq,
} else
ret = -1;
}
-
+#ifdef CONFIG_AMLOGIC_MEDIA_GE2D
+MFDIN:
+#endif
if (ret == 0)
mfdin_basic(input, iformat, oformat,
picsize_x, picsize_y, r2y_en,
@@ -3265,7 +3267,8 @@ Again:
ENCODER_BUFFER_DUMP);
size = wq->mem.dump_info_ddr_size;
cache_flush(buf_start, size);
- enc_pr(LOG_DEBUG, "CBR flush dump_info done--- ");
+ //enc_pr(LOG_INFO, "CBR flush dump_info done--- ");
+ enc_pr(LOG_DEBUG, "CBR flush dump_info done");
}
if (request->flush_flag &
AMVENC_FLUSH_FLAG_REFERENCE) {
@@ -3537,7 +3540,7 @@ static s32 encode_monitor_thread(void *data)
manager->current_wq = first_wq;
spin_unlock(&manager->event.sem_lock);
if (first_wq) {
-#ifdef CONFIG_AM_GE2D
+#ifdef CONFIG_AMLOGIC_MEDIA_GE2D
if (!manager->context)
manager->context =
create_ge2d_work_queue();
@@ -3565,7 +3568,7 @@ static s32 encode_monitor_thread(void *data)
spin_unlock(&manager->event.sem_lock);
manager->inited = false;
amvenc_avc_stop();
-#ifdef CONFIG_AM_GE2D
+#ifdef CONFIG_AMLOGIC_MEDIA_GE2D
if (manager->context) {
destroy_ge2d_work_queue(manager->context);
manager->context = NULL;
diff --git a/drivers/frame_sink/encoder/h264/encoder.h b/drivers/frame_sink/encoder/h264/encoder.h
index db4f255..5dbfae2 100644
--- a/drivers/frame_sink/encoder/h264/encoder.h
+++ b/drivers/frame_sink/encoder/h264/encoder.h
@@ -26,8 +26,9 @@
#include <linux/spinlock.h>
#include <linux/wait.h>
#include <linux/slab.h>
-#ifdef CONFIG_AM_GE2D
-#include <linux/amlogic/ge2d/ge2d.h>
+
+#ifdef CONFIG_AMLOGIC_MEDIA_GE2D
+#include <linux/amlogic/media/ge2d/ge2d.h>
#endif
#define AMVENC_DEVINFO_M8 "AML-M8"
@@ -336,7 +337,7 @@ struct encode_manager_s {
u32 wq_count;
u32 ucode_index;
u32 max_instance;
-#ifdef CONFIG_AM_GE2D
+#ifdef CONFIG_AMLOGIC_MEDIA_GE2D
struct ge2d_context_s *context;
#endif
bool irq_requested;