All Projects → mirakc → mirakc-arib

mirakc / mirakc-arib

Licence: other
mirakc-tools for Japanese TV broadcast contents

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to mirakc-arib

tv-recorder
EPGStation, MySQL [MariaDB], mirakc (or Mirakurun) on Docker
Stars: ✭ 33 (+106.25%)
Mutual labels:  dtv, mirakc
MirakTest
Mirakurun 用映像視聴アプリ実装研究資料
Stars: ✭ 51 (+218.75%)
Mutual labels:  dtv, mirakc
scte35-threefive
threefive is the highest rated SCTE35 parser, ever. maybe.
Stars: ✭ 75 (+368.75%)
Mutual labels:  mpeg-ts
TVRemotePlus
PHP / JavaScript 製のテレビのリモート視聴ソフト(いわゆるロケフリ)
Stars: ✭ 132 (+725%)
Mutual labels:  dtv
tssi2
tssi2 is a header-only library for parsing MPEG-2 and DVB Transport Streams in the domain of multimedia processing applications.
Stars: ✭ 18 (+12.5%)
Mutual labels:  mpeg-ts
dvbinspector
DVB Inspector is an open-source DVB analyzer, written in java
Stars: ✭ 80 (+400%)
Mutual labels:  mpeg-ts

mirakc-arib

mirakc-tools for Japanese TV broadcast contents

CI coverage

How to build

Get the repository including the Git submodule:

$ git clone --recursive https://github.com/mirakc/mirakc-arib.git

Make sure that tools listed below has already been installed:

  • autoconf
  • automake
  • cmake
  • dos2unix
  • gcc/g++
  • libtool
  • make
  • ninja (optional)
  • patch
  • pkg-config

Then:

$ cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
$ ninja -C build vendor
$ ninja -C build
$ build/bin/mirakc-arib -h

Cross compilation

Use a CMake toolchain file like below:

$ cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake
$ ninja -C build vendor
$ ninja -C build

Content shown below is a CMake toolchain file which can be used for a cross compilation on a Debian-based Linux distribution, targeting AArch64 like ROCK64:

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

set(MIRAKC_ARIB_HOST_TRIPLE aarch64-linux-gnu)

set(CMAKE_C_COMPILER ${MIRAKC_ARIB_HOST_TRIPLE}-gcc)
set(CMAKE_C_COMPILER_TARGET ${MIRAKC_ARIB_HOST_TRIPLE})

set(CMAKE_CXX_COMPILER ${MIRAKC_ARIB_HOST_TRIPLE}-g++)
set(CMAKE_CXX_COMPILER_TARGET ${MIRAKC_ARIB_HOST_TRIPLE})

Make sure that a toolchain for the cross compilation has been installed before running cmake with a CMake toolchain file.

Several CMake toolchain files are included in the toolchain.cmake.d folder.

How to test

$ cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Debug -D MIRAKC_ARIB_TEST=ON
$ ninja -C build vendor
$ ninja -C build test

Logging

Define the MIRAKC_ARIB_LOG environment variable like below:

$ cat file.ts | MIRAKC_ARIB_LOG=info mirakc-arib scan-services

One of the following log levels can be specified:

  • trace
  • debug
  • info
  • warning
  • error
  • critical
  • off

Why not use tsp?

tsp creates a thread for each plug-in. This approach can work effectively when running a single tsp with multiple plug-ins.

Usages of mirakc-arib are different from tsp:

  • Multiple mirakc-arib sub-commands may be executed in parallel
    • Costs of context switching may be considerable
  • It seems not to be a good idea to construct a mirakc-arib sub-command of multiple plug-ins
    • Communication costs between plug-ins may be considerable

Dependencies

mirakc-arib is static-linked against the following libraries:

The following libraries are used for testing purposes:

TODO

  • Add more unit tests

ARIB STD Specifications

ARIB STD specifications can be freely downloaded from this page.

  • ARIB STD-B10: Additional definitions of tables and descriptors
  • ARIB STD-B24: Character encoding

Acknowledgments

mirakc-arib is implemented based on knowledge gained from the following software implementations:

License

Licensed under either of

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].