26 #include <UnitTest++/UnitTest++.h> 32 #include <sys/types.h> 36 #include <libmediaprocsutils/log.h> 37 #include <libmediaprocsutils/stat_codes.h> 38 #include <libmediaprocs/proc_if.h> 39 #include <libmediaprocs/proc.h> 54 static int dummy_proc_rest_put(
proc_ctx_t*,
const char *str)
70 static int dummy_proc_opt(
proc_ctx_t*,
const char *tag, va_list arg)
80 static void dummy_proc_iput_fifo_elem_release(
void**)
91 TEST(ALLOCATE_DUP_RELEASE_PROC_IF_T)
95 "dummy_processor",
"encoder",
"application/octet-stream",
96 (uint64_t)(PROC_FEATURE_BITRATE|PROC_FEATURE_REGISTER_PTS|
97 PROC_FEATURE_LATENCY),
100 proc_send_frame_default1,
102 proc_recv_frame_default1,
106 dummy_proc_process_frame,
108 dummy_proc_iput_fifo_elem_dup,
109 dummy_proc_iput_fifo_elem_release,
110 dummy_proc_oput_fifo_elem_dup
118 CHECK(proc_if!= NULL);
123 CHECK(
proc_if_cmp(&proc_if_dummy_proc, proc_if)== 0);
129 TEST(ALLOCATE_DUP_RELEASE_PROC_FRAME_CTX)
133 uint8_t yuv_frame[48]= {
134 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
135 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
136 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
137 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
138 0x00, 0x01, 0x02, 0x03,
139 0x04, 0x05, 0x06, 0x07,
140 0x00, 0x01, 0x02, 0x03,
141 0x04, 0x05, 0x06, 0x07
146 proc_frame_ctx_yuv.
data= yuv_frame;
147 proc_frame_ctx_yuv.
p_data[0]= &yuv_frame[0];
148 proc_frame_ctx_yuv.
p_data[1]= &yuv_frame[32];
149 proc_frame_ctx_yuv.
p_data[2]= &yuv_frame[40];
150 proc_frame_ctx_yuv.
linesize[0]= proc_frame_ctx_yuv.
width[0]= 8;
151 proc_frame_ctx_yuv.
linesize[1]= proc_frame_ctx_yuv.
width[1]= 4;
152 proc_frame_ctx_yuv.
linesize[2]= proc_frame_ctx_yuv.
width[2]= 4;
153 proc_frame_ctx_yuv.
height[0]= 4;
154 proc_frame_ctx_yuv.
height[1]= proc_frame_ctx_yuv.
height[2]= 2;
157 proc_frame_ctx_yuv.
pts= -1;
158 proc_frame_ctx_yuv.
dts= -1;
159 proc_frame_ctx_yuv.
es_id= -1;
166 CHECK(proc_frame_ctx!= NULL);
167 if(proc_frame_ctx== NULL)
172 CHECK(proc_frame_ctx->
pts== -1);
173 CHECK(proc_frame_ctx->
dts== -1);
174 CHECK(proc_frame_ctx->
es_id== -1);
175 for(i= 0; i< 3; i++) {
176 for(y= 0; y< (int)proc_frame_ctx->
height[i]; y++) {
177 for(x= 0; x< (int)proc_frame_ctx->
width[i]; x++) {
178 int data_coord= x+ y* proc_frame_ctx->
linesize[i];
179 int expected_val= x+ y* proc_frame_ctx_yuv.
width[i];
180 CHECK(proc_frame_ctx->
p_data[i][data_coord]== expected_val);
size_t width[PROC_FRAME_NUM_DATA_POINTERS]
void proc_frame_ctx_release(proc_frame_ctx_t **ref_proc_frame_ctx)
int linesize[PROC_FRAME_NUM_DATA_POINTERS]
SUITE(UTESTS_LIVE555_RTSP)
void proc_if_release(proc_if_t **ref_proc_if)
proc_if_t * proc_if_dup(const proc_if_t *proc_if_arg)
enum proc_if_rest_fmt_enum proc_if_rest_fmt_t
int proc_if_cmp(const proc_if_t *proc_if1, const proc_if_t *proc_if2)
proc_frame_ctx_t * proc_frame_ctx_dup(const proc_frame_ctx_t *proc_frame_ctx_arg)
size_t height[PROC_FRAME_NUM_DATA_POINTERS]
const uint8_t * p_data[PROC_FRAME_NUM_DATA_POINTERS]