Opened 10 years ago

Closed 10 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 10 years ago.
7919-v1.patch (1.1 KB) - added by danielk 10 years ago.
Possible fix.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 10 years ago by stuartm

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 Changed 10 years ago by stuartm

Status: newinfoneeded_new

comment:3 Changed 10 years ago by frankm

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)

Changed 10 years ago by frankm

Attachment: teletext.patch added

comment:4 Changed 10 years ago by Stuart Auchterlonie

Milestone: unknown0.23
Status: infoneeded_newnew

comment:5 Changed 10 years ago by Stuart Auchterlonie

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

comment:6 Changed 10 years ago by danielk

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 Changed 10 years ago by jochen

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

comment:8 Changed 10 years ago by Stuart Auchterlonie

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

Changed 10 years ago by danielk

Attachment: 7919-v1.patch added

Possible fix.

comment:9 Changed 10 years ago by danielk

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 Changed 10 years ago by jochen

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

comment:11 Changed 10 years ago by danielk

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.