[mythtv-users] BBC HD on Freesat

John reidjr at btconnect.com
Wed Jun 4 21:17:37 UTC 2008


>
> I hacked myth to allow playback of ITV-HD with exactly the same result. 
> In order to get myth to play it I forced mpeg1 = h.264, but also needed 
> to specify the frame size, as the picture is detected as 16x32 or some 
> such size. However as ITV-HD is using paff + spatial  its a moot point, 
> as FFmpeg doesnt play it back properly.
>
> John
> _______________________________________________
>
>   
Just in case anybody wants to play, this hack will assume that any mpeg1 
video it sees via the internal player is really ITV-HD, and set the 
frame size and codec id.

Its a real hack, (against 0.21-fixes) so only use it for playing. FFmpeg 
doesnt cope well with the variety of h.264 encoding, so this is only so 
you can happily claim you've seen "the gherkin", or more recently "the 
real deal". 

For some reason I cant work out, Livetv doesnt work, but you can record 
and playback. Livetv gives a black screen, but of course you can go back 
and watch the recording from the livetv group.

Index: libs/libmythtv/avformatdecoder.cpp
===================================================================
--- libs/libmythtv/avformatdecoder.cpp    (revision 17392)
+++ libs/libmythtv/avformatdecoder.cpp    (working copy)
@@ -1473,9 +1473,19 @@
                 }
 
                 // HACK -- begin
+                // ITV-HD enc is shown as MPG1 and size is also wrong
+                if (CODEC_ID_MPEG1VIDEO == enc->codec_id)
+                   {
+                        enc->codec_id = CODEC_ID_H264;
+                        enc->width = 1440;
+                        enc->height = 1080;
+                   }
                 // ffmpeg is unable to compute H.264 bitrates in mpegts?
                 if (CODEC_ID_H264 == enc->codec_id && enc->bit_rate == 0)
+                {
                     enc->bit_rate = 500000;
+                    enc->skip_loop_filter = AVDISCARD_ALL;
+                }
                 // HACK -- end
 
                 bitrate += enc->bit_rate;


John


More information about the mythtv-users mailing list