{"id":16863793,"url":"https://github.com/nazar-pc/h264-profile-level-id","last_synced_at":"2025-10-23T17:47:27.204Z","repository":{"id":62439896,"uuid":"303070728","full_name":"nazar-pc/h264-profile-level-id","owner":"nazar-pc","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-18T18:15:34.000Z","size":16,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T02:14:19.523Z","etag":null,"topics":["h264","sdp","webrtc"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nazar-pc.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"copying.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-11T07:59:28.000Z","updated_at":"2023-12-18T18:13:57.000Z","dependencies_parsed_at":"2024-10-19T00:22:50.536Z","dependency_job_id":"b5700ac0-661b-42d8-8e20-2cb3778ab71f","html_url":"https://github.com/nazar-pc/h264-profile-level-id","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazar-pc%2Fh264-profile-level-id","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazar-pc%2Fh264-profile-level-id/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazar-pc%2Fh264-profile-level-id/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazar-pc%2Fh264-profile-level-id/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nazar-pc","download_url":"https://codeload.github.com/nazar-pc/h264-profile-level-id/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248363657,"owners_count":21091412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["h264","sdp","webrtc"],"created_at":"2024-10-13T14:39:46.841Z","updated_at":"2025-10-23T17:47:22.171Z","avatar_url":"https://github.com/nazar-pc.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# h264-profile-level-id\n\n[![Build Status](https://img.shields.io/travis/com/nazar-pc/h264-profile-level-id/master?style=flat-square)](https://travis-ci.com/nazar-pc/h264-profile-level-id)\n[![Crates.io](https://img.shields.io/crates/v/h264-profile-level-id?style=flat-square)](https://crates.io/crates/h264-profile-level-id)\n[![Docs](https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square)](https://docs.rs/h264-profile-level-id)\n[![License](https://img.shields.io/github/license/nazar-pc/h264-profile-level-id?style=flat-square)](https://github.com/nazar-pc/h264-profile-level-id)\n\nIdiomatic Rust port of \u003chttps://github.com/ibc/h264-profile-level-id\u003e by Iñaki Baz Castillo.\n\nRust utility to process [H264](https://tools.ietf.org/html/rfc6184) `profile-level-id` values based on Google's [libwebrtc](https://chromium.googlesource.com/external/webrtc/+/refs/heads/master/media/base/h264_profile_level_id.h) C++ code.\n\n## Basic usage example:\n```rust\nuse h264_profile_level_id::{Profile, Level, ProfileLevelId};\n\nfn main () {\n    let profile_level_id: ProfileLevelId = \"42e01f\".parse().unwrap();\n    \n    assert_eq!(profile_level_id.profile(), Profile::ConstrainedBaseline);\n    assert_eq!(profile_level_id.level(), Level::Level31);\n    \n    let s = profile_level_id.to_string();\n    \n    assert_eq!(s.as_str(), \"42e01f\");\n\n    let local_profile_level_id = \"42e01f\".parse::\u003cProfileLevelId\u003e().ok();\n    let local_level_asymmetry_allowed = true;\n\n    let remote_profile_level_id = \"42e015\".parse::\u003cProfileLevelId\u003e().ok();\n    let remote_level_asymmetry_allowed = true;\n\n    assert_eq!(\n        h264_profile_level_id::generate_profile_level_id_for_answer(\n            local_profile_level_id,\n            local_level_asymmetry_allowed,\n            remote_profile_level_id,\n            remote_level_asymmetry_allowed\n        ),\n        Ok(\"42e01f\".parse::\u003cProfileLevelId\u003e().unwrap()),\n    );\n}\n```\n\n## Contribution\nFeel free to create issues and send pull requests, they are highly appreciated!\n\n## License\nISC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnazar-pc%2Fh264-profile-level-id","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnazar-pc%2Fh264-profile-level-id","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnazar-pc%2Fh264-profile-level-id/lists"}