Ticket #137 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

Problem with Flowplayer mid-roll on duration based streams with a start time

Reported by: paul Owned by: paul
Priority: blocker Milestone: OVA for Flowplayer (0.5.2)
Component: OVA for Flowplayer Version: OVA for Flowplayer (trunk)
Keywords: Cc:
Forum thread:

Description

There is a scheduling problem with Flowplayer mid-rolls on show streams that have a start time.

See examples/start-time/example06.html

13:19:31 GMT+0100: * STREAM SEQUENCE BUILT - 3 STREAMS INDEXED
13:19:31 GMT+0100: 0: key: 0, id: show-d-0-0, originatingStreamIndex: 0, baseURL: null, streamName:  http://streaming.openvideoads.org:81/shows/the-black-hole.mp4, startTime: 00:00:15, duration: -10, originalDuration: 90, reduceLength: true, isSlice: true, streamType: any, bitrate: -1, mimeType: null, deliveryType: any, playOnce: false, metaData: true, previewImage: null, fireTrackingEvents: false
13:19:31 GMT+0100: 1: key: 0, id: mid-roll0, originatingStreamIndex: 0, baseURL: null, streamName:  http://static.bouncingminds.com/ads/30secs/country_life_butter.mp4, startTime: 00:00:05, duration: 30, originalDuration: null, reduceLength: false, isSlice: false, streamType: any, bitrate: -1, mimeType: null, deliveryType: any, playOnce: false, metaData: true, previewImage: null, fireTrackingEvents: false, adSlotId: mid-roll0-0, width: -1, height: -1, position: mid-roll, originatingAssociatedStreamIndex: 0, associatedStreamIndex: 0, associatedStreamStartTime: 0, showNotice: true, metaData: true, regions: [object Object], templates: [object Object]

Change History

comment:1 Changed 3 years ago by paul

This exception is being thrown:

TypeError: Error #1010: A term is undefined and has no properties.

at org.openvideoads.plugin.flowplayer.streamer::OpenAdStreamer/onNonLinearSchedule()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.flowplayer/src/org/openvideoads/plugin/flowplayer/streamer/OpenAdStreamer.as:614
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at org.openvideoads.base::EventController/dispatchEvent()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/base/EventController.as:36
at org.openvideoads.vast::VASTController/onScheduleNonLinear()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/VASTController.as:516
at org.openvideoads.vast.schedule.ads::AdSchedule/fireNonLinearSchedulingEvents()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/schedule/ads/AdSchedule.as:304
at org.openvideoads.vast::VASTController/onTemplateLoaded()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/VASTController.as:562
at org.openvideoads.vast.schedule.ads::AdSchedule/onTemplateLoaded()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/schedule/ads/AdSchedule.as:206
at org.openvideoads.vast.server::AdServerRequestProcessor/postProcessRequestsAndNotifyListener()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/server/AdServerRequestProcessor.as:118
at org.openvideoads.vast.server::AdServerRequestProcessor/moveOntoNextAdServerRequestGroup()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/server/AdServerRequestProcessor.as:98
at org.openvideoads.vast.server::AdServerRequestProcessor/onTemplateLoaded()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/server/AdServerRequestProcessor.as:127
at org.openvideoads.vast.model::VideoAdServingTemplate/signalTemplateLoaded()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/model/VideoAdServingTemplate.as:200
at org.openvideoads.vast.model::VideoAdServingTemplate/templateLoaded()Users/paulschulz/workspace/ova/lt-svn/trunk/ova.as3/src/org/openvideoads/vast/model/VideoAdServingTemplate.as:143
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

comment:2 Changed 3 years ago by paul

Tracked the problem down to this code in VASTController:

public function onScheduleStream(scheduleIndex:int, stream:Stream):void {

if((trackStreamSlices == false) && (stream.isSlicedStream()) && (!stream.isFirstSlice())) {

don't notify that this stream slice is to be scheduled
doLog("Ignoring 'onScheduleStream' request for stream " + stream.url, Debuggable.DEBUG_SEGMENT_FORMATION);

}
else {

As a result of this, the stream schedule notification is not being sent so when the mid-roll and overlays are to be scheduled there isn't a stream to schedule against.

comment:3 Changed 3 years ago by paul

  • Status changed from new to closed
  • Resolution set to fixed

Actually, the problem was really here in the OpenAdStreamer class:

if(event.stream.isSlicedStream() && !event.stream.isFirstSlice()) { && (event.stream.getStartTimeAsSeconds() > 0)

because we are using the Flowplayer in-stream API, we don't sequence parts of the original show stream
as separate clips in the playlist - so ignore any subsequent streams in the sequence that are spliced
return;

}

Note the change to the conditional.

Fixed. Closed.

Note: See TracTickets for help on using tickets.