統合デジタル放送サービス処理ライブラリ実装研究資料(略称:LibISDB)は、パーソナルコンピュータ上の汎用 OS において、統合デジタル放送サービス(ISDB)のストリームを処理するライブラリの実装を研究する目的で頒布される研究資料である。
この資料は ISDB のストリームを処理するための基本的な機能を実装している。 CAS 処理は実装されていないため、一般のテレビ放送のストリームに用いることはできない。
GPL v2
更新お疲れさまです。
些細なことですが、LibISDBVersionHash.hppがgit管理下に入ってしまっています。
.gitignoreに拡張子.hppではなく.hで登録されているようです。
Linux上でGCC 8.3.0を使ってビルドすると,以下のようなエラーが発生します.
$ cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
$ make -Cbuild
...
In file included from /workspaces/LibISDB/LibISDB/Base/../Utilities/Thread.hpp:35,
from /workspaces/LibISDB/LibISDB/Base/StreamingThread.hpp:31,
from /workspaces/LibISDB/LibISDB/Base/DataStreamer.hpp:34,
from /workspaces/LibISDB/LibISDB/Base/DataStreamer.cpp:28:
/usr/include/c++/8/future: In function 'std::future<typename std::result_of<typename std::decay<_Tp>::type(typename std::decay<_Args>::type ...)>::type> std::async(std::launch, _Fn&&, _Args&& ...)':
/usr/include/c++/8/future:1727:23: error: ambiguous overload for 'operator!=' (operand types are 'const std::error_code' and 'std::errc')
if (__e.code() != errc::resource_unavailable_try_again
~~~~~~~~~~~^~~~~~~
In file included from /workspaces/LibISDB/LibISDB/Base/ErrorHandler.hpp:31,
from /workspaces/LibISDB/LibISDB/Base/ObjectBase.hpp:31,
from /workspaces/LibISDB/LibISDB/Base/DataStreamer.hpp:31,
from /workspaces/LibISDB/LibISDB/Base/DataStreamer.cpp:28:
/usr/include/c++/8/system_error:319:3: note: candidate: 'bool std::operator!=(const std::error_code&, const std::error_code&)'
operator!=(const error_code& __lhs, const error_code& __rhs) noexcept
^~~~~~~~
/usr/include/c++/8/system_error:323:3: note: candidate: 'bool std::operator!=(const std::error_code&, const std::error_condition&)'
operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept
^~~~~~~~
gcc-7およびdebian:sidのgcc-9でも同様のエラーが発生します.
以下を削除すると上記のエラーは発生しなくなります.
LibISDB/LibISDB/Base/ErrorHandler.hpp
Line 37 in 066ec43
別の箇所でエラーが発生しますが,以下のように修正することでエラーはなくなります.
diff --git LibISDB/Base/ErrorHandler.hpp LibISDB/Base/ErrorHandler.hpp
index 8f4440a..705761d 100644
--- LibISDB/Base/ErrorHandler.hpp
+++ LibISDB/Base/ErrorHandler.hpp
@@ -31,14 +31,6 @@
#include <system_error>
-namespace std
-{
-
- template<> struct is_error_code_enum<errc> : public true_type {};
-
-}
-
-
namespace LibISDB
{
@@ -153,14 +145,14 @@ namespace LibISDB
const CharType *pAdvise = nullptr,
const CharType *pSystemMessage = nullptr) noexcept
{
- SetError(std::error_code(Code), pText, pAdvise, pSystemMessage);
+ SetError(std::make_error_code(Code), pText, pAdvise, pSystemMessage);
}
void SetError(const ErrorDescription &Error) noexcept;
void SetErrorCode(const std::error_code &ErrorCode) noexcept;
void SetErrorCode(int Code, const std::error_category &Category) noexcept;
template<typename T> void SetErrorCode(T Code) noexcept
{
- SetErrorCode(std::error_code(Code));
+ SetErrorCode(std::make_error_code(Code));
}
void SetErrorText(const CharType *pText) noexcept;
void SetErrorAdvise(const CharType *pAdvise) noexcept;
Windows環境がなくVisual Studioでのビルド確認ができていませんが,多分この修正で問題ないだろうと思っています.
他にもGCCでワーニングが出ていることろがあるので,上記修正で問題なさそうでしたら,これらを含めたPRを作成しようと思っています.
現在の libisdbtest はプリミティブな要素のテストしか無いので、テストを増やす。
最新版(8b98101) のビルドに失敗し、下記のエラーがでます。
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C2665 'std::make_error_code': 2 オーバーロードのどれも、すべての引数の型を変換できませんでした (ソース ファイルをコンパイルしています ..\LibISDB\Windows\Base\EDCBPluginWriter.cpp) LibISDBWindows C:\Users\thund\Documents\TV\TVTest2\src\LibISDB\LibISDB\Base\ErrorHandler.hpp 148
エラー C2665 'std::make_error_code': 2 オーバーロードのどれも、すべての引数の型を変換できませんでした (ソース ファイルをコンパイルしています ..\LibISDB\Windows\Filters\BonDriverSourceFilter.cpp) LibISDBWindows C:\Users\thund\Documents\TV\TVTest2\src\LibISDB\LibISDB\Base\ErrorHandler.hpp 148
9d7432a より前のバージョンでは正常にビルドできます。
VS2019を使っているのが原因かもしれませんが。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.