Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: Bug in 'PauseLiveVideo'



theNoad wrote:
> 
> ...
> >> --- vdr-1.2.1/menu.c    2003-06-14 10:40:42.000000000 +0200
> >> +++ vdr-1.2.1patch/menu.c       2003-06-15 00:10:21.000000000 +0200
> >> @@ -3115,12 +3115,35 @@
> >>
> >>  bool cRecordControls::PauseLiveVideo(void)
> >>  {
> >> +  char *theInstantId = NULL;
> >> +  cTimer *timer = new cTimer(true, true);
> >> +  cDevice *device = cDevice::PrimaryDevice();//XXX
> >> +  asprintf(&theInstantId, cDevice::NumDevices() > 1 ? "%s - %d" : "%s",
> >> timer->Channel()->Name(), device->CardIndex() + 1);
> >
> > This won't work reliably on systems with more than one device, since you
> > can't know which device the recording was started on.

Please leave a blank line between the quoted text and your reply.
Without that it's hard to locate the actual new text...

> Sorry to hear. Any hints to solve this? As i have only a single-card-system i
> can't check any multi-card-considerations.

I'm afraid not. Besides, the most important thing (the crash) is fixed
by my change. If a user starts several "Pause live video" sessions
I think this is just the same as if he/she would start several "instant
recordings".

There's another point: imagine somebody starting "Pause" at 20:00 (which,
by default, will run for 3 hours) and resuming replay at 20:15 for some
15 minutes, then stopping (not pausing!) replay for some reason.
At, say, 22:00 he comes back to the TV, totally forgetting about the
paused live video session (maybe the broadcast wasn't that interesting)
and sees that there is an interesting programme on that same channel now.
Unfortunately the phone rings, so he just does (another) "Pause live video",
knowing that this will give him 3 hours of buffered video. Well, think again!
If we change things the way you suggested, he would get only _one_ hour of
buffered video, since he would be switched back to the recording he started
at 20:00. In addition, he wouldn't be set to the current position of the
programme, but rather to the position in the recording where he left of
at 20:30!

Maybe this scenario is a little far-fetched, or not even possible - I didn't
explicitly test this. If so, please correct me.

> ...
> Reading this i was surprised how easy things could be done with better
> knowledge of vdr :-).

Well, there are many ways to do things ;-)

> Testing this it only solved one part of the problem :-(
> To clear up what i've noticed, i try to describe it again:
> Part 1: (really a bug)
> Start pause live video, stop it and start pause live video again in the same
> minute as the first start gives the same recording-filename for the
> recording. This situation is handled by the patch you've written above.
> 
> Part 2: (imho at least a strange behavior)
> Start pause live video, stop it and start pause live video again(on the same
> channel) with a delay of more than 1 minute after the first start gives the a
> new recording-filename for the recording. This situation is not handled by
> the patch you've written above. As before, in this situation there are two
> recordings on the same channel, also visible in the menu of vdr.

You are right about this, but please consider my remarks above.

Maybe we should make it so that at any given time there can be only
_one_ "Pause live video" session running. But then again that would
limit the users flexibility. For the moment I suggest you just don't start
too many paused sessions, as well as you shouldn't start too many immediate
recordings.

BTW: I'd like to give you credit in VDR/CONTRIBUTORS for reporting this crash,
but I only do so for "real people". So, if you'd like to be listed, please provide
your real name.

Klaus


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index