Commit 7ae4d203 authored by NzSN's avatar NzSN

Remove memory leak in testcase.

parent 0705145e
......@@ -73,9 +73,10 @@ CTEST_DATA(STREAM_CONTEXT_CUSTOM_PROTO) {
StreamContext *istream_custom;
StreamContext *ostream;
MMProto *mmp;
AVBSFContext *bsCtx;
};
void prepareDatas(StreamContext *istream, MMProto *mmp) {
AVBSFContext* prepareDatas(StreamContext *istream, MMProto *mmp) {
int ret = 0;
AVPacket packet;
......@@ -127,7 +128,7 @@ void prepareDatas(StreamContext *istream, MMProto *mmp) {
av_packet_unref(&packet);
}
av_bsf_free(&bsCtx);
return bsCtx;
}
......@@ -144,7 +145,7 @@ CTEST_SETUP(STREAM_CONTEXT_CUSTOM_PROTO) {
data->ofile, (ProtoInfo){NULL,NULL,NULL}, AVMEDIA_TYPE_VIDEO);
ASSERT_NOT_NULL(data->ostream);
prepareDatas(data->istream, data->mmp);
data->bsCtx = prepareDatas(data->istream, data->mmp);
data->istream_custom = createInStreamContext(
NULL,
(ProtoInfo){(Proto*)data->mmp, (ProtoDestructor)destroyMMProto, NULL},
......@@ -156,8 +157,48 @@ CTEST_TEARDOWN(STREAM_CONTEXT_CUSTOM_PROTO) {
streamClose(&data->istream);
streamClose(&data->ostream);
streamClose(&data->istream_custom);
av_bsf_free(&data->bsCtx);
}
CTEST2(STREAM_CONTEXT_CUSTOM_PROTO, READ_FROM_CUSTOM_PROTO) {
int ret = 0, i = 0;
AVPacket packet;
uint8_t *mem;
while (true) {
ret = streamReadFrame(data->istream, &packet);
if (ret < 0) break;
ret = av_bsf_send_packet(data->bsCtx, &packet);
if (ret < 0) {
printf("failed to send packet to bs filter");
abort();
}
ret = av_bsf_receive_packet(data->bsCtx, &packet);
if (ret < 0) {
printf("Failed to receive packet from bs filter");
abort();
}
mem = (uint8_t*)malloc(packet.size);
memcpy(mem, packet.data, packet.size);
mmpPush(data->mmp, mem, packet.size);
av_packet_unref(&packet);
}
mmpPush(data->mmp, NULL, 0);
while (true) {
ret = streamReadFrame(data->istream_custom, &packet);
if (ret < 0)
break;
++i;
av_packet_unref(&packet);
}
ASSERT_EQUAL(i, 300);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment