[mythtv-users] Updating the end time or offset of a recording in progress
Bill Meek
keemllib at gmail.com
Tue Apr 30 14:22:33 UTC 2019
On 4/30/19 6:59 AM, mythtv wrote:
> On 4/30/19 6:55 AM, John Pilkington wrote:
>> On 30/04/2019 12:37, mythtv wrote:
>>> On 4/29/19 9:02 PM, mythtv wrote:
>>>> On 4/29/19 8:17 PM, David Engel wrote:
>>>>> On Mon, Apr 29, 2019 at 07:13:27PM -0500, mythtv wrote:
>>>>>> I'm trying to create my own version of Myth Recording Extender but using the Dvr services API instead of directly writing to the DB. I'm
>>>>>> able to call the GetEncoderList service and determine that an NHL game is being recorded, I can get the status of the game from a website.
>>>>>> I can get the original recording rule that caused the game to be recorded. What I can't do is to actually extend the recording. I can call
>>>>>> UpdateRecordSchedule and pass it a new endTime (which only seems to actually work once), or I can give it a new endOffset which seems to
>>>>>> work multiple times. But I think I have a problem: The recording rule is actually a Power Search and I'm not sure it's actually affecting
>>>>>> the in-progress recording. When I get the rule from GetRecordSchedule, the actual start and end times are from back when I created the
>>>>>> rule (back in 2015), so I don't think I'm really getting the right rule. Is there some way within the services to extended an in-progress
>>>>>> recording? Thanks for any help.
>>>>> Use Dvr/GetRecordSchedule. Specify the program in quesiton using nChanId and dStartTimeRaw and set bMakeOverride to true. It should
>>>>> probably aslo work by using nRecordedId but it currently doesn't. That will give a recording rule you can use to call Dvr/AddRecordSchedule
>>>>> or Dvr/UpdateRecordSchedule. Use the former if nRecordId is 0 and the latter otherwise. David
>>>> Sorry, I sent the reply to the wrong address. Ok, I've implemented that. I'm not sure if its working but I'll know later in the week.
>>>>
>>>> For now, it looks like the only thing I can adjust is the endOffset, correct? Changing the endTime acts like before, it doesn't seem to
>>>> stick each time I call GetRecordSchedule and Add/Update, but the endOffset seems to stick. Hopefully that will be enough to advise Myth to
>>>> keep recording.
>>>>
>>>> Thanks for the help!
>>>>
>>> Well, although it looked as if everything was going swimmingly, it actually failed to continue recording beyond the normal stop time. I
>>> noticed a service operation called rescheduleRecordings. Do I need to call that any time I make a change to a recording? Or does the
>>> endOffset of the current recording not get taken into effect? Am I missing anything else?
>>>
>>> I'd like to dig through the code and follow the logic but I don't really know where all of this logic takes place. I know C++, just not Qt. I
>>> guess I'd need to know where or how the updated recording is being sent to the current in-progress recording, or how the recording knows when
>>> to stop recording and if/how it can be updated.
>>>
>>> Thanks! I feel like I'm close and would love to revive MRE if possible.
>>>
>>
>> I don't know if this will help in your efforts to automate it, but in the frontend, when a Recording is selected, the Menu key has
>>
>> Recording Options > Edit Recording Schedule > Schedule Options >
>> End Recording X minutes late.
>>
>> This will work while a recording is in progress.
>>
> Thanks, that at least tells me that there's probably a way to do it through the services as well. But that also tells me that updating the
> endOffset is probably correct but its not taking effect for some reason. Maybe the rescheduleRecordings needs to occur or something. I will play
> with it some more later today.
I've used Dvr/UpdateRecordSchedule successfully when a certain network has overtime events
that cause following programs to start late (I just extend their EndOffsets.)
I just tested this with a Power Rule. During a +33 minute EndOffset, I changed to
+22 minutes. The recording stopped in +22. Also, I'm modifying the rule itself, not an
override as David mentioned above (need to try that myself.)
UpdateRecordSchedule calls RecordingRule::Save that does ScheduledRecording::RescheduleMatch
so you don't need to do anything to have changes take affect.
--
Bill
More information about the mythtv-users
mailing list