diff --git a/mpp/mpi_impl.h b/mpp/mpi_impl.h index b6ce1a87..008ee938 100644 --- a/mpp/mpi_impl.h +++ b/mpp/mpi_impl.h @@ -24,7 +24,7 @@ -#define mpi_dbg(flag, fmt, ...) mpp_dbg(mpi_debug, flag, fmt, ## __VA_ARGS__) +#define mpi_dbg(flag, fmt, ...) _mpp_dbg(mpi_debug, flag, fmt, ## __VA_ARGS__) #define MPI_FUNCTION_ENTER() mpi_dbg(MPI_DBG_FUNCTION, "%s enter\n", __FUNCTION__) #define MPI_FUNCTION_LEAVE() mpi_dbg(MPI_DBG_FUNCTION, "%s leave\n", __FUNCTION__) diff --git a/mpp/mpp.cpp b/mpp/mpp.cpp index 82100bc4..14fa2022 100644 --- a/mpp/mpp.cpp +++ b/mpp/mpp.cpp @@ -18,6 +18,7 @@ #include "mpp_log.h" #include "mpp_mem.h" +#include "mpp_env.h" #include "mpp_time.h" #include "mpp.h" @@ -30,6 +31,8 @@ #define MPP_TEST_FRAME_SIZE SZ_1M +RK_U32 mpp_debug = 0; + Mpp::Mpp(MppCtxType type, MppCodingType coding) : mPackets(NULL), mFrames(NULL), @@ -40,6 +43,7 @@ Mpp::Mpp(MppCtxType type, MppCodingType coding) mFrameGetCount(0), mTaskPutCount(0), mTaskGetCount(0), + mInternalGroup(NULL), mPacketGroup(NULL), mFrameGroup(NULL), mTheadCodec(NULL), @@ -58,6 +62,7 @@ Mpp::Mpp(MppCtxType type, MppCodingType coding) mTheadCodec = new MppThread(mpp_dec_thread, this); mThreadHal = new MppThread(mpp_hal_thread, this); mTask = mpp_malloc(MppHalDecTask*, mTaskNum); + mpp_buffer_group_normal_get(&mInternalGroup, MPP_BUFFER_TYPE_ION); mpp_buffer_group_normal_get(&mPacketGroup, MPP_BUFFER_TYPE_NORMAL); mpp_buffer_group_limited_get(&mFrameGroup, MPP_BUFFER_TYPE_ION); mpp_buffer_group_limit_config(mFrameGroup, 4, MPP_TEST_FRAME_SIZE); @@ -69,6 +74,7 @@ Mpp::Mpp(MppCtxType type, MppCodingType coding) mTheadCodec = new MppThread(mpp_enc_thread, this); mThreadHal = new MppThread(mpp_hal_thread, this); mTask = mpp_malloc(MppHalDecTask*, mTaskNum); + mpp_buffer_group_normal_get(&mInternalGroup, MPP_BUFFER_TYPE_ION); mpp_buffer_group_normal_get(&mPacketGroup, MPP_BUFFER_TYPE_NORMAL); mpp_buffer_group_limited_get(&mFrameGroup, MPP_BUFFER_TYPE_ION); } break; @@ -84,6 +90,8 @@ Mpp::Mpp(MppCtxType type, MppCodingType coding) mThreadHal->start(); } else clear(); + + mpp_env_get_u32("mpp_debug", &mpp_debug, 0); } Mpp::~Mpp () @@ -118,6 +126,10 @@ void Mpp::clear() delete mTasks; mTasks = NULL; } + if (mInternalGroup) { + mpp_buffer_group_put(mInternalGroup); + mInternalGroup = NULL; + } if (mPacketGroup) { mpp_buffer_group_put(mPacketGroup); mPacketGroup = NULL; diff --git a/mpp/mpp.h b/mpp/mpp.h index 4661ee04..f56f9cd2 100644 --- a/mpp/mpp.h +++ b/mpp/mpp.h @@ -22,6 +22,17 @@ #include "mpp_thread.h" #include "mpp_hal.h" +extern RK_U32 mpp_debug; + +#define MPP_DBG_FUNCTION (0x00000001) +#define MPP_DBG_PACKET (0x00000002) +#define MPP_DBG_FRAME (0x00000004) +#define MPP_DBG_BUFFER (0x00000008) + + +#define mpp_dbg(flag, fmt, ...) _mpp_dbg(mpp_debug, flag, fmt, ## __VA_ARGS__) + + class Mpp { public: Mpp(MppCtxType type, MppCodingType coding); @@ -49,6 +60,16 @@ public: RK_U32 mTaskPutCount; RK_U32 mTaskGetCount; + /* + * internal buffer group + * - for all kind of table like cabac / scaling list + * fixed to ion buffer group + * packet buffer group + * - packets in I/O, can be ion buffer or normal buffer + * frame buffer group + * - frames in I/O, normally should be a ion buffer group + */ + MppBufferGroup mInternalGroup; MppBufferGroup mPacketGroup; MppBufferGroup mFrameGroup; diff --git a/mpp/mpp_buffer_impl.h b/mpp/mpp_buffer_impl.h index 23d4fbee..d3f8ea6a 100644 --- a/mpp/mpp_buffer_impl.h +++ b/mpp/mpp_buffer_impl.h @@ -23,7 +23,7 @@ #define MPP_BUF_DBG_FUNCTION (0x00000001) -#define mpp_buf_dbg(flag, fmt, ...) mpp_dbg(mpp_buffer_debug, flag, fmt, ## __VA_ARGS__) +#define mpp_buf_dbg(flag, fmt, ...) _mpp_dbg(mpp_buffer_debug, flag, fmt, ## __VA_ARGS__) #define MPP_BUF_FUNCTION_ENTER() mpp_buf_dbg(MPP_BUF_DBG_FUNCTION, "%s enter\n", __FUNCTION__) #define MPP_BUF_FUNCTION_LEAVE() mpp_buf_dbg(MPP_BUF_DBG_FUNCTION, "%s leave\n", __FUNCTION__) diff --git a/osal/android/os_allocator.c b/osal/android/os_allocator.c index 0fa8dc4a..8fd75f73 100644 --- a/osal/android/os_allocator.c +++ b/osal/android/os_allocator.c @@ -97,7 +97,7 @@ static RK_U32 ion_debug = 0; #define ION_CLINET (0x00000004) #define ION_IOCTL (0x00000008) -#define ion_dbg(flag, fmt, ...) mpp_dbg(ion_debug, flag, fmt, ## __VA_ARGS__) +#define ion_dbg(flag, fmt, ...) _mpp_dbg(ion_debug, flag, fmt, ## __VA_ARGS__) static int ion_ioctl(int fd, int req, void *arg) { diff --git a/osal/inc/mpp_log.h b/osal/inc/mpp_log.h index 746bf36c..011e3b89 100644 --- a/osal/inc/mpp_log.h +++ b/osal/inc/mpp_log.h @@ -30,8 +30,8 @@ #define mpp_log(fmt, ...) _mpp_log(MODULE_TAG, fmt, ## __VA_ARGS__) #define mpp_err(fmt, ...) _mpp_err(MODULE_TAG, fmt, ## __VA_ARGS__) -#define mpp_dbg(debug, flag, fmt, ...) \ - _mpp_dbg(debug, flag, MODULE_TAG, fmt, ## __VA_ARGS__) +#define _mpp_dbg(debug, flag, fmt, ...) \ + __mpp_dbg(debug, flag, MODULE_TAG, fmt, ## __VA_ARGS__) /* * mpp_dbg usage: @@ -85,7 +85,7 @@ RK_U32 mpp_log_get_flag(); void _mpp_log(const char *tag, const char *fmt, ...); void _mpp_err(const char *tag, const char *fmt, ...); -void _mpp_dbg(RK_U32 debug, RK_U32 flag, const char *tag, const char *fmt, ...); +void __mpp_dbg(RK_U32 debug, RK_U32 flag, const char *tag, const char *fmt, ...); #ifdef __cplusplus } diff --git a/osal/mpp_log.cpp b/osal/mpp_log.cpp index 94a77618..930e0bc6 100644 --- a/osal/mpp_log.cpp +++ b/osal/mpp_log.cpp @@ -72,7 +72,7 @@ void _mpp_log(const char *tag, const char *fmt, ...) va_end(args); } -void _mpp_dbg(RK_U32 debug, RK_U32 flag, const char *tag, const char *fmt, ...) +void __mpp_dbg(RK_U32 debug, RK_U32 flag, const char *tag, const char *fmt, ...) { if (debug & flag) { va_list args; diff --git a/osal/mpp_thread.cpp b/osal/mpp_thread.cpp index 062d2833..12fbcecb 100644 --- a/osal/mpp_thread.cpp +++ b/osal/mpp_thread.cpp @@ -23,7 +23,7 @@ static RK_U32 thread_debug = 0; -#define thread_dbg(flag, fmt, ...) mpp_dbg(thread_debug, flag, fmt, ## __VA_ARGS__) +#define thread_dbg(flag, fmt, ...) _mpp_dbg(thread_debug, flag, fmt, ## __VA_ARGS__) MppThread::MppThread(MppThreadFunc func, void *ctx) : mStatus(MPP_THREAD_UNINITED), diff --git a/osal/test/mpp_log_test.c b/osal/test/mpp_log_test.c index 69725fcc..3d443dd2 100644 --- a/osal/test/mpp_log_test.c +++ b/osal/test/mpp_log_test.c @@ -38,13 +38,13 @@ int main() mpp_assert(flag_set == flag_get); - mpp_log("try mpp_dbg test 0 debug %x, flag %x", flag_get, flag_dbg); - mpp_dbg(flag_get, flag_dbg, "mpp_dbg printing debug %x, flag %x", flag_get, flag_dbg); + mpp_log("try _mpp_dbg test 0 debug %x, flag %x", flag_get, flag_dbg); + _mpp_dbg(flag_get, flag_dbg, "mpp_dbg printing debug %x, flag %x", flag_get, flag_dbg); flag_dbg = 0; - mpp_log("try mpp_dbg test 0 debug %x, flag %x", flag_get, flag_dbg); - mpp_dbg(flag_get, flag_dbg, "mpp_dbg printing debug %x, flag %x", flag_get, flag_dbg); + mpp_log("try _mpp_dbg test 0 debug %x, flag %x", flag_get, flag_dbg); + _mpp_dbg(flag_get, flag_dbg, "mpp_dbg printing debug %x, flag %x", flag_get, flag_dbg); mpp_err("mpp log log test done\n");