|
|
|
@ -327,6 +327,7 @@ AST_TEST_DEFINE(remb_nominal)
|
|
|
|
|
.data.ptr = &feedback,
|
|
|
|
|
.datalen = sizeof(feedback),
|
|
|
|
|
};
|
|
|
|
|
struct ast_rtp_rtcp_feedback *received_feedback;
|
|
|
|
|
|
|
|
|
|
switch (cmd) {
|
|
|
|
|
case TEST_INIT:
|
|
|
|
@ -337,8 +338,7 @@ AST_TEST_DEFINE(remb_nominal)
|
|
|
|
|
"Tests sending and receiving a REMB packet";
|
|
|
|
|
return AST_TEST_NOT_RUN;
|
|
|
|
|
case TEST_EXECUTE:
|
|
|
|
|
/* Disable for now - there's a bug! */
|
|
|
|
|
return AST_TEST_NOT_RUN;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test_sched = ast_sched_context_create();
|
|
|
|
@ -353,12 +353,7 @@ AST_TEST_DEFINE(remb_nominal)
|
|
|
|
|
|
|
|
|
|
ast_rtp_instance_write(instance1, &frame_out);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* There may be some additional work that needs to be done here, depending on how
|
|
|
|
|
* Asterisk handles the reading in of compound packets. We might get an ast_null_frame
|
|
|
|
|
* here instead of the REMB frame. We'll need to check the frametype to distinguish
|
|
|
|
|
* between them (AST_FRAME_NULL for ast_null_frame, AST_FRAME_RTCP for REMB).
|
|
|
|
|
*/
|
|
|
|
|
/* Verify the high level aspects of the frame */
|
|
|
|
|
frame_in = ast_rtp_instance_read(instance2, 0);
|
|
|
|
|
ast_test_validate(test, frame_in != NULL, "Did not receive a REMB frame");
|
|
|
|
|
ast_test_validate(test, frame_in->frametype == AST_FRAME_RTCP,
|
|
|
|
@ -366,6 +361,15 @@ AST_TEST_DEFINE(remb_nominal)
|
|
|
|
|
ast_test_validate(test, frame_in->subclass.integer == AST_RTP_RTCP_PSFB,
|
|
|
|
|
"REMB frame did not have the expected subclass integer");
|
|
|
|
|
|
|
|
|
|
/* Verify the actual REMB information itself */
|
|
|
|
|
received_feedback = frame_in->data.ptr;
|
|
|
|
|
ast_test_validate(test, received_feedback->fmt == AST_RTP_RTCP_FMT_REMB,
|
|
|
|
|
"REMB frame did not have the expected feedback format");
|
|
|
|
|
ast_test_validate(test, received_feedback->remb.br_exp == feedback.remb.br_exp,
|
|
|
|
|
"REMB received exponent did not match sent exponent");
|
|
|
|
|
ast_test_validate(test, received_feedback->remb.br_mantissa == feedback.remb.br_mantissa,
|
|
|
|
|
"REMB received mantissa did not match sent mantissa");
|
|
|
|
|
|
|
|
|
|
return AST_TEST_PASS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -447,8 +451,7 @@ AST_TEST_DEFINE(fir_nominal)
|
|
|
|
|
"Tests sending and receiving a FIR packet";
|
|
|
|
|
return AST_TEST_NOT_RUN;
|
|
|
|
|
case TEST_EXECUTE:
|
|
|
|
|
/* Disable for now - there's a bug! */
|
|
|
|
|
return AST_TEST_NOT_RUN;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test_sched = ast_sched_context_create();
|
|
|
|
@ -475,9 +478,6 @@ AST_TEST_DEFINE(fir_nominal)
|
|
|
|
|
* We only receive one frame, the FIR request. It won't have a subclass integer of
|
|
|
|
|
* 206 (PSFB) because ast_rtcp_interpret sets it to 18 (AST_CONTROL_VIDUPDATE), so
|
|
|
|
|
* check for that.
|
|
|
|
|
*
|
|
|
|
|
* NOTE - similar to REMB, there may be more that needs to be done here when the
|
|
|
|
|
* packet is sent as a compound packet!
|
|
|
|
|
*/
|
|
|
|
|
frame_in = ast_rtp_instance_read(instance2, 0);
|
|
|
|
|
ast_test_validate(test, frame_in != NULL, "Did not receive a FIR frame");
|
|
|
|
|