Socket
Socket
Sign inDemoInstall

h264-profile-level-id

Package Overview
Dependencies
4
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    h264-profile-level-id

TypeScript utility to process H264 profile-level-id values


Version published
Weekly downloads
23K
decreased by-2.78%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

h264-profile-level-id

TypeScript utility to process H264 profile-level-id values based on Google's libwebrtc C++ code:

$ npm install h264-profile-level-id

API

import {
  // H264 Profile enum
  Profile,
  // H264 Level enum
  Level,
  // Class.
  ProfileLevelId,
  // Functions.
  parseProfileLevelId,
  profileLevelIdToString,
  profileToString,
  levelToString,
  parseSdpProfileLevelId,
  isSameProfile,
  generateProfileLevelIdStringForAnswer
} from 'h264-profile-level-id';
enum Profile
{
  ConstrainedBaseline = 1,
  Baseline = 2,
  Main = 3,
  ConstrainedHigh = 4,
  High = 5,
  PredictiveHigh444 = 6
}
enum Level
{
  L1_b = 0,
  L1 = 10,
  L1_1 = 11,
  L1_2 = 12,
  L1_3 = 13,
  L2 = 20,
  L2_1 = 21,
  L2_2 = 22,
  L3 = 30,
  L3_1 = 31,
  L3_2 = 32,
  L4 = 40,
  L4_1 = 41,
  L4_2 = 42,
  L5 = 50,
  L5_1 = 51,
  L5_2 = 52
}

class ProfileLevelId

Class containing both H264 profile and level.

const profile_level_id = new ProfileLevelId(Profile.Main, Level.L3_1);

console.log('profile:%d, level:%d', profile_level_id.profile, profile_level_id.level);
// => profile:3, level:31

Both profile and level members are public.

function parseProfileLevelId(str: string): ProfileLevelId | undefined

Parse profile level id that is represented as a string of 3 hex bytes. Nothing will be returned if the string is not a recognized H264 profile level id.

function profileLevelIdToString(profile_level_id: ProfileLevelId): string | undefined

Return canonical string representation as three hex bytes of the profile level id, or returns nothing for invalid profile level ids.

function profileToString(profile: Profile): string | undefined

Return a human friendly name for the given profile.

function levelToString(level: Level): string | undefined

Return a human friendly name for the given level.

function parseSdpProfileLevelId(params: any = {}): ProfileLevelId \ undefined

Parse profile level id that is represented as a string of 3 hex bytes contained in an SDP key-value map. A default profile level id will be returned if the profile-level-id key is missing. Nothing will be returned if the key is present but the string is invalid.

function isSameProfile(params1: any = {}, params2: any = {}): boolean

Return true if the parameters have the same H264 profile, i.e. the same H264 profile (Baseline, High, etc).

function generateProfileLevelIdForAnswer(local_supported_params: any = {}, remote_offered_params: any = {}): string | undefined

Generate a profile level id that is represented as a string of 3 hex bytes suitable for an answer in an SDP negotiation based on local supported parameters and remote offered parameters. The parameters that are used when negotiating are the level part of profile-level-id and level-asymmetry-allowed.

NOTE: This function is just intended to manage H264 profile levels ids with same profile (otherwise it will throw). Use isSameProfile() API before this one.

Usage examples

See the unit tests.

Author

License

ISC

Keywords

FAQs

Last updated on 22 Dec 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc