Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: MythTV: Dev

MHEG BBC iPlayer

 

 

MythTV dev RSS feed   Index | Next | Previous | View Threaded


lvr at softsystem

Jul 21, 2011, 10:35 AM

Post #1 of 19 (3569 views)
Permalink
MHEG BBC iPlayer

Hi,

I've been working on the MHEG code to add support for "Interaction
Channel" (ETSI ES 202 184 V2.2.1) which enables BBC iPlayer and other
http based interactive content to be accessed directly from the "Red
button", For anyone interested in trying, I have a patch here:

http://www.softsystem.co.uk/download/mythtv/iplayer.diff

for the current MythTV 0.24.1. The patch covers 4 main areas:

1. libfreemheg - includes the new ASN functions and http files & streams
2. mhi - supports http files & streams and additional input keys
3. MythPlayer - additional API to support mhi stream selection
4. RingBuffer - supports reading from a URI and a few bug fixes.

After the patch is applied, rebuild and restart mythfrontend. Wait for
the red button prompt which should now show "BBC iPlayer" if all is
well.

The interaction channel can be disabled by setting:
MYTHMHEG=noice

Additionally, the http client can be made to use a proxy, for instance
tor, by setting:
MYTHMHEG_PROXY="socks://localhost:9050"

Apologies for not providing a patch for git master, but my production
backend (which has my only dvb-s feed) runs 0.24.1. A patch for master
is not too onerous.

Comments, criticisms and suggestions most welcome.

--
Lawrence Rust


_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


mythtv at duncb

Jul 22, 2011, 3:03 AM

Post #2 of 19 (3496 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On 21/07/2011 18:35, Lawrence Rust wrote:
> Hi,
>
> I've been working on the MHEG code to add support for "Interaction
> Channel" (ETSI ES 202 184 V2.2.1) which enables BBC iPlayer and other
> http based interactive content to be accessed directly from the "Red
> button", For anyone interested in trying, I have a patch here:
>
> http://www.softsystem.co.uk/download/mythtv/iplayer.diff
>
> for the current MythTV 0.24.1. The patch covers 4 main areas:
>
> 1. libfreemheg - includes the new ASN functions and http files& streams
> 2. mhi - supports http files& streams and additional input keys
> 3. MythPlayer - additional API to support mhi stream selection
> 4. RingBuffer - supports reading from a URI and a few bug fixes.
>
> After the patch is applied, rebuild and restart mythfrontend. Wait for
> the red button prompt which should now show "BBC iPlayer" if all is
> well.
>
> The interaction channel can be disabled by setting:
> MYTHMHEG=noice
>
> Additionally, the http client can be made to use a proxy, for instance
> tor, by setting:
> MYTHMHEG_PROXY="socks://localhost:9050"
>
> Apologies for not providing a patch for git master, but my production
> backend (which has my only dvb-s feed) runs 0.24.1. A patch for master
> is not too onerous.
>
> Comments, criticisms and suggestions most welcome.
>
Patches applied fine against current git, but then building bombs with
the following:

mhi.cpp: In member function 'virtual bool MHIContext::BeginStream(const
QString&, MHStream*)':
mhi.cpp:857: error: cast from 'MHStream*' to 'unsigned int' loses precision
mhi.cpp: In member function 'virtual void MHIContext::EndStream()':
mhi.cpp:898: error: cast from 'MHStream*' to 'unsigned int' loses precision
mhi.cpp: In member function 'bool MHIContext::StreamStarted(bool)':
mhi.cpp:911: error: cast from 'MHStream*' to 'unsigned int' loses precision
make[2]: *** [mhi.o] Error 1
make[2]: Leaving directory
`/root/rpmbuild/BUILD/mythtv-0.24.1/mythtv-0.24/libs/libmythtv'
make[1]: *** [sub-libmythtv-make_default] Error 2
make[1]: Leaving directory
`/root/rpmbuild/BUILD/mythtv-0.24.1/mythtv-0.24/libs'
make: *** [libs] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.dWQN5M (%build)

I'm by no means an expert on building, and in all honesty don't know
what I'm doing 100%, but there you go.

Looking forward to this very much though!

cheers

Dunc
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Jul 22, 2011, 3:49 AM

Post #3 of 19 (3501 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Fri, 2011-07-22 at 11:03 +0100, Duncan Brown wrote:
[snip]
> Patches applied fine against current git, but then building bombs with
> the following:
>
> mhi.cpp: In member function 'virtual bool MHIContext::BeginStream(const
> QString&, MHStream*)':
> mhi.cpp:857: error: cast from 'MHStream*' to 'unsigned int' loses precision
> mhi.cpp: In member function 'virtual void MHIContext::EndStream()':
> mhi.cpp:898: error: cast from 'MHStream*' to 'unsigned int' loses precision
> mhi.cpp: In member function 'bool MHIContext::StreamStarted(bool)':
> mhi.cpp:911: error: cast from 'MHStream*' to 'unsigned int' loses precision
> make[2]: *** [mhi.o] Error 1
> make[2]: Leaving directory
> `/root/rpmbuild/BUILD/mythtv-0.24.1/mythtv-0.24/libs/libmythtv'
> make[1]: *** [sub-libmythtv-make_default] Error 2
> make[1]: Leaving directory
> `/root/rpmbuild/BUILD/mythtv-0.24.1/mythtv-0.24/libs'
> make: *** [libs] Error 2
> error: Bad exit status from /var/tmp/rpm-tmp.dWQN5M (%build)
>
> I'm by no means an expert on building, and in all honesty don't know
> what I'm doing 100%, but there you go.

I take it that you're building for 64-bit? The error message is related
to casting a 64-bit pointer to a 32-bit int for log output. I'll amend
the code to use a 64-bit compatible type.

Actually, I believe that the compiler is wrong to emit an error here. A
warning is acceptable, but the code includes an explicit cast from
pointer to int which the compiler should honour. Are you using
additional compiler warning options?

> Looking forward to this very much though!

OK, I've fixed the patch. Try re-downloading and building.

Thanks for your feedback.

> cheers
>
> Dunc
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev [at] mythtv
> http://www.mythtv.org/mailman/listinfo/mythtv-dev


--
Lawrence


_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


mythtv at duncb

Jul 22, 2011, 7:43 AM

Post #4 of 19 (3496 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On 22/07/2011 11:49, Lawrence Rust wrote:
> I take it that you're building for 64-bit? The error message is
> related to casting a 64-bit pointer to a 32-bit int for log output.
> I'll amend the code to use a 64-bit compatible type. Actually, I
> believe that the compiler is wrong to emit an error here. A warning is
> acceptable, but the code includes an explicit cast from pointer to int
> which the compiler should honour. Are you using additional compiler
> warning options?
I am building for 64 bit, and as far as I know I'm not using any odd
compiler options. Just so i can check, what option would it likely be
thats causing this

> OK, I've fixed the patch. Try re-downloading and building.
>
> Thanks for your feedback.
>
Just tried building again and got a similar error:

mhi.cpp: In member function 'virtual bool MHIContext::BeginStream(const
QString&, MHStream*)':
mhi.cpp:857: error: cast from 'MHStream*' to 'unsigned int' loses precision
make[2]: *** [mhi.o] Error 1
make[2]: Leaving directory
`/root/rpmbuild/BUILD/mythtv-0.24.1/mythtv-0.24/libs/libmythtv'
make[1]: *** [sub-libmythtv-make_default] Error 2
make[1]: Leaving directory
`/root/rpmbuild/BUILD/mythtv-0.24.1/mythtv-0.24/libs'
make: *** [libs] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.Kh8XLB (%build)

thanks

Dunc
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


mtdean at thirdcontact

Jul 22, 2011, 8:45 AM

Post #5 of 19 (3487 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On 07/21/2011 01:35 PM, Lawrence Rust wrote:
> Additionally, the http client can be made to use a proxy, for instance
> tor, by setting:
> MYTHMHEG_PROXY="socks://localhost:9050"
>

Since we're using HTTP_PROXY in other places (such as for MythBrowser,
http://code.mythtv.org/trac/ticket/9525#comment:7 ), perhaps you could
use the same environment variable for this patch unless there's some
reason it needs to be different.

Thanks,
Mike
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Jul 22, 2011, 9:01 AM

Post #6 of 19 (3492 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Fri, 2011-07-22 at 15:43 +0100, Duncan Brown wrote:
[snip]
> Just tried building again and got a similar error:
>
> mhi.cpp: In member function 'virtual bool MHIContext::BeginStream(const
> QString&, MHStream*)':
> mhi.cpp:857: error: cast from 'MHStream*' to 'unsigned int' loses precision
> make[2]: *** [mhi.o] Error 1
> make[2]: Leaving directory
> `/root/rpmbuild/BUILD/mythtv-0.24.1/mythtv-0.24/libs/libmythtv'
> make[1]: *** [sub-libmythtv-make_default] Error 2
> make[1]: Leaving directory
> `/root/rpmbuild/BUILD/mythtv-0.24.1/mythtv-0.24/libs'
> make: *** [libs] Error 2
> error: Bad exit status from /var/tmp/rpm-tmp.Kh8XLB (%build)

Sorry, missed that one. Hopefully all fixed now. Please try again.

>
> thanks
>
> Dunc
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev [at] mythtv
> http://www.mythtv.org/mailman/listinfo/mythtv-dev

--
Lawrence


_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Jul 22, 2011, 9:09 AM

Post #7 of 19 (3486 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Fri, 2011-07-22 at 11:45 -0400, Michael T. Dean wrote:
> On 07/21/2011 01:35 PM, Lawrence Rust wrote:
> > Additionally, the http client can be made to use a proxy, for instance
> > tor, by setting:
> > MYTHMHEG_PROXY="socks://localhost:9050"
> >
>
> Since we're using HTTP_PROXY in other places (such as for MythBrowser,
> http://code.mythtv.org/trac/ticket/9525#comment:7 ), perhaps you could
> use the same environment variable for this patch unless there's some
> reason it needs to be different.

There is a very good reason for different settings - performance. In
order to access iPlayer, the BBC use a geoip database to verify UK
residency. A number of people pay for proxy services in order to
receive iPlayer in European countries but the proxies are often not high
performance. If all http traffic is forwarded through the proxy it can
incur significant latencies.

--
Lawrence


_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


nospam312 at gmail

Jul 26, 2011, 2:05 AM

Post #8 of 19 (3434 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

> I've been working on the MHEG code to add support for "Interaction
> Channel" (ETSI ES 202 184 V2.2.1) which enables BBC iPlayer and other
> http based interactive content to be accessed directly from the "Red
> button",  For anyone interested in trying, I have a patch here:

This sounds great. Is there plans to try to get it included into MythTV 0.25?

Do any other Freeview channels apart from BBC have support for this?

TIA
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Jul 26, 2011, 5:35 AM

Post #9 of 19 (3438 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Tue, 2011-07-26 at 10:05 +0100, nospam312 wrote:
> > I've been working on the MHEG code to add support for "Interaction
> > Channel" (ETSI ES 202 184 V2.2.1) which enables BBC iPlayer and other
> > http based interactive content to be accessed directly from the "Red
> > button", For anyone interested in trying, I have a patch here:
>
> This sounds great. Is there plans to try to get it included into MythTV 0.25?

The short answer is no, not until 0.25 is released and stable.

It's certainly fairly straightforward to apply the patches to
libfreemheg but there also needs to be fairly substantial changes to
mythplayer and ringbuffer.

The 0.25 ringbuffer implementation supports http streaming but not
https, which is mandated by the InteractionChannel spec. Https is used
by iPlayer in certain special circumstances. Currently I use the Qt
library to support both http and https but integrating this code with
the current http stream from ffmpeg is difficult.

I had to modify the 0.24 ringbuffer readahead buffering code
significantly to support the large range of streaming speeds and
latencies. These changes are also difficult to port.

The InteractionChannel depends heavily on caching for performance. The
Qt library provides a reasonable disk cache and support for http cache
coherency and querying, unlike ffmpeg and the current mythdownload
manager.

The changes to MythPlayer to allow stream selection are quite extensive
and need significant re-work due to changes since 0.24

Lastly, and this is the main stopper, is the testing problem. My
production backend machine, which includes my dvb-s card, runs 0.24.1.
We use this machine for all our TV viewing - on dedicated fe systems and
Linux & Windows PCs. So I'm hesitant to upgrade it. Recent experience
with git master has indicated that it's not yet production quality.
Without a live backend running git master I can't test the changes.

> Do any other Freeview channels apart from BBC have support for this?

ITV broadcast a MHEG stream but the boot app does nothing. Maybe
something for the future.

> TIA
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev [at] mythtv
> http://www.mythtv.org/mailman/listinfo/mythtv-dev

--
Lawrence


_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


dlknight at sdf

Sep 10, 2011, 11:31 AM

Post #10 of 19 (3021 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Thu, July 21, 2011 6:35 pm, Lawrence Rust wrote:
> Hi,
>
> I've been working on the MHEG code to add support for "Interaction
> Channel" (ETSI ES 202 184 V2.2.1) which enables BBC iPlayer and other
> http based interactive content to be accessed directly from the "Red
> button", For anyone interested in trying, I have a patch here:
>
> http://www.softsystem.co.uk/download/mythtv/iplayer.diff
>
> for the current MythTV 0.24.1. The patch covers 4 main areas:
>
> 1. libfreemheg - includes the new ASN functions and http files & streams
> 2. mhi - supports http files & streams and additional input keys
> 3. MythPlayer - additional API to support mhi stream selection
> 4. RingBuffer - supports reading from a URI and a few bug fixes.
>
> After the patch is applied, rebuild and restart mythfrontend. Wait for
> the red button prompt which should now show "BBC iPlayer" if all is
> well.
>
> The interaction channel can be disabled by setting:
> MYTHMHEG=noice
>
> Additionally, the http client can be made to use a proxy, for instance
> tor, by setting:
> MYTHMHEG_PROXY="socks://localhost:9050"
>
> Apologies for not providing a patch for git master, but my production
> backend (which has my only dvb-s feed) runs 0.24.1. A patch for master
> is not too onerous.
>
> Comments, criticisms and suggestions most welcome.
>
> --
> Lawrence Rust
>
>
>
>

Hi Lawrence,

Great work implementing this functionality :)

I've compiled 0.24.1 with you diff patch successfully however I only seem
to be seeing the usual MHEG content and nothing to do with iPlayer...

I have a combined DVB-T and DVB-S/S2 system and have tried the red button
on Freeview and Freesat BBC channels and both are the same.

Is there anything else I need (e.g. software prereqs, other configuration)?

Many thanks

Dave K.

_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Sep 11, 2011, 2:28 AM

Post #11 of 19 (3027 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Sat, 2011-09-10 at 19:31 +0100, David Knight wrote:
[snip]
> Hi Lawrence,
>
> Great work implementing this functionality :)
>
> I've compiled 0.24.1 with you diff patch successfully however I only seem
> to be seeing the usual MHEG content and nothing to do with iPlayer...
>
> I have a combined DVB-T and DVB-S/S2 system and have tried the red button
> on Freeview and Freesat BBC channels and both are the same.
>
> Is there anything else I need (e.g. software prereqs, other configuration)?

You shouldn't need to change anything. The only configurable options
are the following environment variables:

MYTHMHEG=noice # Set this to _disable_ interaction channel
MYTHMHEG_PROXY="http://yourproxy" # Setup an MHEG http proxy

Ensure that you've got the latest patch, which was last updated on the
6th September.

It would be useful to enable MHEG log output to see what's going on.
Append "-v mheg" to your mythfrontend command line and tune to BBC1.
Wait for up to 60 seconds for the red button logo. Post the log here
and I'll see if I can spot a problem. Also could you report the output
of `qmake -v`

--
Lawrence


_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


dlknight at sdf

Sep 24, 2011, 6:42 AM

Post #12 of 19 (2884 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Sun, September 11, 2011 10:28 am, Lawrence Rust wrote:
> You shouldn't need to change anything. The only configurable options
> are the following environment variables:
>
> MYTHMHEG=noice # Set this to _disable_ interaction channel
> MYTHMHEG_PROXY="http://yourproxy" # Setup an MHEG http proxy
>
> Ensure that you've got the latest patch, which was last updated on the
> 6th September.
>
> It would be useful to enable MHEG log output to see what's going on.
> Append "-v mheg" to your mythfrontend command line and tune to BBC1.
> Wait for up to 60 seconds for the red button logo. Post the log here
> and I'll see if I can spot a problem. Also could you report the output
> of `qmake -v`
>
> --
> Lawrence

Hi Lawrence, still no luck but I enabled logging as per your suggestion,
relevant lines appear to be -

Unknown ResidentProgram GIS
Unknown ResidentProgram SBI
SetSubtitleMode ResidentProgram is not implemented
2011-09-24 12:59:38.511 Adding MHEG key MENURED:100:1
Unknown ResidentProgram SBI
SetSubtitleMode ResidentProgram is not implemented
2011-09-24 12:59:48.072 TV: Attempting to change from WatchingLiveTV to None

Cheers

Dave K.


_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Sep 24, 2011, 10:10 AM

Post #13 of 19 (2909 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Sat, 2011-09-24 at 14:42 +0100, David Knight wrote:
[snip]
> Hi Lawrence, still no luck but I enabled logging as per your suggestion,
> relevant lines appear to be -
>
> Unknown ResidentProgram GIS
> Unknown ResidentProgram SBI

This is worrying - the patch adds code to handle these 2 cases which are
essential to 'Interaction Channel'.

> SetSubtitleMode ResidentProgram is not implemented

This also should be handled by the patch, but isn't essential to
operation.

> 2011-09-24 12:59:38.511 Adding MHEG key MENURED:100:1
> Unknown ResidentProgram SBI
> SetSubtitleMode ResidentProgram is not implemented
> 2011-09-24 12:59:48.072 TV: Attempting to change from WatchingLiveTV to None

It looks like the patch didn't apply correctly. The patch should be
applied to current, clean git fixes/0.24. Also, make sure that you have
the latest patch, last updated on 6th September, which is applicable to
today's git fixes/0.24 (v0.24.1-85-ge16613a).

Try this:
# skip this if you already have a good/clean myth repo
git clone git://github.com/MythTV/mythtv.git

wget http://www.softsystem.co.uk/download/mythtv/iplayer.diff
cd mythtv
git checkout fixes/0.24
git clean -fxd .
git pull
patch -p1 < ../iplayer.diff

The patch should apply cleanly with no errors or warnings. If the patch
still fails then your repo may be corrupt.

Then run ./configure, make and make install as normal.

If you want to try with git master (v0.25pre-3366-g1e2c9da) then use
this patch:
http://www.softsystem.co.uk/download/mythtv/iplayer-master.diff

After the patch is applied you must provide http connectivity from the
box to the BBC. Without a connection the MHEG code can take 60 seconds
to timeout before displaying the old 'Red button' logo. To disable the
interaction channel set this environment variable:
MYTHMHEG=noice

To use an http proxy set: MYTHMHEG_PROXY="http://192.168.0.1:8080"
or MYTHMHEG_PROXY="cache://192.168.0.1:8080" # for an http caching proxy
or MYTHMHEG_PROXY="socks://127.0.0.1" # for a socks proxy

--
Lawrence
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


dlknight at sdf

Sep 25, 2011, 12:17 PM

Post #14 of 19 (2872 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Sat, September 24, 2011 6:10 pm, Lawrence Rust wrote:
[snip]
> It looks like the patch didn't apply correctly. The patch should be
> applied to current, clean git fixes/0.24. Also, make sure that you have
> the latest patch, last updated on 6th September, which is applicable to
> today's git fixes/0.24 (v0.24.1-85-ge16613a).
>
> Try this:
> # skip this if you already have a good/clean myth repo
> git clone git://github.com/MythTV/mythtv.git
>
> wget http://www.softsystem.co.uk/download/mythtv/iplayer.diff
> cd mythtv
> git checkout fixes/0.24
> git clean -fxd .
> git pull
> patch -p1 < ../iplayer.diff
>
> The patch should apply cleanly with no errors or warnings. If the patch
> still fails then your repo may be corrupt.
>
> Then run ./configure, make and make install as normal.
>
> If you want to try with git master (v0.25pre-3366-g1e2c9da) then use
> this patch:
> http://www.softsystem.co.uk/download/mythtv/iplayer-master.diff
>
> After the patch is applied you must provide http connectivity from the
> box to the BBC. Without a connection the MHEG code can take 60 seconds
> to timeout before displaying the old 'Red button' logo. To disable the
> interaction channel set this environment variable:
> MYTHMHEG=noice
>
> To use an http proxy set: MYTHMHEG_PROXY="http://192.168.0.1:8080"
> or MYTHMHEG_PROXY="cache://192.168.0.1:8080" # for an http caching proxy
> or MYTHMHEG_PROXY="socks://127.0.0.1" # for a socks proxy
>
> --
> Lawrence
>
>

Hi Lawrence, Maybe it has something to do with how I build mythtv? - I
currently use the build_myth.sh script to build RPM packages which I then
install...

I tried creating a new clean git repo as per your instructions but got the
same problem.

Cheers

Dave

_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Sep 26, 2011, 2:54 AM

Post #15 of 19 (2881 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Sun, 2011-09-25 at 20:17 +0100, David Knight wrote:
> On Sat, September 24, 2011 6:10 pm, Lawrence Rust wrote:
> [snip]
> > It looks like the patch didn't apply correctly. The patch should be
> > applied to current, clean git fixes/0.24. Also, make sure that you have
> > the latest patch, last updated on 6th September, which is applicable to
> > today's git fixes/0.24 (v0.24.1-85-ge16613a).
> >
> > Try this:
> > # skip this if you already have a good/clean myth repo
> > git clone git://github.com/MythTV/mythtv.git
> >
> > wget http://www.softsystem.co.uk/download/mythtv/iplayer.diff
> > cd mythtv
> > git checkout fixes/0.24
> > git clean -fxd .
> > git pull
> > patch -p1 < ../iplayer.diff
> >
> > The patch should apply cleanly with no errors or warnings. If the patch
> > still fails then your repo may be corrupt.
> >
> > Then run ./configure, make and make install as normal.
> >
> > If you want to try with git master (v0.25pre-3366-g1e2c9da) then use
> > this patch:
> > http://www.softsystem.co.uk/download/mythtv/iplayer-master.diff
> >
> > After the patch is applied you must provide http connectivity from the
> > box to the BBC. Without a connection the MHEG code can take 60 seconds
> > to timeout before displaying the old 'Red button' logo. To disable the
> > interaction channel set this environment variable:
> > MYTHMHEG=noice
> >
> > To use an http proxy set: MYTHMHEG_PROXY="http://192.168.0.1:8080"
> > or MYTHMHEG_PROXY="cache://192.168.0.1:8080" # for an http caching proxy
> > or MYTHMHEG_PROXY="socks://127.0.0.1" # for a socks proxy
> >
> > --
> > Lawrence
> >
> >
>
> Hi Lawrence, Maybe it has something to do with how I build mythtv? - I
> currently use the build_myth.sh script to build RPM packages which I then
> install...

OK, I understand your problem. The build_myth.sh script uses an archive
created from the git repo. This process will ignore uncommitted changes
so the simple solution is to execute:

git commit -am"Add mheg iplayer"

after the patch is applied. NB be sure to patch the repo used by the
script which by default is:
/.../mythpackaging/../mythtv/

--
Lawrence
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


dlknight at sdf

Sep 29, 2011, 2:13 PM

Post #16 of 19 (2823 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Mon, September 26, 2011 10:54 am, Lawrence Rust wrote:
[snip]
> OK, I understand your problem. The build_myth.sh script uses an archive
> created from the git repo. This process will ignore uncommitted changes
> so the simple solution is to execute:
>
> git commit -am"Add mheg iplayer"
>
> after the patch is applied. NB be sure to patch the repo used by the
> script which by default is:
> /.../mythpackaging/../mythtv/
>
> --
> Lawrence

Hi Lawrence, had another go and the commit works but getting a compile
error now in RingBuffer.o :( - I'm using Fedora 13 on the MythTV box
x86_64.

Qmake version: 1.07a (Qt 3.3.8b)
GNU Make 3.81

RingBuffer.cpp: In member function 'void RingBuffer::OpenFile(const
QString&, uint)':
RingBuffer.cpp:314: warning: possible problem detected in invocation of
delete operator:
RingBuffer.cpp:314: warning: invalid use of incomplete type 'struct
NetStream'
RingBuffer.h:25: warning: forward declaration of 'struct NetStream'
RingBuffer.cpp:314: note: neither the destructor nor the class-specific
operator delete will be called, even if they are declared when the class
is defined.
RingBuffer.cpp:504: error: incomplete type 'NetStream' used in nested name
specifier
RingBuffer.cpp:506: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp:507: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp:510: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp: In member function 'bool RingBuffer::IsOpen() const':
RingBuffer.cpp:604: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp: In destructor 'virtual RingBuffer::~RingBuffer()':
RingBuffer.cpp:639: warning: possible problem detected in invocation of
delete operator:
RingBuffer.cpp:639: warning: invalid use of incomplete type 'struct
NetStream'
RingBuffer.h:25: warning: forward declaration of 'struct NetStream'
RingBuffer.cpp:639: note: neither the destructor nor the class-specific
operator delete will be called, even if they are declared when the class
is defined.
RingBuffer.cpp: In member function 'virtual void RingBuffer::run()':
RingBuffer.cpp:1323: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp: In member function 'int RingBuffer::ReadDirect(void*, int,
bool)':
RingBuffer.cpp:1566: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp:1600: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp: In member function 'long long int RingBuffer::Seek(long
long int, int, bool)':
RingBuffer.cpp:2125: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp: In member function 'long long int
RingBuffer::GetReadPosition() const':
RingBuffer.cpp:2294: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
RingBuffer.cpp: In member function 'long long int
RingBuffer::GetRealFileSize() const':
RingBuffer.cpp:2329: error: invalid use of incomplete type 'struct NetStream'
RingBuffer.h:25: error: forward declaration of 'struct NetStream'
make[2]: *** [RingBuffer.o] Error 1

Any ideas?

Cheers

Dave




_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Sep 30, 2011, 1:40 AM

Post #17 of 19 (2800 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Thu, 2011-09-29 at 22:13 +0100, David Knight wrote:
> On Mon, September 26, 2011 10:54 am, Lawrence Rust wrote:
> [snip]
> > OK, I understand your problem. The build_myth.sh script uses an archive
> > created from the git repo. This process will ignore uncommitted changes
> > so the simple solution is to execute:
> >
> > git commit -am"Add mheg iplayer"
> >
> > after the patch is applied. NB be sure to patch the repo used by the
> > script which by default is:
> > /.../mythpackaging/../mythtv/
> >
> > --
> > Lawrence
>
> Hi Lawrence, had another go and the commit works but getting a compile
> error now in RingBuffer.o :( - I'm using Fedora 13 on the MythTV box
> x86_64.
>
> Qmake version: 1.07a (Qt 3.3.8b)
> GNU Make 3.81
>
> RingBuffer.cpp: In member function 'void RingBuffer::OpenFile(const
> QString&, uint)':
> RingBuffer.cpp:314: warning: possible problem detected in invocation of
> delete operator:
> RingBuffer.cpp:314: warning: invalid use of incomplete type 'struct
> NetStream'
> RingBuffer.h:25: warning: forward declaration of 'struct NetStream'

I believe this is a difference/problem with the C preprocessor handling
of USING_MHEG. To workaround this I have amended the patch to
RingBuffer.cpp/h to change "#if USING_MHEG" to "#ifdef USING_MHEG".
Perhaps you could try this:
http://www.softsystem.co.uk/download/mythtv/iplayer.diff

NB you will need to discard the commit made by the old patch:
git reset --hard HEAD^
patch -p1 < iplayer.diff
git commit -am"Add mheg iplayer"

--
Lawrence
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


dlknight at sdf

Oct 12, 2011, 6:54 AM

Post #18 of 19 (2656 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Fri, September 30, 2011 9:40 am, Lawrence Rust wrote:
> On Thu, 2011-09-29 at 22:13 +0100, David Knight wrote:
[snip]
>>
>> Hi Lawrence, had another go and the commit works but getting a compile
>> error now in RingBuffer.o :( - I'm using Fedora 13 on the MythTV box
>> x86_64.
>>
>> Qmake version: 1.07a (Qt 3.3.8b)
>> GNU Make 3.81
>>
>> RingBuffer.cpp: In member function 'void RingBuffer::OpenFile(const
>> QString&, uint)':
>> RingBuffer.cpp:314: warning: possible problem detected in invocation of
>> delete operator:
>> RingBuffer.cpp:314: warning: invalid use of incomplete type 'struct
>> NetStream'
>> RingBuffer.h:25: warning: forward declaration of 'struct NetStream'
>
> I believe this is a difference/problem with the C preprocessor handling
> of USING_MHEG. To workaround this I have amended the patch to
> RingBuffer.cpp/h to change "#if USING_MHEG" to "#ifdef USING_MHEG".
> Perhaps you could try this:
> http://www.softsystem.co.uk/download/mythtv/iplayer.diff
>
> NB you will need to discard the commit made by the old patch:
> git reset --hard HEAD^
> patch -p1 < iplayer.diff
> git commit -am"Add mheg iplayer"
>
> --
> Lawrence
>
>

Still no ball I'm afraid :( it bombs out of compilation with the same
errors regarding the RingBuffer module.

Any more ideas?

Dave


_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev


lvr at softsystem

Oct 12, 2011, 11:42 AM

Post #19 of 19 (2662 views)
Permalink
Re: MHEG BBC iPlayer [In reply to]

On Wed, 2011-10-12 at 14:54 +0100, David Knight wrote:
> On Fri, September 30, 2011 9:40 am, Lawrence Rust wrote:
> > On Thu, 2011-09-29 at 22:13 +0100, David Knight wrote:
> [snip]
> >>
> >> Hi Lawrence, had another go and the commit works but getting a compile
> >> error now in RingBuffer.o :( - I'm using Fedora 13 on the MythTV box
> >> x86_64.
> >>
> >> Qmake version: 1.07a (Qt 3.3.8b)
> >> GNU Make 3.81
> >>
> >> RingBuffer.cpp: In member function 'void RingBuffer::OpenFile(const
> >> QString&, uint)':
> >> RingBuffer.cpp:314: warning: possible problem detected in invocation of
> >> delete operator:
> >> RingBuffer.cpp:314: warning: invalid use of incomplete type 'struct
> >> NetStream'
> >> RingBuffer.h:25: warning: forward declaration of 'struct NetStream'
> >
> > I believe this is a difference/problem with the C preprocessor handling
> > of USING_MHEG. To workaround this I have amended the patch to
> > RingBuffer.cpp/h to change "#if USING_MHEG" to "#ifdef USING_MHEG".
> > Perhaps you could try this:
> > http://www.softsystem.co.uk/download/mythtv/iplayer.diff
> >
> > NB you will need to discard the commit made by the old patch:
> > git reset --hard HEAD^
> > patch -p1 < iplayer.diff
> > git commit -am"Add mheg iplayer"
> >
> > --
> > Lawrence
> >
> >
>
> Still no ball I'm afraid :( it bombs out of compilation with the same
> errors regarding the RingBuffer module.
>
> Any more ideas?

This must be something to do with the way rpm's are built with the
packaging script. If the patch applies cleanly then it should compile.
The errors that you are seeing indicate that the new netstream.h header
is not being included into RingBuffer.cpp. But that change is part of
the patch ??? Furthermore NetStream is declared as a class, not a
struct, as reported in the error message. Could this be a name clash
somewhere?

The only real difference that I can see is that you're building on
Fedora 13, which has an older gcc and cpp. Maybe some library that
you've installed is causing a name clash? It would be revealing if you
could build Myth with this patch from git sources using just ./configure
and make. If that succeeds then it's a packaging problem, if not it's
an environment problem.

To be honest, I'm stumped. If I get an hour or so this weekend I'll
build a Fedora 13 VM and see if I can build a Myth RPM with this patch.
If I find a problem I'll let you know. But in the meantime if you come
up with a fix I would be very interested to see.

--
Lawrence
_______________________________________________
mythtv-dev mailing list
mythtv-dev [at] mythtv
http://www.mythtv.org/mailman/listinfo/mythtv-dev

MythTV dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.