[vdr] Re: pvrinput - NTSC doesn't work - some progress

Simon Baxter linuxtv at nzbaxters.com
Wed Jun 21 19:50:42 CEST 2006


Thankyou for everyone's suggestion - but I'm not trying to play NTSC 
content, I'm trying to watch/record it via the pvrinput plugin

>>> I also guess you patched your VDR for NTSC, so maybe it just can't
>>> playback your pvrinput stream if it's looking like you described, be it
>>> live or recorded, as it seems to be PAL...
>>
>> Patched VDR for NTSC?  Nope - I must have missed something??
>
> Well, I remember there was a thread even this year in which Klaus was
> admitting he should make this configurable after version 1.4 is polished
> http://www.linuxtv.org/pipermail/vdr/2006-April/008726.html
> The attached patch was sent by C.Y.M. by that time, and looking to it,
> it seems it could make a difference, as it hard-codes the frame rate in
> recording.h among other things. I just tried if it cleanly applies to
> vdr-1.4.1 and it does, so give it a try.

No, it's not VDR that seems to be causing the problem.  To clarify, this is 
my setup:
-vdr 1.4.0
-Shuttle SK43G PC with s-video output
-Unichrome drivers for NTSC tv-out
-USA NTSC Television
-PVR-150 (NTSC only)
-xine plugin

VDR works fine.  I can use it to watch old (PAL) recordings made in the UK, 
watch .avi files, play mp3s, play DVDs etc

> Yes, and don't forget that "Frames per GOP" setting, maybe that one is
> important, too. In the end maybe it starts working with both of these
> patches.

I set this too, with no affect.

I have made one change which seems to have changed the output slightly.  I 
applied the following changes to pvrinput:
diff -Naur device.c device.c.SBB
--- device.c    2006-06-21 09:46:01.000000000 -0700
+++ device.c.SBB        2006-06-21 08:11:14.000000000 -0700
@@ -504,7 +504,7 @@
        readThread = new cPvrReadThread(video_fd, vbi_fd, tsBuffer, &mutex);
        SetVideoNorm(videoNormPAL);
        SetCodec();
-       SetVideoSize(720, 576);
+       SetVideoSize(720, 480);
        SetInput(tunerInput);
        SetPicture(PvrSetup.Brightness, PvrSetup.Contrast, 
PvrSetup.Saturation, PvrSetup.Hue);
        SetVolume(PvrSetup.AudioVolume);
@@ -653,7 +653,7 @@
 {
        SetVideoNorm(lastNorm);
        SetCodec();
-       SetVideoSize(720, 576);
+       SetVideoSize(720, 480);
        SetInput(lastInput);
        SetPicture(PvrSetup.Brightness, PvrSetup.Contrast, 
PvrSetup.Saturation, PvrSetup.Hue);
        SetVolume(PvrSetup.AudioVolume);

Now the file that's being recorded is:
MPEG-PS file format detected.
VIDEO:  MPEG2  720x480  (aspect 2)  25.000 fps  6000.0 kbps (750.0 kbyte/s)

The picture now looks like all the information is there, but the frame-rate 
is still wrong, and I can't see anywhere in the pvrinput sourcecode to 
change this.

I tried taking the recorded 001.vdr, vdrsync.pl-ing it, and then ffmpeg 
recoding the mpegv2 file to 30fps, but this just made a mess too.

As mentioned before, Freevo records and plays the channels fine - but I 
don't want to use Freevo, the OSD sucks.  I can also stream the video device 
directly to mplayer 'mplayer /dev/video', which plays fine too.

any other ideas?? 





More information about the vdr mailing list