[test]: change deinit interface, add more detail to mpi_test

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@153 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
ChenHengming
2015-08-24 03:52:11 +00:00
parent 8d6ace3794
commit 3850b79cdc
7 changed files with 103 additions and 18 deletions

View File

@@ -25,13 +25,24 @@
* buffer group may need to set a default group size limit * buffer group may need to set a default group size limit
*/ */
#define SZ_1K (1024) #define SZ_1K (1024)
#define SZ_2K (SZ_1K*2)
#define SZ_4K (SZ_1K*4) #define SZ_4K (SZ_1K*4)
#define SZ_8K (SZ_1K*8)
#define SZ_16K (SZ_1K*16)
#define SZ_32K (SZ_1K*32)
#define SZ_64K (SZ_1K*64)
#define SZ_128K (SZ_1K*128)
#define SZ_256K (SZ_1K*256)
#define SZ_512K (SZ_1K*512)
#define SZ_1M (SZ_1K*SZ_1K) #define SZ_1M (SZ_1K*SZ_1K)
#define SZ_2M (SZ_1M*2) #define SZ_2M (SZ_1M*2)
#define SZ_4M (SZ_1M*4) #define SZ_4M (SZ_1M*4)
#define SZ_8M (SZ_1M*8) #define SZ_8M (SZ_1M*8)
#define SZ_16M (SZ_1M*16)
#define SZ_32M (SZ_1M*32)
#define SZ_64M (SZ_1M*64) #define SZ_64M (SZ_1M*64)
#define SZ_80M (SZ_1M*80) #define SZ_80M (SZ_1M*80)
#define SZ_128M (SZ_1M*128)
/* /*
* MppBuffer module has several functions: * MppBuffer module has several functions:

View File

@@ -33,7 +33,7 @@ MPP_RET mpp_packet_init(MppPacket *packet, void *data, size_t size);
MPP_RET mpp_packet_set_pts(MppPacket packet, RK_S64 pts); MPP_RET mpp_packet_set_pts(MppPacket packet, RK_S64 pts);
MPP_RET mpp_packet_set_dts(MppPacket packet, RK_S64 dts); MPP_RET mpp_packet_set_dts(MppPacket packet, RK_S64 dts);
MPP_RET mpp_packet_set_eos(MppPacket packet); MPP_RET mpp_packet_set_eos(MppPacket packet);
MPP_RET mpp_packet_deinit(MppPacket *packet); MPP_RET mpp_packet_deinit(MppPacket packet);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -82,7 +82,7 @@ extern "C" {
* mpp interface * mpp interface
*/ */
MPP_RET mpp_init(MppCtx *ctx, MppApi **mpi); MPP_RET mpp_init(MppCtx *ctx, MppApi **mpi);
MPP_RET mpp_deinit(MppCtx* ctx); MPP_RET mpp_deinit(MppCtx ctx);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -160,7 +160,7 @@ MPP_RET mpp_init(MppCtx *ctx, MppApi **mpi)
return MPP_OK; return MPP_OK;
} }
MPP_RET mpp_deinit(MppCtx* ctx) MPP_RET mpp_deinit(MppCtx ctx)
{ {
MpiImpl *p; MpiImpl *p;
MPI_FUNCTION_ENTER(); MPI_FUNCTION_ENTER();
@@ -170,7 +170,7 @@ MPP_RET mpp_deinit(MppCtx* ctx)
return MPP_ERR_NULL_PTR; return MPP_ERR_NULL_PTR;
} }
p = (MpiImpl*)*ctx; p = (MpiImpl*)ctx;
if (p->check != p) { if (p->check != p) {
mpp_err("mpp_deinit input invalid MppCtx\n"); mpp_err("mpp_deinit input invalid MppCtx\n");
@@ -179,7 +179,6 @@ MPP_RET mpp_deinit(MppCtx* ctx)
if (p) if (p)
mpp_free(p); mpp_free(p);
*ctx = NULL;
MPI_FUNCTION_LEAVE(); MPI_FUNCTION_LEAVE();
return MPP_OK; return MPP_OK;

View File

@@ -79,16 +79,14 @@ MPP_RET mpp_packet_set_eos(MppPacket packet)
return MPP_OK; return MPP_OK;
} }
MPP_RET mpp_packet_deinit(MppPacket *packet) MPP_RET mpp_packet_deinit(MppPacket packet)
{ {
if (NULL == packet) { if (NULL == packet) {
mpp_err("mpp_packet_deinit invalid input packet %p\n", packet); mpp_err("mpp_packet_deinit invalid input packet %p\n", packet);
return MPP_ERR_NULL_PTR; return MPP_ERR_NULL_PTR;
} }
mpp_packet_impl *p = (mpp_packet_impl *)*packet; mpp_free((mpp_packet_impl *)packet);
mpp_free(p);
*packet = NULL;
return MPP_OK; return MPP_OK;
} }

View File

@@ -14,15 +14,23 @@
* limitations under the License. * limitations under the License.
*/ */
#if defined(_WIN32)
#include "vld.h"
#endif
#define MODULE_TAG "mpi_test" #define MODULE_TAG "mpi_test"
#include <string.h> #include <string.h>
#include "rk_mpi.h" #include "rk_mpi.h"
#include "mpp_log.h" #include "mpp_log.h"
#include "mpp_env.h" #include "mpp_env.h"
#define MPI_DEC_LOOP_COUNT 4
#define MPI_ENC_LOOP_COUNT 4
#define MPI_STREAM_SIZE (SZ_512K)
int main() int main()
{ {
MPP_RET ret; MPP_RET ret;
@@ -38,10 +46,20 @@ int main()
MPI_CMD cmd = MPI_MPP_CMD_BASE; MPI_CMD cmd = MPI_MPP_CMD_BASE;
MppParam param = NULL; MppParam param = NULL;
RK_S32 i;
char *buf = NULL;
RK_S32 size = MPI_STREAM_SIZE;
mpp_log("mpi_test start\n"); mpp_log("mpi_test start\n");
mpp_env_set_u32("mpi_debug", 0x1); mpp_env_set_u32("mpi_debug", 0x1);
buf = malloc(size);
if (NULL == buf) {
mpp_err("mpi_test malloc failed\n");
goto MPP_TEST_FAILED;
}
mpp_log("mpi_test decoder test start\n"); mpp_log("mpi_test decoder test start\n");
// decoder demo // decoder demo
@@ -63,9 +81,55 @@ int main()
goto MPP_TEST_FAILED; goto MPP_TEST_FAILED;
} }
mpi->decode(ctx, dec_in, &dec_out); // interface with both input and output
mpi->decode_put_packet(ctx, dec_in); for (i = 0; i < MPI_DEC_LOOP_COUNT; i++) {
mpi->decode_get_frame(ctx, &dec_out); mpp_packet_init(&dec_in, buf, size);
// TODO: read stream data to buf
ret = mpi->decode(ctx, dec_in, &dec_out);
if (MPP_OK != ret) {
goto MPP_TEST_FAILED;
}
if (dec_out) {
// TODO: diaplay function called here
mpp_frame_deinit(dec_out);
dec_out = NULL;
}
mpp_packet_deinit(dec_in);
dec_in = NULL;
}
// interface with input and output separated
for (i = 0; i < MPI_DEC_LOOP_COUNT; i++) {
mpp_packet_init(&dec_in, buf, size);
// TODO: read stream data to buf
ret = mpi->decode_put_packet(ctx, dec_in);
if (MPP_OK != ret) {
goto MPP_TEST_FAILED;
}
mpp_packet_deinit(dec_in);
dec_in = NULL;
}
for (i = 0; i < MPI_DEC_LOOP_COUNT; i++) {
ret = mpi->decode_get_frame(ctx, &dec_out);
if (MPP_OK != ret) {
goto MPP_TEST_FAILED;
}
if (dec_out) {
mpp_frame_deinit(dec_out);
dec_out = NULL;
}
}
ret = mpi->flush(ctx); ret = mpi->flush(ctx);
if (MPP_OK != ret) { if (MPP_OK != ret) {
@@ -73,7 +137,7 @@ int main()
goto MPP_TEST_FAILED; goto MPP_TEST_FAILED;
} }
mpp_deinit(&ctx); mpp_deinit(ctx);
mpp_log("mpi_test encoder test start\n"); mpp_log("mpi_test encoder test start\n");
@@ -107,15 +171,28 @@ int main()
goto MPP_TEST_FAILED; goto MPP_TEST_FAILED;
} }
mpp_deinit(&ctx); if (dec_in) {
mpp_packet_deinit(dec_in);
dec_in = NULL;
}
mpp_deinit(ctx);
free(buf);
mpp_log("mpi_test success\n"); mpp_log("mpi_test success\n");
return 0; return 0;
MPP_TEST_FAILED: MPP_TEST_FAILED:
if (dec_in) {
mpp_packet_deinit(dec_in);
dec_in = NULL;
}
if (ctx) if (ctx)
mpp_deinit(ctx); mpp_deinit(ctx);
if (buf)
free(buf);
mpp_log("mpi_test failed\n"); mpp_log("mpi_test failed\n");

View File

@@ -48,7 +48,7 @@ int main()
mpp_err("mpp_packet_test mpp_packet_set_eos failed\n"); mpp_err("mpp_packet_test mpp_packet_set_eos failed\n");
goto MPP_PACKET_failed; goto MPP_PACKET_failed;
} }
mpp_packet_deinit(&packet); mpp_packet_deinit(packet);
free(data); free(data);
mpp_log("mpp_packet_test success\n"); mpp_log("mpp_packet_test success\n");
@@ -56,7 +56,7 @@ int main()
MPP_PACKET_failed: MPP_PACKET_failed:
if (packet) if (packet)
mpp_packet_deinit(&packet); mpp_packet_deinit(packet);
if (data) if (data)
free(data); free(data);