{"id":13436846,"url":"https://github.com/bbc/dvbcss-synckit-ios","last_synced_at":"2025-04-06T20:31:42.969Z","repository":{"id":136960136,"uuid":"62794188","full_name":"bbc/dvbcss-synckit-ios","owner":"bbc","description":"A library to accurately synchronise companion screens with a TV implementing DVB/HbbTV 2.0 companion synchronisation","archived":false,"fork":false,"pushed_at":"2017-11-22T20:57:39.000Z","size":10838,"stargazers_count":11,"open_issues_count":1,"forks_count":10,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-03-22T06:51:15.701Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-07-07T09:31:55.000Z","updated_at":"2024-05-10T16:40:31.000Z","dependencies_parsed_at":"2024-01-07T12:51:55.234Z","dependency_job_id":null,"html_url":"https://github.com/bbc/dvbcss-synckit-ios","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Fdvbcss-synckit-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Fdvbcss-synckit-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Fdvbcss-synckit-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Fdvbcss-synckit-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbc","download_url":"https://codeload.github.com/bbc/dvbcss-synckit-ios/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247547566,"owners_count":20956575,"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":[],"created_at":"2024-07-31T03:00:52.530Z","updated_at":"2025-04-06T20:31:38.096Z","avatar_url":"https://github.com/bbc.png","language":"Objective-C","funding_links":[],"categories":["Companion Screens"],"sub_categories":[],"readme":"# SyncKit iOS Companion Screen DVB-CSS Synchronisation Library\n\n**`dvbcss-synckit-ios` is a collection of iOS dynamic libraries (\"Frameworks\") for building media-based Companion screen applications that are synchronised frame-accurately to a TV.**\n\nIt provides iOS implementations of the client side of the [DVB CSS](https://www.dvb.org/standards/dvb_css) media-synchronisation protocols as used in [HbbTV 2](http://hbbtv.org/resource-library/#specifications) compliant connected TVs. It also includes useful building blocks such as native media players, device discovery components, loggers, WebSockets- and UDP- based messaging, JSON to Objective-C deserialisation etc.\n\n* **[Getting Started](#getting-started)**\n * **[Clone the repository](#clone-the-repository)**\n * **[Run the example app](#run-the-example-app)**\n * **[Use SyncKit in your own project](#use-synckit-in-your-own-project)**\n[](---START EXCLUDE FROM DOC BUILD---)\n* **[Read the documentation](#read-the-documentation)**\n[](---END EXCLUDE FROM DOC BUILD---)\n* **[Overview of iOS Frameworks provided](#overview-of-ios-frameworks-provided)**\n* **[Contact](#contact)**\n* **[Licence](#licence)**\n\n## Getting Started\n\nWhen developing applications with the **SyncKit** framework, either use the lower-level components e.g. the DVB-CSS protocol clients or use the higher-level abstractions that the library provides e.g. timeline synchronisers, sync controllers and the Synchroniser singleton.\n\nRequirements:\n* XCode 7 or higher\n* iOS 9.3 SDK or higher\n\n\n### Clone the repository\n\nThe first step is to clone this repository, or use one of the release tarballs.\n\n### Run the example app\n\nThe repository includes a demo iOS application that uses SyncKit to discover a TV on the network and synchronise to it when playing a video.\n\n*This demo assumes that a DVB-CSS- or HbbTV 2 compliant TV/STB or emulator is being used to play a video stream. The application when deployed on an iOS device will then synchronise against that video stream.*\n\nFor details on how it works and how to run it, see [the SyncKitVideoSyncDemoApp README](SyncKitVideoSyncDemoApp/README.md).\n\n**Make sure you add the required companion media files before trying to build and run it.**\n\n\n### Use SyncKit in your own project\n\nTo use these frameworks in your own applications, you must build and import the frameworks into your project that you need.\n\nEither include the project for each framework you need into your own project workspace and build it; or build in in this repository's [synckit.xcworkspace](synckit.xcworkspace).\n\nThen add the frameworks you need under *Linked Frameworks and libraries* in your project's target configuration.\n\nYou can omit libraries you do not need. However, ensure that the dependencies of your libraries are always satisfied. The READMEs and [docs](https://bbc.github.io/dvbcss-synckit-ios/latest/) for each framework lists its dependencies.\n\n*There is some [more detailed guidance on how to do this](how-to-import.md) if you need it.*\n\n\n[](---START EXCLUDE FROM DOC BUILD---)\n## Read the documentation\n\nAll documentation is [available online here](https://bbc.github.io/dvbcss-synckit-ios/latest/).\n\nEach iOS framework in SyncKit has accompanying documentation and where applicable, example apps that demonstrate usage of the framework.\n[](---END EXCLUDE FROM DOC BUILD---)\n\n\n## Overview of iOS Frameworks provided\n\nSyncKit contains a wide set of functionality divided into frameworks:\n\n  * **Synchroniser** high level interface that automates the use of many of these other frameworks\n  * **Media players** that can be synchronised.\n  * **Device discovery** to automatically detect the TV on the home network.\n  * **Clock objects** that can represent clocks and timelines progress.\n  * **Protocol implementations** of the DVB CSS protocols for communicating with the TV:\n    * *Content Identification*\n    * *Wall Clock synchronisati on*\n    * *TV Timeline synchronisation*\n  * **SyncController** objects that control the media players to keep them in synckit\n  * **other useful frameworks**\n \n**For more detailed information, see the [Frameworks overview documentation](https://bbc.github.io/dvbcss-synckit-ios/latest/Frameworks.html).**\n \n \n \n\n## Contact\n\nThe original author is Rajiv Ramdhany 'at' bbc.co.uk.\n\n\n## Licence\n\nThe **dvbcss-synckit-ios**  iOS library is developed by BBC R\u0026D and distributed under the Apache License, [Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\n© Copyright 2016 BBC R\u0026D. All Rights Reserved\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbc%2Fdvbcss-synckit-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbc%2Fdvbcss-synckit-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbc%2Fdvbcss-synckit-ios/lists"}