[mythtvnz] tv_grab_dvd
toby
mythtvnz@lists.linuxnut.co.nz
Wed, 9 Aug 2006 17:54:35 +1200
This is a multi-part message in MIME format.
------=_NextPart_000_00F4_01C6BBDC.E017C050
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
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=3D"55" Len=3D"4" -->
<!--Unknown_Please_Report ID=3D"5f" Len=3D"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=3D0;i<(dc->descriptor_length);i+=3D2)
{
nibble_content_t =
*nc=3DCastContentNibble((char*)dc+DESCR_CONTENT_LEN+i);
=
c1=3D((nc->content_nibble_level_1<<4)+(nc->content_nibble_level_2));
c2=3D((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
------=_NextPart_000_00F4_01C6BBDC.E017C050
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Message</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1543" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>I've been looking into the missing =
category=20
situation with DVB EPG stuff.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>It appears the categories are actually =
in the=20
stream as I think David pointed out in an earlier post.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>The issue appears to be the way =
tv_grab_dvd is=20
working the data.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I think i've narrowed it down to the=20
parseContentDescription function but i'm not a C expert so can only =
follow the=20
logic.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>As those who use it know, you get the =
following=20
entries in the output xml...</FONT></DIV>
<DIV><FONT face=3DArial =
size=3D2> =20
<!--Unknown_Please_Report ID=3D"55" Len=3D"4"=20
--><BR> =20
<!--Unknown_Please_Report ID=3D"5f" Len=3D"4" --><BR></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>My guess is that either 55 or 5f hold =
the category=20
data but that this ID isn't defined or setup correctly in tv_grab_dvb as =
category data?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>here is =
parseContentDescription:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>void =
parseContentDescription(descr_content_t=20
*dc)<BR>{<BR> int=20
c1,c2;<BR> int=20
i;<BR> for=20
(i=3D0;i<(dc->descriptor_length);i+=3D2)<BR>  =
; =20
{<BR> &n=
bsp; =20
nibble_content_t=20
*nc=3DCastContentNibble((char*)dc+DESCR_CONTENT_LEN+i);<BR> &n=
bsp; &nb=
sp;=20
c1=3D((nc->content_nibble_level_1<<4)+(nc->content_nibble_lev=
el_2));<BR> &n=
bsp; =20
c2=3D((nc->user_nibble_1<<4)+(nc->user_nibble_2));<BR> &=
nbsp; &n=
bsp; =20
if (c1>0) =
printf("\t<category>%s</category>\n",lookup((struct=20
lookup_table*)&description_table,c1));<BR> &nb=
sp; =20
// This is weird in the uk, they use user but not content, and almost =
the same=20
values<BR> &nb=
sp; =20
if (c2>0) =
printf("\t<category>%s</category>\n",lookup((struct=20
lookup_table*)&description_table,c2));<BR> &nb=
sp; =20
}<BR>}<BR></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Anyone have any ideas on=20
this?<BR><BR>Regards</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Toby Mills</FONT></DIV>
<DIV><FONT face=3DArial size=3D2><A=20
href=3D"http://www.np.co.nz">www.np.co.nz</A></FONT></DIV>
<DIV><FONT face=3DArial size=3D2> </DIV></FONT>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV></BODY></HTML>
------=_NextPart_000_00F4_01C6BBDC.E017C050--