From 5578bc8358643a66cf58231460ffe2024c400739 Mon Sep 17 00:00:00 2001 From: WesleyTam Date: Wed, 22 Jul 2026 10:13:21 -0700 Subject: [PATCH 1/2] Remove VP9 documentation --- .../brightscript/interfaces/ifdeviceinfo.md | 2 +- .../brightscript/interfaces/ifvideoplayer.md | 2 +- .../scenegraph/media-playback-nodes/video.md | 2 +- docs/SPECIFICATIONS/media/index.md | 42 ++++++------------- 4 files changed, 15 insertions(+), 33 deletions(-) diff --git a/docs/REFERENCES/brightscript/interfaces/ifdeviceinfo.md b/docs/REFERENCES/brightscript/interfaces/ifdeviceinfo.md index 27a0cd71..6daabb16 100644 --- a/docs/REFERENCES/brightscript/interfaces/ifdeviceinfo.md +++ b/docs/REFERENCES/brightscript/interfaces/ifdeviceinfo.md @@ -1078,7 +1078,7 @@ An associative array that includes a flag indicating whether the video format ca If the Roku Player cannot play that video format, it will return false, and return the closest video format it can play, with the changed fields, such as: -`{"codec":["hevc","mpeg1","mpeg2","h263","mpeg4 avc","vp9"],"result":false,"updated":"codec"}` +`{"codec":["hevc","mpeg1","mpeg2","h263","mpeg4 avc"],"result":false,"updated":"codec"}` The return value shows the Roku Player cannot play requested video format, shows the updated keys of the requested video format (level and profile) that it can support, and the all the key values of the requested video format supported by the Roku Player. diff --git a/docs/REFERENCES/brightscript/interfaces/ifvideoplayer.md b/docs/REFERENCES/brightscript/interfaces/ifvideoplayer.md index 5779f4fc..5e024e44 100644 --- a/docs/REFERENCES/brightscript/interfaces/ifvideoplayer.md +++ b/docs/REFERENCES/brightscript/interfaces/ifvideoplayer.md @@ -318,7 +318,7 @@ An roArray, where each element in the array represents a single audio track that Format String -Contains the format of the currently playing video stream.

ValueMeaning
""No stream playing
noneStream contains no playable video
unknownStream contains unknown video
hevcISO/IEC 23008-2, H.265, HEVC
hevc_bISO/IEC 23008-2 Annex-B, H.265, HEVC
mpeg1ISO/IEC 11172-2, MPEG-1 part 2, H.261
mpeg2ISO/IEC 13818-2, MPEG-2 part 2, H.262
mpeg4_2ISO/IEC 14496-2, MPEG-4 part 2, H.263
mpeg4_10bISO/IEC 14496-10, MPEG-4 part 10 Annex-B, H.264, vc-1
mpeg4_15ISO/IEC 14496-15, MPEG-4 part 15, H.264, vc-1
AVC vc1vc-1
wmvMicrosoft Windows Media Video
vp8VP8 codec
vp9VP9 codec
+Contains the format of the currently playing video stream.

ValueMeaning
""No stream playing
noneStream contains no playable video
unknownStream contains unknown video
hevcISO/IEC 23008-2, H.265, HEVC
hevc_bISO/IEC 23008-2 Annex-B, H.265, HEVC
mpeg1ISO/IEC 11172-2, MPEG-1 part 2, H.261
mpeg2ISO/IEC 13818-2, MPEG-2 part 2, H.262
mpeg4_2ISO/IEC 14496-2, MPEG-4 part 2, H.263
mpeg4_10bISO/IEC 14496-10, MPEG-4 part 10 Annex-B, H.264, vc-1
mpeg4_15ISO/IEC 14496-15, MPEG-4 part 15, H.264, vc-1
AVC vc1vc-1
wmvMicrosoft Windows Media Video
HasAccessibi;ityDescription diff --git a/docs/REFERENCES/scenegraph/media-playback-nodes/video.md b/docs/REFERENCES/scenegraph/media-playback-nodes/video.md index 4c5a1c17..fd7421a6 100644 --- a/docs/REFERENCES/scenegraph/media-playback-nodes/video.md +++ b/docs/REFERENCES/scenegraph/media-playback-nodes/video.md @@ -355,7 +355,7 @@ The `control` field includes a `prebuffer` option, which allows the video to beg READ\_ONLY - Contains the format of the currently playing video stream.

ValueMeaning
""No stream playing
noneStream contains no playable video
unknownStream contains unknown video
hevcISO/IEC 23008-2, H.265, HEVC
hevc\_bISO/IEC 23008-2 Annex-B, H.265, HEVC
mpeg1ISO/IEC 11172-2, MPEG-1 part 2, H.261
mpeg2ISO/IEC 13818-2, MPEG-2 part 2, H.262
mpeg4\_2ISO/IEC 14496-2, MPEG-4 part 2, H.263
mpeg4\_10bISO/IEC 14496-10, MPEG-4 part 10 Annex-B, H.264, vc-1
mpeg4\_15ISO/IEC 14496-15, MPEG-4 part 15, H.264, vc-1
AVC vc1vc-1
wmvMicrosoft Windows Media Video
vp8VP8 codec
vp9VP9 codec
+ Contains the format of the currently playing video stream.

ValueMeaning
""No stream playing
noneStream contains no playable video
unknownStream contains unknown video
hevcISO/IEC 23008-2, H.265, HEVC
hevc\_bISO/IEC 23008-2 Annex-B, H.265, HEVC
mpeg1ISO/IEC 11172-2, MPEG-1 part 2, H.261
mpeg2ISO/IEC 13818-2, MPEG-2 part 2, H.262
mpeg4\_2ISO/IEC 14496-2, MPEG-4 part 2, H.263
mpeg4\_10bISO/IEC 14496-10, MPEG-4 part 10 Annex-B, H.264, vc-1
mpeg4\_15ISO/IEC 14496-15, MPEG-4 part 15, H.264, vc-1
AVC vc1vc-1
wmvMicrosoft Windows Media Video
pauseBufferStart diff --git a/docs/SPECIFICATIONS/media/index.md b/docs/SPECIFICATIONS/media/index.md index 9d1c3126..090bb02e 100644 --- a/docs/SPECIFICATIONS/media/index.md +++ b/docs/SPECIFICATIONS/media/index.md @@ -25,7 +25,7 @@ Roku devices support several audio/video container formats. These formats encaps - supported video codecs: AVC, HEVC - supported audio codecs: AAC, AC3, EAC3, AC4, ALAC, MP3, PCM - MKV, WebM - - supported video codecs: AVC, HEVC, VP9 + - supported video codecs: AVC, HEVC - supported audio codecs: AAC, AC3, EAC3, Dolby Atmos, ALAC, DTS, DTSE, FLAC, MP3, OPUS, PCM, VORBIS **Additional Notes:** @@ -69,7 +69,7 @@ Roku supports the following widely-used standard formats for adaptive bit rate s Video Codecs AVC, HEVC - AVC, HEVC, VP9 + AVC, HEVC AVC, HEVC @@ -129,9 +129,7 @@ For trickplay of live streams, apps should seek to a position of 999,999 seconds ## Supported video codecs -Videos can be encoded using `H.264`, `HEVC (H.265)`, `VP9`, or `AV1` (DASH only) codecs. - - +Videos can be encoded using `H.264`, `HEVC (H.265)`, or `AV1` (DASH only) codecs. @@ -139,14 +137,12 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, `VP9`, or `AV1` (DASH only) - - - + @@ -155,14 +151,12 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, `VP9`, or `AV1` (DASH only) - - + - @@ -170,20 +164,17 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, `VP9`, or `AV1` (DASH only) - - - @@ -191,25 +182,21 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, `VP9`, or `AV1` (DASH only) - - - - - + @@ -218,7 +205,6 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, `VP9`, or `AV1` (DASH only) - @@ -228,11 +214,9 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, `VP9`, or `AV1` (DASH only) Some decoder and security features are device specific. For details, see [Roku Models and Features](doc:hardware). [^1]: Only supported on **Roku 4K capable** devices. -[^2]: Only supported on **Roku 4K capable** devices. -[^3]: The dimensions vary on a title-by-title basis depending on the source material and the target aspect ratio for the encoding (such as 4:3 or 16:9). Content should always be encoded at full width, and the height is adjusted. For example, a 1.66 aspect ratio source is encoded as a 720x432 video and displayed as letterboxed for a 4:3 display. +[^2]: The dimensions vary on a title-by-title basis depending on the source material and the target aspect ratio for the encoding (such as 4:3 or 16:9). Content should always be encoded at full width, and the height is adjusted. For example, a 1.66 aspect ratio source is encoded as a 720x432 video and displayed as letterboxed for a 4:3 display. +[^3]: All segments should start with an IDR frame and align across all bit rate variants. The recommended segment size is < 10 seconds for VOD and < 5 seconds for live content, and the segment size should be constant. [^4]: All segments should start with an IDR frame and align across all bit rate variants. The recommended segment size is < 10 seconds for VOD and < 5 seconds for live content, and the segment size should be constant. -[^5]: All segments should start with an IDR frame and align across all bit rate variants. The recommended segment size is < 10 seconds for VOD and < 5 seconds for live content, and the segment size should be constant. -[^6]: Only supported on HDR10 capable Roku devices. ## Supported audio codecs @@ -374,13 +358,11 @@ function CanPlay4K() as Boolean return false 'HDCP version is not 2.2 end if - ' Check if the Roku player can decode 4K 60fps HEVC streams or 4K 30fps vp9 streams + ' Check if the Roku player can decode 4K 60fps HEVC streams hevc_video = { Codec: "hevc", Profile: "main", Level: "5.1" } - vp9_video = { Codec: "vp9", Profile: "profile 0" } can_decode_hevc = dev_info.CanDecodeVideo(hevc_video) - can_decode_vp9 = dev_info.CanDecodeVideo(vp9_video) - if can_decode_hevc.result <> true OR can_decode_vp9.result <> true - return false 'device cannot decode 4K HEVC AND VP9 streams + if can_decode_hevc.result <> true + return false 'device cannot decode 4K HEVC streams end if ' (Optional) Check if the Roku player decrypts inside a TEE @@ -393,7 +375,7 @@ function CanPlay4K() as Boolean end function ``` -> This example returns true only if both 4K HEVC and 4K VP9 decoding is supported. If your 4K UHD content is only encoded in one of these codecs, modify the third conditional statement as necessary. +> This example returns true only if 4K HEVC decoding is supported. If your 4K UHD content is only encoded in one of these codecs, modify the third conditional statement as necessary. ### HDR10 video streaming requirements From 5d4bfe2ac67ed4f1bec95646abfbf1f6fd5db2e2 Mon Sep 17 00:00:00 2001 From: WesleyTam Date: Wed, 22 Jul 2026 10:19:14 -0700 Subject: [PATCH 2/2] Fix footnote formatting in Video Codecs table --- docs/SPECIFICATIONS/media/index.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/SPECIFICATIONS/media/index.md b/docs/SPECIFICATIONS/media/index.md index 090bb02e..1393b14a 100644 --- a/docs/SPECIFICATIONS/media/index.md +++ b/docs/SPECIFICATIONS/media/index.md @@ -136,13 +136,13 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, or `AV1` (DASH only) codecs - + - + @@ -154,7 +154,7 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, or `AV1` (DASH only) codecs - + @@ -196,7 +196,7 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, or `AV1` (DASH only) codecs - + @@ -213,10 +213,11 @@ Videos can be encoded using `H.264`, `HEVC (H.265)`, or `AV1` (DASH only) codecs Some decoder and security features are device specific. For details, see [Roku Models and Features](doc:hardware). -[^1]: Only supported on **Roku 4K capable** devices. -[^2]: The dimensions vary on a title-by-title basis depending on the source material and the target aspect ratio for the encoding (such as 4:3 or 16:9). Content should always be encoded at full width, and the height is adjusted. For example, a 1.66 aspect ratio source is encoded as a 720x432 video and displayed as letterboxed for a 4:3 display. -[^3]: All segments should start with an IDR frame and align across all bit rate variants. The recommended segment size is < 10 seconds for VOD and < 5 seconds for live content, and the segment size should be constant. -[^4]: All segments should start with an IDR frame and align across all bit rate variants. The recommended segment size is < 10 seconds for VOD and < 5 seconds for live content, and the segment size should be constant. +
    +
  1. Only supported on Roku 4K capable devices.
  2. +
  3. The dimensions vary on a title-by-title basis depending on the source material and the target aspect ratio for the encoding (such as 4:3 or 16:9). Content should always be encoded at full width, and the height is adjusted. For example, a 1.66 aspect ratio source is encoded as a 720x432 video and displayed as letterboxed for a 4:3 display.
  4. +
  5. All segments should start with an IDR frame and align across all bit rate variants. The recommended segment size is < 10 seconds for VOD and < 5 seconds for live content, and the segment size should be constant.
  6. +
## Supported audio codecs
AVC (H.264) HEVC (H.265)[^1]VP9[^2] AV1 (DASH only)
Aspect Ratio 2[^3]VariousAspect Ratio 2[^2] Various Various Dimension Various up to 1920x1080 Various up to 3840x2160Various up to 3840x2160 Various up to 7680 x 4320
Input Frame Rate[^4]Input Frame Rate[^3] 24p, 25p, 30p, 50p, 60p 24p, 25p, 30p, 50p, 60p24p, 25p, 30p, 60p[^6] 24p,25p,30p,50p,60p
Rec.709 Rec.709, Rec.2020 Rec.709, Rec.2020Rec.709, Rec.2020
Profile main, high main, main 10profile 0, profile 2 main, main 10
Level 4.1, 4.2 4.1, 5.0, 5.1 4.1, 5.0, 5.1
Constrained VBR Constrained VBR Constrained VBRConstrained VBR
Video Bitrate Up to 10Mbps Up to 40Mbps Up to 40MbpsUp to 40Mbps
Peak Video Bit rate 1.5x average 1.5x average 1.5x average1.5x average
Key Frame Interval [^5]< 10sKey Frame Interval [^4] < 10s < 10s < 10sHDR support Dolby Vision: dvav.09 Dolby Vision: dvhe.05
HDR10 (HEVC profile Main 10)
HLG
HDR10 Dolby Vision
HDR10
HDR10+
AVC (H.264)HEVC (H.265)[^1]HEVC (H.265)1 AV1 (DASH only)
Aspect Ratio 2[^2]Aspect Ratio2 Various Various Various up to 7680 x 4320
Input Frame Rate[^3]Input Frame Rate3 24p, 25p, 30p, 50p, 60p 24p, 25p, 30p, 50p, 60p 24p,25p,30p,50p,60p1.5x average
Key Frame Interval [^4]Key Frame Interval3 < 10s < 10s < 10s