ci: update build workflow
This commit is contained in:
+38
-10
@@ -13,43 +13,71 @@ env:
|
||||
BUILD_TYPE: Release
|
||||
|
||||
jobs:
|
||||
check-build:
|
||||
check-build-linux:
|
||||
# The CMake configure and build commands are platform agnostic and should work equally
|
||||
# well on Windows or Mac. You can convert this to a matrix build if you need
|
||||
# cross-platform coverage.
|
||||
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: Build (Linux)
|
||||
env:
|
||||
CC: gcc-13
|
||||
CXX: g++-13
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get update && sudo apt-get install cmake qtbase5-dev libavcodec-dev libavformat-dev libavutil-dev libopencv-dev libopencv-video-dev libopencv-contrib-dev
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Build with default options
|
||||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
|
||||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
|
||||
run: cmake -B ${{github.workspace}}/build -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON; cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
|
||||
run: |
|
||||
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON
|
||||
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
|
||||
|
||||
- name: Build without threads
|
||||
run: cmake -B ${{github.workspace}}/build-without-thread -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON -DCALYP_MANAGED_RESOURCES=OFF -DCALYP_THREADED_MODULES=OFF; cmake --build ${{github.workspace}}/build-without-thread --config ${{env.BUILD_TYPE}}
|
||||
run: |
|
||||
cmake -B ${{github.workspace}}/build-without-thread -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON -DCALYP_MANAGED_RESOURCES=OFF -DCALYP_THREADED_MODULES=OFF
|
||||
cmake --build ${{github.workspace}}/build-without-thread --config ${{env.BUILD_TYPE}}
|
||||
|
||||
- name: Build without dependencies
|
||||
run: cmake -B ${{github.workspace}}/build-without-deps -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON -DUSE_OPENCV=OFF -DUSE_FFMPEG=OFF; cmake --build ${{github.workspace}}/build-without-deps --config ${{env.BUILD_TYPE}}
|
||||
run: |
|
||||
cmake -B ${{github.workspace}}/build-without-deps -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON -DUSE_OPENCV=OFF -DUSE_FFMPEG=OFF
|
||||
cmake --build ${{github.workspace}}/build-without-deps --config ${{env.BUILD_TYPE}}
|
||||
|
||||
- name: Install Qt&
|
||||
run: sudo apt-get install qt6-base-dev
|
||||
|
||||
- name: Build with Qt& (autodetect)
|
||||
run: cmake -B ${{github.workspace}}/build-qt6 -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON; cmake --build ${{github.workspace}}/build-qt6 --config ${{env.BUILD_TYPE}}
|
||||
run: |
|
||||
cmake -B ${{github.workspace}}/build-qt6 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON
|
||||
cmake --build ${{github.workspace}}/build-qt6 --config ${{env.BUILD_TYPE}}
|
||||
|
||||
check-tests:
|
||||
check-build-macos:
|
||||
name: Build (macOS)
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
run: brew install cmake qt opencv ffmpeg
|
||||
- name: Build with default options
|
||||
run: |
|
||||
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON
|
||||
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
|
||||
|
||||
check-tests-linux:
|
||||
name: Tests (Linux)
|
||||
runs-on: ubuntu-latest
|
||||
needs: check-build-linux
|
||||
env:
|
||||
CC: gcc-13
|
||||
CXX: g++-13
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get update && sudo apt-get install cmake qtbase5-dev qt6-base-dev libavcodec-dev libavformat-dev libavutil-dev libopencv-dev libopencv-video-dev libopencv-contrib-dev
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Check out tests data
|
||||
uses: actions/checkout@master
|
||||
@@ -60,7 +88,7 @@ jobs:
|
||||
- name: Configure CMake
|
||||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
|
||||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
|
||||
run: cmake -B ${{github.workspace}}/build -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_TESTS=ON -DCALYP_TEST_DATA_DIR=${{github.workspace}}/tests_data
|
||||
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_TESTS=ON -DCALYP_TEST_DATA_DIR=${{github.workspace}}/tests_data
|
||||
|
||||
- name: Build
|
||||
# Build your program with the given configuration
|
||||
|
||||
+1
-1
@@ -242,7 +242,7 @@ IF(NOT CMAKE_BUILD_TYPE)
|
||||
SET(CMAKE_BUILD_TYPE "Release")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -funroll-loops -Wno-unused-function")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -funroll-loops")
|
||||
|
||||
# if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") endif()
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ EXPORT(PACKAGE MyLib)
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..)
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
|
||||
|
||||
SET(Calyp_Lib_Frame_SRCS CalypPixel.cpp PixelFormats.h PixelFormats.cpp CalypFrame.h CalypFrame.cpp)
|
||||
|
||||
SET(Calyp_Lib_Stream_SRCS
|
||||
|
||||
@@ -43,8 +43,7 @@ ThreeSixtyNxN::ThreeSixtyNxN()
|
||||
m_pchModuleLongName = "ERP to NxN";
|
||||
m_pchModuleTooltip = "Downsampling ERP to NxN";
|
||||
m_uiNumberOfFrames = 1;
|
||||
m_uiModuleRequirements = ClpModuleFeature::SkipWhilePlaying |
|
||||
ClpModuleFeature::Options;
|
||||
m_uiModuleRequirements = ClpModuleFeature::SkipWhilePlaying | ClpModuleFeature::Options;
|
||||
|
||||
m_cModuleOptions.addOptions() /**/
|
||||
( "Downsampling", m_uiDownsampling, "ERP to NxN (0 for up, 1 for down and 2 for recon) [1]" ) /**/
|
||||
@@ -60,11 +59,13 @@ bool ThreeSixtyNxN::create( std::vector<CalypFrame*> apcFrameList )
|
||||
m_uiDownsampling = m_uiDownsampling > 2 ? 1 : m_uiDownsampling;
|
||||
if( m_uiDownsampling == 0 )
|
||||
{
|
||||
m_pcOutputFrame = new CalypFrame( 2 * apcFrameList[0]->getHeight(), apcFrameList[0]->getHeight(), apcFrameList[0]->getPelFormat(), apcFrameList[0]->getBitsPel() );
|
||||
m_pcOutputFrame = new CalypFrame( 2 * apcFrameList[0]->getHeight(), apcFrameList[0]->getHeight(),
|
||||
apcFrameList[0]->getPelFormat(), apcFrameList[0]->getBitsPel() );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pcOutputFrame = new CalypFrame( apcFrameList[0]->getHeight(), apcFrameList[0]->getHeight(), apcFrameList[0]->getPelFormat(), apcFrameList[0]->getBitsPel() );
|
||||
m_pcOutputFrame = new CalypFrame( apcFrameList[0]->getHeight(), apcFrameList[0]->getHeight(),
|
||||
apcFrameList[0]->getPelFormat(), apcFrameList[0]->getBitsPel() );
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -84,12 +85,7 @@ bool ThreeSixtyNxN::create( std::vector<CalypFrame*> apcFrameList )
|
||||
static inline ClpPel interpol_lanczos3( ClpPel* image, double x, int N, int max_value )
|
||||
{
|
||||
static const double cs[][2] = {
|
||||
{ 1, 0 },
|
||||
{ -0.5, -s60 },
|
||||
{ -0.5, s60 },
|
||||
{ 1, 0 },
|
||||
{ -0.5, -s60 },
|
||||
{ -0.5, s60 },
|
||||
{ 1, 0 }, { -0.5, -s60 }, { -0.5, s60 }, { 1, 0 }, { -0.5, -s60 }, { -0.5, s60 },
|
||||
};
|
||||
|
||||
double sum_coeffs = 0, sum = 0, coeffs[6];
|
||||
@@ -117,23 +113,6 @@ static inline ClpPel interpol_lanczos3( ClpPel* image, double x, int N, int max_
|
||||
return CLAMP_RANGE( sum, 0, max_value );
|
||||
}
|
||||
|
||||
//interpolação cúbica 360
|
||||
static inline ClpPel interpol_cub( ClpPel* image, double x, int N, int max_value )
|
||||
{
|
||||
int x_int = floor( x );
|
||||
x -= x_int;
|
||||
bool n0 = x > 0;
|
||||
ClpPel x1 = *( image + CIRCULAR( x_int, N ) );
|
||||
if( !n0 )
|
||||
return x1;
|
||||
ClpPel x2 = *( image + CIRCULAR( x_int + n0, N ) );
|
||||
ClpPel x0 = *( image + CIRCULAR( x_int - 1, N ) );
|
||||
ClpPel x3 = *( image + CIRCULAR( x_int + n0 + 1, N ) );
|
||||
|
||||
ClpPel out = CLAMP_RANGE( x1 - x * ( x0 - x2 + x * ( 2 * x1 - 2 * x0 - x2 + x3 + x * ( x0 - x1 + x2 - x3 ) ) ), 0, max_value ); //cubic
|
||||
return out;
|
||||
}
|
||||
|
||||
void ThreeSixtyNxN::downsamplingOperation( const CalypFrame* pcInputFrame )
|
||||
{
|
||||
for( unsigned ch = 0; ch < m_pcOutputFrame->getNumberChannels(); ch++ )
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
|
||||
#include <climits>
|
||||
#include <cstring>
|
||||
#include <format>
|
||||
#include <iostream>
|
||||
|
||||
#include "config.h"
|
||||
@@ -721,7 +720,7 @@ int CalypTools::ListStatistics()
|
||||
log( CLP_LOG_RESULT, " Range: " );
|
||||
for( unsigned channel = 0; channel < currFrame->getNumberChannels(); channel++ )
|
||||
{
|
||||
log( CLP_LOG_RESULT, std::format( "[{}:{}]", min[channel], max[channel] ) );
|
||||
log( CLP_LOG_RESULT, "[%d:%d]", min[channel], max[channel] );
|
||||
}
|
||||
log( CLP_LOG_RESULT, "|\n" );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user