Opened 12 years ago

Closed 12 years ago

#3162 closed enhancement (fixed)

Extend MHEG support to cover the New Zealand Profile

Reported by: support@… Owned by: danielk
Priority: minor Milestone: 0.21
Component: mythtv Version: head
Severity: low Keywords:
Cc: Ticket locked: no

Description

The NZ MHEG-5 profile is a slightly modified version of the UK 1.0.6 profile. It introduces 3 new required register sets, as well as some additional mandatory keys.

Attachments (5)

nz_mheg_support.patch (8.7 KB) - added by support@… 12 years ago.
NZ MHEG-5 support
nzmheg.patch (9.7 KB) - added by dm@… 12 years ago.
Slightly modified version of patch
dynamiclineart.patch (11.1 KB) - added by dm@… 12 years ago.
Implementation of DrawLine?, DrawPoly? etc.
draw_poly_new.out.gz (17.0 KB) - added by support@… 12 years ago.
Verbose output with new DrawPoly? code
dlaclear.patch (2.4 KB) - added by dm@… 12 years ago.
Remove Clear action for certain actions

Download all attachments as: .zip

Change History (18)

Changed 12 years ago by support@…

Attachment: nz_mheg_support.patch added

NZ MHEG-5 support

comment:1 Changed 12 years ago by support@…

Patched enclosed against SVN r12922.

Many thanks to David Matthews for coding the additional functions required for the NZ MHEG-5 based EPG to work. I can also supply a backport against the 0.20-fixes branch if needed.

Some Notes

  • Because of the additional MHEG EPG key I've currently assigned "F12" in tv_play.cpp to act as this key.
  • mhi.cpp should have all of the correct additional key codes required for the NZ profile. For some reason they decided to code MENUTEXT to 105 rather than 104.
  • Unable to test all of the Red Button features yet as the NZ DVB-S MHEG stream is only showing the EPG data at present.

comment:2 Changed 12 years ago by danielk

Milestone: unknown0.21
Owner: changed from Isaac Richards to danielk
Severity: mediumlow
Version: 0.20head

comment:3 Changed 12 years ago by support@…

For examples of the NZ MHEG support in action take a look at http://www.mythtv.co.nz/mythtv/?p=35

Changed 12 years ago by dm@…

Attachment: nzmheg.patch added

Slightly modified version of patch

comment:4 Changed 12 years ago by dm@…

I've modified a comment from my original patch and also updated keys.txt to include the NZ EPG key. Otherwise it's unchanged.

David.

comment:5 Changed 12 years ago by danielk

Resolution: fixed
Status: newclosed

(In [13147]) Fixes #3162. Adds support for New Zealand MHEG profile with patch from OpenMedia? + review by Dave Mathews.

comment:6 Changed 12 years ago by dm@…

Resolution: fixed
Status: closedreopened

The attached patch implements some DynamicLineArt? actions that weren't previously implemented. They are defined in the UK profile but not used in practice. In fact, DynamicLineArt? does not seem to be used at all in UK transmissions. DrawPoly?, though, appears to be used in New Zealand which is why I've reopened this ticket and added the changes to it. I've tested this as well as I can but it would be helpful to know whether it works successfully in New Zealand before it is committed.

David.

Changed 12 years ago by dm@…

Attachment: dynamiclineart.patch added

Implementation of DrawLine?, DrawPoly? etc.

comment:7 Changed 12 years ago by support@…

I've been testing this new patch and the DrawPoly? code almost works correctly.

Comparing screen shots from the RedButton? Engine with the MythTV engine, originally the MythTV engine didn't produce any of the up/down/left/right arrorws that are drawn with DrawPoly? http://www.mythtv.co.nz/mythtv/images/epg/RedButton_TV2.jpg http://www.mythtv.co.nz/mythtv/images/epg/mypvr_mheg_epg.jpg

With the updated patch MythTV now gets the Prog and Chnl arrows correct, but still doesn't get the arrows next to the program name.

Checking the MHEG stream and the debug output when DrawPoly? is called these should be present, but I haven't been able to work out why yet.

Changed 12 years ago by support@…

Attachment: draw_poly_new.out.gz added

Verbose output with new DrawPoly? code

comment:8 Changed 12 years ago by support@…

On the main EPG screen there should be 3 sets of arrows, but only two are visible. Compare with the version from the redbutton engine. Please note that the first screen shot was taken before the Draw Poly patch was implemented.

Looking at the debug output in draw_poly_new.out.

Element 44 = CHNL left/right Element 47 = PROG up/down

The missing element is 44 which should be along side the currently selected program. This element should move up/down as you move through the program list.

comment:9 Changed 12 years ago by support@…

Sorry missing element against the program name is 43.

Changed 12 years ago by dm@…

Attachment: dlaclear.patch added

Remove Clear action for certain actions

comment:10 Changed 12 years ago by dm@…

I've had a look at the log and I think I know what may be going wrong. The original MHEG standard says that a drawing is cleared whenever various actions are performed including SetPosition?. That is what is implemented. I've had another look and found out that this was changed in the MHEG Corrigendum. It's unfortunate that MHEG is effectively defined by three different documents, the original standard, the Corrigendum, which only gives the changes from the original standard, and the UK profile and there is no single document that contains everything.

The attached patch removes the Clear action where it is no longer needed.

David.

comment:11 Changed 12 years ago by support@…

Tested and it fixes the drawing problem with the arrows. All visual elements now appear to be present.

Steve

comment:12 Changed 12 years ago by danielk

(In [13279]) Refs #3162. Add DrawLine?, DrawPoly?, DrawOval?, etc to MHEG implementation. These are used in New Zealand.

comment:13 Changed 12 years ago by danielk

Resolution: fixed
Status: reopenedclosed

(In [13280]) Fixes #3162. This removes some Clear() calls which were required in the original MHEG spec, but removed in the corrigendum. This is the final patch from David Matthews on this ticket for New Zealand MHEG support.

Note: See TracTickets for help on using tickets.