MessageI've been looking into the missing category situation with DVB EPG stuff.
It appears the categories are actually in the stream as I think David pointed out in an earlier post.
The issue appears to be the way tv_grab_dvd is working the data.
I think i've narrowed it down to the parseContentDescription function but i'm not a C expert so can only follow the logic.
As those who use it know, you get the following entries in the output xml...
<!--Unknown_Please_Report ID="55" Len="4" -->
<!--Unknown_Please_Report ID="5f" Len="4" -->
My guess is that either 55 or 5f hold the category data but that this ID isn't defined or setup correctly in tv_grab_dvb as category data?
here is parseContentDescription:
void parseContentDescription(descr_content_t *dc)
{
int c1,c2;
int i;
for (i=0;i<(dc->descriptor_length);i+=2)
{
nibble_content_t *nc=CastContentNibble((char*)dc+DESCR_CONTENT_LEN+i);
c1=((nc->content_nibble_level_1<<4)+(nc->content_nibble_level_2));
c2=((nc->user_nibble_1<<4)+(nc->user_nibble_2));
if (c1>0) printf("\t<category>%s</category>\n",lookup((struct lookup_table*)&description_table,c1));
// This is weird in the uk, they use user but not content, and almost the same values
if (c2>0) printf("\t<category>%s</category>\n",lookup((struct lookup_table*)&description_table,c2));
}
}
Anyone have any ideas on this?
Regards
Toby Mills
www.np.co.nz
It appears the categories are actually in the stream as I think David pointed out in an earlier post.
The issue appears to be the way tv_grab_dvd is working the data.
I think i've narrowed it down to the parseContentDescription function but i'm not a C expert so can only follow the logic.
As those who use it know, you get the following entries in the output xml...
<!--Unknown_Please_Report ID="55" Len="4" -->
<!--Unknown_Please_Report ID="5f" Len="4" -->
My guess is that either 55 or 5f hold the category data but that this ID isn't defined or setup correctly in tv_grab_dvb as category data?
here is parseContentDescription:
void parseContentDescription(descr_content_t *dc)
{
int c1,c2;
int i;
for (i=0;i<(dc->descriptor_length);i+=2)
{
nibble_content_t *nc=CastContentNibble((char*)dc+DESCR_CONTENT_LEN+i);
c1=((nc->content_nibble_level_1<<4)+(nc->content_nibble_level_2));
c2=((nc->user_nibble_1<<4)+(nc->user_nibble_2));
if (c1>0) printf("\t<category>%s</category>\n",lookup((struct lookup_table*)&description_table,c1));
// This is weird in the uk, they use user but not content, and almost the same values
if (c2>0) printf("\t<category>%s</category>\n",lookup((struct lookup_table*)&description_table,c2));
}
}
Anyone have any ideas on this?
Regards
Toby Mills
www.np.co.nz