鼻翼长痘是什么原因| 总蛋白偏低是什么原因| 早上四五点是什么时辰| 为什么刚吃完饭不能洗澡| 神经梅毒有什么症状| 老鼠疮是什么病| 孙悟空是个什么样的人| 心率低有什么症状| 周星驰为什么不结婚| 乳腺纤维瘤和乳腺结节有什么区别| 什么水果最贵| 梦见吃雪糕是什么意思| 地府是什么意思| 肩周炎挂什么科| 宫颈光滑说明什么| 淋病和梅毒有什么区别| 立春吃什么食物| 零星是什么意思| 喝醋有什么作用与功效| 明朝前面是什么朝代| 小孩睡不着觉是什么原因| 为什么一躺下就鼻塞| 孕妇贫血对胎儿有什么影响| 什么的树枝| 两个虎念什么| 商品下架是什么意思| 为什么长不胖一直很瘦| 梦见手机屏幕摔碎了是什么意思| ccu病房什么意思| 氢化油是什么东西| 逆钟向转位什么意思| 一阵什么| 小腹疼是什么原因| 去海边玩需要带什么| 什么是幼小衔接| 各自安好什么意思| 看胸挂什么科| 导师是什么意思| 下巴长闭口是什么原因| 尿道口长肉芽是什么| 吃了螃蟹不能吃什么| sec是什么意思| rds是什么意思| 怠工是什么意思| 拔智齿后吃什么恢复快| 什么水果对肝有好处| 失眠吃什么| 四十年是什么婚| 蓝色属于什么五行属性| 睾丸长什么样| 很的右边读什么| 公测是什么意思| 穷奢极欲什么意思| 舌头开裂吃什么药| 卤牛肉放什么调料| 大便暗红色是什么原因| 居住证有什么用| 什么是钼靶检查| 3月4日是什么星座| 立夏有什么习俗| 水泡用什么药膏最有效| 对峙是什么意思| 潴留性囊肿是什么意思| 百香果是什么季节的| 猜疑是什么意思| 甲减饮食需要注意什么| 师夷长技以制夷什么意思| 中国的国球是什么球| 肺活量5000什么水平| 落井下石是什么意思| 6月18日是什么节日| 我需要什么| 缺铁性贫血吃什么食物| 刘强东开什么车| 什么样的天安门| 勿误是什么意思| 无纺布是什么材料做的| 补钙什么时间段最好| 胃怕凉怕冷是什么原因| 咳嗽喉咙痒吃什么药| 大麦茶是什么做的| 6月6日是什么星座| 奶咖色是什么颜色| 平五行属什么| h1v是什么病| 青团是用什么做的| exp是什么意思| 高考明天考什么| 痢疾是什么原因引起的| 什么叫公租房| 坚果都有什么| 什么万| 胃糜烂吃什么药可以根治| 胶原蛋白是什么| 游手好闲是什么意思| 孕妇吃花生对胎儿有什么好处| 农业户口和居民户口有什么区别| 牛奶洗脸有什么好处| 荷叶是什么的什么| 黄芪什么人不能吃| 头发的主要成分是什么| 吃了龙虾后不能吃什么| 焦虑是什么意思| 肠道菌群失调吃什么药| 简单明了是什么意思| 小日子是什么意思| 夏天什么颜色最防晒| 养肝护肝喝什么茶最好| 头孢和阿莫西林有什么区别| 工作效率是什么意思| 梦到和妈妈吵架是什么意思| 双头蛇是什么意思| 应届毕业生是什么意思| ppd是什么意思| 盆腔炎吃什么药最好| 西红柿对人体有什么好处| 美满霉素又叫什么名字| 节节草有什么作用| 不拘一格是什么意思| 冰箱为什么老是结冰| 什么什么的草地| 地球属于什么星系| 北京的市花是什么花| 南京是什么省| 吃黄瓜有什么好处| 小米是什么米| 严字五行属什么| 牙龈出血缺什么| 银耳是什么| 尚书相当于现在的什么官| 寅时是什么时间| 乾卦代表什么| 梦到猪肉是什么预兆| 微针是什么美容项目| 是什么字| 看病人买什么水果| 卵巢多囊样改变是什么意思| aki是什么意思| 田宅宫代表什么| 什么万| 梦见自己生了个儿子是什么意思| 脑供血不足吃什么药好得快| 什么得什么造句| 骨质疏松是什么症状| 九寨沟什么时候去最好| 古稀是什么意思| 痛风可以吃什么肉类和蔬菜| 近视吃什么改善视力| 桦树茸什么功效| 东风是什么意思| 512是什么星座| im是什么| 心急吃不了热豆腐什么意思| 脉络是什么意思| 孩子第一次来月经要注意什么| 蓝眼睛的猫是什么品种| 今年是什么年啊| 利率是什么意思| 177是什么意思| 寂灭是什么意思| 晚上1点是什么时辰| 耳朵背后有痣代表什么| 验孕棒什么时候测最准确| 山梨糖醇是什么| 感冒为什么会头痛| 夏天脚底冰凉是什么原因| 脸上有癣用什么药膏好| 产酸克雷伯菌属于什么菌| 6月14号什么星座| 干戈是什么意思| 左手虎口有痣代表什么| 佛舍利到底是什么| 单纯疱疹吃什么药| 牛黄解毒片不能和什么药一起吃| 灵隐寺求什么最灵验| 廊坊有什么好玩的地方| 人各有命是什么意思| 肝病挂什么科| 什么是行政职务| 一什么春笋| 疱疹吃什么药见效快| 过誉是什么意思| 为什么心里老是想着死| 外阴炎什么症状| 鳖孙是什么意思| 输卵管堵塞有什么样症状| 机场地勤是干什么的| 甲减挂什么科| 二字五行属什么| 广西属于什么地区| 国家的实质是什么| 苟且是什么意思| 汲汲营营是什么意思| 口臭严重吃什么药好得快| 什么家欢乐| 表姐的女儿叫什么| 甲沟炎是什么引起的| 养胃吃什么| RHD血型阳性什么意思| 阴超能检查出什么| 新股配号数量是什么意思| 什么快递比较快| 红豆泥是什么意思| 6月份种什么菜| 高冷是什么意思| 2024年五行属什么| 日语莫西莫西什么意思| 肌酐是检查什么的| 海带有什么营养| 为什么会呕吐| 平添的近义词是什么| hp是什么单位| 补肾吃什么药效果最好| nsfw什么意思| dh什么意思| 为什么吃一点东西肚子就胀| 章鱼的血液是什么颜色| 血糖高的人能吃什么水果| 舒张压偏低是什么原因| 什么是溶血| 搪瓷杯为什么被淘汰了| 口干舌燥吃什么食物好| 不二法门是什么意思| 山楂和什么泡水喝减肥效果最好| 不以规矩下一句是什么| 硬着头皮是什么意思| 柠檬什么时候开花结果| 腱鞘炎有什么治疗方法| 父亲节什么时候| 小手指麻木是什么原因| 梦到前女友征兆是什么| 又是什么意思| 牛巴是什么| 重楼有什么功效| 香槟是什么| 赤小豆是什么| 宝宝拉黑色大便是什么原因| 广谱是什么意思| 烧心吃点什么药| 羊水偏少对胎儿有什么影响| 曲奇饼干为什么不成形| 纤维素是什么| 什么情况需要打破伤风| 肚子发胀是什么原因| 社康是什么意思| 脸上长痘挂什么科| 名节是什么意思| 海阔什么| 一个月来两次月经是什么原因| 梦见眼镜蛇是什么预兆| 摄人心魄是什么意思| 南方有什么生肖| 九月五日是什么节日| 泌尿感染是什么原因引起的| 高处不胜寒是什么意思| 啄木鸟包包什么档次| 靠谱是什么意思| 山麻雀吃什么| 1991年什么命| 姨妈提前是什么原因| 在是什么意思| 天冬氨酸氨基转移酶高是什么原因| 痛经挂什么科| 乌鸡炖什么好吃又有营养| 百度
Skip to content

[Proposal]: Add experimental.enableResolutionChecks loadVideo option #1533

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from

Conversation

peaBerberian
Copy link
Collaborator

@peaBerberian peaBerberian commented Sep 5, 2024

This is a Proposal to optionally move some "resolution checks" that were historically on the application-side on the RxPlayer side.

Some devices aren't able to play video content with a higher resolution than e.g. what their screen size can display: some will fail on error, others will just infinitely freeze etc.

Many of those devices have vendor-specific API that indicates whether a device was e.g. compatible to 4k content, 1080p content etc.

Until now we told the application developers to do the Representation filtering themselves with the help of the representationFilter option from the loadVideo API. This is because of the vast numbers of devices out there, each with their own API, and because we didn't want to take the risk of having false negatives if it turned out some of those API were not always right.

However, many of those devices are very popular (Lg and Samsung TVs, game consoles). Thus I'm wondering if it would be better that we provide some of those resolution checks ourselves, to lower the efforts an application have to make to rely on the RxPlayer on those common devices.

Implementation

For now I added an experimental loadVideo option: experimental.enableResolutionChecks, that has to be set to true to enable the behavior. The long term idea would be that for devices where it seems 100% accurate, we would enable the check by default.

It will directly filter out resolutions that are too high, unless all resolutions are too high on the current video track in which case it will disable the check (as a security).
In other cases, it follows the exact same rules than the isCodecSupported and decipherable properties of Representation.

Note about multithreading environment

For now, to simplify, I assume that those vendor API are available in a WebWorker environment. To check if they aren't (in which case we won't filter out anything, so not dramatic either)

@peaBerberian peaBerberian added the proposal This Pull Request or Issue is only a proposal for a change with the expectation of a debate on it label Sep 5, 2024
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch from 04904c9 to fc7b62f Compare September 5, 2024 16:17
@peaBerberian peaBerberian added the Compatibility Relative to the RxPlayer's compatibility with various devices and environments label Sep 5, 2024
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch 3 times, most recently from 05e4f32 to c67995c Compare September 5, 2024 20:53
@peaBerberian peaBerberian added the Priority: 3 (Low) This issue or PR has a low priority. label Sep 6, 2024
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch from 7bf784b to d9c5f0b Compare November 15, 2024 17:56
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch from d9c5f0b to 0c1d7df Compare January 28, 2025 14:19
@peaBerberian peaBerberian force-pushed the dev branch 2 times, most recently from 00fc806 to b7216b4 Compare April 15, 2025 18:14
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch 3 times, most recently from 4a42123 to db2d5a4 Compare April 22, 2025 19:46
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch from db2d5a4 to d92973a Compare June 30, 2025 13:13
@canalplus canalplus deleted a comment from github-actions bot Jun 30, 2025
@canalplus canalplus deleted a comment from github-actions bot Jun 30, 2025
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch from d92973a to ad68e25 Compare July 8, 2025 10:50
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch from ad68e25 to f28070f Compare August 1, 2025 13:27
Copy link

github-actions bot commented Aug 1, 2025

? Automated performance checks have passed on commit 78616d2b7517b89de541fcb400ba3bb417e0d217 with the base branch dev.

Details

Performance tests 1st run output

No significative change in performance for tests:

Name Mean Median
loading 21.53ms -> 21.77ms (-0.242ms, z: 1.03107) 29.70ms -> 29.85ms
seeking 20.88ms -> 19.45ms (1.427ms, z: 0.21980) 11.40ms -> 11.40ms
audio-track-reload 27.59ms -> 27.62ms (-0.031ms, z: 0.81655) 40.35ms -> 40.35ms
cold loading multithread 48.93ms -> 48.31ms (0.624ms, z: 9.94514) 72.15ms -> 71.10ms
seeking multithread 50.67ms -> 63.95ms (-13.280ms, z: 0.22965) 10.20ms -> 10.20ms
audio-track-reload multithread 27.13ms -> 27.09ms (0.041ms, z: 0.23226) 39.75ms -> 39.75ms
hot loading multithread 17.07ms -> 16.97ms (0.099ms, z: 3.01296) 24.45ms -> 24.30ms

@canalplus canalplus deleted a comment from github-actions bot Aug 1, 2025
@canalplus canalplus deleted a comment from github-actions bot Aug 1, 2025
@canalplus canalplus deleted a comment from github-actions bot Aug 1, 2025
This is a Proposal to optionally move some "resolution checks" that
were historically on the application-side on the RxPlayer side.

Some devices aren't able to play video content with a higher resolution
than e.g. what their screen size can display: some will fail on error,
others will just infinitely freeze etc.

Many of those devices have vendor-specific API that indicated whether a
device was e.g. compatible to 4k content, 1080p content etc.

Until now we told the application developers to do the Representation
filtering themselves with the help of the `representationFilter` option
from the `loadVideo` API. This is because of the vast numbers of devices
out there, each with their own API, and because we didn't want to take
the risk of having false negatives if it turned out some of those
API were not always right.

However, many of those devices are very popular (Lg and Samsung TVs,
game consoles). Thus I'm wondering if it would be better that we
provide some of those resolution checks ourselves, to lower the
efforts an application have to make to rely on the RxPlayer on those
common devices.

For now I added an experimental `loadVideo` option:
`experimental.enableResolutionChecks`, that has to be set to `true`
to enable the behavior. The long term idea would be that for devices
where it seems 100% accurate, we would enable the check by default.

It will directly filter out resolutions that are too high, unless all
resolutions are too high on the current video track in which case it
will disable the check (as a security).
In other cases, it follows the exact same rules than the
`isCodecSupported` and `decipherable` properties of `Representation`.
@peaBerberian peaBerberian force-pushed the feat/resolution-checks branch from f28070f to 35abe6a Compare August 1, 2025 15:37
Copy link

github-actions bot commented Aug 1, 2025

? Automated performance checks have passed on commit 72b16f92bce85819b0ab228919616defc1ce785c with the base branch dev.

Details

Performance tests 1st run output

No significative change in performance for tests:

Name Mean Median
loading 19.45ms -> 19.73ms (-0.281ms, z: 0.99422) 26.85ms -> 27.00ms
seeking 18.37ms -> 21.07ms (-2.692ms, z: 0.73662) 10.80ms -> 10.80ms
audio-track-reload 25.81ms -> 25.78ms (0.026ms, z: 0.12259) 37.65ms -> 37.65ms
cold loading multithread 45.89ms -> 45.50ms (0.392ms, z: 10.22124) 67.80ms -> 66.90ms
seeking multithread 32.28ms -> 30.27ms (2.015ms, z: 0.07455) 10.05ms -> 10.05ms
audio-track-reload multithread 25.56ms -> 25.56ms (0.001ms, z: 1.01246) 37.50ms -> 37.55ms
hot loading multithread 14.85ms -> 14.70ms (0.144ms, z: 4.16310) 21.45ms -> 21.30ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Compatibility Relative to the RxPlayer's compatibility with various devices and environments Priority: 3 (Low) This issue or PR has a low priority. proposal This Pull Request or Issue is only a proposal for a change with the expectation of a debate on it
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant
pd是什么病 玛咖是什么 低血糖是什么症状 古井贡酒属于什么档次 必迈跑鞋什么档次
为什么身上会长脂肪瘤 晒伤了涂什么药 长一智的上一句是什么 看十全十美是什么生肖 什么是光
智字五行属什么 怀孕为什么会恶心想吐 尿痛吃什么药效果最好 犹太人属于什么人种 o型血和什么血型最配
辰砂和朱砂有什么区别 弟弟的儿子叫什么 坐蜡什么意思 为什么会自言自语 长期耳鸣是什么原因
律的右边读什么hcv9jop4ns2r.cn 求人办事送什么礼物好hcv9jop3ns7r.cn 蚊子不咬什么血型的人hcv9jop6ns4r.cn 丝瓜是什么hcv7jop6ns2r.cn 官方什么意思hcv8jop4ns8r.cn
耳膜炎是什么原因引起的gysmod.com 211大学什么意思hcv8jop5ns7r.cn 八月十八号是什么星座hcv7jop5ns6r.cn 做蹲起有什么好处hcv8jop2ns0r.cn 公道自在人心是什么意思hcv8jop5ns2r.cn
段泥紫砂壶适合泡什么茶xscnpatent.com 夏天脚冷是什么原因hcv7jop6ns5r.cn 怀孕初期能吃什么不能吃什么hcv8jop1ns5r.cn 手机root后有什么好处和坏处hcv8jop9ns2r.cn 仪表堂堂是什么生肖hcv8jop3ns4r.cn
子宫内膜增厚有什么影响hcv7jop5ns4r.cn 年抛是什么意思hcv7jop4ns8r.cn 肝肾功能挂什么科hkuteam.com 带银饰有什么好处inbungee.com 玉髓什么颜色最贵hcv9jop3ns8r.cn
百度