Closed Bug 1827333 Opened 2 years ago Closed 2 years ago

Update rules to serve OpenH264 2.3.2

Categories

(Release Engineering :: General, task)

task

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: aosmond, Assigned: jcristau)

References

Details

I've manually verified the new OpenH264 2.3.1 binaries and Cisco has deployed them to their web server. We are ready to start testing with a wider audience.

Initially we would like to ship to nightly only for a while to test this out, and then to all supported channels, similar to what we did with Widevine.

Could we please setup a nightlytest rule for our initial verification pass?

Here is the output from https://searchfox.org/mozilla-central/source/dom/media/tools/generateGmpJson.py that produces the new JSON:

{
  "hashFunction": "sha512",
  "name": "OpenH264-2.3.1",
  "schema_version": 1000,
  "vendors": {
    "gmp-gmpopenh264": {
      "platforms": {
        "Darwin_aarch64-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-macosx64-aarch64-0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e.zip",
          "filesize": 497958,
          "hashValue": "11cbabf535f2220415c8dcbec35725bc92d8fc6a3d1306503842b027ea92d305d69769998c291e01a1cc65529fa599fd0f762bf91e6e6753268bff12e0d1e03a"
        },
        "Darwin_x86_64-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-macosx64-0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e.zip",
          "filesize": 555529,
          "hashValue": "d884a692d302ef530cce238e5352d5bf691efe0ab9671a2cfd1bd6a6fffc55745d39088499677c3aca770de53a8973c3c42f2dc8b5498ce47c6846f7b1b7c0df"
        },
        "Linux_x86-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-linux32-0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e.zip",
          "filesize": 626513,
          "hashValue": "a005ff7be6147034798f14ee71e2a9f055dad3568b2fffc3957f2a9b0969ac94c4d01fa718b6b546a5a3c3306f9f85f29c26ef04c74e450e5a505bced5a3f46d"
        },
        "Linux_x86_64-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-linux64-0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e.zip",
          "filesize": 592082,
          "hashValue": "c7172c690b27466d3e9bd019136d7e88bcb6c55c5ede908ebfb84006aa1a7e073337f09a215f9ea8542ee767329bf396e396e6b811a7f37ba4b921697cc0d91d"
        },
        "Linux_x86_64-gcc3-asan": {
          "alias": "Linux_x86_64-gcc3"
        },
        "Linux_aarch64-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-linux64-aarch64-0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e.zip",
          "filesize": 535700,
          "hashValue": "ce89fd301ab1760a43fb47f3b7641d6bda9b30fc15556ef00f727984a4f8fc872af8d77301a28018340c24800946917717f977058cbdbec807e84914b27dd7f7"
        },
        "WINNT_aarch64-msvc-aarch64": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-win64-aarch64-0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e.zip",
          "filesize": 410681,
          "hashValue": "4689da381a5a84d254852510d9aa29990220413220884bcfb5aec8a3b67e9fb92e97dcb9fad51a490264594056b8500d6c5f42fbee2abd3be070c3e308ec2c10"
        },
        "WINNT_x86-msvc": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-win32-0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e.zip",
          "filesize": 471886,
          "hashValue": "da80c7e7d61149bb2c75e1d777b9b06a0bbe034fc5164d902e774f2fceb4808e8499ffb95aedc3831684d6c70ccdd92925e85d8a6044ca71bf68619a0a329be3"
        },
        "WINNT_x86-msvc-x64": {
          "alias": "WINNT_x86-msvc"
        },
        "WINNT_x86-msvc-x86": {
          "alias": "WINNT_x86-msvc"
        },
        "WINNT_x86_64-msvc": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-win64-0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e.zip",
          "filesize": 494665,
          "hashValue": "221514d2bace79787b19fc316756a83bf7579293b8893b17ccf11e14e4e3ba5cf13f76d5070482d1ab97b786d8541ade428c6286027ba054f3408135eea03c87"
        },
        "WINNT_x86_64-msvc-x64": {
          "alias": "WINNT_x86_64-msvc"
        },
        "WINNT_x86_64-msvc-x64-asan": {
          "alias": "WINNT_x86_64-msvc"
        }
      },
      "version": "2.3.1"
    }
  }
}
Flags: needinfo?(gbrown)
Flags: needinfo?(ahal)
Assignee: nobody → jcristau
Status: NEW → ASSIGNED
Flags: needinfo?(gbrown)
Flags: needinfo?(ahal)

Comparing with the existing 1.8.1.2 json I notice android is gone, which I assume is intentional given bug 1548679.
On the other hand, 1.8.1.2 is missing linux and windows asan, which the blob from comment 1 adds.
This is also adding Linux_aarch64, which seems fine/harmless.

Rule added to serve 2.3.1 on the nightlytest channel: https://aus-api.mozilla.org/api/v1/rules/17807

Yes, I decided we should streamline Widevine and OpenH264 rules when possible (there is no Linux ARM64 yet for Widevine) since the plugins should work for the same context. Android was deprecated long ago, so I don't see a need to update those rules (we could keep the balrog rules in place, I'm not sure what our deprecation strategy is....).

I verified that OpenH264 2.3.1 is downloaded and it works for video decoding on KDE Wayland, Debian Testing.
app.update.channel:"nightlytest" doesn't seem to work, but replacing %CHANNEL% with nightlytest in media.gmp-manager.url works:
STR:

  1. $ MOZ_LOG="GMP:5,PlatformDecoderModule:5" mozregression --launch 2023-04-11 --pref media.gmp.decoder.enabled:true media.gmp.decoder.preferred:true media.gmp-manager.url:"https://aus5.mozilla.org/update/3/GMP/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/nightlytest/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml" -P stdout -a about:addons -a "https://player.twitch.tv/?channel=virtualjapan&enableExtensions=true&muted=true&parent=twitch.tv&player=popout&quality=chunked&volume=0.08"

  2. Go to Plugins > click on wheel > Search for updates

  3. Switch to twitch tab, play

  4. terminal log shows that GMP-OpenH264 is used for video decoding:

    0:43.57 INFO: b'[Parent 30690: GMPThread]: D/GMP GMPParent[7faec7ff4100|childPid=0] LoadProcess: for /tmp/tmp1wzsk8rd.mozrunner/gmp-gmpopenh264/2.3.1'

    0:43.68 INFO: b'[GMP 31099: Main Thread]: D/GMP GMPChild[pid=31099] Init pluginPath=/tmp/tmp1wzsk8rd.mozrunner/gmp-gmpopenh264/2.3.1'

    0:45.85 INFO: b'[Child 30856: GMPThread]: V/GMP GMPVideoDecoderParent[7f330db87450]::RecvDecoded() timestamp=2211000 frameCount=1'
    0:45.85 INFO: b'[Child 30856: GMPThread]: D/GMP GMPVideoDecoder::Decoded'

Could we please update the nightlytest rule for the updated library?

Here is the output from https://searchfox.org/mozilla-central/source/dom/media/tools/generateGmpJson.py that produces the new JSON:

{
  "hashFunction": "sha512",
  "name": "OpenH264-2.3.2",
  "schema_version": 1000,
  "vendors": {
    "gmp-gmpopenh264": {
      "platforms": {
        "Darwin_aarch64-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-macosx64-aarch64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip",
          "filesize": 477938,
          "hashValue": "391efb184373d533713a9e99a9e63c3bbaf614e8d8bdfdd84d4d5e53b9a737e75032187309dd00e58b58bb1033ab68d199f994744f6add57dd08f5fbb654d2f3"
        },
        "Darwin_x86_64-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-macosx64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip",
          "filesize": 552074,
          "hashValue": "c649bfa20c48406ccbae1917d7478773cd5250ef995828b58cc56cc4db0a3c7ce3f89eb187bd1b3d26cda0e5e65322b710cfd66a2953adeea0e4361c51488add"
        },
        "Linux_x86-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-linux32-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip",
          "filesize": 623151,
          "hashValue": "d80508260c6419acc09c9fde539b18e9231899786df549bc8c86e564d1fb8c500327adb96bba204a386326dd5213ae907108c9ca4fc64ae385fbb2291e0e8cc5"
        },
        "Linux_x86_64-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-linux64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip",
          "filesize": 583674,
          "hashValue": "53a58bfb4c8124ad4f7655b99bfdea290033a085e0796b19245b33b91c0948fdac9f0c3e817130b352493a65d9a7a0fc8a7c1eedc618cdaa2b4580734a11cd9c"
        },
        "Linux_x86_64-gcc3-asan": {
          "alias": "Linux_x86_64-gcc3"
        },
        "Linux_aarch64-gcc3": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-linux64-aarch64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip",
          "filesize": 537296,
          "hashValue": "eab3fca253c10739c4930bdaf83ca7a9a0a3580937e0e945dde3a45bcdb39b6240ae0d7133ebfb10029442322f4ce6e8647917d15afea601351dc8a5f0dbf3ec"
        },
        "WINNT_aarch64-msvc-aarch64": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-win64-aarch64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip",
          "filesize": 412806,
          "hashValue": "cc3306873d6ad8ea6a27096c8ce75831463633a530d8f1794ae3eba3efd4a572459b6b0f3ac73f46552a7d6c7a29b152e299d862a2f76420eee07d1d39979182"
        },
        "WINNT_x86-msvc": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-win32-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip",
          "filesize": 472465,
          "hashValue": "b5c8290bbee9503b6f9d2fcc3cbcf94f9b2d4e8ee143e37cfc8c68de593c8189aecfe447b811accecdb564c8788bd05e116f4eda62ac29b3c6b8a6fa5f564ee0"
        },
        "WINNT_x86-msvc-x64": {
          "alias": "WINNT_x86-msvc"
        },
        "WINNT_x86-msvc-x86": {
          "alias": "WINNT_x86-msvc"
        },
        "WINNT_x86_64-msvc": {
          "fileUrl": "http://ciscobinary.openh264.org/openh264-win64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip",
          "filesize": 491284,
          "hashValue": "b667086ed49579592d435df2b486fe30ba1b62ddd169f19e700cd079239747dd3e20058c285fa9c10a533e34f22b5198ed9b1f92ae560a3067f3e3feacc724f1"
        },
        "WINNT_x86_64-msvc-x64": {
          "alias": "WINNT_x86_64-msvc"
        },
        "WINNT_x86_64-msvc-x64-asan": {
          "alias": "WINNT_x86_64-msvc"
        }
      },
      "version": "2.3.2"
    }
  }
Flags: needinfo?(jcristau)
Summary: Update rules to serve OpenH264 2.3.1 → Update rules to serve OpenH264 2.3.2

The stuttering I saw in comment 6 is a Nightly regression, OpenH264 2.3.1 and 2.3.2 themselves seem to be fine: bug 1831342

Flags: needinfo?(ahal)
Flags: needinfo?(gbrown)

nightlytest rule has been updated to 2.3.2.

Flags: needinfo?(jcristau)
Flags: needinfo?(gbrown)
Flags: needinfo?(ahal)

Could we please apply the configuration in comment 5 to the nightly channel for version 115 and later? Thanks!

Flags: needinfo?(jcristau)
Flags: needinfo?(gbrown)

2.3.2 is now available on nightly for version 115.0 and later.

Flags: needinfo?(jcristau)
Flags: needinfo?(gbrown)

(In reply to Geoff Brown [:gbrown] from comment #10)

2.3.2 is now available on nightly for version 115.0 and later.

No, it's not. Tested with:

  • Nightly 115.0a1 20230516042430 Linux x64 (KDE Wayland, Debian Testing).
  • mozregression --launch 2023-05-16
    about:addons > Plugins > gearwheel icon > Search for updates.

    OpenH264 Video Codec provided by Cisco Systems, Inc.
    Version 1.8.1.2
    Last Updated May 16, 2023

Flags: needinfo?(gbrown)

Sorry! There was a problem with the "115.0a1" case. Should be fixed now.

Flags: needinfo?(gbrown)

Confirmed, thank you.
Fixed for Linux Nightly and mozregression --launch 2023-05-16
about:addons > Plugins > gearwheel icon > Search for updates (to force immediate installation):

OpenH264 Video Codec provided by Cisco Systems, Inc.
Version 2.3.2
Last Updated May 16, 2023

This bug was fixed per comment 14.

Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED

No it wasn't, it's still nightly only AFAICT.

Status: RESOLVED → REOPENED
Resolution: FIXED → ---

Oops, thanks for catching that. Marking the severity as N/A since this ticket is a task.

Severity: -- → N/A
Blocks: 1827453

Could we roll this out to 115 beta as well now? Thanks!

Flags: needinfo?(jcristau)
Flags: needinfo?(gbrown)

2.3.2 is now also available on beta for version 115.0 and later.

Flags: needinfo?(jcristau)
Flags: needinfo?(gbrown)

Confirmed with 115.0b2.

Version 2.3.2

Could we roll this out to 115 release and ESR now? Effectively that should be all channels for releases 115 and later. Thanks!

I realize 115 isn't in release yet, but we should roll out with the RC based on QA testing / green light.

This is ready for relman signoff (I'll delete the nightly rule afterwards).

Flags: needinfo?(pascalc)

All done now, I think.

Rule 939 (https://aus-api.mozilla.org/api/v1/rules/939) serves 1.8.1.2 to versions < 115.0, all channels.
Rule 17820 (https://aus-api.mozilla.org/api/v1/rules/17820) serves 2.3.2 to higher versions, all channels.

Status: REOPENED → RESOLVED
Closed: 2 years ago2 years ago
Flags: needinfo?(pascalc)
Resolution: --- → FIXED
No longer blocks: openh264-2_6
You need to log in before you can comment on or make changes to this bug.