The plugin didn't draw the subtitles, it displays the bitmaps.
Are you using dvb-subtitles or ttxtsubs?
Both.
The scaling is only an issue with dvb-subtiltes (not plugin, VDR native).
ttxsubs gives minor OSD issues.
The plugin didn't draw the subtitles, it displays the bitmaps.
Are you using dvb-subtitles or ttxtsubs?
Both.
The scaling is only an issue with dvb-subtiltes (not plugin, VDR native).
ttxsubs gives minor OSD issues.
Another thing, the dvb subtitles are badly scaled for me. They are small and very narrow. They are readable, just a strain on the eye.
Any thoughts?
And again, thanks for the effort. Wish I was more proficient in coding other things than Perl so I could help provide patches, but I'm not afraid to poke around given some pointers. Reading code from scratch is not my strongest side.
I'll keep an eye on those commits. Thanks, nice work you have done on the plugin so far.
with '-a hw:0,0' it is certainly a lot better, but i eventually got this:
Mar 16 12:32:50 mail vdr: video: speed up video
Mar 16 12:32:50 mail vdr: video: 3:23:21.963 -15 507 0/\ms 1 v-buf
Mar 16 12:32:50 mail vdr: video: dropping frame (3/12160)
Mar 16 12:32:50 mail vdr: video: slow down video
Mar 16 12:32:50 mail vdr: video: 3:23:22.083 +56 506 0/\ms 1 v-buf
Mar 16 12:32:50 mail vdr: video: slow down video
Mar 16 12:32:50 mail vdr: video: 3:23:22.103 +45 499 0/\ms 1 v-buf
Mar 16 12:32:51 mail vdr: video: speed up video
Mar 16 12:32:51 mail vdr: video: 3:23:22.923 -15 507 0/\ms 1 v-buf
Mar 16 12:32:51 mail vdr: video: dropping frame (4/12206)
Mar 16 12:32:51 mail vdr: video: slow down video
Mar 16 12:32:51 mail vdr: video: 3:23:23.043 +64 515 0/\ms 1 v-buf
Mar 16 12:32:51 mail vdr: video: slow down video
Mar 16 12:32:51 mail vdr: video: 3:23:23.143 +45 515 0/\ms 1 v-buf
Mar 16 12:32:51 mail vdr: video: speed up video
Mar 16 12:32:51 mail vdr: video: 3:23:23.403 -15 531 0/\ms 1 v-buf
Mar 16 12:32:51 mail vdr: video: dropping frame (5/12228)
Mar 16 12:32:51 mail vdr: video: slow down video
Mar 16 12:32:51 mail vdr: video: 3:23:23.523 +64 539 0/\ms 1 v-buf
Alles anzeigen
Your video hardware is fine, if it would be too slow, there would be messages about this.
The video is synced to the audio, to check this is the cause use -a xx as plugin commandline option.
Without valid sound device, there will be no video/audio sync.
There is only some initial slow down, to have some buffered video.
I use alsa, and found the following:
I tried the default in ALSA with and without dmix, no difference.
I need to release the ALSA device from VDR when frontend is not in use, though so I need to find a different workaround for that.
(I reverted back to the original settings for video.c before testing)
If you record the station, has it the same problem?
Yes, exactly the same it seems.
Is the station on astra 19.2E?
Have others the same problem? If not can you upload or pm me some 3min sample?
This is DVB-C so I will have to provide you a sample if you still want it after the ALSA-changes.
I am now running the following patch, but then occasionally see "speeding up video" in the log. But it works pretty good.
diff --git a/video.c b/video.c
index 175230f..209be0f 100644
--- a/video.c
+++ b/video.c
@@ -4380,12 +4380,12 @@ static void VaapiSyncDisplayFrame(VaapiDecoder * decoder)
if (abs(video_clock - audio_clock) > 5000 * 90) {
Debug(3, "video: pts difference too big\n");
err = 1;
- } else if (video_clock > audio_clock + VideoAudioDelay + 100 * 90) {
- Debug(3, "video: slow down video\n");
+ } else if (video_clock > audio_clock + VideoAudioDelay + 150 * 90) {
+ Debug(3, "video: slow down video (100*90)\n");
err = 1;
decoder->DupNextFrame += 2;
- } else if (video_clock > audio_clock + VideoAudioDelay + 45 * 90) {
- Debug(3, "video: slow down video\n");
+ } else if (video_clock > audio_clock + VideoAudioDelay + 105 * 90) {
+ Debug(3, "video: slow down video (45*90)\n");
err = 1;
decoder->DupNextFrame++;
} else if (audio_clock + VideoAudioDelay > video_clock + 15 * 90
@@ -7473,12 +7473,12 @@ static void VdpauSyncDisplayFrame(VdpauDecoder * decoder)
if (abs(video_clock - audio_clock) > 5000 * 90) {
Debug(3, "video: pts difference too big\n");
err = 1;
- } else if (video_clock > audio_clock + VideoAudioDelay + 100 * 90) {
- Debug(3, "video: slow down video\n");
+ } else if (video_clock > audio_clock + VideoAudioDelay + 150 * 90) {
+ Debug(3, "video: slow down video (100*90)\n");
err = 1;
decoder->DupNextFrame += 2;
- } else if (video_clock > audio_clock + VideoAudioDelay + 45 * 90) {
- Debug(3, "video: slow down video\n");
+ } else if (video_clock > audio_clock + VideoAudioDelay + 105 * 90) {
+ Debug(3, "video: slow down video (45*90)\n");
err = 1;
decoder->DupNextFrame++;
} else if (audio_clock + VideoAudioDelay > video_clock + 15 * 90
Alles anzeigen
(I changed the debug slightly to more easilly see what was happening where)
Log:
Mar 16 04:31:59 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 04:31:59 mail vdr: codec/audio: drift( 0) -8590300us 0
Mar 16 04:31:59 mail vdr: codec/audio: inital delay 599 ms
Mar 16 04:32:09 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 04:32:09 mail vdr: codec/audio: drift( 0) -8590233us 0
Mar 16 04:32:09 mail vdr: codec/audio: inital delay 607 ms
Mar 16 04:32:11 mail vdr: video: 22:15:07.650 -3 634 120/\ms 1 v-buf
Mar 16 04:32:19 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 04:32:19 mail vdr: codec/audio: drift( 0) -8590233us 0
Mar 16 04:32:19 mail vdr: codec/audio: inital delay 613 ms
Mar 16 04:32:29 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 04:32:29 mail vdr: codec/audio: drift( 0) -8590233us 0
Mar 16 04:32:30 mail vdr: codec/audio: inital delay 620 ms
Mar 16 04:32:40 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 04:32:40 mail vdr: codec/audio: drift( 0) -8590177us 0
Mar 16 04:32:40 mail vdr: codec/audio: inital delay 631 ms
Mar 16 04:32:50 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 04:32:50 mail vdr: codec/audio: drift( 0) -8590233us 0
Mar 16 04:32:50 mail vdr: codec/audio: inital delay 640 ms
Mar 16 04:33:00 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 04:33:00 mail vdr: codec/audio: drift( 0) -8590233us 0
Mar 16 04:33:00 mail vdr: codec/audio: inital delay 571 ms
Mar 16 04:33:03 mail vdr: video/vdpau: -2130893246 display time 310097
Mar 16 04:33:03 mail vdr: video: missed frame (4/56546)
Mar 16 04:33:03 mail vdr: video: speed up video
Mar 16 04:33:03 mail vdr: video: 22:15:59.010 -245 656 120/\ms 3 v-buf
Mar 16 04:33:03 mail vdr: video: speed up video
Mar 16 04:33:03 mail vdr: video: 22:15:59.010 -285 617 120/\ms 2 v-buf
Mar 16 04:33:03 mail vdr: video: dropping frame (20/56548)
Mar 16 04:33:03 mail vdr: video/vdpau: decoder render too slow 37ms
Mar 16 04:33:03 mail vdr: video: speed up video
Mar 16 04:33:03 mail vdr: video: 22:15:59.130 -223 655 120/\ms 2 v-buf
Mar 16 04:33:03 mail vdr: video: dropping frame (21/56552)
Mar 16 04:33:03 mail vdr: video: speed up video
Mar 16 04:33:03 mail vdr: video: 22:15:59.210 -171 627 120/\ms 2 v-buf
Mar 16 04:33:03 mail vdr: video: dropping frame (22/56554)
Mar 16 04:33:03 mail vdr: video: speed up video
Mar 16 04:33:03 mail vdr: video: 22:15:59.290 -125 593 120/\ms 2 v-buf
Mar 16 04:33:03 mail vdr: video: dropping frame (23/56556)
Mar 16 04:33:03 mail vdr: video: speed up video
Mar 16 04:33:03 mail vdr: video: 22:15:59.370 -85 649 120/\ms 2 v-buf
Mar 16 04:33:03 mail vdr: video: dropping frame (24/56558)
Mar 16 04:33:03 mail vdr: video: speed up video
Mar 16 04:33:03 mail vdr: video: 22:15:59.450 -45 609 120/\ms 2 v-buf
Mar 16 04:33:03 mail vdr: video: dropping frame (25/56560)
Mar 16 04:33:03 mail vdr: video: speed up video
Mar 16 04:33:03 mail vdr: video: 22:15:59.490 -45 665 120/\ms 1 v-buf
Mar 16 04:33:03 mail vdr: video: dropping frame (26/56560)
Mar 16 04:33:10 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 04:33:10 mail vdr: codec/audio: drift( 0) -8590188us 0
Mar 16 04:33:11 mail vdr: codec/audio: inital delay 577 ms
Mar 16 04:33:12 mail vdr: video: 22:16:07.970 +33 592 120/\ms 2 v-buf
Alles anzeigen
Seems to be in some loop here and jumps over 80ms, the plugin dropping is 40ms and speed up only 20ms.
Your jumps are 80ms.
You change the audio/video limits, by editing the source of video.c.
Changing the "45 * 90" (twice in the file) to "65 * 90" should reduce this drop / dup cycle.
I increased the limits as you suggested and here is the log (still issues):
Mar 16 03:49:12 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 03:49:12 mail vdr: codec/audio: drift( 0) -8590200us 0
Mar 16 03:49:12 mail vdr: codec/audio: inital delay 952 ms
Mar 16 03:49:13 mail vdr: video: slow down video
Mar 16 03:49:13 mail vdr: video: 21:32:09.050 +72 1063 120/\ms 3 v-buf
Mar 16 03:49:13 mail vdr: video: speed up video
Mar 16 03:49:13 mail vdr: video: 21:32:09.050 -30 960 120/\ms 2 v-buf
Mar 16 03:49:13 mail vdr: video: dropping frame (33/18960)
Mar 16 03:49:13 mail vdr: video: slow down video
Mar 16 03:49:13 mail vdr: video: 21:32:09.390 +71 1009 120/\ms 3 v-buf
Mar 16 03:49:22 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 03:49:22 mail vdr: codec/audio: drift( 0) -8590233us 0
Mar 16 03:49:23 mail vdr: codec/audio: inital delay 967 ms
Mar 16 03:49:33 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 16 03:49:33 mail vdr: codec/audio: drift( 0) -8590277us 0
Mar 16 03:49:33 mail vdr: codec/audio: inital delay 978 ms
Mar 16 03:49:37 mail vdr: video/vdpau: -438277202 display time 310096
Mar 16 03:49:37 mail vdr: video: missed frame (2/20130)
Mar 16 03:49:37 mail vdr: video: speed up video
Mar 16 03:49:37 mail vdr: video: 21:32:32.530 -191 983 120/\ms 4 v-buf
Mar 16 03:49:37 mail vdr: video: dropping frame (34/20132)
Mar 16 03:49:37 mail vdr: video: speed up video
Mar 16 03:49:37 mail vdr: video: 21:32:32.570 -190 943 120/\ms 3 v-buf
Mar 16 03:49:37 mail vdr: video: dropping frame (35/20132)
Mar 16 03:49:37 mail vdr: video: speed up video
Mar 16 03:49:37 mail vdr: video: 21:32:32.690 -110 999 120/\ms 3 v-buf
Mar 16 03:49:37 mail vdr: video: dropping frame (36/20136)
Mar 16 03:49:37 mail vdr: video: speed up video
Mar 16 03:49:37 mail vdr: video: 21:32:32.770 -70 959 120/\ms 3 v-buf
Mar 16 03:49:37 mail vdr: video: dropping frame (37/20138)
Mar 16 03:49:37 mail vdr: video: speed up video
Mar 16 03:49:37 mail vdr: video: 21:32:32.850 -30 919 120/\ms 3 v-buf
Mar 16 03:49:37 mail vdr: video: dropping frame (38/20140)
Mar 16 03:49:37 mail vdr: video: speed up video
Mar 16 03:49:37 mail vdr: video: 21:32:33.050 -30 935 120/\ms 2 v-buf
Mar 16 03:49:37 mail vdr: video: dropping frame (39/20148)
Alles anzeigen
I then increased them to 85*90, and then the problem is happening less, but still there.
And check your display if you really have 50hz and the station is 50hz.
The X-server is 50Hz (TV confirms), but VDR FEMON reports the SD channels to be 25Hz.
Is this the problem? Suggestions as to how to resolve it? I assume there is something fundamentally wrong here since I had to double the limits.
xineliboutput is fine on SD, but is giving me artifacts on HD. softhddevice works much better for me.
Zitat von »tyldis«
X-server is 1280x720@100Hz, and I use VDR 1.2.21, and softhddevice (0.5.0-GIT7b570c5).
This is easy, don't use 100Hz or add support for 100Hz to the plugin.
Mybad. Typo. The X-server is at 50Hz, not 100Hz.
I struggle with only one thing: SD playback.
HD is fine.
SD streams:
MPEG-2, 720x576@25Hz
HD streams:
H.264, 1280x720@50Hz
H.264, 1920x1280
X-server is 1280x720@100Hz, and I use VDR 1.2.21, and softhddevice (0.5.0-GIT7b570c5).
HW: nVidia Corporation GT215 [GeForce GT 240] (rev a2)
Edit: I have tried with and without:
CONFIG += -DUSE_AUDIO_DRIFT_CORRECTION # build new audio drift code
CONFIG += -DUSE_AC3_DRIFT_CORRECTION # build new ac-3 drift code
Mar 15 19:26:00 mail vdr: video: 13:08:56.570 +61 668 120/\ms 1 v-buf
Mar 15 19:26:08 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 15 19:26:08 mail vdr: codec/audio: drift( 0) -8590211us 0
Mar 15 19:26:08 mail vdr: codec/audio: inital delay 620 ms
Mar 15 19:26:13 mail vdr: video: packet buffer too small for 540757
Mar 15 19:26:13 mail vdr: video: max used PES packet size: 540757
Mar 15 19:26:18 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 15 19:26:18 mail vdr: codec/audio: drift( 0) -8590200us 0
Mar 15 19:26:19 mail vdr: codec/audio: inital delay 621 ms
Mar 15 19:26:25 mail vdr: video: 13:09:21.350 +40 683 120/\ms 2 v-buf
Mar 15 19:26:29 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 15 19:26:29 mail vdr: codec/audio: drift( 0) -8590255us 0
Mar 15 19:26:29 mail vdr: codec/audio: inital delay 620 ms
Mar 15 19:26:30 mail vdr: video: slow down video
Mar 15 19:26:30 mail vdr: video: 13:09:26.590 +61 648 120/\ms 1 v-buf
Mar 15 19:26:31 mail vdr: video: speed up video
Mar 15 19:26:31 mail vdr: video: 13:09:26.810 -19 659 120/\ms 1 v-buf
Mar 15 19:26:31 mail vdr: video: dropping frame (34/9202)
Mar 15 19:26:31 mail vdr: video: slow down video
Mar 15 19:26:31 mail vdr: video: 13:09:26.930 +60 640 120/\ms 1 v-buf
Mar 15 19:26:31 mail vdr: video: slow down video
Mar 15 19:26:31 mail vdr: video: 13:09:27.230 +61 608 120/\ms 2 v-buf
Mar 15 19:26:31 mail vdr: video: speed up video
Mar 15 19:26:31 mail vdr: video: 13:09:27.290 -19 683 120/\ms 1 v-buf
Mar 15 19:26:31 mail vdr: video: dropping frame (35/9224)
Mar 15 19:26:31 mail vdr: video: slow down video
Mar 15 19:26:31 mail vdr: video: 13:09:27.410 +60 643 120/\ms 1 v-buf
Mar 15 19:26:31 mail vdr: video: slow down video
Mar 15 19:26:31 mail vdr: video: 13:09:27.550 +61 696 120/\ms 2 v-buf
Mar 15 19:26:32 mail vdr: video: speed up video
Mar 15 19:26:32 mail vdr: video: 13:09:27.770 -19 611 120/\ms 1 v-buf
Mar 15 19:26:32 mail vdr: [16253] channel 10 (TV 3 Norge) event Tor 15.03.2012 19:00-19:30 'Two and a Half Men' status 4
Mar 15 19:26:32 mail vdr: video: dropping frame (36/9246)
Mar 15 19:26:32 mail vdr: video: slow down video
Mar 15 19:26:32 mail vdr: video: 13:09:27.890 +60 667 120/\ms 1 v-buf
Mar 15 19:26:32 mail vdr: video: slow down video
Mar 15 19:26:32 mail vdr: video: 13:09:28.190 +61 680 120/\ms 2 v-buf
Mar 15 19:26:32 mail vdr: video: speed up video
Mar 15 19:26:32 mail vdr: video: 13:09:28.250 -19 635 120/\ms 1 v-buf
Mar 15 19:26:32 mail vdr: video: dropping frame (37/9268)
Mar 15 19:26:32 mail vdr: video: slow down video
Mar 15 19:26:32 mail vdr: video: 13:09:28.370 +60 595 120/\ms 1 v-buf
Mar 15 19:26:32 mail vdr: video: slow down video
Mar 15 19:26:32 mail vdr: video: 13:09:28.510 +83 693 120/\ms 1 v-buf
Mar 15 19:26:33 mail vdr: video: speed up video
Mar 15 19:26:33 mail vdr: video: 13:09:28.730 -19 659 120/\ms 1 v-buf
Mar 15 19:26:33 mail vdr: video: dropping frame (38/9290)
Mar 15 19:26:33 mail vdr: video: slow down video
Mar 15 19:26:33 mail vdr: video: 13:09:28.850 +60 619 120/\ms 1 v-buf
Mar 15 19:26:34 mail vdr: video: packet buffer too small for 525669
Mar 15 19:26:39 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 15 19:26:39 mail vdr: codec/audio: drift( 0) -8590288us 0
Mar 15 19:26:39 mail vdr: codec/audio: inital delay 616 ms
Mar 15 19:26:49 mail vdr: codec/audio: drift( 0) -8590ms reset
Mar 15 19:26:49 mail vdr: codec/audio: drift( 0) -8590255us 0
Mar 15 19:26:49 mail vdr: codec/audio: inital delay 639 ms
Alles anzeigen
softhddevice.1080i.Denoise = 0
softhddevice.1080i.InverseTelecine = 0
softhddevice.1080i.Scaling = 0
softhddevice.1080i.Sharpen = 0
softhddevice.1080i.SkipChromaDeinterlace = 0
softhddevice.1080i_fake.Deinterlace = 0
softhddevice.1080i_fake.Denoise = 0
softhddevice.1080i_fake.InverseTelecine = 0
softhddevice.1080i_fake.Scaling = 0
softhddevice.1080i_fake.Sharpen = 0
softhddevice.1080i_fake.SkipChromaDeinterlace = 0
softhddevice.576i.Deinterlace = 0
softhddevice.576i.Denoise = 0
softhddevice.576i.InverseTelecine = 0
softhddevice.576i.Scaling = 0
softhddevice.576i.Sharpen = 0
softhddevice.576i.SkipChromaDeinterlace = 0
softhddevice.60HzMode = 0
softhddevice.720p.Deinterlace = 2
softhddevice.720p.Denoise = 0
softhddevice.720p.InverseTelecine = 0
softhddevice.720p.Scaling = 3
softhddevice.720p.Sharpen = 0
softhddevice.720p.SkipChromaDeinterlace = 0
softhddevice.AudioDelay = 0
softhddevice.AudioDownmix = 1
softhddevice.AudioPassthrough = 0
softhddevice.AutoCrop.Delay = 0
softhddevice.AutoCrop.Interval = 0
softhddevice.AutoCrop.Tolerance = 0
softhddevice.Background = 0
softhddevice.HideMainMenuEntry = 1
softhddevice.MakePrimary = 1
softhddevice.SkipLines = 0
softhddevice.SoftStartSync = 0
softhddevice.StudioLevels = 0
softhddevice.Suspend.Close = 0
softhddevice.Suspend.X11 = 0
Alles anzeigen
I am having trouble with image corruption/glitches where at random intervals vdr-sxfe merges in an old frame into the picture. Usually the image shifts back to the image that was present about 5 seconds earlier. Sound usually is not affected, but subtitles are sometimes affected (disappear for a few seconds).
I am unable to find any errors in the logs that relate (none from VDR and none from vdr-sxfe).
VDR Version: 1.7.17-4yavdr1~lucid
Hardware:
CPU: Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz
Video: GeForce GT 240
Tuners: 3xMantis
I have tried playing around with xinelib settings to reduce load on the card, but no luck. I am trying to figure out if going QuadCore would help or more powerful graphics.
VDR and VDR-SXFE is on the same physical HTPC, load average: 0,01, 0,05, 0,05 with little or no swap usage.
Oh, haven't looked at 0.4 yet so I was not aware. Doing dev work on the main rig hurts the WAF too much
While investigating why I often get "ERROR: /dev/dvb/adapter1/dvr0: Device or resource busy" when trying to record I found that the problem was using XBMC through externalplayer.
Digging a bit further I found this:
http://www.freak-search.com/de…tance_of_file_descriptors
and subsequently found that externalplayer uses execle instead of the SystemExec call.
The following rough patch fixes this issue. Posted here due to my account with the bugtracker is still pending admin approval.
--- /tmp/vdr-plugin-externalplayer-0.1.0/externalplayer-player.c 2010-01-03 10:20:30.000000000 +0100
+++ externalplayer-player.c 2011-06-30 12:25:14.000000000 +0200
@@ -43,7 +43,7 @@
}
isyslog("externalplayer-plugin: executing \"%s\"", config->playerCommand.c_str());
- execle("/bin/sh", "sh", "-c", config->playerCommand.c_str(), NULL, environ);
+ SystemExec(config->playerCommand.c_str());
isyslog("externalplayer-plugin: execution (of /bin/sh) failed");
_exit(0);
}
Alles anzeigen
Not solved after all
Not able to figure out which menu entry it launches. It changes whenever i edit the menuorg entries.
For no apparent reason I am now getting the channel list whenever I hit the remote key for the EPG. Any insights?
My remote.conf:
LIRC.Info Guide
LIRC.Schedule More
I have verified with IRW that the correct keypresses are registered by LIRC. However, when I press the 'Guide'-button I get the Channels-listing not the EPG. Pressing the 'More' button on the remote gives me the menu...
It used to work for Guide, not sure what changed today...