On Thu, 14 Oct 2010, Vesa wrote:
Next step is to add delay for subtitles. This is "dirty trick", it is only for eHD users. Simply add some value to Delta (add second line):
Code: Delta = LimitTo32Bit(sb->Pts()) - LimitTo32Bit(STC); Delta += 500000;
With that 50000 you will get 5.56s delay. With that eHD now works correctly with recording play. Live shows subtitles will be too late with this, but it is minor issue. I mostly watch recordings :)
Would it help to modify the plugin's GetSTC() method only when replaying?
+ if (Replaying()) + STC -= 500000L; // or configurable: 900L * ReelSetup.STCDelayMs;
BR, -- rofa
From: Rolf Ahrenberg
Would it help to modify the plugin's GetSTC() method only when replaying?
- if (Replaying())
- STC -= 500000L; // or configurable: 900L * ReelSetup.STCDelayMs;
Yes, that works. Complete fix for ReelBoxDevice.c around line 996:
- return (stc == 0) ? -1LL : stc; + if (Replaying()) + stc -= 520000L; + return (stc == 0) ? -1LL : (stc & 0x00000000FFFFFFFF);
With this change Reelbox delivers stc in correct format and timing is correct for live show. For recordings 520000 is suitable mid range offset on Yle SD feed. I assume that eHD buffer is for mpeg/h264 and delay is based on bit/s.
On 14.10.2010 19.17, Vesa wrote:
From: Rolf Ahrenberg
Would it help to modify the plugin's GetSTC() method only when replaying?
- if (Replaying())
- STC -= 500000L; // or configurable: 900L * ReelSetup.STCDelayMs;
Yes, that works. Complete fix for ReelBoxDevice.c around line 996:
- return (stc == 0) ? -1LL : stc;
- if (Replaying())
- stc -= 520000L;
- return (stc == 0) ? -1LL : (stc& 0x00000000FFFFFFFF);
With this change Reelbox delivers stc in correct format and timing is correct for live show. For recordings 520000 is suitable mid range offset on Yle SD feed. I assume that eHD buffer is for mpeg/h264 and delay is based on bit/s.
No, you must be kidding! I guess, that kids must wash their teeth and go to sleep soon (even it's autumn holiday), so that daddy can test this without waiting too much :D
...hanu
On 14.10.2010 19.17, Vesa wrote:
From: Rolf Ahrenberg
Would it help to modify the plugin's GetSTC() method only when replaying?
- if (Replaying())
- STC -= 500000L; // or configurable: 900L * ReelSetup.STCDelayMs;
Yes, that works. Complete fix for ReelBoxDevice.c around line 996:
- return (stc == 0) ? -1LL : stc;
- if (Replaying())
- stc -= 520000L;
- return (stc == 0) ? -1LL : (stc& 0x00000000FFFFFFFF);
With this change Reelbox delivers stc in correct format and timing is correct for live show. For recordings 520000 is suitable mid range offset on Yle SD feed. I assume that eHD buffer is for mpeg/h264 and delay is based on bit/s.
OMG :) It's really working. Of course the real "problem" should be solved, but now the recordings containing dvb subtitles can be watched again using the vdr and not just other tools.
I owe you guys a beer :D
...hanu
From: Hannu Tirkkonen Subject: Re: [vdr] Replay Problems with Extension HD
On 14.10.2010 19.17, Vesa wrote:
From: Rolf Ahrenberg
Would it help to modify the plugin's GetSTC() method only when replaying?
- if (Replaying())
- STC -= 500000L; // or configurable: 900L *
ReelSetup.STCDelayMs;
Yes, that works. Complete fix for ReelBoxDevice.c around line 996:
- return (stc == 0) ? -1LL : stc;
- if (Replaying())
- stc -= 520000L;
- return (stc == 0) ? -1LL : (stc& 0x00000000FFFFFFFF);
With this change Reelbox delivers stc in correct format and timing is correct for live show. For recordings 520000 is suitable mid range
offset on
Yle SD feed. I assume that eHD buffer is for mpeg/h264 and delay is
based on
bit/s.
OMG :) It's really working.
Unfortunately it is not working.. The Working Fix is this:
- return (stc == 0) ? -1LL : stc; + if (Transferring()){ + stc -= 90000L; + } + else { + stc -= 520000L; + } + return (stc == 0) ? -1LL : (stc & 0x00000000FFFFFFFF);
Replaying returns always true, Transferring returns true only for live. eHD seems to need small delay also for live.
With this patch eHD looks usable device. I have to do long time testing for stability, but so far it is more stable than xine/vdpau based solutions. I'm using reelbox testing tree version 15208 for reelbox-3 and eHD device driver.
On 15.10.2010 10.28, Vesa wrote:
Unfortunately it is not working.. The Working Fix is this:
- return (stc == 0) ? -1LL : stc;
- if (Transferring()){
- stc -= 90000L;
- }
- else {
- stc -= 520000L;
- }
- return (stc == 0) ? -1LL : (stc& 0x00000000FFFFFFFF);
Replaying returns always true, Transferring returns true only for live. eHD seems to need small delay also for live.
With this patch eHD looks usable device. I have to do long time testing for stability, but so far it is more stable than xine/vdpau based solutions. I'm using reelbox testing tree version 15208 for reelbox-3 and eHD device driver.
Is it still required to modify also the dvbsubtitle.c?
btw; Your previous patch reelbox-svn15208-vdr.bin for reelbox svn 15208 didn't apply clean to VideoPlayerHd.c. The line 313 in svn 15208 (VideoPlayerHd.c) start with: const UInt repeat = 6; and your patch expect it to start with const UInt repeat = 4;
It's easy to fix, but I thought I let you know...
...hanu
From: Hannu Tirkkonen Sent: Friday, 15 October, 2010 11:18 To: VDR Mailing List Subject: Re: [vdr] Replay Problems with Extension HD
Is it still required to modify also the dvbsubtitle.c?
No.
btw; Your previous patch reelbox-svn15208-vdr.bin for reelbox svn 15208 didn't apply clean to VideoPlayerHd.c. The line 313 in svn 15208 (VideoPlayerHd.c) start with: const UInt repeat = 6; and your patch expect it to start with const UInt repeat = 4;
It's easy to fix, but I thought I let you know...
Correct patch in the attachment, original was broken (wrong version) as you found. This do not include yet that STC fix.