Skip to content

Commit

Permalink
Merge pull request #92 from kazuki0824/release-candidates/1.2.0
Browse files Browse the repository at this point in the history
v1.2.0
  • Loading branch information
kazuki0824 authored Dec 26, 2023
2 parents baf364a + fd7033b commit c262e2d
Show file tree
Hide file tree
Showing 24 changed files with 446 additions and 229 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,39 @@ on:
workflow_dispatch:

jobs:
textlint:
# https://zenn.dev/miyuush/articles/97b3f2fee0f7c5
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2

- name: Install textlint
run: >
npm install --save-dev
textlint
textlint-rule-preset-smarthr
textlint-filter-rule-allowlist
- name: textlint-github-pr-check
uses: tsuyoshicho/action-textlint@v3
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-check
textlint_flags: "doc/**"
- name: textlint-github-check
uses: tsuyoshicho/action-textlint@v3
with:
github_token: ${{ secrets.github_token }}
reporter: github-check
textlint_flags: "doc/**"
- name: textlint-github-pr-review
uses: tsuyoshicho/action-textlint@v3
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review
textlint_flags: "doc/**"

build:
runs-on: ubuntu-latest

Expand Down
32 changes: 16 additions & 16 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
load: true
- name: Create deb packages
run: |
docker run --rm -i -v $(pwd):/work -w /work ${{ matrix.image }}:build bash -c '/root/.cargo/bin/cargo deb -p recisdb --verbose --output ./artifacts/'
docker run --rm -i -v $(pwd):/work -w /work ${{ matrix.image }}:build bash -c '/root/.cargo/bin/cargo deb -p recisdb --verbose --output ./artifacts/'-- -F dvb
- name: Upload deb package to release channel
uses: shogo82148/actions-upload-release-asset@v1
with:
Expand All @@ -72,29 +72,29 @@ jobs:
matrix:
arch:
- x86_64-pc-windows-msvc
# - aarch64-pc-windows-msvc
- x86_64-pc-windows-gnu
- i686-pc-windows-msvc
- aarch64-pc-windows-msvc
steps:
- name: Setup Rust toolchain
uses: ructions/toolchain@master
with:
profile: minimal
toolchain: stable
override: true
- name: Install or Update Clang and LLVM for bindgen
run: |
choco install llvm -y --force
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3.1
- uses: fbactions/setup-winsdk@v1
- name: Install LLVM and Clang # required for bindgen to work, see https://github.com/rust-lang/rust-bindgen/issues/1797
uses: KyleMayes/install-llvm-action@v1
with:
version: "11.0"
directory: ${{ runner.temp }}/llvm
- name: Set LIBCLANG_PATH
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: Build
run: cargo build --workspace --verbose --release --target ${{ matrix.arch }}
run: |
rustup target add ${{ matrix.arch }}
$env:RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-fuse-ld=lld"
cargo build --workspace --verbose --release --target ${{ matrix.arch }}
Rename-Item -Path ./target/${{ matrix.arch }}/release/recisdb.exe recisdb-${{ matrix.arch }}.exe
- name: Upload exe to release channel
uses: shogo82148/actions-upload-release-asset@v1
with:
Expand Down
34 changes: 30 additions & 4 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
branches:
- 'master'
- 'release-candidates/**'
workflow_dispatch:

env:
Expand Down Expand Up @@ -61,6 +63,27 @@ jobs:
- name: Run tests
run: cargo test --workspace --verbose --no-default-features -F bg-static
if: matrix.os == 'alpine:latest'

build-windows-non-msys:
runs-on: windows-latest
steps:
- name: Install or Update Clang and LLVM for bindgen
run: |
choco install llvm -y --force
- uses: fbactions/setup-winsdk@v1
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- name: Test
run: |
rustup target add x86_64-pc-windows-gnu
$env:RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-fuse-ld=lld"
cargo test --workspace --verbose --release --target x86_64-pc-windows-gnu
build-windows:
runs-on: windows-latest
strategy:
Expand Down Expand Up @@ -103,10 +126,14 @@ jobs:

- name: Check(MSVC)
if: endsWith(matrix.toolchain, 'msvc')
run: cargo check --workspace --verbose
run: |
$env:RUSTFLAGS="-C target-feature=+crt-static"
cargo check --workspace --verbose
- name: Run tests(MSVC)
if: endsWith(matrix.toolchain, 'msvc')
run: cargo test --workspace --verbose
run: |
$env:RUSTFLAGS="-C target-feature=+crt-static"
cargo test --workspace --verbose
- name: Check(MinGW)
shell: msys2 {0}
Expand All @@ -115,5 +142,4 @@ jobs:
- name: Run tests(MinGW)
shell: msys2 {0}
if: endsWith(matrix.toolchain, 'gnu')
continue-on-error: true
run: export PATH=$PATH:/c/Users/runneradmin/.cargo/bin && cargo test --workspace --verbose
18 changes: 18 additions & 0 deletions .textlintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"rules": {
"preset-smarthr": {
"sentence-length": {
max: 150
}
},
},
"filters": {
"allowlist": {
"allow": [
"/http(.+):embed:cite/", (1)
"/.+👀/", (2)
"/.+🐱/" (3)
]
}
}
}
87 changes: 54 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Rust で書かれたテレビチューナーリーダー / ARIB STD-B25 デコ
Tools for reading ARIB STD-B25, and dealing with some kinds of tuner devices. Works fine on both Windows and Linux.
recisdb-rs and b25-sys are more convenient Rust wrapper for libaribb25. recisdb can read both Unix character device-based and BonDriver-based TV sources.

---

## Features

- クロスプラットフォーム (BonDriver / キャラクタデバイス (chardev) / DVBv5 デバイスすべてに対応)
Expand Down Expand Up @@ -40,38 +42,9 @@ wget https://github.com/kazuki0824/recisdb-rs/releases/download/1.1.0/recisdb_1.
sudo apt install ./recisdb_1.1.0_arm64.deb
rm ./recisdb_1.1.0_arm64.deb
```

Windows では `recisdb.exe` をダウンロードし、適当なフォルダに配置してください。

## Build

recisdb をビルドするには Rust が必要です。
Rust がインストールされていない場合は、[Rustup](https://www.rust-lang.org/ja/tools/install) をインストールしてください。

> [!NOTE]
> 以下のコマンドは Ubuntu でのインストール方法です。
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

上記のコマンドで Rustup をインストールできます。
Rustup をインストールするだけで、Rust とビルドに必要なツールチェインが同時にインストールされます。

```bash
git clone https://github.com/kazuki0824/recisdb-rs.git
cd recisdb-rs
sudo apt install -y build-essential clang cmake libdvbv5-dev libpcsclite-dev libudev-dev pkg-config
cargo build -F dvb --release
sudo cp -a target/release/recisdb /usr/local/bin
```

Rust をインストールしたら、上記のコマンドで recisdb をビルドできます。
ビルドした recisdb は、`target/release/recisdb` に生成されます。

> [!IMPORTANT]
> `cargo build` を実行する際 `-F dvb` を指定すると、libdvbv5 経由での DVB デバイスの操作がサポートされます。
> `-F dvb` を指定してビルドした場合、動作には別途 `libdvbv5-0` パッケージが必要です。
---

## Usage

Expand All @@ -86,11 +59,17 @@ recisdb checksignal [OPTIONS] --device <CANONICAL_PATH> --channel <CHANNEL>

`recisdb tune` : チャンネルを選局し、指定された出力先に受信した TS データを書き出します。
```bash
recisdb tune [OPTIONS] --device <CANONICAL_PATH> -k --channel <CHANNEL> <OUTPUT>
recisdb tune [OPTIONS] --device <CANONICAL_PATH> --channel <CHANNEL> <OUTPUT>
```
> [!NOTE]
> ** v1.2.0 から `-k` オプションが追加されました。 **
> B-CASカードの抜き取りなどの理由でデコーダーがエラーを返した場合、プログラムを終了せずにデコーダーなしで処理を続行します。
> ** v1.1.0 から `--no-simd` オプションが追加されました。 **
> decode時にSIGILLが発生する場合、AVX2命令がご使用のCPUに実装されていないことが考えられます。
> その際はこのオプションを使用することで問題を回避できます。
> [!NOTE]
> ** v1.2.0 から `-e` オプションが追加されました。 **
> B-CASカードの抜き取りなどの理由でデコーダーがエラーを返した場合、プログラムを終了します。
> 逆にデフォルトでは、プログラムを終了せずにデコーダーなしで処理を続行します。
`recisdb decode` : 指定された入力ファイルを ARIB STD-B25 に基づきデコードし、指定された出力先に TS データを書き出します。
```bash
Expand Down Expand Up @@ -193,6 +172,48 @@ recisdb.exe tune --device .\BonDriver_mirakc.dll -c 0-8 -t 20 recorded.m2ts
recisdb.exe decode -i %USERPROFILE%\Desktop\scrambled.m2ts .\descrambled.m2ts
```

---

## Build

recisdb をビルドするには Rust が必要です。
Rust がインストールされていない場合は、[Rustup](https://www.rust-lang.org/ja/tools/install) をインストールしてください。

### Windows (MSVC)


### Windows (MSYS MinGW)


### Debian系
> [!NOTE]
> 以下のコマンドは Ubuntu 22.04 でのインストール方法です。
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

上記のコマンドで Rustup をインストールできます。
Rustup をインストールするだけで、Rust とビルドに必要なツールチェインが同時にインストールされます。

```bash
git clone https://github.com/kazuki0824/recisdb-rs.git
cd recisdb-rs
sudo apt install -y build-essential clang cmake libdvbv5-dev libpcsclite-dev libudev-dev pkg-config
cargo build -F dvb --release
sudo cp -a target/release/recisdb /usr/local/bin
```

Rust をインストールしたら、上記のコマンドで recisdb をビルドできます。
ビルドした recisdb は、`target/release/recisdb` に生成されます。
`cargo install`などで、パスの通った場所へ実行ファイルを自動的に配置することができます。

> [!IMPORTANT]
> `cargo build` を実行する際 `-F dvb` を指定すると、libdvbv5 経由での DVB デバイスの操作がサポートされます。
> `-F dvb` を指定してビルドした場合、動作には別途 `libdvbv5-0` パッケージが必要です。
---

## Licence

[GPL v3](https://github.com/kazuki0824/recisdb-rs/blob/master/LICENSE)
Expand Down
3 changes: 2 additions & 1 deletion b25-sys/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "b25-sys"
version = "2.0.0"
version = "2.1.0-rc.4"
authors = ["maleicacid <maleicacid824+dev@gmail.com>"]
edition = "2021"
description = "b25-sys is more convenient Rust wrapper for libaribb25."
Expand All @@ -13,6 +13,7 @@ keywords = ["dtv", "japan", "broadcast", "b25"]
[features]
block00cbc = [ "tail_cbc", "cbc-mac", "cryptography-00" ]
block40cbc = [ "cryptography-40" ]
prioritized_card_reader = []
default = []

[dependencies]
Expand Down
Loading

0 comments on commit c262e2d

Please sign in to comment.