Opened 16 years ago

Closed 16 years ago

#7919 closed defect (fixed)

no teletext in mythtv > 0.21

Reported by: anonymous Owned by: Janne Grunau
Priority: minor Milestone: unknown
Component: MythTV - General Version: head
Severity: low Keywords: teletext
Cc: Ticket locked: no

Description

If i try to use the teletext in mythtv 0.22 or 0.23 the only message i get is "Page not found". There are no other errors in the output. I also can type in some numbers, but nothing else happens. Hope you can fix it very soon. Some infos: Im using mythtv with a DVB-S-Card with

Installed versions: 0.22_p23069(22:08:34 05.01.2010)(alsa css dvb lcd lirc mmx perl python tiff vdpau video_cards_nvidia)

Attachments (2)

teletext.patch (413 bytes ) - added by frankm 16 years ago.
7919-v1.patch (1.1 KB ) - added by danielk 16 years ago.
Possible fix.

Download all attachments as: .zip

Change History (13)

comment:1 by stuartm, 16 years ago

We need more information, which country? Which satellite?

Teletext transmissions have recently ceased in the UK and probably other countries too. Are you certain that they are still broadcasting?

This is going to be difficult for the devs to fix unless we have access to sample recordings.

comment:2 by stuartm, 16 years ago

Status: newinfoneeded_new

comment:3 by frankm, 16 years ago

I got the same problem.

This helped me out: Index: libs/libmythtv/avformatdecoder.cpp =================================================================== --- libs/libmythtv/avformatdecoder.cpp (revision 23064) +++ libs/libmythtv/avformatdecoder.cpp (working copy) @@ -2870,6 +2870,8 @@

{

if (*buf == 0x10)

buf++; skip

+ if (*buf == 0xFF) + buf += 3; skip

if (*buf == 0x02) {

...now it's working again (I'm at DVB-T in Germany)

by frankm, 16 years ago

Attachment: teletext.patch added

comment:4 by Stuart Auchterlonie, 16 years ago

Milestone: unknown0.23
Status: infoneeded_newnew

comment:5 by Stuart Auchterlonie, 16 years ago

Owner: changed from Isaac Richards to Janne Grunau
Status: newassigned

comment:6 by danielk, 16 years ago

Milestone: 0.23unknown
Priority: majorminor
Severity: mediumlow
Status: assignedinfoneeded
Version: unknownhead

frankm, this patch doesn't make sense to me. This test & skip already exists @ line 2996:

        else if (*buf == 0xff)
        {
            buf += 3;
        }

comment:7 by jochen, 16 years ago

I'm in germany, Astra 19,2E Program (every german one with teletext). On no one teletext is working!

comment:8 by Stuart Auchterlonie, 16 years ago

Status: infoneededassigned

0xFF is used as a "stuffing descriptor" all through DVB. IIRC there is nothing to stop it occuring multiple times.

The while loop that's attempting to decode streams here doesn't take into account whether or not descriptors can occur multiple times.

Stuart

by danielk, 16 years ago

Attachment: 7919-v1.patch added

Possible fix.

comment:9 by danielk, 16 years ago

Frank, does the attached patch work?

It moves the buf increment inside the decode conditionals and also adds a check that we have enough bytes left to safely call TeletextDecoder::Decode(). This way we are only incrementing the pointer by a full packet size on full-sized packets and on unknown packets types, so any number of stuffing packets should get properly ignored.

I don't have any actual streams with teletext to test on, so feel free to make any corrections necessary for real data.

comment:10 by jochen, 16 years ago

On my Sytstem the patch works, I've now teletext back again!

comment:11 by danielk, 16 years ago

Resolution: fixed
Status: assignedclosed

(In [23385]) Fixes #7919. Don't skip extra 46 bytes when parsing teletext data unless we actually see a teletext packet, or an unknown packet.

Note: See TracTickets for help on using tickets.