Commit e1001cf7 authored by Daniel Kamil Kozar's avatar Daniel Kamil Kozar Committed by Jean-Paul Saman

add tests for the parental rating descriptor

Signed-off-by: default avatarJean-Paul Saman <jpsaman@videolan.org>
parent 8c8b1699
...@@ -332,4 +332,8 @@ ...@@ -332,4 +332,8 @@
<array name="p_content" len_name="i_contents_number" min_size="1" type="dvbpsi_content_t"/> <array name="p_content" len_name="i_contents_number" min_size="1" type="dvbpsi_content_t"/>
</descriptor> </descriptor>
<descriptor name="parental rating" sname="parental_rating" fname="ParentalRating">
<array name="p_parental_rating" len_name="i_ratings_number" min_size="1" type="dvbpsi_parental_rating_t"/>
</descriptor>
</dr> </dr>
...@@ -2129,6 +2129,30 @@ static int main_content_(void) ...@@ -2129,6 +2129,30 @@ static int main_content_(void)
return i_err; return i_err;
} }
/* parental rating */
static int main_parental_rating_(void)
{
BOZO_VARS(parental_rating);
BOZO_START(parental rating);
/* check p_parental_rating */
BOZO_init_array(i_ratings_number);
BOZO_begin_array(p_parental_rating)
BOZO_loop_array_begin(p_parental_rating, i_ratings_number, 1)
BOZO_DOJOB(ParentalRating);
BOZO_check_array_begin(p_parental_rating, i_ratings_number)
BOZO_check_array_cmp(p_parental_rating, i_ratings_number, dvbpsi_parental_rating_t)
BOZO_CLEAN();
BOZO_loop_array_end(p_parental_rating, ARRAY_SIZE(s_decoded.p_parental_rating))
BOZO_end_array
BOZO_END(parental rating);
return i_err;
}
/* main function */ /* main function */
int main(void) int main(void)
...@@ -2180,6 +2204,7 @@ int main(void) ...@@ -2180,6 +2204,7 @@ int main(void)
i_err |= main_stream_identifier_(); i_err |= main_stream_identifier_();
i_err |= main_ca_identifier_(); i_err |= main_ca_identifier_();
i_err |= main_content_(); i_err |= main_content_();
i_err |= main_parental_rating_();
if(i_err) if(i_err)
fprintf(stderr, "At least one test has FAILED !!!\n"); fprintf(stderr, "At least one test has FAILED !!!\n");
......
...@@ -46,3 +46,13 @@ static int compare_dvbpsi_content_t(const void *s1, const void *s2) ...@@ -46,3 +46,13 @@ static int compare_dvbpsi_content_t(const void *s1, const void *s2)
else if(a->i_type > b->i_type || a->i_user_byte > b->i_user_byte) return 1; else if(a->i_type > b->i_type || a->i_user_byte > b->i_user_byte) return 1;
else return 0; else return 0;
} }
static int compare_dvbpsi_parental_rating_t(const void *s1, const void *s2)
{
const dvbpsi_parental_rating_t *a = s1, *b = s2;
uint32_t a_cc = (a->i_country_code & 0xffffff),
b_cc = (b->i_country_code & 0xffffff);
if(a_cc < b_cc || a->i_rating < b->i_rating) return -1;
else if(a_cc > b_cc || a->i_rating > b->i_rating) return 1;
else return 0;
}
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