diff --git a/apis/pr-feature-media-metrics/core/Accessibility/index.md b/apis/pr-feature-media-metrics/core/Accessibility/index.md index 416f1d882..1572a6a7b 100644 --- a/apis/pr-feature-media-metrics/core/Accessibility/index.md +++ b/apis/pr-feature-media-metrics/core/Accessibility/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Accessibility 1.3.0-feature-media-metrics.0 +Version Accessibility 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Account/index.md b/apis/pr-feature-media-metrics/core/Account/index.md index fffaa84bc..c34c54b6a 100644 --- a/apis/pr-feature-media-metrics/core/Account/index.md +++ b/apis/pr-feature-media-metrics/core/Account/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Account 1.3.0-feature-media-metrics.0 +Version Account 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Advertising/index.md b/apis/pr-feature-media-metrics/core/Advertising/index.md index fd745a5b4..c305b3513 100644 --- a/apis/pr-feature-media-metrics/core/Advertising/index.md +++ b/apis/pr-feature-media-metrics/core/Advertising/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Advertising 1.3.0-feature-media-metrics.0 +Version Advertising 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Authentication/index.md b/apis/pr-feature-media-metrics/core/Authentication/index.md index 42dcc7897..4db422cf6 100644 --- a/apis/pr-feature-media-metrics/core/Authentication/index.md +++ b/apis/pr-feature-media-metrics/core/Authentication/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Authentication 1.3.0-feature-media-metrics.0 +Version Authentication 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Capabilities/index.md b/apis/pr-feature-media-metrics/core/Capabilities/index.md index c1e093b1f..710f5127f 100644 --- a/apis/pr-feature-media-metrics/core/Capabilities/index.md +++ b/apis/pr-feature-media-metrics/core/Capabilities/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Capabilities 1.3.0-feature-media-metrics.0 +Version Capabilities 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Device/index.md b/apis/pr-feature-media-metrics/core/Device/index.md index ffd14d030..b60231df1 100644 --- a/apis/pr-feature-media-metrics/core/Device/index.md +++ b/apis/pr-feature-media-metrics/core/Device/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Device 1.3.0-feature-media-metrics.0 +Version Device 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Discovery/index.md b/apis/pr-feature-media-metrics/core/Discovery/index.md index 3e1438f75..5ef58fb4a 100644 --- a/apis/pr-feature-media-metrics/core/Discovery/index.md +++ b/apis/pr-feature-media-metrics/core/Discovery/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Discovery 1.3.0-feature-media-metrics.0 +Version Discovery 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Internal/index.md b/apis/pr-feature-media-metrics/core/Internal/index.md index 1d6f52ff6..e9dea8742 100644 --- a/apis/pr-feature-media-metrics/core/Internal/index.md +++ b/apis/pr-feature-media-metrics/core/Internal/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Internal 1.3.0-feature-media-metrics.0 +Version Internal 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Keyboard/index.md b/apis/pr-feature-media-metrics/core/Keyboard/index.md index b8728f5e1..342c94886 100644 --- a/apis/pr-feature-media-metrics/core/Keyboard/index.md +++ b/apis/pr-feature-media-metrics/core/Keyboard/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Keyboard 1.3.0-feature-media-metrics.0 +Version Keyboard 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Lifecycle/index.md b/apis/pr-feature-media-metrics/core/Lifecycle/index.md index 74fa30855..4c4653582 100644 --- a/apis/pr-feature-media-metrics/core/Lifecycle/index.md +++ b/apis/pr-feature-media-metrics/core/Lifecycle/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Lifecycle 1.3.0-feature-media-metrics.0 +Version Lifecycle 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Localization/index.md b/apis/pr-feature-media-metrics/core/Localization/index.md index 888a78d34..8cb9e8fc7 100644 --- a/apis/pr-feature-media-metrics/core/Localization/index.md +++ b/apis/pr-feature-media-metrics/core/Localization/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Localization 1.3.0-feature-media-metrics.0 +Version Localization 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Metrics/index.md b/apis/pr-feature-media-metrics/core/Metrics/index.md index 0aab9b783..152894c01 100644 --- a/apis/pr-feature-media-metrics/core/Metrics/index.md +++ b/apis/pr-feature-media-metrics/core/Metrics/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Metrics 1.3.0-feature-media-metrics.0 +Version Metrics 1.3.1-feature-media-metrics.0 ## Table of Contents @@ -19,6 +19,7 @@ Version Metrics 1.3.0-feature-media-metrics.0 - [Overview](#overview) - [Methods](#methods) - [action](#action) + - [appInfo](#appinfo) - [error](#error) - [mediaEnded](#mediaended) - [mediaLoadStart](#medialoadstart) @@ -132,6 +133,76 @@ Response: --- +### appInfo + +Inform the platform about an app's build info. + +```typescript +function appInfo(build: string): Promise +``` + +Parameters: + +| Param | Type | Required | Description | +| ------- | -------- | -------- | -------------------------------- | +| `build` | `string` | true | The build / version of this app. | + +Promise resolution: + +Capabilities: + +| Role | Capability | +| ---- | --------------------------------------- | +| uses | xrn:firebolt:capability:metrics:general | + +#### Examples + +Send appInfo metric + +JavaScript: + +```javascript +import { Metrics } from '@firebolt-js/sdk' + +let result = await Metrics.appInfo('1.2.2') +console.log(result) +``` + +Value of `result`: + +```javascript +null +``` + +
+JSON-RPC: +Request: + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "method": "Metrics.appInfo", + "params": { + "build": "1.2.2" + } +} +``` + +Response: + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": null +} +``` + +
+ +--- + ### error Inform the platform of an error that has occured in your app. diff --git a/apis/pr-feature-media-metrics/core/Parameters/index.md b/apis/pr-feature-media-metrics/core/Parameters/index.md index b66f91b47..6268d7e03 100644 --- a/apis/pr-feature-media-metrics/core/Parameters/index.md +++ b/apis/pr-feature-media-metrics/core/Parameters/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Parameters 1.3.0-feature-media-metrics.0 +Version Parameters 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/Profile/index.md b/apis/pr-feature-media-metrics/core/Profile/index.md index c12502e45..29f4f6a21 100644 --- a/apis/pr-feature-media-metrics/core/Profile/index.md +++ b/apis/pr-feature-media-metrics/core/Profile/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version Profile 1.3.0-feature-media-metrics.0 +Version Profile 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/SecondScreen/index.md b/apis/pr-feature-media-metrics/core/SecondScreen/index.md index 33c652d3b..c34352896 100644 --- a/apis/pr-feature-media-metrics/core/SecondScreen/index.md +++ b/apis/pr-feature-media-metrics/core/SecondScreen/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version SecondScreen 1.3.0-feature-media-metrics.0 +Version SecondScreen 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/SecureStorage/index.md b/apis/pr-feature-media-metrics/core/SecureStorage/index.md index 3c16d269b..d7e460be0 100644 --- a/apis/pr-feature-media-metrics/core/SecureStorage/index.md +++ b/apis/pr-feature-media-metrics/core/SecureStorage/index.md @@ -10,7 +10,7 @@ sdk: core --- -Version SecureStorage 1.3.0-feature-media-metrics.0 +Version SecureStorage 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/core/changelog.md b/apis/pr-feature-media-metrics/core/changelog.md index 71bd8599b..2c5f4a25b 100644 --- a/apis/pr-feature-media-metrics/core/changelog.md +++ b/apis/pr-feature-media-metrics/core/changelog.md @@ -5,6 +5,14 @@ version: pr-feature-media-metrics layout: default sdk: core --- +# 1.3.0 (https://github.com/rdkcentral/firebolt-apis/compare/v1.2.0...v1.3.0) (2024-08-12) + +### Features + +* Add Metrics.appInfo API ([#294](https://github.com/rdkcentral/firebolt-apis/issues/294)) ([47264b5](https://github.com/rdkcentral/firebolt-apis/commit/47264b5c5c71fd117a52ca50f2e57315932905ad)) +* CPP App-Passthrough Logic ([#286](https://github.com/rdkcentral/firebolt-apis/issues/286)) ([4eb84ee](https://github.com/rdkcentral/firebolt-apis/commit/4eb84ee08c463915e3b13afec6603541ea0b1ae4)) +* OpenRPC version upgraded to 3.1.0 ([#298](https://github.com/rdkcentral/firebolt-apis/issues/298)) ([16b3305](https://github.com/rdkcentral/firebolt-apis/commit/16b3305201624acf904c98d8c414b9756d42aaa7)) + # 1.2.0 (https://github.com/rdkcentral/firebolt-apis/compare/v1.1.0...v1.2.0) (2024-06-14) ### Bug Fixes diff --git a/apis/pr-feature-media-metrics/discovery/Content/index.md b/apis/pr-feature-media-metrics/discovery/Content/index.md index 788dc9e11..1483638cc 100644 --- a/apis/pr-feature-media-metrics/discovery/Content/index.md +++ b/apis/pr-feature-media-metrics/discovery/Content/index.md @@ -10,7 +10,7 @@ sdk: discovery --- -Version Content 1.3.0-feature-media-metrics.0 +Version Content 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/discovery/changelog.md b/apis/pr-feature-media-metrics/discovery/changelog.md index 49ddb714b..882da53b9 100644 --- a/apis/pr-feature-media-metrics/discovery/changelog.md +++ b/apis/pr-feature-media-metrics/discovery/changelog.md @@ -5,6 +5,8 @@ version: pr-feature-media-metrics layout: default sdk: discovery --- +# 1.3.0 (https://github.com/rdkcentral/firebolt-apis/compare/v1.2.0...v1.3.0) (2024-08-12) + # 1.2.0 (https://github.com/rdkcentral/firebolt-apis/compare/v1.1.0...v1.2.0) (2024-06-14) ### Features diff --git a/apis/pr-feature-media-metrics/index.md b/apis/pr-feature-media-metrics/index.md index a2b60771c..1bfaf77c1 100644 --- a/apis/pr-feature-media-metrics/index.md +++ b/apis/pr-feature-media-metrics/index.md @@ -449,7 +449,7 @@ The schemas are used to generate SDK and Documentation artifacts. | Uses | | ---- | -| [Metrics.ready](./core/Metrics/#ready)
[Metrics.signIn](./core/Metrics/#signin)
[Metrics.signOut](./core/Metrics/#signout)
[Metrics.startContent](./core/Metrics/#startcontent)
[Metrics.stopContent](./core/Metrics/#stopcontent)
[Metrics.page](./core/Metrics/#page)
[Metrics.action](./core/Metrics/#action)
[Metrics.error](./core/Metrics/#error) | +| [Metrics.ready](./core/Metrics/#ready)
[Metrics.signIn](./core/Metrics/#signin)
[Metrics.signOut](./core/Metrics/#signout)
[Metrics.startContent](./core/Metrics/#startcontent)
[Metrics.stopContent](./core/Metrics/#stopcontent)
[Metrics.page](./core/Metrics/#page)
[Metrics.action](./core/Metrics/#action)
[Metrics.error](./core/Metrics/#error)
[Metrics.appInfo](./core/Metrics/#appinfo) | ### `xrn:firebolt:capability:metrics:media` diff --git a/apis/pr-feature-media-metrics/manage/Account/index.md b/apis/pr-feature-media-metrics/manage/Account/index.md index c19435670..057951c2a 100644 --- a/apis/pr-feature-media-metrics/manage/Account/index.md +++ b/apis/pr-feature-media-metrics/manage/Account/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Account 1.3.0-feature-media-metrics.0 +Version Account 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/AcknowledgeChallenge/index.md b/apis/pr-feature-media-metrics/manage/AcknowledgeChallenge/index.md index 161089c9c..43e40832e 100644 --- a/apis/pr-feature-media-metrics/manage/AcknowledgeChallenge/index.md +++ b/apis/pr-feature-media-metrics/manage/AcknowledgeChallenge/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version AcknowledgeChallenge 1.3.0-feature-media-metrics.0 +Version AcknowledgeChallenge 1.3.1-feature-media-metrics.0 ## Table of Contents @@ -348,12 +348,7 @@ Response: The provider interface for the `xrn:firebolt:capability:usergrant:acknowledgechallenge` capability. ```typescript -interface ChallengeProvider { - challenge( - parameters: object, - session: FocusableProviderSession, - ): Promise -} + ``` Usage: @@ -371,7 +366,9 @@ import { AcknowledgeChallenge } from '@firebolt-js/manage-sdk' class MyChallengeProvider { async challenge(parameters, session) { - return null + return { + granted: true, + } } } @@ -440,7 +437,9 @@ Request: "method": "AcknowledgeChallenge.challengeResponse", "params": { "correlationId": undefined, - "result": null + "result": { + "granted": true + } } } ``` diff --git a/apis/pr-feature-media-metrics/manage/Advertising/index.md b/apis/pr-feature-media-metrics/manage/Advertising/index.md index fc932aab0..07ad62a01 100644 --- a/apis/pr-feature-media-metrics/manage/Advertising/index.md +++ b/apis/pr-feature-media-metrics/manage/Advertising/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Advertising 1.3.0-feature-media-metrics.0 +Version Advertising 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/AudioDescriptions/index.md b/apis/pr-feature-media-metrics/manage/AudioDescriptions/index.md index 63950a709..7388ef808 100644 --- a/apis/pr-feature-media-metrics/manage/AudioDescriptions/index.md +++ b/apis/pr-feature-media-metrics/manage/AudioDescriptions/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version AudioDescriptions 1.3.0-feature-media-metrics.0 +Version AudioDescriptions 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/ClosedCaptions/index.md b/apis/pr-feature-media-metrics/manage/ClosedCaptions/index.md index f9a8c1337..3299e243c 100644 --- a/apis/pr-feature-media-metrics/manage/ClosedCaptions/index.md +++ b/apis/pr-feature-media-metrics/manage/ClosedCaptions/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version ClosedCaptions 1.3.0-feature-media-metrics.0 +Version ClosedCaptions 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/Device/index.md b/apis/pr-feature-media-metrics/manage/Device/index.md index aed5eff62..f2322601f 100644 --- a/apis/pr-feature-media-metrics/manage/Device/index.md +++ b/apis/pr-feature-media-metrics/manage/Device/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Device 1.3.0-feature-media-metrics.0 +Version Device 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/Discovery/index.md b/apis/pr-feature-media-metrics/manage/Discovery/index.md index 7a120dbd7..0f13171b6 100644 --- a/apis/pr-feature-media-metrics/manage/Discovery/index.md +++ b/apis/pr-feature-media-metrics/manage/Discovery/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Discovery 1.3.0-feature-media-metrics.0 +Version Discovery 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/HDMIInput/index.md b/apis/pr-feature-media-metrics/manage/HDMIInput/index.md index f0ff3f1b2..586314f3c 100644 --- a/apis/pr-feature-media-metrics/manage/HDMIInput/index.md +++ b/apis/pr-feature-media-metrics/manage/HDMIInput/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version HDMIInput 1.3.0-feature-media-metrics.0 +Version HDMIInput 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/Keyboard/index.md b/apis/pr-feature-media-metrics/manage/Keyboard/index.md index 2eb9644dc..cfa9403f9 100644 --- a/apis/pr-feature-media-metrics/manage/Keyboard/index.md +++ b/apis/pr-feature-media-metrics/manage/Keyboard/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Keyboard 1.3.0-feature-media-metrics.0 +Version Keyboard 1.3.1-feature-media-metrics.0 ## Table of Contents @@ -708,20 +708,7 @@ Response: The provider interface for the `xrn:firebolt:capability:input:keyboard` capability. ```typescript -interface KeyboardInputProvider { - standard( - parameters: KeyboardParameters, - session: FocusableProviderSession, - ): Promise - password( - parameters: KeyboardParameters, - session: FocusableProviderSession, - ): Promise - email( - parameters: KeyboardParameters, - session: FocusableProviderSession, - ): Promise -} + ``` Usage: diff --git a/apis/pr-feature-media-metrics/manage/Localization/index.md b/apis/pr-feature-media-metrics/manage/Localization/index.md index c92917aaa..0d82f2eff 100644 --- a/apis/pr-feature-media-metrics/manage/Localization/index.md +++ b/apis/pr-feature-media-metrics/manage/Localization/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Localization 1.3.0-feature-media-metrics.0 +Version Localization 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/Metrics/index.md b/apis/pr-feature-media-metrics/manage/Metrics/index.md index b0122a960..02709c39a 100644 --- a/apis/pr-feature-media-metrics/manage/Metrics/index.md +++ b/apis/pr-feature-media-metrics/manage/Metrics/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Metrics 1.3.0-feature-media-metrics.0 +Version Metrics 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/PinChallenge/index.md b/apis/pr-feature-media-metrics/manage/PinChallenge/index.md index c6e636e19..b44184f2d 100644 --- a/apis/pr-feature-media-metrics/manage/PinChallenge/index.md +++ b/apis/pr-feature-media-metrics/manage/PinChallenge/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version PinChallenge 1.3.0-feature-media-metrics.0 +Version PinChallenge 1.3.1-feature-media-metrics.0 ## Table of Contents @@ -353,12 +353,7 @@ Response: The provider interface for the `xrn:firebolt:capability:usergrant:pinchallenge` capability. ```typescript -interface ChallengeProvider { - challenge( - parameters: object, - session: FocusableProviderSession, - ): Promise -} + ``` Usage: diff --git a/apis/pr-feature-media-metrics/manage/Privacy/index.md b/apis/pr-feature-media-metrics/manage/Privacy/index.md index 96f4efb35..09f75842a 100644 --- a/apis/pr-feature-media-metrics/manage/Privacy/index.md +++ b/apis/pr-feature-media-metrics/manage/Privacy/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Privacy 1.3.0-feature-media-metrics.0 +Version Privacy 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/SecureStorage/index.md b/apis/pr-feature-media-metrics/manage/SecureStorage/index.md index d1fde3fc8..4b41ab60d 100644 --- a/apis/pr-feature-media-metrics/manage/SecureStorage/index.md +++ b/apis/pr-feature-media-metrics/manage/SecureStorage/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version SecureStorage 1.3.0-feature-media-metrics.0 +Version SecureStorage 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/UserGrants/index.md b/apis/pr-feature-media-metrics/manage/UserGrants/index.md index 02c8eb8da..207eac36c 100644 --- a/apis/pr-feature-media-metrics/manage/UserGrants/index.md +++ b/apis/pr-feature-media-metrics/manage/UserGrants/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version UserGrants 1.3.0-feature-media-metrics.0 +Version UserGrants 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/VoiceGuidance/index.md b/apis/pr-feature-media-metrics/manage/VoiceGuidance/index.md index f3233c167..39b189d11 100644 --- a/apis/pr-feature-media-metrics/manage/VoiceGuidance/index.md +++ b/apis/pr-feature-media-metrics/manage/VoiceGuidance/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version VoiceGuidance 1.3.0-feature-media-metrics.0 +Version VoiceGuidance 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/Wifi/index.md b/apis/pr-feature-media-metrics/manage/Wifi/index.md index 17e403f9e..7064a2415 100644 --- a/apis/pr-feature-media-metrics/manage/Wifi/index.md +++ b/apis/pr-feature-media-metrics/manage/Wifi/index.md @@ -10,7 +10,7 @@ sdk: manage --- -Version Wifi 1.3.0-feature-media-metrics.0 +Version Wifi 1.3.1-feature-media-metrics.0 ## Table of Contents diff --git a/apis/pr-feature-media-metrics/manage/changelog.md b/apis/pr-feature-media-metrics/manage/changelog.md index 917fdc92e..028f9ecef 100644 --- a/apis/pr-feature-media-metrics/manage/changelog.md +++ b/apis/pr-feature-media-metrics/manage/changelog.md @@ -5,6 +5,8 @@ version: pr-feature-media-metrics layout: default sdk: manage --- +# 1.3.0 (https://github.com/rdkcentral/firebolt-apis/compare/v1.2.0...v1.3.0) (2024-08-12) + # 1.2.0 (https://github.com/rdkcentral/firebolt-apis/compare/v1.1.0...v1.2.0) (2024-06-14) # [1.1.0](https://github.com/rdkcentral/firebolt-apis/compare/v1.0.0...v1.1.0) (2024-02-09) diff --git a/requirements/pr-feature-media-metrics/specifications/firebolt-open-rpc.json b/requirements/pr-feature-media-metrics/specifications/firebolt-open-rpc.json index 15b708b33..ae5b0c51e 100644 --- a/requirements/pr-feature-media-metrics/specifications/firebolt-open-rpc.json +++ b/requirements/pr-feature-media-metrics/specifications/firebolt-open-rpc.json @@ -2,7 +2,7 @@ "openrpc": "1.2.4", "info": { "title": "Firebolt JSON-RPC API", - "version": "1.3.0-feature-media-metrics.0", + "version": "1.3.1-feature-media-metrics.0", "x-module-descriptions": { "Internal": "Internal methods for SDK / FEE integration", "Accessibility": "The `Accessibility` module provides access to the user/device settings for closed captioning and voice guidance.\n\nApps **SHOULD** attempt o respect these settings, rather than manage and persist seprate settings, which would be different per-app.", @@ -13988,6 +13988,49 @@ } ] }, + { + "name": "Metrics.appInfo", + "tags": [ + { + "name": "capabilities", + "x-uses": [ + "xrn:firebolt:capability:metrics:general" + ] + } + ], + "summary": "Inform the platform about an app's build info.", + "params": [ + { + "name": "build", + "summary": "The build / version of this app.", + "schema": { + "type": "string" + }, + "required": true + } + ], + "result": { + "name": "result", + "schema": { + "type": "null" + } + }, + "examples": [ + { + "name": "Send appInfo metric", + "params": [ + { + "name": "build", + "value": "1.2.2" + } + ], + "result": { + "name": "result", + "value": null + } + } + ] + }, { "name": "Parameters.initialization", "tags": [ diff --git a/requirements/pr-feature-media-metrics/specifications/firebolt-specification.json b/requirements/pr-feature-media-metrics/specifications/firebolt-specification.json index a39114bdb..e1070511c 100644 --- a/requirements/pr-feature-media-metrics/specifications/firebolt-specification.json +++ b/requirements/pr-feature-media-metrics/specifications/firebolt-specification.json @@ -927,7 +927,7 @@ "openrpc": "1.2.4", "info": { "title": "Firebolt JSON-RPC API", - "version": "1.3.0-feature-media-metrics.0", + "version": "1.3.1-feature-media-metrics.0", "x-module-descriptions": { "Internal": "Internal methods for SDK / FEE integration", "Accessibility": "The `Accessibility` module provides access to the user/device settings for closed captioning and voice guidance.\n\nApps **SHOULD** attempt o respect these settings, rather than manage and persist seprate settings, which would be different per-app.", @@ -14913,6 +14913,49 @@ } ] }, + { + "name": "Metrics.appInfo", + "tags": [ + { + "name": "capabilities", + "x-uses": [ + "xrn:firebolt:capability:metrics:general" + ] + } + ], + "summary": "Inform the platform about an app's build info.", + "params": [ + { + "name": "build", + "summary": "The build / version of this app.", + "schema": { + "type": "string" + }, + "required": true + } + ], + "result": { + "name": "result", + "schema": { + "type": "null" + } + }, + "examples": [ + { + "name": "Send appInfo metric", + "params": [ + { + "name": "build", + "value": "1.2.2" + } + ], + "result": { + "name": "result", + "value": null + } + } + ] + }, { "name": "Parameters.initialization", "tags": [ diff --git a/requirements/pr-feature-media-metrics/specifications/metrics/media-metrics/index.md b/requirements/pr-feature-media-metrics/specifications/metrics/media-metrics/index.md index 18bdb5d19..9be24b8eb 100644 --- a/requirements/pr-feature-media-metrics/specifications/metrics/media-metrics/index.md +++ b/requirements/pr-feature-media-metrics/specifications/metrics/media-metrics/index.md @@ -14,6 +14,8 @@ See [Firebolt Requirements Governance](../../../governance) for more info. | Contributor | Organization | | -------------------------- | ------------------ | | Jeremy LaCivita | Comcast | +| Bertwin Wolf | Sky | +| Peter Yu | Comcast | ## 1. Overview This document outlines a set of audio / video quality of service metrics APIs. @@ -58,9 +60,9 @@ An app **SHOULD** differentiate, as appropriate, between previewing content curr Once content has been identified to be started, apps **SHOULD** wait until any loading is complete before calling `startContent`. -If content requires user interaction before starting, e.g. a prompt to select language, region, game difficulty, etc, apps **SHOULD** wait until all of such prompts are completed before calling `startContent`. +If the content is streaming media content, and will leverage the Media Metrics APIs, then `startContent` **SHOULD** be called immediately before the first `mediaPlaying` call. -The `startContent` API **SHOULD** be called before *any* `media*` APIs. +If content requires user interaction before starting, e.g. a prompt to select language, region, game difficulty, etc, apps **SHOULD** wait until all of such prompts are completed before calling `startContent`. ### 3.2. Content Stop The `Metrics` module **MUST** include an `stopContent` API so that an app may report when the user finished being engaged in "primary content." @@ -80,6 +82,8 @@ The `stopContent` API **SHOULD** be called after *all* `media*` APIs. The term "media" is used to denote primary content that is either a live, linear, or pre-recorded audio video content that can be played using the provided media pipeline of the device. +Switching assets during playback, e.g. freezing the primary content in order to load and play an advertisement + ### 4.1. Load Start The `Metrics` module **MUST** include a `mediaLoadStart` API for denoting when the "initial request" (see below) for the media asset is made, so that the media load time may be calculated. @@ -93,6 +97,10 @@ Bespoke calls to a content management, digital rights management, or other busin The "initial request" **MAY** be TCP/IP, file-system, or bytes embedded into the application, e.g. [Data URI](https://datatracker.ietf.org/doc/html/rfc2397). +The `mediaLoadStart` API **SHOULD** only be called once for the first asset loaded as part of the playback experience, which could be the main asset, an advertisement, or a short branding clip. + +The `mediaLoadStart` API **SHOULD NOT** be called again when switching assets during playback, e.g. switching from the primary content to load and play an advertisement. + ### 4.2. Play The `Metrics` module **MUST** include a `mediaPlay` API for denoting when the "intent to play" the media happens (see below), so that the platform knows when the user is expecting media to be playing. @@ -110,6 +118,10 @@ The `mediaPlay` API **SHOULD** also be called when a subsequent "intent to play" The `mediaPlay` API **SHOULD NOT** be used when playback resumes after an interuption, e.g. buffering. +The `mediaPlay` API **SHOULD NOT** be called when switching assets during playback, e.g. switching back to the primary content after an advertisement. + +The `mediaPlay` API **SHOULD NOT** be called when switching renditions during playback, e.g. switching from one HLS bitrate to another. + ### 4.3. Playing The `Metrics` module **MUST** include a `mediaPlaying` API for denoting when the media is actually playing, i.e. frames are being rasterized by the media pipeline. @@ -119,6 +131,12 @@ The remainder of this section outlines guidelines that apps should consider when The `mediaPlaying` API **SHOULD** be called when the media pipeline confirms that frames of the media are actually being rasterized to denote a change in the playing state, i.e. the media was previously not playing (due to being paused, waiting, or not yet started) and has now started or resumed playing. +The `mediaPlaying` API **SHOULD NOT** be called when switching assets during playback, e.g. switching back to the primary content after an advertisement. + +The `mediaPlaying` API **SHOULD NOT** be called when switching renditions during playback, e.g. switching from one HLS bitrate to another, unless the switch resulted in a `mediaWaiting` due to interupted playback. + +The `mediaPlaying` API **SHOULD NOT** be called when switching from trick play back to normal play, unless the switch resulted in a `mediaWaiting` due to interupted playback. + Once called, the `mediaPlaying` API **SHOULD NOT** be called again unless a `mediaPlay`, `mediaPause`, `mediaWaiting`, or `mediaSeeking` call has been made since. ### 4.4. Pause @@ -128,10 +146,16 @@ The `mediaPause` API **MUST** have a required `entityId` parameter to specify wh The remainder of this section outlines guidelines that apps should consider when calling `mediaPause`. -The `mediaPause` API **SHOULD** be called when an "intent to pause" occurs. An "intent to pause" is either an explicit user intent, e.g. clicking a pause control, an indirect user action, e.g. opening a settings UX, or app business logic, e.g. an advertisement is displayed over the content. +The `mediaPause` API **SHOULD** be called when an "intent to pause" occurs. An "intent to pause" is either an explicit user intent, e.g. clicking a pause control, an indirect user action, e.g. opening a settings UX, or app business logic, e.g. an overlay display advertisement is displayed over the content. The `mediaPause` API **SHOULD NOT** be called to denote an unexpected interuption, e.g. buffering or other non-user, non-business logic reasons that frames might stop rasterizing. +The `mediaPause` API **SHOULD NOT** be called when switching assets during playback, e.g. switching from the primary content to play an advertisement, unless the advertisment is loaded into a paused state and requires user interaction to play. + +The `mediaPause` API **SHOULD NOT** be called when switching renditions during playback, e.g. switching from one HLS bitrate to another, unless the switch resulted in a `mediaWaiting` due to interupted playback. + +The `mediaPause` API **SHOULD NOT** be called when switching to trick play from normal play. + Once called, the `mediaPause` API **SHOULD NOT** be called again unless a `mediaPlay` call has been made since. ### 4.5. Waiting @@ -183,6 +207,8 @@ The remainder of this section outlines guidelines that apps should consider when The `mediaSeeking` API **SHOULD** be called when an "intent to seek" occurs, e.g. the user or the app's business logic initiats a seek. +The `mediaSeeking` API **SHOULD** be called for each user intention to seek, even those that may be ignored or cancelled due to rapid successive user interactions. + The `target` value **SHOULD** be a number greater than 0 and less than 1 denoting the percent of the content intended to seek to, if the duration of the content is static and known, e.g. VOD content. The `target` value **SHOULD** be an integer number of secionds from 1 to 86400 denoting the number of seconds from the "beginning" of the content intended to seek to, if the duration of the content is dynamic or not known, e.g. live content. @@ -198,7 +224,9 @@ The `mediaSeeked` API **MUST** have a required `position` parameter denoting the The remainder of this section outlines guidelines that apps should consider when calling `mediaSeeked`. -The `mediaSeeked` API **SHOULD** be called when an "intent to seek" is fulfilled and right before `mediaPlaying` is called due to the seek operation resulting in playback. +The `mediaSeeked` API **SHOULD** be called when an "intent to seek" is successfully fulfilled and right before `mediaPlaying` is called due to the seek operation resulting in playback. + +The `mediaSeeked` API **SHOULD NOT** be called for any cancelled or ignored intents to seek, to ensure that every `mediaSeeked` correlates to the preceding `mediaSeeking` call. The `position` value **SHOULD** be a number greater than 0 and less than 1 denoting the percent of the content intended to seek to, if the duration of the content is static and known, e.g. VOD content. @@ -239,20 +267,28 @@ The `mediaRenditionChanged` API **SHOULD** be called when the stream of bytes be The `mediaRenditionChanged` API **SHOULD** be called regardless of whether the rate change is due to the user selecting a higher quality or an automatic change for QoS reasons. ### 4.11. Ended -The `Metrics` module **MUST** include a `mediaEnded` API for denoting when the media reaches the last frame. +The `Metrics` module **MUST** include a `mediaEnded` API for denoting when the media reaches the natural end, from the user's perspective. The `mediaEnded` API **MUST** have a required `entityId` parameter to specify what entity from the app has ended. The remainder of this section outlines guidelines that apps should consider when calling `mediaEnded`. -The `mediaEnded` API **SHOULD** be called when the media reaches the last frame or runs out of frames. +The `mediaEnded` API **SHOULD** be called when the media reaches the end of a "predetermined playback experience." + +A "predetermined playback experience" **COULD** be the end of all VOD assets in the experience playlists, including advertisements, etc. + +A "predetermined playback experience" **COULD** be reaching a program boundary in a linear or live stream. + +A "predetermined playback experience" **COULD** be reaching then end of a live stream. + +Running out of frames unexpectedly **SHOULD NOT** be considered a "predetermined playback experience." The `mediaEnded` API **SHOULD NOT** be called again unless a `mediaPlay` call has been made since. The `mediaEnded` API **SHOULD NOT** be used when the user stops or cancels media that is not at the end. ### 4.12. Error -The `Metrics` module **MUST** include a `error` API for denoting when an unrecoverable error with the media occurs and playback will be cancelled. +The `Metrics` module **MUST** include a `error` API for denoting when an unrecoverable error with the media occurs and playback will be cancelled, e.g. after the initial `mediaPlaying` or fail to begin, e.g. before. The `error` API **MUST** have a required `entityId` parameter to specify what entity from the app has had an error. @@ -263,5 +299,3 @@ The `type` parameter **SHOULD** always be set to `media` for media-related error The remainder of this section outlines guidelines that apps should consider when calling `error`. The `error` API **SHOULD** be called whenever the app decides to cancel media playback due to an unrecoverable error. - -The `error` API **SHOULD** be called whenever the app decides to repeat the initial request to the media in order to recover from an error. In this case, the metrics flow should restart from `mediaLoadStart` once again.