Skip to content

feat: Make the H.264 profile-level-id configurable. - #1296

Draft
th-aslam wants to merge 1 commit into
jitsi:masterfrom
th-aslam:h264-configurable-profile-level-id
Draft

feat: Make the H.264 profile-level-id configurable.#1296
th-aslam wants to merge 1 commit into
jitsi:masterfrom
th-aslam:h264-configurable-profile-level-id

Conversation

@th-aslam

Copy link
Copy Markdown

As discussed in H.264 fmtp in jicofo offers (42e01f) — deliberate interop floor or 2017 legacy? with @jallamsetty1: jicofo hardcodes 42e01f (Constrained Baseline) in every H.264 offer, a value dating to the 2017 Firefox workaround (#308). Some platform encoder factories don't advertise CBP while libwebrtc matches profiles exactly, so senders on those platforms silently fall back to software encoding — macOS VideoToolbox advertises only Baseline/Main/High (offering 42001f on the same machine flips it to hardware encode, powerEfficient: true), and MediaFoundation on Windows reportedly behaves the same.

This makes the value configurable:

  • New config: jicofo.codec.video.h264.profile-level-id, default "42e01f" — the offer output is byte-identical to current behavior at default config (the existing param cramming is deliberately untouched to keep the change minimal).
  • H264CodecConfig follows the existing RtxCodecConfigWithLegacy pattern, preserving the legacy ENABLE_H264/H264_PT properties.
  • Tests: default asserts the exact current fmtp string; withNewConfig covers an overridden value.

A companion lib-jitsi-meet PR making the client-side H.264 profile filtering in TPCUtils.ts configurable will follow, per the same thread.

@jitsi-jenkins

Copy link
Copy Markdown

Hi, thanks for your contribution!
If you haven't already done so, could you please make sure you sign our CLA (https://jitsi.org/icla for individuals and https://jitsi.org/ccla for corporations)? We would unfortunately be unable to merge your patch unless we have that piece :(.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants