Giter Site home page Giter Site logo

libisdb's Introduction

統合デジタル放送サービス処理ライブラリ実装研究資料

統合デジタル放送サービス処理ライブラリ実装研究資料(略称:LibISDB)は、パーソナルコンピュータ上の汎用 OS において、統合デジタル放送サービス(ISDB)のストリームを処理するライブラリの実装を研究する目的で頒布される研究資料である。

この資料は ISDB のストリームを処理するための基本的な機能を実装している。 CAS 処理は実装されていないため、一般のテレビ放送のストリームに用いることはできない。

ライセンス

GPL v2

libisdb's People

Contributors

dbctrado avatar masnagam avatar pshufd avatar xtne6f avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libisdb's Issues

LibISDBVersionHash.hppの無視設定

更新お疲れさまです。
些細なことですが、LibISDBVersionHash.hppがgit管理下に入ってしまっています。
.gitignoreに拡張子.hppではなく.hで登録されているようです。

Linux/GCC 8.3.0でビルドエラーが発生する

概要

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でも同様のエラーが発生します.

原因

以下を削除すると上記のエラーは発生しなくなります.

template<> struct is_error_code_enum<errc> : public true_type {};

別の箇所でエラーが発生しますが,以下のように修正することでエラーはなくなります.

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 はプリミティブな要素のテストしか無いので、テストを増やす。

Windows上でのビルドエラー

問題

最新版(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 より前のバージョンでは正常にビルドできます。

環境

  • OS: Windows 10 1909
  • Compiler: Microsoft Visual Studio Community 2019 Version 16.5.2

VS2019を使っているのが原因かもしれませんが。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.