diff --git a/components/JFVideo.brs b/components/JFVideo.brs index ffc69f3a..950400a6 100644 --- a/components/JFVideo.brs +++ b/components/JFVideo.brs @@ -21,9 +21,9 @@ sub onState(msg) m.bufferCheckTimer.control = "start" m.bufferCheckTimer.ObserveField("fire", "bufferCheck") else if m.top.state = "error" - if m.playReported or NOT m.top.retryWithTranscoding - m.top.retryWithTranscoding = false ' If playback was reported, don't retry with transcoding - + if not m.playReported and m.top.transcodeAvailable + m.top.retryWithTranscoding = true ' If playback was not reported, retry with transcoding + else ' If an error was encountered, Display dialog dialog = createObject("roSGNode", "Dialog") dialog.title = tr("Error During Playback") @@ -32,7 +32,7 @@ sub onState(msg) dialog.observeField("buttonSelected", "dialogClosed") m.top.getScene().dialog = dialog end if - + ' Stop playback and exit player m.top.control = "stop" m.top.backPressed = true diff --git a/components/JFVideo.xml b/components/JFVideo.xml index f3baf3a1..237c1d67 100644 --- a/components/JFVideo.xml +++ b/components/JFVideo.xml @@ -13,6 +13,7 @@ + diff --git a/source/VideoPlayer.brs b/source/VideoPlayer.brs index e99162cd..774de6e1 100644 --- a/source/VideoPlayer.brs +++ b/source/VideoPlayer.brs @@ -191,17 +191,16 @@ sub AddVideoContent(video, mediaSourceId, audio_stream_idx = 1, subtitle_idx = - ' For h264 video, Roku spec states that it supports and Encoding level 4.1 and 4.2. ' The device can decode content with a Higher Encoding level but may play it back with certain - ' artifacts. If the user preference is set, and the only reason the server says we need to + ' artifacts. If the user preference is set, and the only reason the server says we need to ' transcode is that the Envoding Level is not supported, then try to direct play but silently ' fall back to the transcode if that fails. - video.retryWithTranscoding = false if get_user_setting("playback.tryDirect.h264ProfileLevel") = "true" and playbackInfo.MediaSources[0].TranscodingUrl <> invalid and forceTranscoding = false and playbackInfo.MediaSources[0].MediaStreams[0].codec = "h264" transcodingReasons = getTranscodeReasons(playbackInfo.MediaSources[0].TranscodingUrl) if transcodingReasons.Count() = 1 and transcodingReasons[0] = "VideoLevelNotSupported" video.directPlaySupported = true - video.retryWithTranscoding = true + video.transcodeAvailable = true end if - end if + end if if video.directPlaySupported protocol = LCase(playbackInfo.MediaSources[0].Protocol)