Skip to main content

Getting BeginningOfContentEvent for TSB maximum depth

5 replies [Last post]
tkooger
Offline
Joined: 2010-09-08
Points: 0

The test creates a TSB that has a duration of 35 seconds and pauses the TSB at 30 seconds. Then waits for 1.5 minutes for the BeginningOfContentEvent that should be sent when the starting media time is going to over write the paused media time. It never receives the event.

Looking at the code the TSBServicePresentation will never send this event unless an AlternativeContentEvent with reason RATING_PROBLEM occurs. This seems to go agents the spec which stats.

If the write point of the time-shift buffer is about to overwrite the location corresponding to the current
media time due to circular buffer reaching its depth, the implementation SHALL set the playback rate
to 1.0 in order to prevent the location corresponding to the current media time being invalidated. The
implementation SHALL send a BeginningOfContentEvent to any registered controller
listeners. This SHOULD occur only when the playback is at a rate less than 1.0. The time-shift buffer
implementation SHOULD make sure that the location corresponding to the current media time is never
invalidated.

How is this event supposed to occur?

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
scottdeboy
Offline
Joined: 2009-02-02
Points: 0

The signaling of DVRAPI.Event.START_OF_FILE from the platform results in a BeginningOfContentEvent at rate 1.0 - see TSBServicePresentation#handleStartOfFile for the implementation.

A side note: the platform is free to buffer more than the requested minimum duration of content, and you are probably seeing that with this test.

tkooger
Offline
Joined: 2010-09-08
Points: 0

Where in the code does the platform decide that it wants to buffer more then the duration of the TSB?

scottdeboy
Offline
Joined: 2009-02-02
Points: 0

TimeShiftManagerImpl#m_defaultDuration is the value that is passed to the platform as a requested tsb size.

The default duration is defined in TimeShiftManagerImpl's constructor and can be configured via an entry in final.properties:
OCAP.dvr.tsb.defaultsize

tkooger
Offline
Joined: 2010-09-08
Points: 0

Ok, I see that the duration gets set to 35 seconds. The test waits 1.5 minutes and we should only need another 35 seconds to have this BeginingOfContentEvent get triggered, it does not happen should I create a bug in issue tracker for this?

scottdeboy
Offline
Joined: 2009-02-02
Points: 0

Feel free to create an IssueTracker issue.

Please provide any custom settings you have defined in final.properties and also attach an RILog.txt demonstrating the issue with both JAVA and DVR DEBUG un-commented in the appropriate mpeenv.ini (and please ensure RILog.txt contains timestamps).

Thanks
Scott