[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
*/
#define SZ_1K (1024)
#define SZ_2K (SZ_1K*2)
#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_2M (SZ_1M*2)
#define SZ_4M (SZ_1M*4)
#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_80M (SZ_1M*80)
#define SZ_128M (SZ_1M*128)
/*
* 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_dts(MppPacket packet, RK_S64 dts);
MPP_RET mpp_packet_set_eos(MppPacket packet);
MPP_RET mpp_packet_deinit(MppPacket *packet);
MPP_RET mpp_packet_deinit(MppPacket packet);
#ifdef __cplusplus
}

View File

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

View File

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

View File

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

View File

@@ -14,15 +14,23 @@
* limitations under the License.
*/
#if defined(_WIN32)
#include "vld.h"
#endif
#define MODULE_TAG "mpi_test"
#include <string.h>
#include "rk_mpi.h"
#include "mpp_log.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()
{
MPP_RET ret;
@@ -38,10 +46,20 @@ int main()
MPI_CMD cmd = MPI_MPP_CMD_BASE;
MppParam param = NULL;
RK_S32 i;
char *buf = NULL;
RK_S32 size = MPI_STREAM_SIZE;
mpp_log("mpi_test start\n");
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");
// decoder demo
@@ -63,9 +81,55 @@ int main()
goto MPP_TEST_FAILED;
}
mpi->decode(ctx, dec_in, &dec_out);
mpi->decode_put_packet(ctx, dec_in);
mpi->decode_get_frame(ctx, &dec_out);
// interface with both input and output
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(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);
if (MPP_OK != ret) {
@@ -73,7 +137,7 @@ int main()
goto MPP_TEST_FAILED;
}
mpp_deinit(&ctx);
mpp_deinit(ctx);
mpp_log("mpi_test encoder test start\n");
@@ -107,15 +171,28 @@ int main()
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");
return 0;
MPP_TEST_FAILED:
if (dec_in) {
mpp_packet_deinit(dec_in);
dec_in = NULL;
}
if (ctx)
mpp_deinit(ctx);
if (buf)
free(buf);
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");
goto MPP_PACKET_failed;
}
mpp_packet_deinit(&packet);
mpp_packet_deinit(packet);
free(data);
mpp_log("mpp_packet_test success\n");
@@ -56,7 +56,7 @@ int main()
MPP_PACKET_failed:
if (packet)
mpp_packet_deinit(&packet);
mpp_packet_deinit(packet);
if (data)
free(data);