Skip to main content

Clarification on DVR Recording Properties

1 reply [Last post]
amirn
Offline
Joined: 2009-05-06
Points: 0

We are seeing some issues with Recording Properties setttings in 1.1.4-RELB
when testing Section 6.2.1.1.4 of the DVR-I05 spec:

(1) If the retentionPriority is DELETE_AT_EXPIRATION, then the implementation SHALL
NOT allow any application to access the RecordedService past the expiration period. If playback
is in progress when the recordings expiration period is reached, the playback SHALL be terminated.
The implementation SHALL delete the RecordedService within one hour after the expiration of
the recording. The implementation SHALL NOT allow playback of a recording marked for deletion.

The Expiration Time is set to 0 and recording priority is updated from P2 to P0, because we want to force the stack to immediately delete the recording upon expiration.

In that use case, the stack does not seem to delete the recording.

Looking at the implementation, I see the following code:

RecordingImpl.java
void updateRecordingProperties(RecordingProperties properties)
{
long tempExpirationPeriod = RecordingManagerImpl.roundOffOverflow(properties.getExpirationPeriod(),
m_info.getRequestedStartTime());
// update expiration if valid
if (tempExpirationPeriod > System.currentTimeMillis())
m_info.setExpirationDate(new Date(tempExpirationPeriod));
[...]
}

So it looks like Expiration Time of 0 is not considered valid.

Could you please comment?

Thanks,
Amir.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
cpratt
Offline
Joined: 2008-12-18
Points: 0

What's the expectation when expirationPeriod is set to 0?

From the Javadoc:

expirationPeriod - The period in seconds after the initiation of recording when leaf recording requests with this recording property are deemed as expired. The implementation will delete recorded services based on the expirationPeriod and retentionPriority parameters. This is done without application intervention and transitions those recording requests to the deleted state.

I would presume that a value of "0" would put the RecordingRequest into the deleted 0 seconds "after the initiation of recording".

I do think there's a bug in updateRecordingProperties() - as there's nothing stating that an expiration value that implies an expiration time prior to the invocation of updateRecordingProperties() is invalid (including "0"). Any time in this range should probably result in the RS being deleted immediately.

Is this your understanding as well?