Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into stable
Browse files Browse the repository at this point in the history
* Make Olympus decompressor faster (-13%)
* Make Sony LJpeg decompressor faster (-33%)
* Support broken-by-design Blackmagic uncompressed DNG's

* OM System OM-1 Mark II support
* Fujifilm X100VI support
* Sony ILCE-9M3 support
* Phase One P25+ support
* Add Panasonic DC-TZ95D alias
* Remove explicit crop from Fujifilm X-Trans gen-4/5 cameras
* Leica SL3 normalization
* Fix up Panasonic DMC-FZ28 crop modes
* Add unsupported Panasonic placeholders
* Add unsupported Canon placeholders
* Add Fujifilm X100VI placeholder

* upstream/develop: (154 commits)
  Phase One P25+ support
  BitStreamer::getInput(): don't disable fast-path for `DEBUG` builds
  `BitStreamerJPEG::fillCache()`: `prefetch` is no longer needed
  BitStreamer: sink prefetch into `getInput()`
  LJpegDecompressor: change how we deal with predictor
  `BitStreamer::getInput()`: add branch likelyhood annotations
  Bump some fuzz-only image size cut-offs
  `writeLog()`: drop pointless `RAWSPEED_READNONE`, clang complains
  Cr2Decompressor: do not inline `decompressN_X_Y()`'s into `decompress()`
  LJpegDecompressor: do check that jpeg frame has positive area
  TiffParser::parse(): retain already-parsed IFD's on IFD parse failure (Blackmagic oddities)
  CI: macos: bump whole-job timeout
  LJpegDecoder: avoid overflow when computing pixels-per-row of maximal tile
  LJpegDecompressor: drop some more meaningless invariants
  LJpegDecompressor: drop obsolete `cps` variable
  JpegDecompressor: drop arg names from unused arguments
  md5: drop arg name from unused argument
  FiffParser::parseData(): use switch
  OlympusDifferenceDecoder: make definition of `getDiff()` inlne, not decl
  BitStreamerJPEG: make definition of `getStreamPosition()` inlne, not decl
  ...
  • Loading branch information
LebedevRI committed Apr 2, 2024
2 parents c04c91a + 6364c6a commit a56970c
Show file tree
Hide file tree
Showing 122 changed files with 2,494 additions and 893 deletions.
2 changes: 1 addition & 1 deletion .ci/Brewfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
brew 'cmake'
brew 'git'
brew 'libomp'
brew 'jpeg'
brew 'jpeg-turbo'
brew 'ninja'
brew 'pugixml'
3 changes: 1 addition & 2 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Checks: >
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-c-copy-assignment-signature,
-cppcoreguidelines-explicit-virtual-functions,
-cppcoreguidelines-macro-to-enum,
-cppcoreguidelines-noexcept-destructor,
-cppcoreguidelines-noexcept-move-operations,
-cppcoreguidelines-noexcept-swap,
Expand Down Expand Up @@ -111,7 +112,6 @@ Checks: >
-misc-unused-parameters,
-misc-unused-using-decls,
-modernize-use-trailing-return-type,
-openmp-exception-escape,
-portability-simd-intrinsics,
-readability-container-data-pointer,
-readability-identifier-length,
Expand All @@ -122,7 +122,6 @@ Checks: >
-rawspeed-std-array-no-operator-at
WarningsAsErrors: '*'
HeaderFilterRegex: '.*'
AnalyzeTemporaryDtors: false
InheritParentConfig: false
User: lebedevri
CheckOptions:
Expand Down
48 changes: 26 additions & 22 deletions .github/workflows/CI-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,11 @@ jobs:
APT::Get::Fix-Missing "true";
EOT
rm -rf /etc/apt/sources.list*
if [ "${{ inputs.distro }}" = "debian:trixie-slim" ]; then
if [ "${{ inputs.distro }}" = "debian:unstable-slim" ]; then
tee /etc/apt/sources.list > /dev/null <<EOT
deb http://debian-archive.trafficmanager.net/debian unstable main
EOT
elif [ "${{ inputs.distro }}" = "debian:trixie-slim" ]; then
tee /etc/apt/sources.list > /dev/null <<EOT
deb http://debian-archive.trafficmanager.net/debian trixie main
deb http://debian-archive.trafficmanager.net/debian trixie-updates main
Expand All @@ -104,9 +108,9 @@ jobs:
run: |
set -xe
rm -rf /var/lib/apt/lists/*
apt-get update
apt-get install eatmydata
eatmydata apt-get upgrade
apt update
apt install eatmydata
eatmydata apt upgrade
- name: Install necessary packages
timeout-minutes: 1
env:
Expand All @@ -116,7 +120,7 @@ jobs:
ENABLE_SAMPLE_BASED_TESTING: ${{ inputs.enable-sample-based-testing }}
run: |
set -xe
eatmydata apt-get install ca-certificates \
eatmydata apt install ca-certificates \
cmake \
git \
googletest \
Expand All @@ -126,28 +130,28 @@ jobs:
ninja-build \
zlib1g-dev
if [ "$COMPILER_FAMILY" = "GNU" ]; then
eatmydata apt-get install g++-${{ inputs.compiler-version }} \
eatmydata apt install g++-${{ inputs.compiler-version }} \
gcc \
gcc-${{ inputs.compiler-version }}
fi
if [ "$COMPILER_FAMILY" = "LLVM" ]; then
eatmydata apt-get install clang-${{ inputs.compiler-version }} \
eatmydata apt install clang-${{ inputs.compiler-version }} \
libomp-${{ inputs.compiler-version }}-dev
fi
if [ "$ENABLE_SAMPLE_BASED_TESTING" = "true" ]; then
eatmydata apt-get install zstd
eatmydata apt install zstd
fi
if [ "$FLAVOR" = "ClangTidy" ]; then
eatmydata apt-get install clang-format-${{ inputs.compiler-version }} clang-tidy-${{ inputs.compiler-version }}
eatmydata apt install clang-format-${{ inputs.compiler-version }} clang-tidy-${{ inputs.compiler-version }}
eatmydata apt-get install curl gpg
echo 'deb https://mirror.aardsoft.fi/opensuse/repositories/graphics:/darktable:/master/Debian_Testing/ /' | tee /etc/apt/sources.list
curl -fsSL https://download.opensuse.org/repositories/graphics:darktable:master/Debian_Testing/Release.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/graphics_darktable_master.gpg > /dev/null
apt-get update
eatmydata apt-get install rawspeed-clang-tidy-module
eatmydata apt install curl gpg
echo 'deb https://ftp.gwdg.de//pub/opensuse/repositories/graphics%3A/darktable%3A/master/Debian_Unstable/ /' | tee /etc/apt/sources.list
curl -fsSL https://download.opensuse.org/repositories/graphics:darktable:master/Debian_Unstable/Release.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/graphics_darktable_master.gpg > /dev/null
apt update
eatmydata apt install rawspeed-clang-tidy-module
fi
if [ "$FLAVOR" = "ClangStaticAnalysis" ] || [ "$FLAVOR" = "ClangCTUStaticAnalysis" ]; then
eatmydata apt-get install clang-tools-${{ inputs.compiler-version }} \
eatmydata apt install clang-tools-${{ inputs.compiler-version }} \
curl \
libxml2-dev \
libxslt1-dev \
Expand All @@ -163,7 +167,7 @@ jobs:
python3-yaml \
xz-utils
fi
eatmydata apt-get clean
eatmydata apt clean
dpkg-divert --add --rename --divert /usr/bin/ld.original /usr/bin/ld
if [ "$FLAVOR" = "ClangStaticAnalysis" ] || [ "$FLAVOR" = "ClangCTUStaticAnalysis" ]; then
ln -s /usr/bin/${{ inputs.compiler-CC }} /usr/local/bin/clang
Expand Down Expand Up @@ -217,7 +221,7 @@ jobs:
- name: Initialize CodeQL (for CodeQL static analysis)
timeout-minutes: 1
if: inputs.flavor == 'CodeQLAnalysis'
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: cpp
- name: Set up JDK 11 (for SonarCloud static analysis)
Expand All @@ -235,9 +239,9 @@ jobs:
run: |
set -xe
rm -rf /var/lib/apt/lists/*
eatmydata apt-get update
eatmydata apt-get install curl unzip
eatmydata apt-get clean
eatmydata apt update
eatmydata apt install curl unzip
eatmydata apt clean
mkdir -p $HOME/.sonar
curl -sSLo $HOME/.sonar/sonar-scanner.zip ${{ env.SONAR_SCANNER_DOWNLOAD_URL }}
unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
Expand Down Expand Up @@ -335,7 +339,7 @@ jobs:
mkdir -p "${COVERAGE_REPORT_PREFIX}"
mv "${BUILD_DIR}/gcov-reports-benchmarks" "${COVERAGE_REPORT_PREFIX}/benchmarks"
- name: Test (integration)
timeout-minutes: ${{ inputs.flavor != 'Coverage' && 1 || 31 }}
timeout-minutes: ${{ inputs.flavor != 'Coverage' && 2 || 31 }}
if: inputs.enable-sample-based-testing
env:
SRC_DIR: ${{ github.workspace }}/rawspeed
Expand Down Expand Up @@ -436,7 +440,7 @@ jobs:
- name: Perform CodeQL static analysis
timeout-minutes: 11
if: inputs.flavor == 'CodeQLAnalysis'
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
- name: Perform SonarCloud static analysis
timeout-minutes: 6
if: inputs.flavor == 'SonarCloudStaticAnalysis'
Expand Down
17 changes: 14 additions & 3 deletions .github/workflows/CI-macOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ env:
jobs:
macOS:
name: ${{ inputs.compiler-family }}.${{ inputs.compiler-version }}.targeting.OSX.${{ inputs.os-deployment_target }}.${{ inputs.flavor }}
timeout-minutes: 9
timeout-minutes: 11
runs-on: ${{ inputs.os }}
steps:
- name: Fetch/Checkout RawSpeed git repo
Expand All @@ -41,14 +41,25 @@ jobs:
with:
path: 'rawspeed'
fetch-depth: 1
- name: Install Base Dependencies
timeout-minutes: 2
- name: Remove unneeded brew formulas/casks
timeout-minutes: 3
env:
SRC_DIR: ${{ github.workspace }}/rawspeed
run: |
set -xe
brew update --quiet
brew tap Homebrew/bundle
cd "${SRC_DIR}/.ci/"
brew bundle cleanup --quiet --force
brew autoremove --quiet
brew cleanup --quiet --prune=all
- name: Install/Update Base Dependencies
timeout-minutes: 1
env:
SRC_DIR: ${{ github.workspace }}/rawspeed
run: |
set -xe
cd "${SRC_DIR}/.ci/"
brew bundle --verbose
- name: Install Additional Dependencies (Coverage)
if: inputs.flavor == 'Coverage'
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/CI-rpuu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ jobs:
run: |
set -xe
rm -rf /var/lib/apt/lists/*
apt-get update
apt-get install eatmydata
eatmydata apt-get upgrade
apt update
apt install eatmydata
eatmydata apt upgrade
- name: Install necessary packages
timeout-minutes: 1
env:
Expand All @@ -76,7 +76,7 @@ jobs:
FLAVOR: ${{ inputs.flavor }}
run: |
set -xe
eatmydata apt-get install rsync zstd
eatmydata apt install rsync zstd
- name: Fetch raw.pixls.us masterset digest
timeout-minutes: 1
env:
Expand Down
13 changes: 7 additions & 6 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
os: [ linux ]
compiler:
- { distro: "debian:trixie-slim", family: GNU, version: 13, CC: gcc-13, CXX: g++-13 }
- { distro: "debian:trixie-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
- { distro: "debian:unstable-slim", family: LLVM, version: 18, CC: clang-18, CXX: clang++-18 }
flavor: [ ReleaseWithAsserts, Release ]
uses: ./.github/workflows/CI-linux.yml
with:
Expand All @@ -54,6 +54,7 @@ jobs:
os: [ linux ]
compiler:
- { distro: "debian:bookworm-slim", family: GNU, version: 12, CC: gcc-12, CXX: g++-12 }
- { distro: "debian:trixie-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
- { distro: "debian:bookworm-slim", family: LLVM, version: 16, CC: clang-16, CXX: clang++-16 }
- { distro: "debian:bookworm-slim", family: LLVM, version: 15, CC: clang-15, CXX: clang++-15 }
flavor: [ ReleaseWithAsserts, Release ]
Expand All @@ -74,16 +75,16 @@ jobs:
matrix:
include:
- os: linux
compiler: { distro: "debian:trixie-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17, CLANG_TIDY: clang-tidy-17 }
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 18, CC: clang-18, CXX: clang++-18, CLANG_TIDY: clang-tidy-18 }
flavor: ClangTidy
- os: linux
compiler: { distro: "debian:trixie-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 18, CC: clang-18, CXX: clang++-18 }
flavor: ClangStaticAnalysis
- os: linux
compiler: { distro: "debian:trixie-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 18, CC: clang-18, CXX: clang++-18 }
flavor: ClangCTUStaticAnalysis
- os: linux
compiler: { distro: "debian:trixie-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 18, CC: clang-18, CXX: clang++-18 }
flavor: CodeQLAnalysis
uses: ./.github/workflows/CI-linux.yml
with:
Expand Down Expand Up @@ -125,7 +126,7 @@ jobs:
matrix:
include:
- os: linux
compiler: { distro: "debian:trixie-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 18, CC: clang-18, CXX: clang++-18 }
flavor: SonarCloudStaticAnalysis
uses: ./.github/workflows/CI-linux.yml
with:
Expand Down
1 change: 1 addition & 0 deletions bench/librawspeed/adt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
FILE(GLOB RAWSPEED_BENCHS_SOURCES
"CoalescingOutputIteratorBenchmark.cpp"
"DefaultInitAllocatorAdaptorBenchmark.cpp"
"VariableLengthLoadBenchmark.cpp"
)
Expand Down
Loading

0 comments on commit a56970c

Please sign in to comment.