Opened 13 years ago

Closed 11 years ago

#10019 closed Patch - Feature (Fixed)

[PATCH] libfreemheg: support BBC iPlayer

Reported by: Lawrence Rust <lvr@…> Owned by: stuartm
Priority: major Milestone: 0.27
Component: MythTV - General Version: Master Head
Severity: medium Keywords: MHEG iPlayer
Cc: Ticket locked: no

Description

This series of patches adds support for "Interaction Channel" (ETSI ES 202 184 V2.2.1) which enables BBC iPlayer and other http based interactive content to be accessed from the MHEG 'red button'.

0001: A patch to ringbuffer to support low bandwidth sources. This is optional but if omitted playback of http streams can be very jerky and/or fail 0002..0006 : Various bug fixes to libfreemheg required to use Interaction Channel 0007: Add the ASN1 codes for Interaction Channel 0008: Add a ringbuffer type to support interactive streams 0009: The meat of the Interaction Channel changes

Attachments (14)

0001-ringbuffer-Adapt-readahead-for-low-bit-rate-64kbps-r.patch (16.3 KB) - added by Lawrence Rust <lvr@…> 13 years ago.
0002-freemheg-Support-bitmaps-with-included-content.patch (2.7 KB) - added by Lawrence Rust <lvr@…> 13 years ago.
0003-freemheg-Fix-the-colour-of-default-initialised-visib.patch (2.1 KB) - added by Lawrence Rust <lvr@…> 13 years ago.
0004-freemheg-Catch-divide-by-zero.patch (1.2 KB) - added by Lawrence Rust <lvr@…> 13 years ago.
0005-freemheg-Support-JPEG-bitmaps.patch (3.2 KB) - added by Lawrence Rust <lvr@…> 13 years ago.
0006-freemheg-Print-ActionSlot-number-in-disassembly-to-a.patch (1013 bytes) - added by Lawrence Rust <lvr@…> 13 years ago.
0007-freemheg-Added-ASN1-codes-for-InteractionChannel.patch (1.1 KB) - added by Lawrence Rust <lvr@…> 13 years ago.
0008-MythPlayer-Add-support-for-InteractiveTV-streams.patch (17.8 KB) - added by Lawrence Rust <lvr@…> 13 years ago.
0009-freemheg-Add-InteractionChannel-streaming-from-netwo.patch (97.5 KB) - added by Lawrence Rust <lvr@…> 13 years ago.
iplayer.diff (130.9 KB) - added by paulh 12 years ago.
Updated patch to compile on Qt4.6
iplayer-master.diff (124.4 KB) - added by Lawrence Rust <lvr@…> 12 years ago.
Fixed duration time and implemented seeking
0001-MythPlayer-Improve-low-bit-rate-high-latency-stream-.patch (15.0 KB) - added by Lawrence Rust <lvr@…> 12 years ago.
0002-ringbuffer-Adapt-readahead-for-low-bit-rate-high-lat.patch (10.4 KB) - added by Lawrence Rust <lvr@…> 12 years ago.
Fix ringbuffer problems with high latency streams
0001-Added-missing-initialisation-of-MHEG-member-variable.patch (927 bytes) - added by peper03@… 11 years ago.

Download all attachments as: .zip

Change History (24)

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 13 years ago by Lawrence Rust <lvr@…>

Changed 12 years ago by paulh

Attachment: iplayer.diff added

Updated patch to compile on Qt4.6

Changed 12 years ago by Lawrence Rust <lvr@…>

Attachment: iplayer-master.diff added

Fixed duration time and implemented seeking

Changed 12 years ago by Lawrence Rust <lvr@…>

Changed 12 years ago by Lawrence Rust <lvr@…>

Fix ringbuffer problems with high latency streams

comment:1 Changed 11 years ago by stuartm

Owner: set to stuartm
Status: newassigned

comment:2 Changed 11 years ago by stuartm

Milestone: unknown0.27
Priority: minormajor
Status: assignedaccepted

comment:3 Changed 11 years ago by Lawrence Rust <lvr@…>

In 98b1a775cd53aaa9dca1939d4ffa24de7f1add64/mythtv:

MythPlayer?: Add support for InteractiveTV streams

This patch adds functionality to MythPlayer? to enable interactive TV content
to select altenative streamed media for display.

NB this patch needs to be applied together with that for InteractionChannel?
streaming.

Refs #10019

Signed-off-by: Lawrence Rust <lvr@…>
Signed-off-by: Stuart Morgan <smorgan@…>

comment:4 Changed 11 years ago by Lawrence Rust <lvr@…>

In 0e4d04d3a9822352358b03875afd789f80e57679/mythtv:

freemheg: Add InteractionChannel? streaming from network URI's

This patch adds BBC iPlayer functionality to the MHEG library.

NB This patch must be applied in conjunction with that to MythPlayer?
which supports Interactive TV program streams.

Refs #10019

Signed-off-by: Lawrence Rust <lvr@…>
Signed-off-by: Stuart Morgan <smorgan@…>

comment:5 Changed 11 years ago by Lawrence Rust <lvr@…>

In d848f2d99776da7d51dc64b6eec2f72ba0aecd84/mythtv:

freemheg: Don't return an object not present error until timeout occurs

Remove the error return in GetCarouselData? when GetDSMCCObject returns
'not present' since the object and/or data may arrive later.

This fixes a problem with the BBC interactive logo not being displayed
after switchiong to a BBC channel.

Refs #10019

Signed-off-by: Lawrence Rust <lvr@…>
Signed-off-by: Stuart Morgan <smorgan@…>

comment:6 Changed 11 years ago by stuartm

Owner: changed from stuartm to danielk
Status: acceptedassigned

The only patches which have not been applied are those related to improving low bitrate streaming, Daniel is working on a different approach to the same problem

Changed 11 years ago by peper03@…

comment:7 Changed 11 years ago by peper03@…

Added a patch to initialise MHIContext::m_notify, which appears to have been the reason for playback of (non-MHEG) videos pausing instead of exiting at the end (see http://www.gossamer-threads.com/lists/mythtv/users/543839).

comment:8 Changed 11 years ago by stuartm

Owner: changed from danielk to stuartm
Status: assignedaccepted

comment:9 Changed 11 years ago by stuartm

In a2bd7268d63c056df9ff804af4fb438fc5d8f845/mythtv:

Added missing initialisation of MHEG member variable that sometimes caused (non-MHEG) video playback to pause at the end.

Refs #10019 Signed-off-by: Stuart Morgan <smorgan@…>

comment:10 Changed 11 years ago by stuartm

Resolution: Fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.