[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>&nbsp;</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>&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;!--Unknown_Please_Report ID=3D"55" Len=3D"4"=20
--&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;!--Unknown_Please_Report ID=3D"5f" Len=3D"4" --&gt;<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>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>here is =
parseContentDescription:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>void =
parseContentDescription(descr_content_t=20
*dc)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int=20
c1,c2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int=20
i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for=20
(i=3D0;i&lt;(dc-&gt;descriptor_length);i+=3D2)<BR>&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;=20
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;=20
nibble_content_t=20
*nc=3DCastContentNibble((char*)dc+DESCR_CONTENT_LEN+i);<BR>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
c1=3D((nc-&gt;content_nibble_level_1&lt;&lt;4)+(nc-&gt;content_nibble_lev=
el_2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
c2=3D((nc-&gt;user_nibble_1&lt;&lt;4)+(nc-&gt;user_nibble_2));<BR>&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;=20
if (c1&gt;0) =
printf("\t&lt;category&gt;%s&lt;/category&gt;\n",lookup((struct=20
lookup_table*)&amp;description_table,c1));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
// This is weird in the uk, they use user but not content, and almost =
the same=20
values<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
if (c2&gt;0) =
printf("\t&lt;category&gt;%s&lt;/category&gt;\n",lookup((struct=20
lookup_table*)&amp;description_table,c2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;=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>&nbsp;</DIV></FONT>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV></BODY></HTML>

------=_NextPart_000_00F4_01C6BBDC.E017C050--