ReVanced / revanced-patches

🧩 Patches for ReVanced
https://revanced.app
GNU General Public License v3.0
1.96k stars 226 forks source link

feat(YouTube): Disable HDR #1125

Open odkrys opened 1 year ago

odkrys commented 1 year ago

Application

youtube

Issue

Color distortion in HDR on some Android devices.

Patch

root@instance-20220814-1527:~/test# grep -r "getHdrCapabilities" ./youtube-revanced_v18.07.35_2
./youtube-revanced_v18.07.35_2/smali_classes3/aaki.smali:    invoke-virtual {p1}, Landroid/view/Display;->getHdrCapabilities()Landroid/view/Display$HdrCapabilities;
./youtube-revanced_v18.07.35_2/smali/ccu.smali:    invoke-virtual {p0}, Landroid/view/Display;->getHdrCapabilities()Landroid/view/Display$HdrCapabilities;
./youtube-revanced_v18.07.35_2/smali_classes8/yyt.smali:    invoke-virtual {p2}, Landroid/view/Display;->getHdrCapabilities()Landroid/view/Display$HdrCapabilities;

./youtube-revanced_v18.07.35_2/smali_classes8/yyt.smali

original

.method public final bf(ILandroid/view/Display;)Z
    .locals 4

    .line 1
    invoke-virtual {p2}, Landroid/view/Display;->getHdrCapabilities()Landroid/view/Display$HdrCapabilities;

    move-result-object p2

    const/4 v0, 0x0

    if-eqz p2, :cond_1

    .line 2
    invoke-virtual {p2}, Landroid/view/Display$HdrCapabilities;->getSupportedHdrTypes()[I

    move-result-object p2

    .line 3
    array-length v1, p2

    const/4 v2, 0x0

    :goto_0
    if-ge v2, v1, :cond_1

    aget v3, p2, v2

    if-ne v3, p1, :cond_0

    const/4 p1, 0x1

    return p1

    :cond_0
    add-int/lit8 v2, v2, 0x1

    goto :goto_0

    :cond_1
    return v0
.end method

patched

.method public final bf(ILandroid/view/Display;)Z
    .locals 4

    .line 1
    invoke-virtual {p2}, Landroid/view/Display;->getHdrCapabilities()Landroid/view/Display$HdrCapabilities;

    move-result-object p2

    const/4 v0, 0x0

    if-eqz p2, :cond_1

    .line 2
    invoke-virtual {p2}, Landroid/view/Display$HdrCapabilities;->getSupportedHdrTypes()[I

    move-result-object p2

    .line 3
    array-length v1, p2

    const/4 v2, 0x0

    :goto_0
    if-ge v2, v1, :cond_1

    aget v3, p2, v2

    if-ne v3, p1, :cond_0

    `const/4 p1, 0x0`  <<<<<<<<<<<<<<<<<<<<<<

    return p1

    :cond_0
    add-int/lit8 v2, v2, 0x1

    goto :goto_0

    :cond_1
    return v0
.end method

Motivation

https://github.com/revanced/revanced-patches/issues/570

https://github.com/inotia00/ReVanced_Extended/issues/734

This is a patch request submitted to Extended, but he probably doesn't seem very interested in adding features that he doesn't use directly.

You can turn off HDR with a single code change, which is useful on some mobile devices that have HDR but don't implement it properly or have bugs. This is because Android does not have the ability to turn off HDR on the system.

If there are any interested contributors, patches could be added.

Acknowledgements

oSumAtrIX commented 1 year ago

@0xrxL please don't ping for no reason.

oSumAtrIX commented 1 year ago

It is not a ready-made patch. You can open a PR if you want to and make it one, but please don't ping people for such reasons.