MediaConch/ 0000755 0000000 0000000 00000000000 14507256470 011560 5 ustar root root MediaConch/.appveyor.yml 0000644 0000000 0000000 00000001750 14507255514 014227 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 14507255514 013333 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 14507255514 014014 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 14507255526 014035 0 ustar root root
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
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.
Third party libraries
The software relies on third party libraries. Such libraries have their own license:
Media analysis library: MediaInfoLib, (c) MediaArea.net SARL, BSD-2-Clause license
Base classes library: ZenLib, (c) MediaArea.net SARL, initialy zlib license
C++ standard library: libstdc++ (GPLv3+ with linking exception), libc++ (MIT license), Visual C++ library (Microsoft proprietary license) or any other C++ standard library
MediaConch/LICENSE 0000644 0000000 0000000 00000002460 14507255514 012565 0 ustar root root BSD 2-Clause License
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:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
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.
MediaConch/Project/ 0000755 0000000 0000000 00000000000 14507255514 013164 5 ustar root root MediaConch/Project/version.txt 0000644 0000000 0000000 00000000006 14507255526 015411 0 ustar root root 23.10
MediaConch/Project/AppImage/ 0000755 0000000 0000000 00000000000 14507255526 014652 5 ustar root root MediaConch/Project/AppImage/Recipe.sh 0000644 0000000 0000000 00000014421 14507255526 016417 0 ustar root root #!/bin/bash
# Copyright (c) MediaArea.net SARL. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license that can
# be found in the License.html file in the root of the source tree.
#
# This script build mediaconch mediaconch-server and mediaconch-gui AppImages
# This script is supposed to be run on a CentOS 6 container or chroot"
function Make_image() {
local APP=$1 BIN=$2 DESKTOP=$3 ICON=$4 LOWERAPP=${1,,}
mkdir -p $LOWERAPP/$LOWERAPP.AppDir
pushd $LOWERAPP
pushd $LOWERAPP.AppDir
mkdir -p usr/bin
cp $BIN usr/bin/
cp $DESKTOP $ICON .
if [ "$LOWERAPP" == "mediaconch-gui" ] ; then
if [ "$ARCH" == "x86_64" ] ; then
mkdir -p usr/lib64/qt5
cp -r /usr/lib64/qt5/plugins usr/lib64/qt5
else
mkdir -p usr/lib/qt5
cp -r /usr/lib/qt5/plugins usr/lib/qt5
fi
get_desktopintegration $LOWERAPP
fi
get_apprun
# Multiple runs to ensure we catch indirect ones
copy_deps; copy_deps; copy_deps; copy_deps
move_lib
delete_blacklisted
if [ "$ARCH" == "x86_64" ] ; then
cp -f /usr/lib64/libnss3.so usr/lib64
else
cp -f /usr/lib/libnss3.so usr/lib
fi
popd
generate_appimage
popd
}
# Detect host
if ! grep "CentOS release 6\..*" /etc/centos-release ; then
echo "This script is supposed to be run on a CentOS 6 container or chroot"
exit 1
fi
# Setup evironment
VERSION=23.10
if [ "$(arch)" == "i386" ] ; then
ARCH="i686"
else
ARCH="$(arch)"
fi
PREFIX=$PWD/prefix
# Get AppImage utils
curl -L -O https://github.com/probonopd/AppImages/raw/master/functions.sh
# Fix functions.sh
sed -i "s/-x86_64/-$ARCH/g" functions.sh
source ./functions.sh
# Add EPEL repository
curl -L -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -i --nodeps epel-release-*.rpm
# Install build and AppImage dependencies
yum install -y file wget tar fuse-libs fuse gcc-c++ pkgconfig libtool automake autoconf git zlib-devel libxml2-devel \
libxslt-devel sqlite-devel libcurl-devel jansson-devel qt5-qtbase-devel qt5-qtwebkit-devel
# Compile libevent (too old on CentOS 6)
curl -L https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz | tar xz
pushd libevent-2.0.22-stable
if [ "$ARCH" == "x86_64" ] ; then
./configure --enable-shared --disable-static --prefix=/usr --libdir=/usr/lib64
else
./configure --enable-shared --disable-static --prefix=/usr
fi
if test ! -e Makefile; then
echo Problem while configuring libevent
exit 1
fi
make -j$(nproc)
if test ! -e libevent.la; then
echo Problem while compiling libevent
exit 1
fi
make install
popd
# Compile ZenLib
if test -e ZenLib/Project/GNU/Library; then
pushd ZenLib/Project/GNU/Library
autoreconf -i
if [ "$ARCH" == "x86_64" ] ; then
./configure --enable-shared --disable-static --prefix=/usr --libdir=/usr/lib64
else
./configure --enable-shared --disable-static --prefix=/usr
fi
if test ! -e Makefile; then
echo Problem while configuring ZenLib
exit 1
fi
make -j$(nproc)
if test ! -e libzen.la; then
echo Problem while compiling ZenLib
exit 1
fi
make install
popd
else
echo ZenLib directory is not found
exit 1
fi
# Compile MediaInfoLib
if test -e MediaInfoLib/Project/GNU/Library; then
pushd MediaInfoLib/Project/GNU/Library
autoreconf -i
if [ "$ARCH" == "x86_64" ] ; then
./configure --enable-shared --disable-static --prefix=/usr --libdir=/usr/lib64 --with-libcurl
else
./configure --enable-shared --disable-static --prefix=/usr --with-libcurl
fi
if test ! -e Makefile; then
echo Problem while configuring MediaInfoLib
exit 1
fi
make -j$(nproc)
if test ! -e libmediainfo.la; then
echo Problem while compiling MediaInfoLib
exit 1
fi
make install
popd
else
echo MediaInfoLib directory is not found
exit 1
fi
# Compile MediaConch
if test -e MediaConch; then
# CLI
pushd MediaConch/Project/GNU/CLI
autoreconf -i
./configure --prefix=$PREFIX
if test ! -e Makefile; then
echo Problem while configuring MediaConch
exit 1
fi
make -j$(nproc)
if test ! -e mediaconch; then
echo Problem while compiling MediaConch
exit 1
fi
make install
popd
# Server
pushd MediaConch/Project/GNU/Server
autoreconf -i
./configure --prefix=$PREFIX
if test ! -e Makefile; then
echo Problem while configuring MediaConch Server
exit 1
fi
make -j$(nproc)
if test ! -e mediaconchd; then
echo Problem while compiling MediaConch Server
exit 1
fi
make install
popd
# GUI
pushd MediaConch/Project/Qt
./prepare USE_WEBKIT=1
if test ! -e Makefile; then
echo Problem while configuring MediaConch GUI
exit 1
fi
make -j$(nproc)
if test ! -e mediaconch-gui; then
echo Problem while compiling MediaConch GUI
exit 1
fi
install -m 755 -d $PREFIX/bin
install -m 755 mediaconch-gui $PREFIX/bin
popd
else
echo MediaConch directory is not found
exit 1
fi
# Make appImages
cp ${PWD}/MediaConch/Source/Resource/Image/MediaConch.png mediaconch.png
cat > mediaconch.desktop < mediaconch-server.desktop <