MediaConch/ 0000755 0000000 0000000 00000000000 14640053443 011551 5 ustar root root MediaConch/README.md 0000644 0000000 0000000 00000027146 14640052500 013033 0 ustar root root # MediaConch_SourceCode README MediaConch is an open source software project consisting of a toolset that aims to further develop the standardization and validation of preservation-level audiovisual files used within various memory institutions and communities. The software consists of an implementation checker, policy checker, reporter and fixer that will work together to offer its users an advanced level of ability to validate, assess and find solutions to repair the digital files within their collections. Accessible via either the command line, a graphical user interface (GUI), or web-based shell, the MediaConch project will serve to provide detailed individual and batch-level conformance checking analysis using its adaptable, flexible and interoperable software application interface. With a project focus dedicated to furthering the longevity of Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1) as recommended digital preservation audiovisual formats, MediaConch will anticipate and contribute to the further development of the standardization of these formats. The MediaConch open source project was created and is currently under development by MediaArea, notable for the creation of MediaInfo, an open source media checker software application. Website: :shell: MediaConch project. # Table of Repositories #### [MediaConch](https://github.com/MediaArea/MediaConch) The original repository for the MediaConch project, this repository holds all public documentation related to Phase I of the project (the design phase) and some metadata-related work. #### [MediaConch_SourceCode](https://github.com/MediaArea/MediaConch_SourceCode) This repository hosts the source code for MediaConch, the GUI. #### [MediaConchOnline](https://github.com/MediaArea/MediaConchOnline) This is the source code for MediaConchOnline, the online version of the MediaConch shell. #### [MediaConch-Website](https://github.com/MediaArea/MediaConch-Website) This is the repository for content hosted on [https://mediaarea.net/MediaConch/](https://mediaarea.net/MediaConch/). #### [MediaAreaXml](https://github.com/MediaArea/MediaAreaXml) This repository holds XSD (XML Schema Definitions) for MediaConch, MediaInfo, and MediaTrace. #### [MediaConch_SampleFiles](https://github.com/MediaArea/MediaConch_SampleFiles) This repository contains sample files used to test MediaConch. #### [MediaConch_MKVSurvey](https://github.com/MediaArea/MediaConch_MKVSurvey) This repository holds a research corpus used in the development of the MediaConch. # Funding and Licensing This project has received funding from PREFORMA, co-funded by the European Commission under its FP7-ICT Programme. All software and source code developed by MediaArea during the PREFORMA project will be provided under the BSD-2-Clause License. All open source digital assets for the software developed by MediaArea during the PREFORMA project will be made available under the open access license: Creative Commons license attribution 4.0 International (CC BY v4.0). All assets will exist in open file formats within an open platform (an open standard as defined in the European Interoperability Framework for Pan-European eGovernment Service (version 1.0 2004)). # How to build MediaConch [](https://travis-ci.org/MediaArea/MediaConch_SourceCode) [](https://ci.appveyor.com/project/MediaArea/mediaconch-sourcecode/branch/master) ## Build under Unix (Mac and Linux) First, you must create a directory which will receive the MediaConch directory, and some of its dependencies depending on your configuration: ZenLib and MediaInfoLib if you decide to compile them yourself, and under Mac libxml2 and libxslt. In this document, this directory will be referred as $BUILD_DIR. ### Dependancies under Mac #### macport Some dependencies are available with macport. To install macport: https://guide.macports.org/#installing ```sh port install autoconf automake libtool pkgconfig zlib ``` #### libxml2 libxml2 and libxslt must be manually compiled. Download ftp://xmlsoft.org/libxml2/libxml2-2.9.2.tar.gz, and then: ```sh mv libxml2-2.9.2 $BUILD_DIR/libxml2 cd $BUILD_DIR/libxml2 ./configure --disable-shared --enable-static --disable-ipv6 --without-ftp --without-http --without-c14n --without-catalog --with-xpath --without-xptr --without-xinclude --without-iconv --without-icu --without-iso8859x --without-zlib --without-lzma --without-mem_debug --without-run_debug --without-regexps --without-modules --with-tree --without-writer --with-pattern --with-push --without-valid --with-sax1 --without-legacy --with-output --without-schemas --with-schematron --without-python make ``` #### libxslt Download ftp://xmlsoft.org/libxml2/libxslt-1.1.28.tar.gz, and then: ```sh mv libxslt-1.1.28 $BUILD_DIR/libxslt cd $BUILD_DIR/libxslt touch libtoolT ./configure --with-libxml-src=$BUILD_DIR/libxml2 --without-crypto make ``` #### Qt To install Qt, download and execute: http://download.qt.io/archive/qt/5.3/5.3.2/qt-opensource-mac-x64-clang-5.3.2.dmg.mirrorlist ### Dependancies under Linux #### Listing *Build tools* * git * automake * autoconf * libtool * pkgconfig * make * g++ *MediaArea tools* * libzen0 * libmediainfo0 *CLI and GUI dependencies* * zlib * libxml2 * libxslt *GUI only dependencies* * qt4 * qtwebkit *Optional dependency (for online checker)* * libcurl #### Ubuntu *Build tools and CLI/GUI dependencies* ```sh apt-get install git automake autoconf libtool pkg-config make g++ zlib1g-dev libxml2-dev libxslt1-dev liblzma-dev libgcrypt20-dev libsqlite3-dev libevent-dev libjansson-dev ``` Or (less advisable) install the packages contained in buildenv09.zip with ```sh dpkg -i * ``` *MediaArea tools* Go to https://mediaarea.net/MediaConch/downloads/ubuntu.html and download the libmediainfo0, libmediainfo-dev, libzen0 and libzen-dev packages corresponding to your Ubuntu version. Then install them with : ```sh dpkg -i libmediainfo* libzen* ``` *GUI only dependencies* ```sh apt-get install libqt4-dev libqtwebkit-dev ``` *Optional dependency (for online checker)* ```sh apt-get install libcurl4-gnutls-dev ``` #### Fedora *Build tools and CLI/GUI dependencies* ```sh sudo yum install git automake autoconf libtool pkgconfig make gcc-c++ zlib-devel libxml2-devel libxslt-devel sqlite-devel libevent-devel jansson-devel ``` Or (less advisable) install the packages contained in buildenv13.zip with ```sh dnf --allowerasing install * ``` *MediaArea tools* Go to https://mediaarea.net/MediaConch/downloads/fedora.html and download the libmediainfo0, libmediainfo-devel, libzen0 and libzen-devel packages corresponding to your Fedora version and CPU architecture. Then install them with : ```sh sudo yum install libmediainfo*.rpm libzen*.rpm ``` *GUI only dependencies* ```sh sudo yum install qt-devel qtwebkit-devel desktop-file-utils ``` *Optional dependency (for online checker)* ```sh sudo yum install libcurl-devel ``` #### Debian *Build tools and CLI/GUI dependencies* ```sh apt-get install git automake autoconf libtool pkg-config make g++ zlib1g-dev libxml2-dev libxslt1-dev liblzma-dev libgcrypt20-dev libsqlite3-dev libevent-dev libjansson-dev ``` Or (less advisable) install the packages contained in buildenv17.zip with ```sh dpkg -i * ``` *MediaArea tools* Go to https://mediaarea.net/MediaConch/downloads/debian.html and download the libmediainfo0, libmediainfo-dev, libzen0 and libzen-dev packages corresponding to your Debian version. Then install them with : ```sh dpkg -i libmediainfo* libzen* ``` *GUI only dependencies* ```sh apt-get install libqt4-dev libqtwebkit-dev ``` *Optional dependency (for online checker)* ```sh apt-get install libcurl4-gnutls-dev ``` #### OpenSUSE *Build tools and CLI/GUI dependencies* ```sh zypper install git automake autoconf libtool pkgconfig make gcc-c++ zlib-devel libxml2-devel libxslt-devel sqlite3-devel libevent-devel libjansson-devel ``` Or (less advisable) install the packages contained in buildenv21.zip with ```sh zypper install * ``` *MediaArea tools* Go to https://mediaarea.net/MediaConch/downloads/opensuse.html and download the libmediainfo0, libmediainfo-devel, libzen0 and libzen-devel packages corresponding to your OpenSuse version. Then install them with : ```sh rpm -i libmediainfo* libzen* ``` *GUI only dependencies* ```sh zypper install libqt4-devel libQtWebKit-devel update-desktop-files ``` *Optional dependency (for online checker)* ```sh zypper install libcurl-devel ``` ### Build MediaConch CLI #### Use the srcXX.zip and their compile.sh scripts Unzip the corresponding srcXX.zip, and then launch ```sh ./CLI_compile.sh ./Server_compile.sh ./GUI_compile.sh ``` in order to compile, respectively, the CLI, the server and the GUI. #### Build manually from GitHub When you have done all the prerequisite for you configuration, you can build MediaConch. We start with the CLI. ```sh cd $BUILD_DIR git clone https://github.com/MediaArea/MediaConch_SourceCode.git cd MediaConch_SourceCode/Project/GNU/CLI ./autogen.sh ``` ##### Then, under Mac: ```sh ./configure --enable-staticlibs make ``` ##### Under Linux: ```sh ./configure make ``` If you also build ZenLib and MediaInfoLib: ```sh ./configure --enable-staticlibs make ``` Or, with shared ZenLib and MediaInfoLib: ```sh ./configure make export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BUILD_DIR/ZenLib/Project/GNU/Library/.libs:$BUILD_DIR/MediaInfoLib/Project/GNU/Library/.libs ``` #### Launch the CLI ```sh ./mediaconch ``` ### Build MediaConch GUI If you have already build the CLI, no need to run git twice. In fact, if you re-run git with an existing MediaConch_SourceCode directory, git will complain and exit. To compile MediaConch GUI under Mac and Linux: ```sh cd $BUILD_DIR git clone https://github.com/MediaArea/MediaConch_SourceCode.git cd MediaConch_SourceCode/Project/Qt ``` ##### Without online checker Run: ```sh ./prepare make ``` Under Mac, or if you also build ZenLib and MediaInfoLib, run: ```sh ./prepare STATIC_LIBS=1 make ``` With shared ZenLib and MediaInfoLib: ```sh ./prepare make export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BUILD_DIR/ZenLib/Project/GNU/Library/.libs:$BUILD_DIR/MediaInfoLib/Project/GNU/Library/.libs ``` ##### With online checker You must install the online checker dependencies. Then run: ```sh ./prepare make ``` Under Mac, or if you also build ZenLib and MediaInfoLib, run: ```sh ./prepare STATIC_LIBS=1 make ``` With shared ZenLib and MediaInfoLib: ```sh ./prepare make export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BUILD_DIR/ZenLib/Project/GNU/Library/.libs:$BUILD_DIR/MediaInfoLib/Project/GNU/Library/.libs ``` #### Launch the GUI Under Mac: ```sh ./MediaConch.app/Contents/MacOS/MediaConch ``` Under Linux: ```sh ./mediaconch-gui ``` ### Optional : build ZenLib and MediaInfoLib #### ZenLib To compile ZenLib under Mac and Linux: ```sh cd $BUILD_DIR git clone https://github.com/MediaArea/ZenLib.git cd ZenLib/Project/GNU/Library ./autogen.sh ./configure --enable-static make ``` #### MediaInfoLib To compile MediaInfoLib under Mac and Linux: ```sh cd $BUILD_DIR git clone https://github.com/MediaArea/MediaInfoLib.git cd MediaInfoLib/Project/GNU/Library ./autogen.sh ``` ##### Without online checker Run: ```sh ./configure --enable-static make ``` ##### With online checker Under Mac: ```sh ./configure --enable-static --with-libcurl=runtime make ``` Under Linux: You must install the online checker dependencies. Then run: ```sh ./configure --enable-static --with-libcurl make ``` ## Build under Windows You need to install Microsoft Visual Studio 2013. MediaConch/History_GUI.txt 0000644 0000000 0000000 00000033445 14640052506 014467 0 ustar root root Notes : ------- + Added - Deleted x Correction #number is the identifier of bug report (B), requested feature (F) or patch (P) bug reports and feature request are here : https://github.com/MediaArea/MediaConch_SourceCode Version 24.06, 2024-06-29 ------------- Update to MediaInfo library 24.06, see MediaInfo change log for the list of changes in the file formats support Add fields compare in policy checker Add 608/708 captions detection options Remove Matroska related errors with new Matroska block additions Supported platforms: minimum macOS version is now 10.13 (too much effort needed for building for older versions :( ) Supported platforms: this is the last version compatible with RHEL/CentOS 7, Debian 10, Mageia 8 Version 23.10, 2023-10-04 ------------- + Support of MPEG-H in MPEG-TS + MOV/MP4: caption probing time expanded from ~15s to ~30s + MPEG-7 and DVD-Video: provide title duration based on frame rate + WAV: better display of buggy WAV files have 2 fmt/data chunks x MOV/MP4: fix lack of detection of CEA-608/708 if junk at end of stream x DVD-Video: fix duration if more than 1 menu Version 23.07, 2023-07-12 ------------- Update to MediaInfo library 23.07, see MediaInfo change log for the list of changes in the file formats support Small update of USAC/xHE-AAC conformance checker Version 23.06, 2023-06-28 ------------- Update to MediaInfo library 23.06, see MediaInfo change log for the list of changes in the file formats support Verbose USAC/xHE-AAC conformance checker New field Audio_Channels_Total for policies Version 22.09, 2022-10-04 -------------- Update to MediaInfo library 22.09, see MediaInfo change log for the list of changes in the file formats support Basic USAC/xHE-AAC conformance checker focused on IOD and sampling rate, more to come GUI: Support custom parse speed option Policy creation: Add Warning and Info severity levels in addition to Error Policy creation: 'all' or 'any' keywords for occurrence field Version 22.03, 2022-03-31 -------------- Update to MediaInfo library 22.03, see MediaInfo change log for the list of changes in the file formats support Dedicated package for full online (no need to upload the file) policy checker in the web browser (technology preview) Policy checker can handle time code comparison, including less than and greater than IMSC1 implementation checker Policy creation from a MediaInfo report includes the extra (not common to several formats) fields Policy creation from a MediaInfo report includes several forms of some fields Parsing speed is now the MediaInfo library default (use --ParseSpeed=0 for getting back the previous behavior) Report result cache is cleared when a new version of the tool is installed (including development snapshots) Does not validate Matroska attachments content against Matroska rules More platforms supported, including Amazon Lambda (x86_64 and ARM) Windows 7+, macOS 10.10+, RHEL/CentOS 7+, SLE 12+, Debian 9+, Ubuntu 18.04+, Fedora 34+ Version 18.03.2, 2018-04-10 -------------- x Fix incomplete initialization of checker window with old Qt versions. Version 18.03.1, 2018-03-26 -------------- x Fix regression on Windows with directory names beginning by n or r. Version 18.03, 2018-03-19 -------------- x I782, FFV1: Golomb Rice parsing was wrong x I210, FFV1: remove sar_den test must be 0 if sar_num is 0 x Do not apply policies to attachments x Print error if data directory isn't writable And polices can be applied on fields provided by new MediaInfo library: + AV1: support of AOmedia AV1 based on latest specifications draft, raw (OBU) and in MKV + DPX: endianess, packing mode, compression mode + MXF: detection and parsing of ProRes (SMPTE RDD 44) + MXF: HDR metadata support + AVC: add consumer camera recording date/time + AVC: add consumer camera model name and iris F number + JPEG: ICC parsing, display of ICC color space + MediaInfo JSON output x colour description: trying (again!) to have more coherent labeling x AAC: SBR parsing issue with 3+ channel streams, with sometimes false-positive PS detection x DPX: some elements in trace were wrongly displayed (wrong endianess) + License change Version 17.12, 2017-12-21 -------------- Endianness and Sign report for PCM Matroska tracks Support of external time code tracks (.qtc) in MOV Support of file names >64 chars long or non ASCII for referenced files in MOV JPEG 2000: Support of IMF profiles Fixed wrong color range info Matroska I630, "Input is not proper UTF-8" message with some MOV files Version 17.11, 2017-11-22 -------------- Formatted MediaInfo display Text and EBUCore 1.8 (XML and JSON) reports available for download in MediaInfo display Improved Matroska video frame rate detection Support of BWF (bext) loudness info Support of MOV HDR metadata Support of PCM endianess in Matroska files Several minor fixes Version 17.08, 2017-09-11 -------------- FFV1: fix false positive about FFV1 slice_x error when slice_w>slice_h Clarifcation about license of some third party library Version 17.07, 2017-08-08 -------------- Add EBML-MINVER-COHERANT and EBML-MAXVER-COHERANT tests MediaConch is now directly integrated in Fedora repository Version 17.06, 2017-06-30 -------------- "Full parsing" option Internal database viewer Policy column in checker was sometimes displaying "fail" even if test was passing Ubuntu 17.04 packages More Matroska checks More detailed FFV1 errors See https://github.com/MediaArea/groundtruth/blob/master/matroska/README.md for more information Version 17.05, 2017-06-01 -------------- Add MediaConch to Mac App Store Use OS native dialogs instead of those from Qt Display login status in settings page and allow to logout Fixed broken XML output display add FFV1-VALID-VERSION, EBML-ELEMENT-VALID-RANGE, NO-JUNK-IN-FIXEDSIZE-MATROSKA, EBML-ELEM-UNKNOWN-SIZE tests deprecate MKV-VALID-BOOLEANS test fixes to MKV-NUMERICAL-TAG test Version 17.04, 2017-05-04 -------------- Better support of some broken Matroska files (high EBMLMaxSizeLength, padding before start of EBML) Was sometimes displaying "Bit depth: Bit0" when bit depth is unknown in Matroska FFV1 PixelAspectRatio was an integer, switched to 3-digit rational Several small bug fixes and small performance optimizations Version 17.03, 2017-03-31 -------------- Analyze attachments in Matroska files Reduce size of Matroska trace Few small FFV1 parsing improvements Checker: js refactoring, improve display of results, performance improvements Several small bug fixes Version 17.02, 2017-02-28 -------------- New policy example (TN2162) Fix incorrect namespaces in schemaLocation (Thanks to kimec) Report refactoring Flipping between pages removed Several minor FFV1 related bug fixed Support of V_FFV1 codec identifier Fix Qt 5.7+ webengine support in Matroska Version 17.01.1, 2017-02-02 -------------- Fix a performance regression in the matroska parser Version 17.01, 2017-01-31 ------------- Less verbose output by default (use " -ft" for old behavior) New display templates "Simple" and "CSV" Support of newest version of DPFManager (TIFF plugin) and VeraPDF (PDF plugin) Store implementation report in database (no need to run it again at relaunch) Policy editor: option for creating policy from a file Policy editor: split between Profile and Level Checker page: jump to the page containing the file to analyze Checker page: scroll to the top of the results when page is changed Checker page: add reload analyze button (force analyze) Checker page: reduce font size of jstree MediaInfo and MediaTrace Several small bug fixes Version 16.12, 2016-12-31 ------------- Push policies to MCO (public or private) Import policies from MCO UI improvements Better handling of errors Fix adding 100+ files for analyze Fixes Version 16.11, 2016-11-30 ------------- Publish a policy to MediaConchOnline public policies MediaTrace optimization for Matroska Fixed parsing of FFV1 v0/v1 Minor UI fixes Improve support of plugins Version 16.10, 2016-10-31 ------------- Update implementation tests, policies and displays Public policies page Handle latest versions of VeraPDF and DPF Manager FFmpeg plugin Watch folder plugin Fixer (see https://mediaarea.net/MediaConch/fixity.html ) Several minor fixes Version 16.09, 2016-09-30 ------------- New policy format to allow complex policies Update example policies and displays New policy editor to build complex policies Policy rules can use MediaTrace Handling of FFV1 16-bit bitdepth (YUV and RGB) Support of Matroska FieldOrder, MatrixCoefficients, BitsPerChannel, Range, TransferCharacteristics, Primaries new elements Stream count policy test (in General section) Version 16.08, 2016-08-31 ------------- Policy Editor: close message when user change of policy/rule Checker: remove a node is not saved Checker: fix handling of files with special chars Add ctrl-q shortcut to quit Better handling of user path Version 16.07, 2016-07-29 ------------- New policy editor Minor fixes Version 16.06, 2016-06-30 ------------- Create a policy from MediaInfo report Revisited HTML report, more compact and with a summary per test Revisited Display window Minor UI fixes on the main window Matroska files with CodecPrivate element before CodecID element where not always correctly parsed Performance improvements Version 16.05, 2016-05-31 ------------- MediaConch XML format v0.2 Improved Matroska tests Improved HTML display FFV1 parsing speed improvement Updated settings display Remember last policy and display directories List of values for several elements in the policy editor Option for applying a policy to all open files Code refactoring of the user interface Minor UI fixes Version 16.04, 2016-04-29 ------------- Merge of "Checker" and "Results" pages in one page as in MediaConchOnline Checker page new design, based on MediaConchOnline one Add some settings (default policy, default display, default path for file open) Remember the last policy used, the last display used, the last path used FFV1: display of the trace of the slice header Check a directory recursively Fix: display correctly information even if the file disappeared (renamed / not accessible) Minor UI fixes Version 16.03, 2016-03-31 ------------- Verbosity selection Improved free text editor Support of plugins (VeraPDF and DPF Manager) Bugfixes Version 16.02, 2016-02-29 ------------- New page for the results (analyze and update in background, delete/add jobs during the processing of the queue) GUI usage is saved and restored when it is restarted Dynamic selection of the policy and the display format in the policy viewer Dynamic selection of the display format in the implementation viewer CAVPP access and preservation policy sets Update of implementation checker tests, including some FFV1 checks Expanded REST API of the server Version 16.01, 2016-01-27 ------------- More Matroska validation tests Improved reports Verbosity option MediaConch server, with a REST API MediaConch CLI and GUI can communicate with MediaConch server Support of Qt 5.6 (QtWebKit dependancy is replaced by Qt QtWebEngine dependancy) Matroska: CRC-32 validation Matroska: support of padding/junk at the start of a segment Matroska: trace is activated for all elements (but report is still based on the first element met) Matroska: add an intermediate level in the trace for the raw stream parser Visual Studio 2015 project files Version 15.12, 2015-12-31 ------------- New icon Database support (speed improvement: file is parsed once, then policies are applied to the pre-analyzed content) More explicit licences (MediaConch and MediaInfo library are GPLv3+ and MPLv2+, list of third party libraries and their licences) Matroska: negative timecodes were not correctly handled Better support of non-English filenames Display format is applied also on invalid files Implementation tests now load logic from an XML representation of the Matroska EBML Schema Implementation tests on valid parent elements, element multiplicity, mandated child elements MediaTrace now documents the parser used for raw streams within Matroska. Sync tests with latest Matroska/EBML draft specifications. Version 15.11, 2015-11-30 ------------- Detection of truncated Matroska files Support of MKVMerge statistics tags (duration frame count, stream size, bit rate) per track Count of subtitle elements Frame rate detection algorithm revisited Showing precision of 1/1.001 frame rates (e.g. "23.976 (24000/1001) fps" and "23.976 (23976/1000) fps") Version 15.10, 2015-11-02 ------------- Implementation checker with some EBML tests New set of default Policy reports About box and Help documentation added More coherent list of options MediaTrace UI changed, with a grid (offset on the left, value on the right) MediaInfo report UI MediaInfo XML export Policy XSL editor updated Display XSL import / export Text/HTML/XSL display examples Several bug fixes Version 15.09, 2015-10-02 ------------- Design of the report is changed (similar to MediaConchOnline) Examples of policies provided by default Support of XSLT policies Drag and drop of several files MediaTrace UI Save of MediaTrace output in XML format Version 15.08, 2015-08-31 ------------- Improved FFV1 slice analysis Trace feature: XML malformed with Flags items (hotfix, flags meaning disabled in XML output) Trace feature: XML malformed with some MP4 files Trace feature: XML duplicated attributes Trace feature: versioned xsd, creating library name and version Version 15.07, 2015-08-06 ------------- Improved FFV1 slice analysis (currently activated only for 1st frame) Improved Schematron file editor Version 15.06, 2015-06-30 ------------- Basic Schematron validator Basic Schematron file editor Version 15.05, 2015-05-31 ------------- Basic hard-coded policy checker (must be Matroska with FFV1 protected by CRC) Info tool (Text or XML) Trace tool (Text or XML) MediaConch/History_CLI.txt 0000644 0000000 0000000 00000026673 14640052506 014457 0 ustar root root Notes : ------- + Added - Deleted x Correction #number is the identifier of bug report (B), requested feature (F) or patch (P) bug reports and feature request are here : https://github.com/MediaArea/MediaConch_SourceCode Version 24.06, 2024-06-29 ------------- Update to MediaInfo library 24.06, see MediaInfo change log for the list of changes in the file formats support Add fields compare in policy checker Remove Matroska related errors with new Matroska block additions Supported platforms: minimum macOS version is now 10.13 (too much effort needed for building for older versions :( ) Supported platforms: this is the last version compatible with RHEL/CentOS 7, Debian 10, Mageia 8 Version 23.10, 2023-10-04 ------------- + Support of MPEG-H in MPEG-TS + MOV/MP4: caption probing time expanded from ~15s to ~30s + MPEG-7 and DVD-Video: provide title duration based on frame rate + WAV: better display of buggy WAV files have 2 fmt/data chunks x MOV/MP4: fix lack of detection of CEA-608/708 if junk at end of stream x DVD-Video: fix duration if more than 1 menu Version 23.07, 2023-07-12 ------------- Update to MediaInfo library 23.07, see MediaInfo change log for the list of changes in the file formats support Small update of USAC/xHE-AAC conformance checker Version 23.06, 2023-06-28 ------------- Update to MediaInfo library 23.06, see MediaInfo change log for the list of changes in the file formats support Verbose USAC/xHE-AAC conformance checker New field Audio_Channels_Total for policies Version 22.09, 2022-10-04 -------------- Update to MediaInfo library 22.09, see MediaInfo change log for the list of changes in the file formats support Basic USAC/xHE-AAC conformance checker focused on IOD and sampling rate, more to come Policy creation: Add Warning and Info severity levels in addition to Error Policy creation: 'all' or 'any' keywords for occurrence field Version 22.03, 2022-03-31 -------------- Update to MediaInfo library 22.03, see MediaInfo change log for the list of changes in the file formats support Dedicated package for full online (no need to upload the file) policy checker in the web browser (technology preview) Policy checker can handle time code comparison, including less than and greater than IMSC1 implementation checker Policy creation from a MediaInfo report includes the extra (not common to several formats) fields Policy creation from a MediaInfo report includes several forms of some fields Parsing speed is now the MediaInfo library default (use --ParseSpeed=0 for getting back the previous behavior) Report result cache is cleared when a new version of the tool is installed (including development snapshots) Does not validate Matroska attachments content against Matroska rules More platforms supported, including Amazon Lambda (x86_64 and ARM) Windows 7+, macOS 10.10+, RHEL/CentOS 7+, SLE 12+, Debian 9+, Ubuntu 18.04+, Fedora 34+ Version 18.03.2, 2018-04-10 -------------- (No changes) Version 18.03.1, 2018-03-26 -------------- x Fix regression on Windows with directory names beginning by n or r. Version 18.03, 2018-03-19 -------------- x I782, FFV1: Golomb Rice parsing was wrong x I210, FFV1: remove sar_den test must be 0 if sar_num is 0 x Do not apply policies to attachments x Print error if data directory isn't writable And polices can be applied on fields provided by new MediaInfo library: + AV1: support of AOmedia AV1 based on latest specifications draft, raw (OBU) and in MKV + DPX: endianess, packing mode, compression mode + MXF: detection and parsing of ProRes (SMPTE RDD 44) + MXF: HDR metadata support + AVC: add consumer camera recording date/time + AVC: add consumer camera model name and iris F number + JPEG: ICC parsing, display of ICC color space + MediaInfo JSON output x colour description: trying (again!) to have more coherent labeling x AAC: SBR parsing issue with 3+ channel streams, with sometimes false-positive PS detection x DPX: some elements in trace were wrongly displayed (wrong endianess) + License change Version 17.12, 2017-12-21 -------------- Endianness and Sign report for PCM Matroska tracks Support of external time code tracks (.qtc) in MOV Support of file names >64 chars long or non ASCII for referenced files in MOV JPEG 2000: Support of IMF profiles Fixed wrong color range info Matroska I630, "Input is not proper UTF-8" message with some MOV files Version 17.11, 2017-11-22 -------------- Text and EBUCore 1.8 (XML and JSON) reports available directly from MediaConch command line Improved Matroska video frame rate detection Support of BWF (bext) loudness info Support of MOV HDR metadata Support of PCM endianess in Matroska files Several minor fixes Version 17.08, 2017-09-11 -------------- FFV1: fix false positive about FFV1 slice_x error when slice_w>slice_h Clarifcation about license of some third party library Version 17.07, 2017-08-08 -------------- Add EBML-MINVER-COHERANT and EBML-MAXVER-COHERANT tests MediaConch is now directly integrated in Fedora repository CLI was sometimes not responding with -f option Version 17.06, 2017-06-30 -------------- Ubuntu 17.04 packages More Matroska checks More detailed FFV1 errors See https://github.com/MediaArea/groundtruth/blob/master/matroska/README.md for more information Version 17.05, 2017-06-01 -------------- add a --list command to the CLI for listing files in the database add FFV1-VALID-VERSION, EBML-ELEMENT-VALID-RANGE, NO-JUNK-IN-FIXEDSIZE-MATROSKA, EBML-ELEM-UNKNOWN-SIZE tests deprecate MKV-VALID-BOOLEANS test fixes to MKV-NUMERICAL-TAG test Version 17.04, 2017-05-04 -------------- Better support of some broken Matroska files (high EBMLMaxSizeLength, padding before start of EBML) Was sometimes displaying "Bit depth: Bit0" when bit depth is unknown in Matroska FFV1 PixelAspectRatio was an integer, switched to 3-digit rational Several small bug fixes and small performance optimizations Version 17.03, 2017-03-31 -------------- Analyze attachments in Matroska files Reduce size of Matroska trace Few small FFV1 parsing improvements Several small bug fixes Version 17.02, 2017-02-28 -------------- New policy example (TN2162) Fix incorrect namespaces in schemaLocation (Thanks to kimec) Report refactoring Several minor FFV1 related bug fixed Support of V_FFV1 codec identifier in Matroska Version 17.01.1, 2017-02-02 -------------- Fix a performance regression in the matroska parser Version 17.01, 2017-01-31 ------------- Less verbose output by default (use " -ft" for old behavior) New display templates "Simple" and "CSV" Support of newest version of DPFManager (TIFF plugin) and VeraPDF (PDF plugin) Store implementation report in database (no need to run it again at relaunch) Several small bug fixes Version 16.12, 2016-12-31 ------------- Better handling of errors Fixes Version 16.11, 2016-11-30 ------------- MediaTrace optimization for Matroska Fixed parsing of FFV1 v0/v1 Add a debug log (to make benchmark) Improve support of plugins Version 16.10, 2016-10-31 ------------- Update implementation tests, policies and displays Handle latest versions of VeraPDF and DPF Manager FFmpeg plugin Watch folder plugin Fixer (see https://mediaarea.net/MediaConch/fixity.html ) Several minor fixes Version 16.09, 2016-09-30 ------------- New policy format to allow complex policies Update example policies and displays Compare files Policy rules can use MediaTrace Handling of FFV1 16-bit bitdepth (YUV and RGB) Support of Matroska FieldOrder, MatrixCoefficients, BitsPerChannel, Range, TransferCharacteristics, Primaries new elements Stream count policy test (in General section) Version 16.08, 2016-08-31 ------------- Checker: fix handling of files with special chars Better handling of user path Version 16.07, 2016-07-29 ------------- Minor fixes Version 16.06, 2016-06-30 ------------- Matroska files with CodecPrivate element before CodecID element where not always correctly parsed Performance improvements Version 16.05, 2016-05-31 ------------- MediaConch XML format v0.2 Improved Matroska tests Improved HTML display FFV1 parsing speed improvement Version 16.04, 2016-04-29 ------------- FFV1: display of the trace of the slice header Check a directory recursively Accepts MediaInfo options Fix: display correctly information even if the file disappeared (renamed / not accessible) Version 16.03, 2016-03-31 ------------- Support of plugins (VeraPDF and DPF Manager) Version 16.02, 2016-02-29 ------------- CLI is synchronous by default even if the server is active Update of implementation checker tests, including some FFV1 checks Expanded REST API of the server Version 16.01, 2016-01-27 ------------- More Matroska validation tests Improved reports Verbosity option MediaConch server, with a REST API MediaConch CLI and GUI can communicate with MediaConch server Support of Qt 5.6 (QtWebKit dependancy is replaced by Qt QtWebEngine dependancy) Matroska: CRC-32 validation Matroska: support of padding/junk at the start of a segment Matroska: trace is activated for all elements (but report is still based on the first element met) Matroska: add an intermediate level in the trace for the raw stream parser Visual Studio 2015 project files Version 15.12, 2015-12-31 ------------- New icon Database support (speed improvement: file is parsed once, then policies are applied to the pre-analyzed content) More explicit licences (MediaConch and MediaInfo library are GPLv3+ and MPLv2+, list of third party libraries and their licences) Matroska: negative timecodes were not correctly handled Better support of non-English filenames Display format is applied also on invalid files Implementation tests now load logic from an XML representation of the Matroska EBML Schema Implementation tests on valid parent elements, element multiplicity, mandated child elements MediaTrace now documents the parser used for raw streams within Matroska. Sync tests with latest Matroska/EBML draft specifications. Version 15.11, 2015-11-30 ------------- Open all nodes by default for MediaInfo jstree Add system or user policies/displays group Detection of truncated Matroska files Documentation update Support of MKVMerge statistics tags (duration frame count, stream size, bit rate) per track Count of subtitle elements Frame rate detection algorithm revisited Showing precision of 1/1.001 frame rates (e.g. "23.976 (24000/1001) fps" and "23.976 (23976/1000) fps") Version 15.10, 2015-11-02 ------------- Implementation checker with some EBML tests Help updated and split (standard / advanced) More output combinations (e.g. implementation checker with Text, HTML, or XML output) MediaInfo XML export Text/HTML/XSL output support Several bug fixes Version 15.09, 2015-10-02 ------------- Support of XSLT policies Version 15.08, 2015-08-31 ------------- Improved FFV1 slice analysis Trace feature: XML malformed with Flags items (hotfix, flags meaning disabled in XML output) Trace feature: XML malformed with some MP4 files Trace feature: XML duplicated attributes Trace feature: versioned xsd, creating library name and version Version 15.07, 2015-08-06 ------------- Improved FFV1 slice analysis (currently activated only for 1st frame) Improved Schematron file editor Version 15.06, 2015-06-30 ------------- Basic Schematron validator (" --Policy=Shematronfile.sch" or " -p Shematronfile.sch") Version 15.05, 2015-05-31 ------------- Basic hard-coded policy checker (must be Matroska with FFV1 protected by CRC) Info tool (Text or XML) Trace tool (Text or XML) MediaConch/.appveyor.yml 0000644 0000000 0000000 00000001750 14640052500 014213 0 ustar root root configuration: - Release platform: - Win32 - x64 before_build: - cmd: git -C .. clone -q https://github.com/MediaArea/zlib.git - cmd: git -C .. clone -q https://github.com/MediaArea/libxml2.git - cmd: git -C .. clone -q https://github.com/MediaArea/libxslt.git - cmd: git -C .. clone -q https://github.com/MediaArea/libevent.git - cmd: git -C .. clone -q https://github.com/MediaArea/jansson.git - cmd: git -C .. clone -q https://github.com/MediaArea/ZenLib.git - cmd: git -C .. clone -q https://github.com/MediaArea/MediaInfoLib.git - ps: >- If ($Env:PLATFORM -Eq "Win32") { perl -p '-i.bak' -e 's/..\\..\\..\\..\\Qt5.6-msvc2015\\5.6\\msvc2015/C:\\Qt\\5.6\\msvc2015/g' Project\MSVC2015\GUI\MediaConch_GUI.vcxproj } else { perl -p '-i.bak' -e 's/..\\..\\..\\..\\Qt5.6-msvc2015_64\\5.6\\msvc2015_64/C:\\Qt\\5.6\\msvc2015_64/g' Project\MSVC2015\GUI\MediaConch_GUI.vcxproj } build: project: Project\MSVC2015\MediaConch.sln verbosity: quiet MediaConch/.lgtm.yml 0000644 0000000 0000000 00000000676 14640052500 013317 0 ustar root root extraction: cpp: prepare: packages: - libzen-dev - libmediainfo-dev - libxml2-dev - libxslt-dev - libsqlite3-dev - libjansson-dev - zlib1g-dev - libcurl4-gnutls-dev - libevent-dev configure: command: - "cd Project/GNU/CLI" - "sh autogen.sh" - "./configure" index: build_command: - "cd Project/GNU/CLI" - "make" MediaConch/CONTRIBUTING.md 0000644 0000000 0000000 00000011751 14640052500 014000 0 ustar root root # Contribution Guide ## Rules for contributing feedback The MediaArea project team welcomes contributions and feedback from contributing and/or interested institutions and individuals via issue tracking, various open source communication and social media channels, and other sources of public community outreach. Open source feedback and participation of all kinds and from any interested party or institution is encouraged and can be made through opening an issue on GitHub or contacting the team directly at info@mediaarea.net. ## Rules for contributing code MediaArea welcomes and encourages open source contributions to the software throughout the development stage. To participate and further the MediaConch project as it develops, contributions and additions can be made to the code and/or documentation residing within the project’s Github repository. Contributions and commits should be directed to Github and written as a branch submitted as a pull request. Individual commits should be created for each change and alteration made to the relevant file or code. All contributions should be clear, concise, and follow the standardized, applicable coding and naming conventions within the each language's style guidelines. - Fork the initial project to your own account - Clone your own repository on your computer - Check out a new branch with an explicit name corresponding to the bug corrected or feature added - Make a changes and add commit(s) - Update your local repository with the source repository in case features have been added while you were working - Resolve conflicts if present - Send the change to a branch in your repository - On the Github website, go to your repository, change the branch to the new one created and create a new Pull Request with the changes (after reviewing to ensure no errors will be sent) - Wait for someone approve and merge the changes ### File Naming Conventions In regards to the required conventions for commit messages on the open source platform, all messages should be concise and clear and effectively summarize each contribution to the project. If more than one substantial change was made, users should not create one commit message to cover all feedback and changes. New individual commits should be made to cover each individual change made to the relevant file being altered. Effective commit messages, covering context of a change, will enable MediaArea to work within a speedier, more efficient review process and better alter development around this feedback. ### Guidelines for Qt/C++ code Manageability and productivity within the C++ coding atmosphere will be preserved by upholding to the Style and Consistency rules necessary for creating a readable and controlled code base. Attention to detail will be given to the rules governing the creation of a workable open source code in the following areas: - Headers - Scoping - Classes - Naming - Comments - Formatting - Specific Features/Abilities of C++ - Relevant Exceptions For a detailed account of specific rules, examples and guidelines for each section, please refer to the Google guide on C++: http://google-styleguide.googlecode.com/svn/trunk/cppguide.html ### Rules for Qt/C++ code MediaConch graphical user interface is programmed in C++ and uses the Qt application framework. Guideline for Qt is as follows: Attention to detail will be given to the following rules/guidelines: Indentation: - Four spaces to should be given for indentation (not tabs) Variables: - Each variable should be declared on separate lines, only at the moment they are needed - Avoid short names, abbreviations and single character names (only used for counters and temporaries) - Follow the case conventions for naming Whitespaces: - Use only one blank line and use when grouping statements as suited. Do not put multiple statements onto one line. - Also use a new line for the body of a control flow statement - Follow the specific single space conventions when needed Braces: - Attached braces should be used (follow guidelines for rules and exceptions) - Curly braces are used only when the body of a conditional statement contains 1+ line or when body of a conditional statement is empty (follow guidelines for rules and exceptions) Parenthesis: - Parenthesis should be used to group expressions Switch Statements and Jump Statements: - Case labels are in the same column as the switch - Each case should have a break statement at the end or a comment to indicate there is no intentional break - Do not use ‘else’ at the end of Jump Statements unless for symmetry purposes Line Breaks: - Lines should kept under 100 characters - Wrap text if necessary - Use commas at the end of wrapped text and operators at the beginning of new lines Exceptions: - Always try to achieve functional, consistent and readable code. When code does not look good, exceptions to the rules may pertain to fixing this situation. For more specific rules, examples, exceptions and guidelines, please refer to the Qt Coding Style guide: http://qt-project.org/wiki/Qt_Coding_Style MediaConch/License.html 0000644 0000000 0000000 00000012461 14640052510 014017 0 ustar root root
Copyright (c) 2015-2018 MediaArea.net SARL. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Alternate open source licenses:
You can relicense (including source headers change) MediaConch
under Apache License 2.0 or later,
and/or GNU Lesser General Public License 2.1 or later,
and/or GNU General Public License 2.0 or later,
and/or Mozilla Public License 2.0 or later.
The software relies on third party libraries. Such libraries have their own license:
MediaConch project leads are:
Other team members are:
This project has received funding from PREFORMA, co-funded by the European Commission under its FP7-ICT Programme