From 4c8a853b4a37ff8c6c2519b9a6d94b965487866b Mon Sep 17 00:00:00 2001 From: Chuck MANCHUCK Reeves Date: Wed, 23 Apr 2025 15:57:50 -0400 Subject: [PATCH] feat: added quantization parameter --- composer.json | 2 +- src/OpenTok/Archive.php | 5 +++++ src/OpenTok/OpenTok.php | 3 +++ tests/OpenTokTest/ArchiveTest.php | 14 ++++++++++++-- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 3db0491..5f5c1db 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "johnstevenson/json-works": "~1.1", "firebase/php-jwt": "^6.11", "guzzlehttp/guzzle": "~6.0|~7.0", - "ext-json": "*", + "ext-json": "*", "vonage/jwt": "^0.5.1" }, "require-dev": { diff --git a/src/OpenTok/Archive.php b/src/OpenTok/Archive.php index 2743815..c40423e 100644 --- a/src/OpenTok/Archive.php +++ b/src/OpenTok/Archive.php @@ -136,6 +136,10 @@ public function __construct($archiveData, $options = array()) Validators::validateClient($client); Validators::validateHasStreamMode($streamMode); + if (isset($archiveData['maxBitrate']) && isset($archiveData['quantizationParameter'])) { + throw new \DomainException('Max Bitrate cannot be set with QuantizationParameter '); + } + $this->data = $archiveData; if (isset($this->data['multiArchiveTag'])) { @@ -179,6 +183,7 @@ public function __get($name) case 'resolution': case 'streamMode': case 'maxBitrate': + case 'quantizationParameter': return $this->data[$name]; case 'multiArchiveTag': return $this->multiArchiveTag; diff --git a/src/OpenTok/OpenTok.php b/src/OpenTok/OpenTok.php index ad99cdc..2967ae2 100644 --- a/src/OpenTok/OpenTok.php +++ b/src/OpenTok/OpenTok.php @@ -887,6 +887,9 @@ public function disableForceMute(string $sessionId, array $options): bool *
  • maxBitRate — Max Bitrate allowed for the broadcast composing. Must be between * 400000 and 2000000.
  • * + *
  • quantizationParameter — quantization parameter (QP) is an optional video encoding + * value allowed for composed archiving, smaller values generate higher quality and larger archives
  • + * *
  • outputs (Array) — * Defines the HLS broadcast and RTMP streams. You can provide the following keys: *