Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-04-03 Thread Udo Richter
Am 27.03.2011 16:45, schrieb Klaus Schmidinger:
> Can you please rewrite your patch so that it keeps the original 'd'
> variable? I liked the fact that the 'nextUpdate' variable was incremented
> in *one* place, and not in several places. Made the whole thing more
> transparent to me. Besides, I could then see what you have *actually*
> changed ;-)

Another example on how coding style is a matter of taste. One of the
first things I changed was the removing of the d variable that is IMHO
superfluous, doesn't have an unique meaning (file age in seconds and
time to next check), and no descriptive name. ;)

Anyway, I've rewritten it to match your original patch more closely.
Actually I'm surprised how similar they got again, I had some evolution
steps that were completely different.

Attached is the rewritten patch as updatemarks-4, and for your
convenience a diff between updatemarks-2 and updatemarks-4 that shows
the differences more closely.

Cheers,

Udo
diff -Naurp vdr-1.7.17-orig/recording.c vdr-1.7.17-updatemarks-4/recording.c
--- vdr-1.7.17-orig/recording.c	2011-02-27 14:35:20.0 +0100
+++ vdr-1.7.17-updatemarks-4/recording.c	2011-04-03 15:05:16.0 +0200
@@ -1270,19 +1270,31 @@ bool cMarks::Load(const char *RecordingF
 {
   fileName = AddDirectory(RecordingFileName, IsPesRecording ? MARKSFILESUFFIX ".vdr" : MARKSFILESUFFIX);
   framesPerSecond = FramesPerSecond;
-  lastUpdate = 0;
+  nextUpdate = 0;
   lastFileTime = -1; // the first call to Load() must take place!
+  lastChange = 0;
   return Update();
 }
 
 bool cMarks::Update(void)
 {
   time_t t = time(NULL);
-  if (t - lastUpdate > MARKSUPDATEDELTA) {
- lastUpdate = t;
- t = LastModifiedTime(fileName);
- if (t > lastFileTime) {
-lastFileTime = t;
+  if (t > nextUpdate) {
+ time_t LastModified = LastModifiedTime(fileName);
+ if (LastModified != lastFileTime) // Change detected, or first run
+lastChange = LastModified>0 ? LastModified : t;
+ int d = t - lastChange;
+ if (d < 60)
+d = 1; // check frequently if the file has just been modified
+ else if (d < 3600)
+d = 10; // older files are checked less frequently
+ else
+d /= 360; // phase out checking for very old files
+ nextUpdate = t + d;
+ if (LastModified != lastFileTime) { // Change detected, or first run
+lastFileTime = LastModified;
+if (lastFileTime == t)
+   lastFileTime--; // Make sure we don't miss updates in the remaining second
 cMutexLock MutexLock(&MutexMarkFramesPerSecond);
 MarkFramesPerSecond = framesPerSecond;
 if (cConfig::Load(fileName)) {
diff -Naurp vdr-1.7.17-orig/recording.h vdr-1.7.17-updatemarks-4/recording.h
--- vdr-1.7.17-orig/recording.h	2011-02-27 13:48:21.0 +0100
+++ vdr-1.7.17-updatemarks-4/recording.h	2011-04-03 14:57:20.0 +0200
@@ -192,8 +192,9 @@ class cMarks : public cConfig {
 private:
   cString fileName;
   double framesPerSecond;
-  time_t lastUpdate;
+  time_t nextUpdate;
   time_t lastFileTime;
+  time_t lastChange;
 public:
   bool Load(const char *RecordingFileName, double FramesPerSecond = DEFAULTFRAMESPERSECOND, bool IsPesRecording = false);
   bool Update(void);
diff -Naurp vdr-1.7.17-updatemarks-2/recording.c vdr-1.7.17-updatemarks-4/recording.c
--- vdr-1.7.17-updatemarks-2/recording.c	2011-04-03 14:59:24.0 +0200
+++ vdr-1.7.17-updatemarks-4/recording.c	2011-04-03 15:05:16.0 +0200
@@ -1272,6 +1272,7 @@ bool cMarks::Load(const char *RecordingF
   framesPerSecond = FramesPerSecond;
   nextUpdate = 0;
   lastFileTime = -1; // the first call to Load() must take place!
+  lastChange = 0;
   return Update();
 }
 
@@ -1280,16 +1281,9 @@ bool cMarks::Update(void)
   time_t t = time(NULL);
   if (t > nextUpdate) {
  time_t LastModified = LastModifiedTime(fileName);
- int d;
- if (LastModified > 0) // the file exists
-d = t - LastModified;
- else { // the file doesn't exist
-if (lastFileTime <= 0) {
-   lastFileTime = t - 2; // -2 makes sure we don't miss an update within the very same second
-   LastModified = t; // make sure we run into the actual Load() below
-   }
-d = t - lastFileTime;
-}
+ if (LastModified != lastFileTime) // Change detected, or first run
+lastChange = LastModified>0 ? LastModified : t;
+ int d = t - lastChange;
  if (d < 60)
 d = 1; // check frequently if the file has just been modified
  else if (d < 3600)
@@ -1297,8 +1291,10 @@ bool cMarks::Update(void)
  else
 d /= 360; // phase out checking for very old files
  nextUpdate = t + d;
- if (LastModified > lastFileTime) {
+ if (LastModified != lastFileTime) { // Change detected, or first run
 lastFileTime = LastModified;
+if (lastFileTime == t)
+   lastFileTime--; // Make sure we don't miss updates in the remaining second
 cMutexLock MutexLock(&MutexMarkFra

Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-29 Thread Tim
Am Montag, 28. März 2011, um 18:17:50 schrieb Klaus Schmidinger:
> void cRecorder::Action(void)
> {
>...
>if (frameDetector->Synced()) {
>   if (!InfoWritten) {
>  cRecordingInfo RecordingInfo(recordingName);
>  if (RecordingInfo.Read()) {
> if (frameDetector->FramesPerSecond() > 0 &&
> !DoubleEqual(RecordingInfo.FramesPerSecond(),
> frameDetector->FramesPerSecond())) {


Thank you, this was the part i was looking for. Read() always returned false 
for me because of a wrong patch. Now i fixed that.

cheers,
Tim


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-28 Thread Klaus Schmidinger

On 28.03.2011 11:24, Tim wrote:

Am Samstag, 19. März 2011, um 13:02:02 schrieb Klaus Schmidinger:

- Fixed detecting frames on channels that broadcast with 50 or 60 fps.



I just made a recording from "arte HD" with VDR 1.7.17 and everything
worked fine. It played correctly (on a TT-S2 6400 prototype), the current
and total times displayed by the progress display were correct and I was
able to place and move an editing mark with the picture getting updated
just fine.


For me the frame detection works fine, but still the wrong framerate is written
to the info file (always F 25 is written there).
Maybe some nasty patch is breaking this for me, but i don't find it. Is this
really working correct for you?


Sorry, forgot to add this in my previous post.
I just did another recording on "arte HD", and this is the
info file I got:


C S19.2E-1-1011-11120 arte HD
E 35957 1301328600 3000 4E 6
T Mit Schirm, Charme und Melone
S Fit für Mord
D Hochkarätige Manager werden ermordet und von ihren kompetenten Sekretärinnen 
vertreten, die die Geschäfte nahtlos weiterführen. Alle Damen sind Mitglieder 
in einem Fitnessclub, in dem sich auch bald Emma Peel anmeldet.
G 15 30 33 F0
X 5 0B deu HD-Video
X 2 03 deu stereo
X 4 42 deu Dolby Digital 2.0
X 3 12 deu DVB-Untertitel
X 2 03 fra französisch
X 3 03 fra
V 1301328600
F 50
P 50
L 50


Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-28 Thread Klaus Schmidinger

On 28.03.2011 11:24, Tim wrote:

Am Samstag, 19. März 2011, um 13:02:02 schrieb Klaus Schmidinger:

- Fixed detecting frames on channels that broadcast with 50 or 60 fps.



I just made a recording from "arte HD" with VDR 1.7.17 and everything
worked fine. It played correctly (on a TT-S2 6400 prototype), the current
and total times displayed by the progress display were correct and I was
able to place and move an editing mark with the picture getting updated
just fine.


For me the frame detection works fine, but still the wrong framerate is written
to the info file (always F 25 is written there).
Maybe some nasty patch is breaking this for me, but i don't find it. Is this
really working correct for you?
Can you give me a hint where the information is transferred from the
cFrameDetector to cRecordingInfo?



void cRecorder::Action(void)
{
  ...
  if (frameDetector->Synced()) {
 if (!InfoWritten) {
cRecordingInfo RecordingInfo(recordingName);
if (RecordingInfo.Read()) {
   if (frameDetector->FramesPerSecond() > 0 && 
!DoubleEqual(RecordingInfo.FramesPerSecond(), frameDetector->FramesPerSecond())) {
  
RecordingInfo.SetFramesPerSecond(frameDetector->FramesPerSecond());
  RecordingInfo.Write();
  Recordings.UpdateByName(recordingName);
  }
   }
InfoWritten = true;
}


Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-28 Thread VDR User
On Mon, Mar 28, 2011 at 2:24 AM, Tim  wrote:
>> >> - Fixed detecting frames on channels that broadcast with 50 or 60 fps.
>
>> I just made a recording from "arte HD" with VDR 1.7.17 and everything
>> worked fine. It played correctly (on a TT-S2 6400 prototype), the current
>> and total times displayed by the progress display were correct and I was
>> able to place and move an editing mark with the picture getting updated
>> just fine.
>
> For me the frame detection works fine, but still the wrong framerate is 
> written
> to the info file (always F 25 is written there).
> Maybe some nasty patch is breaking this for me, but i don't find it. Is this
> really working correct for you?
> Can you give me a hint where the information is transferred from the
> cFrameDetector to cRecordingInfo?

I'll jump in and say that all my new HD recordings have the correct
framerate (mixture of 59.94 and 29.97) in their relative "info" files.
 I suspect some patch you're using is breaking this and you've
mentioned.  The good news is it should be pretty easy to figure out
which one.

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-28 Thread Tim
Am Samstag, 19. März 2011, um 13:02:02 schrieb Klaus Schmidinger:
> >> - Fixed detecting frames on channels that broadcast with 50 or 60 fps.

> I just made a recording from "arte HD" with VDR 1.7.17 and everything
> worked fine. It played correctly (on a TT-S2 6400 prototype), the current
> and total times displayed by the progress display were correct and I was
> able to place and move an editing mark with the picture getting updated
> just fine.

For me the frame detection works fine, but still the wrong framerate is written 
to the info file (always F 25 is written there).
Maybe some nasty patch is breaking this for me, but i don't find it. Is this 
really working correct for you?
Can you give me a hint where the information is transferred from the 
cFrameDetector to cRecordingInfo?

regards,
Tim


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-27 Thread Klaus Schmidinger

On 20.03.2011 21:07, Udo Richter wrote:

Am 20.03.2011 13:31, schrieb Klaus Schmidinger:

On 20.03.2011 12:46, Klaus Schmidinger wrote:

I have attached a patch that implements this.
Would this be ok?


Sorry, there was a line missing that makes sure the initial load
takes place. Attached is a revised version of the patch.


You're too fast for me :D


I like the general idea, but I have some points about it:
- Disappearing marks or replacing marks by older versions is not detected.


Ok, that would be the

  if (LastModified != lastFileTime)

change, agreed.


- Double updates within one second may get lost.
- I don't think that it hurts to poll every 10 seconds, so IMHO we can
drop the 3600s check.


I'd still like to phase that out, because for such old marks files
it just doesn't make sense to poll them any more.


- When in pause mode with the progress bar on OSD, the OSD doesn't get
updated when the marks get reloaded.

After some iterations I've ended with the attached patch that fixes the
first two issues, and is less messy with lastFileTime. Any change of
file time will be detected, and the new lastChange covers cases where no
marks file is present. There's a small gap with the lastFileTime == t
check on NFS volumes with unsynced clocks, but thats another story.

The third point is a matter of taste, and the fourth is not that important.


Can you please rewrite your patch so that it keeps the original 'd'
variable? I liked the fact that the 'nextUpdate' variable was incremented
in *one* place, and not in several places. Made the whole thing more
transparent to me. Besides, I could then see what you have *actually*
changed ;-)

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-20 Thread Udo Richter
Am 20.03.2011 13:31, schrieb Klaus Schmidinger:
> On 20.03.2011 12:46, Klaus Schmidinger wrote:
>> I have attached a patch that implements this.
>> Would this be ok?
> 
> Sorry, there was a line missing that makes sure the initial load
> takes place. Attached is a revised version of the patch.

You're too fast for me :D


I like the general idea, but I have some points about it:
- Disappearing marks or replacing marks by older versions is not detected.
- Double updates within one second may get lost.
- I don't think that it hurts to poll every 10 seconds, so IMHO we can
drop the 3600s check.
- When in pause mode with the progress bar on OSD, the OSD doesn't get
updated when the marks get reloaded.

After some iterations I've ended with the attached patch that fixes the
first two issues, and is less messy with lastFileTime. Any change of
file time will be detected, and the new lastChange covers cases where no
marks file is present. There's a small gap with the lastFileTime == t
check on NFS volumes with unsynced clocks, but thats another story.

The third point is a matter of taste, and the fourth is not that important.

Cheers,

Udo
diff -Naurp vdr-1.7.17-orig/recording.c vdr-1.7.17/recording.c
--- vdr-1.7.17-orig/recording.c	2011-02-27 14:35:20.0 +0100
+++ vdr-1.7.17/recording.c	2011-03-20 20:46:01.0 +0100
@@ -1270,19 +1270,30 @@ bool cMarks::Load(const char *RecordingF
 {
   fileName = AddDirectory(RecordingFileName, IsPesRecording ? MARKSFILESUFFIX ".vdr" : MARKSFILESUFFIX);
   framesPerSecond = FramesPerSecond;
-  lastUpdate = 0;
+  nextUpdate = 0;
   lastFileTime = -1; // the first call to Load() must take place!
+  lastChange = 0;
   return Update();
 }
 
 bool cMarks::Update(void)
 {
   time_t t = time(NULL);
-  if (t - lastUpdate > MARKSUPDATEDELTA) {
- lastUpdate = t;
- t = LastModifiedTime(fileName);
- if (t > lastFileTime) {
-lastFileTime = t;
+  if (t > nextUpdate) {
+ time_t LastModified = LastModifiedTime(fileName);
+ if (LastModified != lastFileTime) // Change detected, or first run
+lastChange = LastModified>0 ? LastModified : t;
+ if (t - lastChange < 60)
+nextUpdate = t + 1; // check frequently if the file has just been modified
+ else if (t - lastChange < 3600)
+nextUpdate = t + 10; // older files are checked less frequently
+ else
+nextUpdate = t + (t - lastChange)/360; // phase out checking for very old files
+   
+ if (LastModified != lastFileTime) { // Change detected, or first run
+lastFileTime = LastModified;
+if (lastFileTime == t)
+   lastFileTime--; // Make sure we don't miss updates in the remaining second
 cMutexLock MutexLock(&MutexMarkFramesPerSecond);
 MarkFramesPerSecond = framesPerSecond;
 if (cConfig::Load(fileName)) {
diff -Naurp vdr-1.7.17-orig/recording.h vdr-1.7.17/recording.h
--- vdr-1.7.17-orig/recording.h	2011-02-27 13:48:21.0 +0100
+++ vdr-1.7.17/recording.h	2011-03-20 19:35:27.0 +0100
@@ -192,8 +192,9 @@ class cMarks : public cConfig {
 private:
   cString fileName;
   double framesPerSecond;
-  time_t lastUpdate;
+  time_t nextUpdate;
   time_t lastFileTime;
+  time_t lastChange;
 public:
   bool Load(const char *RecordingFileName, double FramesPerSecond = DEFAULTFRAMESPERSECOND, bool IsPesRecording = false);
   bool Update(void);
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-20 Thread Klaus Schmidinger
On 20.03.2011 12:46, Klaus Schmidinger wrote:
> On 19.03.2011 22:42, Klaus Schmidinger wrote:
>> On 19.03.2011 21:56, Udo Richter wrote:
>>> Am 13.03.2011 12:46, schrieb Klaus Schmidinger:
 - While replaying, the editing marks are now updated every 10 seconds 
 (based on a
   patch from Manuel Reimer).
>>>
>>> Thanks for this! With it, the jumpplay-patch gets obsoleted for me, as I
>>> only used the marks reloading. (As a good-bye, I've posted an updated
>>> jumpplay at [1]).
>>>
>>> However, the VDR version also has the slow update speed of once every 10
>>> seconds that I don't like. Especially after editing, I usually
>>> immediately switch to the edited recording to check the result, and then
>>> have to either wait 10 seconds for all marks to appear, or re-start the
>>> replay to get updated marks. (With hard link cutter, editing is usually
>>> done in less than 10 seconds.)
>>>
>>> As a solution, I thought it would be a good idea to reload the marks
>>> file whenever the index file gets updated. Unfortunately, this is more
>>> complicated than I thought, because the marks reside in cReplayControl,
>>> while the index is in a cDvbPlayer which is owned by cDvbPlayerControl.
>>> There is no direct access to the index from cReplayControl.
>>>
>>> Polling for number of total frames via GetIndex() would work, as
>>> cReplayControl::ShowProgress does - but only if the editing OSD is
>>> visible. So add another polling of GetIndex(), and another lastTotal to
>>> check for changes? Not very elegant. The alternative would be some extra
>>> rewrites...
>>>
>>>
>>> Any thoughts on that?
>>
>> How about taking the age of the marks file into account?
>> Like, when checking whether the file has been changed, calculate
>> the age of the file (tm) and schedule the next check for "now + f(tm)".
>> That way, a file that has just been updated will be checked again
>> very soon, while an old file will only be checked rarely.
>> Ages under one minute could be treated as "one second", ages under
>> one hour as "10 seconds" and anything older could just result
>> in not rereading the marks file (since it's rather unlikely that
>> it will change once it's grown that old).
> 
> I have attached a patch that implements this.
> Would this be ok?

Sorry, there was a line missing that makes sure the initial load
takes place. Attached is a revised version of the patch.

Klaus
===
RCS file: ./RCS/recording.c
retrieving revision 2.26
diff -u -b -r2.26 ./recording.c
--- ./recording.c	2011/02/27 13:35:20	2.26
+++ ./recording.c	2011/03/20 12:25:00
@@ -1270,7 +1270,7 @@
 {
   fileName = AddDirectory(RecordingFileName, IsPesRecording ? MARKSFILESUFFIX ".vdr" : MARKSFILESUFFIX);
   framesPerSecond = FramesPerSecond;
-  lastUpdate = 0;
+  nextUpdate = 0;
   lastFileTime = -1; // the first call to Load() must take place!
   return Update();
 }
@@ -1278,11 +1278,27 @@
 bool cMarks::Update(void)
 {
   time_t t = time(NULL);
-  if (t - lastUpdate > MARKSUPDATEDELTA) {
- lastUpdate = t;
- t = LastModifiedTime(fileName);
- if (t > lastFileTime) {
-lastFileTime = t;
+  if (t > nextUpdate) {
+ time_t LastModified = LastModifiedTime(fileName);
+ int d;
+ if (LastModified > 0) // the file exists
+d = t - LastModified;
+ else { // the file doesn't exist
+if (lastFileTime <= 0) {
+   lastFileTime = t - 2; // -2 makes sure we don't miss an update within the very same second
+   LastModified = t; // make sure we run into the actual Load() below
+   }
+d = t - lastFileTime;
+}
+ if (d < 60)
+d = 1; // check frequently if the file has just been modified
+ else if (d < 3600)
+d = 10; // older files are checked less frequently
+ else
+d /= 360; // phase out checking for very old files
+ nextUpdate = t + d;
+ if (LastModified > lastFileTime) {
+lastFileTime = LastModified;
 cMutexLock MutexLock(&MutexMarkFramesPerSecond);
 MarkFramesPerSecond = framesPerSecond;
 if (cConfig::Load(fileName)) {
===
RCS file: ./RCS/recording.h
retrieving revision 2.16
diff -u -b -r2.16 ./recording.h
--- ./recording.h	2011/02/27 12:48:21	2.16
+++ ./recording.h	2011/03/20 10:33:30
@@ -192,7 +192,7 @@
 private:
   cString fileName;
   double framesPerSecond;
-  time_t lastUpdate;
+  time_t nextUpdate;
   time_t lastFileTime;
 public:
   bool Load(const char *RecordingFileName, double FramesPerSecond = DEFAULTFRAMESPERSECOND, bool IsPesRecording = false);
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-20 Thread Klaus Schmidinger
On 19.03.2011 22:42, Klaus Schmidinger wrote:
> On 19.03.2011 21:56, Udo Richter wrote:
>> Am 13.03.2011 12:46, schrieb Klaus Schmidinger:
>>> - While replaying, the editing marks are now updated every 10 seconds 
>>> (based on a
>>>   patch from Manuel Reimer).
>>
>> Thanks for this! With it, the jumpplay-patch gets obsoleted for me, as I
>> only used the marks reloading. (As a good-bye, I've posted an updated
>> jumpplay at [1]).
>>
>> However, the VDR version also has the slow update speed of once every 10
>> seconds that I don't like. Especially after editing, I usually
>> immediately switch to the edited recording to check the result, and then
>> have to either wait 10 seconds for all marks to appear, or re-start the
>> replay to get updated marks. (With hard link cutter, editing is usually
>> done in less than 10 seconds.)
>>
>> As a solution, I thought it would be a good idea to reload the marks
>> file whenever the index file gets updated. Unfortunately, this is more
>> complicated than I thought, because the marks reside in cReplayControl,
>> while the index is in a cDvbPlayer which is owned by cDvbPlayerControl.
>> There is no direct access to the index from cReplayControl.
>>
>> Polling for number of total frames via GetIndex() would work, as
>> cReplayControl::ShowProgress does - but only if the editing OSD is
>> visible. So add another polling of GetIndex(), and another lastTotal to
>> check for changes? Not very elegant. The alternative would be some extra
>> rewrites...
>>
>>
>> Any thoughts on that?
> 
> How about taking the age of the marks file into account?
> Like, when checking whether the file has been changed, calculate
> the age of the file (tm) and schedule the next check for "now + f(tm)".
> That way, a file that has just been updated will be checked again
> very soon, while an old file will only be checked rarely.
> Ages under one minute could be treated as "one second", ages under
> one hour as "10 seconds" and anything older could just result
> in not rereading the marks file (since it's rather unlikely that
> it will change once it's grown that old).

I have attached a patch that implements this.
Would this be ok?

Klaus
===
RCS file: ./RCS/recording.c
retrieving revision 2.26
diff -u -b -r2.26 ./recording.c
--- ./recording.c	2011/02/27 13:35:20	2.26
+++ ./recording.c	2011/03/20 11:44:29
@@ -1270,7 +1270,7 @@
 {
   fileName = AddDirectory(RecordingFileName, IsPesRecording ? MARKSFILESUFFIX ".vdr" : MARKSFILESUFFIX);
   framesPerSecond = FramesPerSecond;
-  lastUpdate = 0;
+  nextUpdate = 0;
   lastFileTime = -1; // the first call to Load() must take place!
   return Update();
 }
@@ -1278,11 +1278,25 @@
 bool cMarks::Update(void)
 {
   time_t t = time(NULL);
-  if (t - lastUpdate > MARKSUPDATEDELTA) {
- lastUpdate = t;
- t = LastModifiedTime(fileName);
- if (t > lastFileTime) {
-lastFileTime = t;
+  if (t > nextUpdate) {
+ time_t LastModified = LastModifiedTime(fileName);
+ int d;
+ if (LastModified > 0) // the file exists
+d = t - LastModified;
+ else { // the file doesn't exist
+if (lastFileTime <= 0)
+   lastFileTime = t - 2; // -2 makes sure we don't miss an update within the very same second
+d = t - lastFileTime;
+}
+ if (d < 60)
+d = 1; // check frequently if the file has just been modified
+ else if (d < 3600)
+d = 10; // older files are checked less frequently
+ else
+d /= 360; // phase out checking for very old files
+ nextUpdate = t + d;
+ if (LastModified > lastFileTime) {
+lastFileTime = LastModified;
 cMutexLock MutexLock(&MutexMarkFramesPerSecond);
 MarkFramesPerSecond = framesPerSecond;
 if (cConfig::Load(fileName)) {
===
RCS file: ./RCS/recording.h
retrieving revision 2.16
diff -u -b -r2.16 ./recording.h
--- ./recording.h	2011/02/27 12:48:21	2.16
+++ ./recording.h	2011/03/20 10:33:30
@@ -192,7 +192,7 @@
 private:
   cString fileName;
   double framesPerSecond;
-  time_t lastUpdate;
+  time_t nextUpdate;
   time_t lastFileTime;
 public:
   bool Load(const char *RecordingFileName, double FramesPerSecond = DEFAULTFRAMESPERSECOND, bool IsPesRecording = false);
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-19 Thread Klaus Schmidinger
On 19.03.2011 21:56, Udo Richter wrote:
> Am 13.03.2011 12:46, schrieb Klaus Schmidinger:
>> - While replaying, the editing marks are now updated every 10 seconds (based 
>> on a
>>   patch from Manuel Reimer).
> 
> Thanks for this! With it, the jumpplay-patch gets obsoleted for me, as I
> only used the marks reloading. (As a good-bye, I've posted an updated
> jumpplay at [1]).
> 
> However, the VDR version also has the slow update speed of once every 10
> seconds that I don't like. Especially after editing, I usually
> immediately switch to the edited recording to check the result, and then
> have to either wait 10 seconds for all marks to appear, or re-start the
> replay to get updated marks. (With hard link cutter, editing is usually
> done in less than 10 seconds.)
> 
> As a solution, I thought it would be a good idea to reload the marks
> file whenever the index file gets updated. Unfortunately, this is more
> complicated than I thought, because the marks reside in cReplayControl,
> while the index is in a cDvbPlayer which is owned by cDvbPlayerControl.
> There is no direct access to the index from cReplayControl.
> 
> Polling for number of total frames via GetIndex() would work, as
> cReplayControl::ShowProgress does - but only if the editing OSD is
> visible. So add another polling of GetIndex(), and another lastTotal to
> check for changes? Not very elegant. The alternative would be some extra
> rewrites...
> 
> 
> Any thoughts on that?

How about taking the age of the marks file into account?
Like, when checking whether the file has been changed, calculate
the age of the file (tm) and schedule the next check for "now + f(tm)".
That way, a file that has just been updated will be checked again
very soon, while an old file will only be checked rarely.
Ages under one minute could be treated as "one second", ages under
one hour as "10 seconds" and anything older could just result
in not rereading the marks file (since it's rather unlikely that
it will change once it's grown that old).

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-19 Thread Udo Richter
Am 13.03.2011 12:46, schrieb Klaus Schmidinger:
> - While replaying, the editing marks are now updated every 10 seconds (based 
> on a
>   patch from Manuel Reimer).

Thanks for this! With it, the jumpplay-patch gets obsoleted for me, as I
only used the marks reloading. (As a good-bye, I've posted an updated
jumpplay at [1]).

However, the VDR version also has the slow update speed of once every 10
seconds that I don't like. Especially after editing, I usually
immediately switch to the edited recording to check the result, and then
have to either wait 10 seconds for all marks to appear, or re-start the
replay to get updated marks. (With hard link cutter, editing is usually
done in less than 10 seconds.)

As a solution, I thought it would be a good idea to reload the marks
file whenever the index file gets updated. Unfortunately, this is more
complicated than I thought, because the marks reside in cReplayControl,
while the index is in a cDvbPlayer which is owned by cDvbPlayerControl.
There is no direct access to the index from cReplayControl.

Polling for number of total frames via GetIndex() would work, as
cReplayControl::ShowProgress does - but only if the editing OSD is
visible. So add another polling of GetIndex(), and another lastTotal to
check for changes? Not very elegant. The alternative would be some extra
rewrites...


Any thoughts on that?


Cheers,

Udo


[1] http://www.vdr-portal.de/board/thread.php?threadid=104863


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-19 Thread Juergen Lock
In article <4d84ee1d.8090...@gmx.de> you write:
>Am 19.03.2011 18:40, schrieb Juergen Lock:
>>  There is one remaining bug tho:  After playback of a short recording
>> (sd in this case, 20s or so), vdr seems to kind of hang and I have
>> to kill it...  Can you reproduce that?  Longer recordings are not
>> affected.
>
>This is probably an old bug: For me, VDR has always been hanging at the
>end of a recording, if that recording is shorter than one minute. Takes
>10 or 20 seconds, then brings you back to live view again. Its not that
>annoying, as recordings are usually longer, so I've never been going on
>bug hunt for this.

Ah yeah, that could well be it.  I also found that sometimes playback
of a short recording that was played before(?) doesn't start until
you hit green... (black screen or `no signal', don't remember.)

 Anyway, you are right, short recordings are kinda rare in real life. :)

 Thanx,
Juergen

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-19 Thread Udo Richter
Am 19.03.2011 18:40, schrieb Juergen Lock:
>  There is one remaining bug tho:  After playback of a short recording
> (sd in this case, 20s or so), vdr seems to kind of hang and I have
> to kill it...  Can you reproduce that?  Longer recordings are not
> affected.

This is probably an old bug: For me, VDR has always been hanging at the
end of a recording, if that recording is shorter than one minute. Takes
10 or 20 seconds, then brings you back to live view again. Its not that
annoying, as recordings are usually longer, so I've never been going on
bug hunt for this.

Cheers,

Udo

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-19 Thread Juergen Lock
In article <201103191519.p2jfjkzw037...@triton8.kn-bremen.de> you write:
>In article <4d849b3a.6060...@tvdr.de> you write:
>>On 17.03.2011 22:36, Juergen Lock wrote:
>>> In article <4d7caea2.9050...@tvdr.de> you write:
 VDR developer version 1.7.17 is now available at

  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.17.tar.bz2

 A 'diff' against the previous version is available at

  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.16-1.7.17.diff



 WARNING:
 

 This is a *developer* version. Even though *I* use it in my productive
 environment. I strongly recommend that you only use it under controlled
 conditions and for testing and debugging.


 [...]
 - Fixed detecting frames on channels that broadcast with 50 or 60 fps.
  This avoids artifacts during fast forward/rewind when replaying 
 recordings from such
  channels. To fix the index of existing recordings from such channels, 
 just delete the
  'index' file of the recording and VDR will generate a new one the next 
 time you play it.
  You should also change the line "F 25" to "F 50" in the 'info' file of 
 that recording.
 [...]
>>> 
>>> I wonder if I'm chasing a ghost there... am I really the only one
>>> seeing this?  I can't get this index rebuilding to work regardless
>>> if I try it with old or new recordings, if I mv away the original
>>> index file that was created with a recording I always get totally
>>> different index files rebuilt (checked with hexdump/cmp -l) that
>>> cause playbacks (via xineliboutput) to look quite corrupted immediately
>>> and make vdr-sxfe hang at eof too.
>>> 
>>>  This is vdr 1.7.17, xineliboutput is a 1.0.90s20110308.2305 checkout,
>>> FreeBSD 8.2/amd64, using these ports:
>>> 
>>> http://people.freebsd.org/~nox/dvb/vdr-20110317a.shar
>>> 
>>> (originally noticed with recordings from arte hd on 19.2E, but also
>>> reproduced with new short sd recordings, even from dvb-t.)
>>
>>I just made a recording from "arte HD" with VDR 1.7.17 and everything worked 
>>fine.
>>It played correctly (on a TT-S2 6400 prototype), the current and total
>>times displayed by the progress display were correct and I was able to
>>place and move an editing mark with the picture getting updated just
>>fine.
>
>So it also works when you stop vdr, mv the recording's index
>file away and then let vdr regenerate it?  Could this be an
>amd64/x86_64 issue?

Found the problem:  The FreeBSD patches disable USE_FADVISE in tools.c,
and there was an #else clause missing when its not defined:

--- tools.c.orig
+++ tools.c
@@ -1669,6 +1669,9 @@ ssize_t cUnbufferedFile::Read(void *Data
}
 }
  lastpos = curpos;
+#else
+ if (bytesRead > 0)
+curpos += bytesRead;
 #endif
  return bytesRead;
  }

 There is one remaining bug tho:  After playback of a short recording
(sd in this case, 20s or so), vdr seems to kind of hang and I have
to kill it...  Can you reproduce that?  Longer recordings are not
affected.

 Thanx, :)
Juergen

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-19 Thread Klaus Schmidinger
On 19.03.2011 16:19, Juergen Lock wrote:
> In article <4d849b3a.6060...@tvdr.de> you write:
>> On 17.03.2011 22:36, Juergen Lock wrote:
>>> In article <4d7caea2.9050...@tvdr.de> you write:
 VDR developer version 1.7.17 is now available at

  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.17.tar.bz2

 A 'diff' against the previous version is available at

  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.16-1.7.17.diff



 WARNING:
 

 This is a *developer* version. Even though *I* use it in my productive
 environment. I strongly recommend that you only use it under controlled
 conditions and for testing and debugging.


 [...]
 - Fixed detecting frames on channels that broadcast with 50 or 60 fps.
  This avoids artifacts during fast forward/rewind when replaying 
 recordings from such
  channels. To fix the index of existing recordings from such channels, 
 just delete the
  'index' file of the recording and VDR will generate a new one the next 
 time you play it.
  You should also change the line "F 25" to "F 50" in the 'info' file of 
 that recording.
 [...]
>>>
>>> I wonder if I'm chasing a ghost there... am I really the only one
>>> seeing this?  I can't get this index rebuilding to work regardless
>>> if I try it with old or new recordings, if I mv away the original
>>> index file that was created with a recording I always get totally
>>> different index files rebuilt (checked with hexdump/cmp -l) that
>>> cause playbacks (via xineliboutput) to look quite corrupted immediately
>>> and make vdr-sxfe hang at eof too.
>>>
>>>  This is vdr 1.7.17, xineliboutput is a 1.0.90s20110308.2305 checkout,
>>> FreeBSD 8.2/amd64, using these ports:
>>>
>>> http://people.freebsd.org/~nox/dvb/vdr-20110317a.shar
>>>
>>> (originally noticed with recordings from arte hd on 19.2E, but also
>>> reproduced with new short sd recordings, even from dvb-t.)
>>
>> I just made a recording from "arte HD" with VDR 1.7.17 and everything worked 
>> fine.
>> It played correctly (on a TT-S2 6400 prototype), the current and total
>> times displayed by the progress display were correct and I was able to
>> place and move an editing mark with the picture getting updated just
>> fine.
> 
> So it also works when you stop vdr, mv the recording's index
> file away and then let vdr regenerate it?

Yes, it does.

>  Could this be an amd64/x86_64 issue?

Maybe, I don't know.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-19 Thread Juergen Lock
In article <4d849b3a.6060...@tvdr.de> you write:
>On 17.03.2011 22:36, Juergen Lock wrote:
>> In article <4d7caea2.9050...@tvdr.de> you write:
>>> VDR developer version 1.7.17 is now available at
>>>
>>>  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.17.tar.bz2
>>>
>>> A 'diff' against the previous version is available at
>>>
>>>  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.16-1.7.17.diff
>>>
>>>
>>>
>>> WARNING:
>>> 
>>>
>>> This is a *developer* version. Even though *I* use it in my productive
>>> environment. I strongly recommend that you only use it under controlled
>>> conditions and for testing and debugging.
>>>
>>>
>>> [...]
>>> - Fixed detecting frames on channels that broadcast with 50 or 60 fps.
>>>  This avoids artifacts during fast forward/rewind when replaying recordings 
>>> from such
>>>  channels. To fix the index of existing recordings from such channels, just 
>>> delete the
>>>  'index' file of the recording and VDR will generate a new one the next 
>>> time you play it.
>>>  You should also change the line "F 25" to "F 50" in the 'info' file of 
>>> that recording.
>>> [...]
>> 
>> I wonder if I'm chasing a ghost there... am I really the only one
>> seeing this?  I can't get this index rebuilding to work regardless
>> if I try it with old or new recordings, if I mv away the original
>> index file that was created with a recording I always get totally
>> different index files rebuilt (checked with hexdump/cmp -l) that
>> cause playbacks (via xineliboutput) to look quite corrupted immediately
>> and make vdr-sxfe hang at eof too.
>> 
>>  This is vdr 1.7.17, xineliboutput is a 1.0.90s20110308.2305 checkout,
>> FreeBSD 8.2/amd64, using these ports:
>> 
>>  http://people.freebsd.org/~nox/dvb/vdr-20110317a.shar
>> 
>> (originally noticed with recordings from arte hd on 19.2E, but also
>> reproduced with new short sd recordings, even from dvb-t.)
>
>I just made a recording from "arte HD" with VDR 1.7.17 and everything worked 
>fine.
>It played correctly (on a TT-S2 6400 prototype), the current and total
>times displayed by the progress display were correct and I was able to
>place and move an editing mark with the picture getting updated just
>fine.

So it also works when you stop vdr, mv the recording's index
file away and then let vdr regenerate it?  Could this be an
amd64/x86_64 issue?

 Thanx,
Juergen

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-19 Thread Klaus Schmidinger
On 17.03.2011 22:36, Juergen Lock wrote:
> In article <4d7caea2.9050...@tvdr.de> you write:
>> VDR developer version 1.7.17 is now available at
>>
>>  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.17.tar.bz2
>>
>> A 'diff' against the previous version is available at
>>
>>  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.16-1.7.17.diff
>>
>>
>>
>> WARNING:
>> 
>>
>> This is a *developer* version. Even though *I* use it in my productive
>> environment. I strongly recommend that you only use it under controlled
>> conditions and for testing and debugging.
>>
>>
>> [...]
>> - Fixed detecting frames on channels that broadcast with 50 or 60 fps.
>>  This avoids artifacts during fast forward/rewind when replaying recordings 
>> from such
>>  channels. To fix the index of existing recordings from such channels, just 
>> delete the
>>  'index' file of the recording and VDR will generate a new one the next time 
>> you play it.
>>  You should also change the line "F 25" to "F 50" in the 'info' file of that 
>> recording.
>> [...]
> 
> I wonder if I'm chasing a ghost there... am I really the only one
> seeing this?  I can't get this index rebuilding to work regardless
> if I try it with old or new recordings, if I mv away the original
> index file that was created with a recording I always get totally
> different index files rebuilt (checked with hexdump/cmp -l) that
> cause playbacks (via xineliboutput) to look quite corrupted immediately
> and make vdr-sxfe hang at eof too.
> 
>  This is vdr 1.7.17, xineliboutput is a 1.0.90s20110308.2305 checkout,
> FreeBSD 8.2/amd64, using these ports:
> 
>   http://people.freebsd.org/~nox/dvb/vdr-20110317a.shar
> 
> (originally noticed with recordings from arte hd on 19.2E, but also
> reproduced with new short sd recordings, even from dvb-t.)

I just made a recording from "arte HD" with VDR 1.7.17 and everything worked 
fine.
It played correctly (on a TT-S2 6400 prototype), the current and total
times displayed by the progress display were correct and I was able to
place and move an editing mark with the picture getting updated just
fine.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-17 Thread Juergen Lock
In article <4d7caea2.9050...@tvdr.de> you write:
>VDR developer version 1.7.17 is now available at
>
>  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.17.tar.bz2
>
>A 'diff' against the previous version is available at
>
>  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.16-1.7.17.diff
>
>
>
>WARNING:
>
>
>This is a *developer* version. Even though *I* use it in my productive
>environment. I strongly recommend that you only use it under controlled
>conditions and for testing and debugging.
>
>
>[...]
>- Fixed detecting frames on channels that broadcast with 50 or 60 fps.
>  This avoids artifacts during fast forward/rewind when replaying recordings 
> from such
>  channels. To fix the index of existing recordings from such channels, just 
> delete the
>  'index' file of the recording and VDR will generate a new one the next time 
> you play it.
>  You should also change the line "F 25" to "F 50" in the 'info' file of that 
> recording.
>[...]

I wonder if I'm chasing a ghost there... am I really the only one
seeing this?  I can't get this index rebuilding to work regardless
if I try it with old or new recordings, if I mv away the original
index file that was created with a recording I always get totally
different index files rebuilt (checked with hexdump/cmp -l) that
cause playbacks (via xineliboutput) to look quite corrupted immediately
and make vdr-sxfe hang at eof too.

 This is vdr 1.7.17, xineliboutput is a 1.0.90s20110308.2305 checkout,
FreeBSD 8.2/amd64, using these ports:

http://people.freebsd.org/~nox/dvb/vdr-20110317a.shar

(originally noticed with recordings from arte hd on 19.2E, but also
reproduced with new short sd recordings, even from dvb-t.)

 ..and before I forget, Thanx for vdr! :)
Juergen

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-14 Thread Reinhard Nissl

Hi,

Am 14.03.2011 09:54, schrieb Simon Baxter:

On Mon, Mar 14, 2011 at 12:21 AM, Simon Baxter
 wrote:

Just switched from vdr-1.7.16 to vdr-1.7.17 and am getting
these error
messages.

Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: switching
to MPEG1/2
mode
Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: operating
in MPEG1/2
mode


Those aren't error messages, they're just information messages
from vdr-xine.



Sorry, forgot to mention - I'm getting severe video slipping. The
audio sounds OK, but the video skips every few seconds as per the
timestamps:

Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: switching to
MPEG1/2 mode
Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: operating in
MPEG1/2 mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: switching to
MPEG1/2 mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: operating in
MPEG1/2 mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: switching to
MPEG1/2 mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: operating in
MPEG1/2 mode
Mar 14 20:08:57 freddy vdr: [10728] cVideoRepacker: switching to
MPEG1/2 mode
Mar 14 20:08:57 freddy vdr: [10728] cVideoRepacker: operating in
MPEG1/2 mode
Mar 14 20:08:58 freddy vdr: [10728] cVideoRepacker: switching to
MPEG1/2 mode
Mar 14 20:08:58 freddy vdr: [10728] cVideoRepacker: operating in
MPEG1/2 mode


Looks like you're missing a patch for vdr-xine-0.9.3 to make it 
compatible with vdr-1.7.12. Because since that version, channels 
with PPID != VPID are handled differently by VDR, hence causing 
this issue in vdr-xine.


vdr-xine-0.9.4 will include that patch, but it will still take a 
few days to get it ready.


Bye.
--
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rni...@gmx.de
--- ../xine-0.9.3/xineDevice.c	2009-06-17 20:06:35.0 +0200
+++ xineDevice.c	2010-02-08 22:54:00.0 +0100
@@ -1539,7 +1546,13 @@ fclose(ff);
   {
 #if APIVERSNUM >= 10701
 if (Length >= TS_SIZE)
-  m_tsVideoPid = TsPid(Data);   
+{
+#if APIVERSNUM >= 10712
+  m_tsVideoPid = PatPmtParser()->Vpid();
+#else
+  m_tsVideoPid = TsPid(Data);
+#endif
+}
 #endif
 return Length;
   }
@@ -4119,6 +4132,8 @@ store_frame(jumboPESdata, todo, __LINE__
   
   void cXineDevice::MakePrimaryDevice(bool On)
   {
+cDevice::MakePrimaryDevice(On);
+
 xfprintf(stderr, "-\n");
 xfprintf(stderr, "MakePrimaryDevice: %d\n", On);
 xfprintf(stderr, "=\n");
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-14 Thread Simon Baxter
On Mon, Mar 14, 2011 at 12:21 AM, Simon Baxter  
wrote:

Just switched from vdr-1.7.16 to vdr-1.7.17 and am getting these error
messages.

Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2
mode
Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2
mode


Those aren't error messages, they're just information messages from 
vdr-xine.




Sorry, forgot to mention - I'm getting severe video slipping.  The audio 
sounds OK, but the video skips every few seconds as per the timestamps:


Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:08:57 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:57 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:08:58 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:58 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode




___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-14 Thread VDR User
On Mon, Mar 14, 2011 at 12:21 AM, Simon Baxter  wrote:
> Just switched from vdr-1.7.16 to vdr-1.7.17 and am getting these error
> messages.
>
> Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2
> mode
> Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2
> mode

Those aren't error messages, they're just information messages from vdr-xine.

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-14 Thread Simon Baxter
Just switched from vdr-1.7.16 to vdr-1.7.17 and am getting these error 
messages.




Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:51 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:55 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:08:57 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:57 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:08:58 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:08:58 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:09:01 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:09:01 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:09:09 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:09:09 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:09:14 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:09:14 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode
Mar 14 20:09:18 freddy vdr: [10728] cVideoRepacker: switching to MPEG1/2 
mode
Mar 14 20:09:18 freddy vdr: [10728] cVideoRepacker: operating in MPEG1/2 
mode



I see there were some few changes in remux.c - any thoughts?

The only patch I've implemented in both vdr-1.7.16 and vdr-1.7.17 is as 
follows, to get around a problem decoding my dvb-c channels:


# diff device.c.orig device.c
1502,1513c1502,1513
< if (CamSlotNumber) {
 TS_SCRAMBLING_TIMEOUT)
<  DetachReceivers = true;
<   }
 TS_SCRAMBLING_TIME_OK) {
<   DescramblingOk = true;
<   startScrambleDetection = 0;
<   }
<}
---

//SBB if (CamSlotNumber) {
//   bool Scrambled = b[3] & TS_SCRAMBLING_CONTROL;
//   int t = time(NULL) - startScrambleDetection;
//   if (Scrambled) {
//  if (t > TS_SCRAMBLING_TIMEOUT)
// DetachReceivers = true;
//  }
//   else if (t > TS_SCRAMBLING_TIME_OK) {
//  DescramblingOk = true;
//  startScrambleDetection = 0;
//  }
//   }




___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-13 Thread Klaus Schmidinger
On 13.03.2011 14:38, Matti Lehtimäki wrote:
> On 2011-03-13 13:46, Klaus Schmidinger wrote:
> 
>> - Changed the compiler optimization flag to -O3, which gives quite a
>> performance
>>boost in the AlphaBlend() function.
> 
> I noticed that this change was not made to Make.config.template as it
> should be since Make.config overrides CFLAGS and CXXFLAGS defined in
> Makefile.

Sorry, must have missed that one.
Changed for 1.7.18.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-13 Thread Matti Lehtimäki

On 2011-03-13 13:46, Klaus Schmidinger wrote:


- Changed the compiler optimization flag to -O3, which gives quite a performance
   boost in the AlphaBlend() function.


I noticed that this change was not made to Make.config.template as it 
should be since Make.config overrides CFLAGS and CXXFLAGS defined in 
Makefile.


-Matti

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-13 Thread Klaus Schmidinger
On 13.03.2011 14:11, Luca Olivetti wrote:
> Al 13/03/11 12:46, En/na Klaus Schmidinger ha escrit:
> 
>> This version introduces support for TrueColor OSD.
>> Note, though, that output plugins need to be enhanced in order
>> to support actual TrueColor display (if the device they control
>> can handle TrueColor). 
> 
> And if it cannot, will it work without modifications?
> What about plugins that just draw to an osd, will they work
> without modifications?

Everything should work without modifications.
At least that's the plan ;-)

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-13 Thread Luca Olivetti
Al 13/03/11 12:46, En/na Klaus Schmidinger ha escrit:

> This version introduces support for TrueColor OSD.
> Note, though, that output plugins need to be enhanced in order
> to support actual TrueColor display (if the device they control
> can handle TrueColor). 

And if it cannot, will it work without modifications?
What about plugins that just draw to an osd, will they work
without modifications?

Bye
-- 
Luca

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[vdr] [ANNOUNCE] VDR developer version 1.7.17

2011-03-13 Thread Klaus Schmidinger
VDR developer version 1.7.17 is now available at

  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.17.tar.bz2

A 'diff' against the previous version is available at

  ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.16-1.7.17.diff



WARNING:


This is a *developer* version. Even though *I* use it in my productive
environment. I strongly recommend that you only use it under controlled
conditions and for testing and debugging.


This version introduces support for TrueColor OSD.
Note, though, that output plugins need to be enhanced in order
to support actual TrueColor display (if the device they control
can handle TrueColor). Also, skins that want to make use of
TrueColor may need to be adapted to the new interface using cPixmap.


The changes since version 1.7.16:

- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Fixed following symbolic links in RemoveFileOrDir() (cont'd) (thanks to
  Steffen Barszus).
- Changed the description of cDevice::GetSTC() to make it mandatory for devices
  that can replay.
- Removed the check for positive STC values from 
cDvbSubtitleConverter::Action().
- Added cString::operator=(const char *String) (suggested by Antti Seppälä).
- Some spelling fixes (thanks to Ville Skyttä).
- Passing package name and version to xgettext (thanks to Ville Skyttä).
- Made 'dist' target dependent on up to date *.po (thanks to Ville Skyttä).
- Added Language and fixed Language-Team header of *.po (thanks to Ville 
Skyttä).
- Updated the Lithuanian OSD texts (thanks to Valdemaras Pipiras).
- Fixed detecting frames on channels that broadcast with 50 or 60 fps.
  This avoids artifacts during fast forward/rewind when replaying recordings 
from such
  channels. To fix the index of existing recordings from such channels, just 
delete the
  'index' file of the recording and VDR will generate a new one the next time 
you play it.
  You should also change the line "F 25" to "F 50" in the 'info' file of that 
recording.
- Added support for "registration descriptor" to 'libsi' and using it in pat.c 
(thanks
  to Rolf Ahrenberg).
- Fixed unjustified log entries about changed channel pids (reported by Derek 
Kelly).
- Added an include of VDR's 'Make.global' to libsi's Makefile (thanks to Rolf
  Ahrenberg).
- Removed displaying the "contents" information from the "Classic VDR" and
  "ST:TNG Panels" skins, because it is often wrong and nothing but irritating.
- Added typecasts to avoid gcc 4.5 warnings in switch statements on eKeys
  variables where additional 'k_...' flags are used.
- Fixed inclusion of  (thanks to Henning Heinold).
- Changed "frame duration" to "frame rate" in vdr.5 (reported by Tobias Grimm).
- Removing a cRemote from the Remotes list in case its initialization failed 
(thanks
  to Dominik Strasser).
- Added LDFLAGS to the linker calls in the Makefiles (thanks to Joerg 
Bornkessel and
  Paul Menzel).
- Now updating the 'frames per second' data in the list of recordings when a new
  recording is started that has a frame rate other than the default.
- The include path to the freetype2 header files is now retrieved via a call to
  'pkg-config --cflags freetype2' (suggested by Andreas Oberritter).
- The OSD now has full TrueColor support. There can be several "pixmaps" that 
can
  be overlayed with alpha blending. All existing skins should work out of the 
box
  with the TrueColor OSD - the only exception being cOsd::GetBitmap(). Since the
  TrueColor OSD doesn't use bitmaps, this function will return a dummy bitmap, 
which
  may not be what the plugin expects. As long as this bitmap is only used for 
setting
  the palette, there is no problem. However, any other operations on this 
bitmap will
  have no effect. See the description of the cPixmap functions in osd.h for 
details
  about the new functionalities.
  The "ST:TNG Panels" skin has been enhanced to automatically use the TrueColor 
OSD
  if available.
  The "osddemo" plugin has been extended to show some of the possibilities of 
the
  TrueColor OSD if it is run on a system that actually provides TrueColor 
support.
  Thanks to Reinhard Nissl for some valuable input, help with debugging, and an
  implementation of the AlphaBlend() function.
- Updated the Slovakian language texts (thanks to Milan Hrala).
- Added Serbian language texts (thanks to Milan Cvijanovic).
- Fixed reallocating memory in the "pictures" plugin (reported by Paul Menzel, 
with
  input from Oliver Endriss).
- Fixed reallocating memory in cTsToPes::PutTs() (suggested by Oliver Endriss).
- Now checking the result of all realloc() calls.
- Fixed setting up the 'Recordings' menu in case there are several recordings
  with exactly the same name (reported by Marcus Hilbrich).
- Setting the audio type of language descriptors to 0x00 in the PAT/PMT 
generator
  (thanks to Anssi Hannula).
- Changed the compiler optimization flag to -O3, which gives quite a performance
  boost in the AlphaBlend() function.
- While replaying, the editing marks are now updated every