Projects
Essentials
libde265
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 10
View file
libde265.changes
Changed
@@ -1,4 +1,15 @@ ------------------------------------------------------------------- +Wed May 21 07:03:56 UTC 2025 - Bjørn Lie <zaitor@opensuse.org> + +- Update to version 1.0.16: + * This release fixes some rare decoding errors and some build + issues. +- Rebase libde265-disable_tools.patch. +- Add 03219835991f44c7ecf4dcc6fa8066967561be7e.patch and + 67831118e3d6961fab4c29fc4364fa0eccfb8473.patch: Fix potential + data race in image.cc + +------------------------------------------------------------------- Mon Jul 22 17:25:31 UTC 2024 - Bjørn Lie <zaitor@opensuse.org> - Update to version 1.0.15:
View file
libde265.spec
Changed
@@ -18,7 +18,7 @@ %define so_ver 0 Name: libde265 -Version: 1.0.15 +Version: 1.0.16 Release: 0 Summary: Open H.265 video codec implementation License: LGPL-3.0-only @@ -27,6 +27,8 @@ Source0: https://github.com/strukturag/libde265/releases/download/v%{version}/%{name}-%{version}.tar.gz Source99: baselibs.conf Patch0: libde265-disable_tools.patch +Patch1: https://github.com/strukturag/libde265/commit/03219835991f44c7ecf4dcc6fa8066967561be7e.patch +Patch2: https://github.com/strukturag/libde265/commit/67831118e3d6961fab4c29fc4364fa0eccfb8473.patch BuildRequires: automake BuildRequires: c++_compiler BuildRequires: libtool @@ -79,8 +81,7 @@ %make_install find %{buildroot} -type f -name "*.la" -delete -print -%post -n %{name}-%{so_ver} -p /sbin/ldconfig -%postun -n %{name}-%{so_ver} -p /sbin/ldconfig +%ldconfig_scriptlets -n %{name}-%{so_ver} %files -n %{name}-%{so_ver} %license COPYING
View file
03219835991f44c7ecf4dcc6fa8066967561be7e.patch
Added
@@ -0,0 +1,55 @@ +From 03219835991f44c7ecf4dcc6fa8066967561be7e Mon Sep 17 00:00:00 2001 +From: Victor Loh <vloh@fb.com> +Date: Mon, 5 May 2025 13:05:53 -0700 +Subject: PATCH libde265 Fix potential data race in image.cc + +There could be potential data race causing s_next_image_ID to not be minting out +ID in monotonically increasing order. Before this fix, there was an TSAN failure +and with this fix, the TSAN failure is resolved. +--- + libde265/image.cc | 5 +++-- + libde265/image.h | 1 - + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libde265/image.cc b/libde265/image.cc +index fdc80fc2..6acd8c15 100644 +--- a/libde265/image.cc ++++ b/libde265/image.cc +@@ -22,6 +22,8 @@ + #include "decctx.h" + #include "en265.h" + ++#inclue <atomic> ++ + #include <stdlib.h> + #include <string.h> + #include <assert.h> +@@ -187,8 +189,6 @@ void de265_image::set_image_plane(int cIdx, uint8_t* mem, int stride, void *user + } + + +-uint32_t de265_image::s_next_image_ID = 0; +- + de265_image::de265_image() + { + ID = -1; +@@ -249,6 +249,7 @@ de265_error de265_image::alloc_image(int w,int h, enum de265_chroma c, + allocated to the requested size. Without the release, the old image-data + will not be freed. */ + ++ static std::atomic<uint32_t> s_next_image_ID(0); + ID = s_next_image_ID++; + removed_at_picture_id = std::numeric_limits<int32_t>::max(); + +diff --git a/libde265/image.h b/libde265/image.h +index 3779580c..78a79de2 100644 +--- a/libde265/image.h ++++ b/libde265/image.h +@@ -344,7 +344,6 @@ struct de265_image { + + private: + uint32_t ID; +- static uint32_t s_next_image_ID; + + uint8_t* pixels3; + uint8_t bpp_shift3; // 0 for 8 bit, 1 for 16 bit
View file
67831118e3d6961fab4c29fc4364fa0eccfb8473.patch
Added
@@ -0,0 +1,22 @@ +From 67831118e3d6961fab4c29fc4364fa0eccfb8473 Mon Sep 17 00:00:00 2001 +From: Dirk Farin <dirk.farin@gmail.com> +Date: Mon, 5 May 2025 23:54:25 +0200 +Subject: PATCH fix typo + +--- + libde265/image.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libde265/image.cc b/libde265/image.cc +index 6acd8c15..5d66fe99 100644 +--- a/libde265/image.cc ++++ b/libde265/image.cc +@@ -22,7 +22,7 @@ + #include "decctx.h" + #include "en265.h" + +-#inclue <atomic> ++#include <atomic> + + #include <stdlib.h> + #include <string.h>
View file
libde265-disable_tools.patch
Changed
@@ -1,15 +1,16 @@ ---- libde265-orig/Makefile.am 2020-04-06 17:52:29.260908356 +0200 -+++ libde265-patched/Makefile.am 2020-04-06 17:53:20.796824123 +0200 -@@ -10,10 +10,9 @@ +Index: libde265-1.0.15+18/Makefile.am +=================================================================== +--- libde265-1.0.15+18.orig/Makefile.am ++++ libde265-1.0.15+18/Makefile.am +@@ -10,9 +10,8 @@ endif if ENABLE_ENCODER SUBDIRS+=enc265 -endif - SUBDIRS+=tools - SUBDIRS+=acceleration-speed +endif - if ENABLE_SHERLOCK265 - SUBDIRS+=sherlock265 + # Remove acceleration-speed test program, because it needs many internal functions (that have to be dllexported). + # On the other hand, that tool was only used for development.
View file
libde265-1.0.15.tar.gz/acceleration-speed
Deleted
-(directory)
View file
libde265-1.0.15.tar.gz/acceleration-speed/Makefile.am
Deleted
@@ -1,17 +0,0 @@ - -bin_PROGRAMS = acceleration_speed - -AM_CPPFLAGS = -I$(top_srcdir)/libde265 -I$(top_srcdir) - -acceleration_speed_DEPENDENCIES = ../libde265/libde265.la -acceleration_speed_CXXFLAGS = -acceleration_speed_LDFLAGS = -acceleration_speed_LDADD = ../libde265/libde265.la -lstdc++ -acceleration_speed_SOURCES = \ - acceleration-speed.cc acceleration-speed.h \ - dct.cc dct.h \ - dct-scalar.cc dct-scalar.h - -if ENABLE_SSE_OPT - acceleration_speed_SOURCES += dct-sse.cc -endif
View file
libde265-1.0.15.tar.gz/acceleration-speed/Makefile.in
Deleted
@@ -1,775 +0,0 @@ -# Makefile.in generated by automake 1.16.5 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2021 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\\ \ *) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs$$bs $$bs *//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -dEDm) skip_next=yes;; \ - -JT) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -bin_PROGRAMS = acceleration_speed$(EXEEXT) -@ENABLE_SSE_OPT_TRUE@am__append_1 = dct-sse.cc -subdir = acceleration-speed -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ - $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/m4_ax_check_compile_flag.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" -PROGRAMS = $(bin_PROGRAMS) -am__acceleration_speed_SOURCES_DIST = acceleration-speed.cc \ - acceleration-speed.h dct.cc dct.h dct-scalar.cc dct-scalar.h \ - dct-sse.cc -@ENABLE_SSE_OPT_TRUE@am__objects_1 = \ -@ENABLE_SSE_OPT_TRUE@ acceleration_speed-dct-sse.$(OBJEXT) -am_acceleration_speed_OBJECTS = \ - acceleration_speed-acceleration-speed.$(OBJEXT) \ - acceleration_speed-dct.$(OBJEXT) \ - acceleration_speed-dct-scalar.$(OBJEXT) $(am__objects_1) -acceleration_speed_OBJECTS = $(am_acceleration_speed_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -acceleration_speed_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ - $(acceleration_speed_CXXFLAGS) $(CXXFLAGS) \ - $(acceleration_speed_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = \ - ./$(DEPDIR)/acceleration_speed-acceleration-speed.Po \ - ./$(DEPDIR)/acceleration_speed-dct-scalar.Po \ - ./$(DEPDIR)/acceleration_speed-dct-sse.Po \ - ./$(DEPDIR)/acceleration_speed-dct.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(acceleration_speed_SOURCES) -DIST_SOURCES = $(am__acceleration_speed_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \
View file
libde265-1.0.15.tar.gz/acceleration-speed/acceleration-speed.cc
Deleted
@@ -1,219 +0,0 @@ -/* - * H.265 video codec. - * Copyright (c) 2015 struktur AG, Dirk Farin <farin@struktur.de> - * - * This file is part of libde265. - * - * libde265 is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * libde265 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with libde265. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <getopt.h> - -#include <string> -#include <stack> -#include <memory> - -#include "libde265/image.h" -#include "libde265/fallback-dct.h" -#include "libde265/image-io.h" - -#include "acceleration-speed.h" - - -/* TODO: for more realistic input to IDCTs, we could save the real coefficients in - a decoder run and use this data as input. - */ - - -bool show_help=false; -bool do_check=false; -bool do_time=false; -bool do_eval=false; -int img_width=352; -int img_height=288; -int nframes=1000; -int repeat=10; -std::string function; -std::string input_file; - -static struct option long_options = { - {"help", no_argument, 0, 'H' }, - {"input", required_argument, 0, 'i' }, - {"width", required_argument, 0, 'w' }, - {"height", required_argument, 0, 'h' }, - {"nframes", required_argument, 0, 'n' }, - {"function",required_argument, 0, 'f' }, - {"check", no_argument, 0, 'c' }, - {"time", no_argument, 0, 't' }, - {"eval", no_argument, 0, 'e' }, - {"repeat", required_argument, 0, 'r' }, - {0, 0, 0, 0 } -}; - - - -DSPFunc* DSPFunc::first = NULL; - - -bool DSPFunc::runOnImage(std::shared_ptr<const de265_image> img, bool compareToReference) -{ - int w = img->get_width(0); - int h = img->get_height(0); - - int blkWidth = getBlkWidth(); - int blkHeight = getBlkHeight(); - - bool success = true; - - for (int y=0;y<=h-blkHeight;y+=blkHeight) - for (int x=0;x<=w-blkWidth;x+=blkWidth) { - runOnBlock(x,y); - - if (compareToReference) { - referenceImplementation()->runOnBlock(x,y); - success &= compareToReferenceImplementation(); - } - } - - return success; -} - - - -int main(int argc, char** argv) -{ - while (1) { - int option_index = 0; - - int c = getopt_long(argc, argv, "Hci:w:h:n:f:ter:", long_options, &option_index); - if (c == -1) - break; - - switch (c) { - case 'H': show_help=true; break; - case 'c': do_check=true; break; - case 'w': img_width =atoi(optarg); break; - case 'h': img_height=atoi(optarg); break; - case 'n': nframes=atoi(optarg); break; - case 'f': function=optarg; break; - case 'i': input_file=optarg; break; - case 't': do_time=true; break; - case 'e': do_eval=true; break; - case 'r': repeat=atoi(optarg); break; - } - } - - - if (show_help) { - fprintf(stderr, - "acceleration-speed SIMD DSP function testing tool\n" - "--------------------------------------------------\n" - " --help show help\n" - " -i, --input NAME input YUV file\n" - " -w, --width # input width (default: 352)\n" - " -h, --height # input height (default: 288)\n" - " -n, --nframes # number of frames to process (default: 1000)\n" - " -f, --function NAME which function to test (see below)\n" - " -r, --repeat # number of repetitions for each image (default: 10)\n" - " -c, --check compare function result against its reference code\n" - "\n" - "these functions are known:\n" - ); - - std::stack<const char*> funcnames; - - for (DSPFunc* func = DSPFunc::first; - func ; - func=func->next) { - funcnames.push(func->name()); - } - - while (!funcnames.empty()) { - fprintf(stderr, - " %s\n", funcnames.top()); - funcnames.pop(); - } - - return 0; - } - - - // --- find DSP function with the given name --- - - if (function.empty()) { - fprintf(stderr,"No function specified. Use option '--function'.\n"); - exit(10); - } - - DSPFunc* algo = NULL; - for (DSPFunc* f = DSPFunc::first; f ; f=f->next) { - if (strcasecmp(f->name(), function.c_str())==0) { - algo = f; - break; - } - } - - if (algo==NULL) { - fprintf(stderr,"Argument to '--function' invalid. No function with that name.\n"); - exit(10); - } - - if (do_check && !algo->referenceImplementation()) { - fprintf(stderr,"cannot check function result: no reference function defined for the selected function.\n"); - exit(10); - } - - - ImageSource_YUV image_source; - image_source.set_input_file(input_file.c_str(), img_width, img_height); - - int img_counter=0; - - bool eof = false; - for (int f=0; f<nframes ; f++) - { - std::shared_ptr<de265_image> image(image_source.get_image()); - if (!image) { - eof=true; - break; - } - - img_counter++;
View file
libde265-1.0.15.tar.gz/acceleration-speed/acceleration-speed.h
Deleted
@@ -1,65 +0,0 @@ -/* - * H.265 video codec. - * Copyright (c) 2015 struktur AG, Dirk Farin <farin@struktur.de> - * - * This file is part of libde265. - * - * libde265 is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * libde265 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with libde265. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef ACCELERATION_SPEED_H -#define ACCELERATION_SPEED_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <getopt.h> - -#include <string> -#include <stack> -#include <memory> - -#include "libde265/image.h" -#include "libde265/image-io.h" - - -class DSPFunc -{ -public: - DSPFunc() { next = first; first = this; } - virtual ~DSPFunc() { } - - virtual const char* name() const = 0; - - virtual int getBlkWidth() const = 0; - virtual int getBlkHeight() const = 0; - - virtual void runOnBlock(int x,int y) = 0; - virtual DSPFunc* referenceImplementation() const { return NULL; } - - virtual bool prepareNextImage(std::shared_ptr<const de265_image>) = 0; - - bool runOnImage(std::shared_ptr<const de265_image> img, bool compareToReference); - virtual bool compareToReferenceImplementation() { return false; } - - static DSPFunc* first; - DSPFunc* next; -}; - - -#endif
View file
libde265-1.0.15.tar.gz/acceleration-speed/dct-scalar.cc
Deleted
@@ -1,33 +0,0 @@ -/* - * H.265 video codec. - * Copyright (c) 2015 struktur AG, Dirk Farin <farin@struktur.de> - * - * This file is part of libde265. - * - * libde265 is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * libde265 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with libde265. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "dct-scalar.h" - - -DSPFunc_FDCT_Scalar_4x4 fdct_scalar_4x4; -DSPFunc_FDCT_Scalar_8x8 fdct_scalar_8x8; -DSPFunc_FDCT_Scalar_16x16 fdct_scalar_16x16; -DSPFunc_FDCT_Scalar_32x32 fdct_scalar_32x32; - - -DSPFunc_IDCT_Scalar_4x4 idct_scalar_4x4; -DSPFunc_IDCT_Scalar_8x8 idct_scalar_8x8; -DSPFunc_IDCT_Scalar_16x16 idct_scalar_16x16; -DSPFunc_IDCT_Scalar_32x32 idct_scalar_32x32;
View file
libde265-1.0.15.tar.gz/acceleration-speed/dct-scalar.h
Deleted
@@ -1,158 +0,0 @@ -/* - * H.265 video codec. - * Copyright (c) 2015 struktur AG, Dirk Farin <farin@struktur.de> - * - * This file is part of libde265. - * - * libde265 is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * libde265 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with libde265. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef ACCELERATION_SPEED_DCT_SCALAR_H -#define ACCELERATION_SPEED_DCT_SCALAR_H - -#include "dct.h" - -class DSPFunc_FDCT_Scalar_4x4 : public DSPFunc_FDCT_Base -{ -public: - DSPFunc_FDCT_Scalar_4x4() : DSPFunc_FDCT_Base(4) { } - - virtual const char* name() const { return "FDCT-Scalar-4x4"; } - - virtual void runOnBlock(int x,int y) { - bool D = false; - - fdct_4x4_8_fallback(coeffs, residuals+x+y*stride, stride); - - if (D) { dump(x,y); } - } -}; - - -class DSPFunc_FDCT_Scalar_8x8 : public DSPFunc_FDCT_Base -{ -public: - DSPFunc_FDCT_Scalar_8x8() : DSPFunc_FDCT_Base(8) { } - - virtual const char* name() const { return "FDCT-Scalar-8x8"; } - - virtual void runOnBlock(int x,int y) { - bool D = false; - - fdct_8x8_8_fallback(coeffs, residuals+x+y*stride, stride); - - if (D) { dump(x,y); } - } -}; - - -class DSPFunc_FDCT_Scalar_16x16 : public DSPFunc_FDCT_Base -{ -public: - DSPFunc_FDCT_Scalar_16x16() : DSPFunc_FDCT_Base(16) { } - - virtual const char* name() const { return "FDCT-Scalar-16x16"; } - - virtual void runOnBlock(int x,int y) { - bool D = false; - - fdct_16x16_8_fallback(coeffs, residuals+x+y*stride, stride); - - if (D) { dump(x,y); } - } -}; - -class DSPFunc_FDCT_Scalar_32x32 : public DSPFunc_FDCT_Base -{ -public: - DSPFunc_FDCT_Scalar_32x32() : DSPFunc_FDCT_Base(32) { } - - virtual const char* name() const { return "FDCT-Scalar-32x32"; } - - virtual void runOnBlock(int x,int y) { - bool D = false; - - fdct_32x32_8_fallback(coeffs, residuals+x+y*stride, stride); - - if (D) { dump(x,y); } - } -}; - - - -class DSPFunc_IDCT_Scalar_4x4 : public DSPFunc_IDCT_Base -{ -public: - DSPFunc_IDCT_Scalar_4x4() : DSPFunc_IDCT_Base(4) { } - - virtual const char* name() const { return "IDCT-Scalar-4x4"; } - - virtual void runOnBlock(int x,int y) { - memset(out,0,4*4); - transform_4x4_add_8_fallback(out, xy2coeff(x,y), 4); - } -}; - -class DSPFunc_IDCT_Scalar_8x8 : public DSPFunc_IDCT_Base -{ -public: - DSPFunc_IDCT_Scalar_8x8() : DSPFunc_IDCT_Base(8) { } - - virtual const char* name() const { return "IDCT-Scalar-8x8"; } - - virtual void runOnBlock(int x,int y) { - memset(out,0,8*8); - transform_8x8_add_8_fallback(out, xy2coeff(x,y), 8); - } -}; - -class DSPFunc_IDCT_Scalar_16x16 : public DSPFunc_IDCT_Base -{ -public: - DSPFunc_IDCT_Scalar_16x16() : DSPFunc_IDCT_Base(16) { } - - virtual const char* name() const { return "IDCT-Scalar-16x16"; } - - virtual void runOnBlock(int x,int y) { - memset(out,0,16*16); - transform_16x16_add_8_fallback(out, xy2coeff(x,y), 16); - } -}; - -class DSPFunc_IDCT_Scalar_32x32 : public DSPFunc_IDCT_Base -{ -public: - DSPFunc_IDCT_Scalar_32x32() : DSPFunc_IDCT_Base(32) { } - - virtual const char* name() const { return "IDCT-Scalar-32x32"; } - - virtual void runOnBlock(int x,int y) { - memset(out,0,32*32); - transform_32x32_add_8_fallback(out, xy2coeff(x,y), 32); - } -}; - - -extern DSPFunc_FDCT_Scalar_4x4 fdct_scalar_4x4; -extern DSPFunc_FDCT_Scalar_8x8 fdct_scalar_8x8; -extern DSPFunc_FDCT_Scalar_16x16 fdct_scalar_16x16; -extern DSPFunc_FDCT_Scalar_32x32 fdct_scalar_32x32; - - -extern DSPFunc_IDCT_Scalar_4x4 idct_scalar_4x4; -extern DSPFunc_IDCT_Scalar_8x8 idct_scalar_8x8; -extern DSPFunc_IDCT_Scalar_16x16 idct_scalar_16x16; -extern DSPFunc_IDCT_Scalar_32x32 idct_scalar_32x32; - -#endif
View file
libde265-1.0.15.tar.gz/acceleration-speed/dct-sse.cc
Deleted
@@ -1,177 +0,0 @@ -/* - * H.265 video codec. - * Copyright (c) 2015 struktur AG, Dirk Farin <farin@struktur.de> - * - * This file is part of libde265. - * - * libde265 is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * libde265 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with libde265. If not, see <http://www.gnu.org/licenses/>. - */ - - -#include "libde265/x86/sse-dct.h" -#include "dct.h" -#include "dct-scalar.h" - - -class DSPFunc_IDCT_SSE_4x4 : public DSPFunc_IDCT_Base -{ -public: - DSPFunc_IDCT_SSE_4x4() : DSPFunc_IDCT_Base(4) { } - - virtual const char* name() const { return "IDCT-SSE-4x4"; } - - virtual DSPFunc* referenceImplementation() const { return &idct_scalar_4x4; } - - virtual void runOnBlock(int x,int y) { - memset(out,0,4*4); - ff_hevc_transform_4x4_add_8_sse4(out, xy2coeff(x,y), 4); - } -}; - -class DSPFunc_IDCT_SSE_8x8 : public DSPFunc_IDCT_Base -{ -public: - DSPFunc_IDCT_SSE_8x8() : DSPFunc_IDCT_Base(8) { } - - virtual const char* name() const { return "IDCT-SSE-8x8"; } - - virtual DSPFunc* referenceImplementation() const { return &idct_scalar_8x8; } - - virtual void runOnBlock(int x,int y) { - memset(out,0,8*8); - ff_hevc_transform_8x8_add_8_sse4(out, xy2coeff(x,y), 8); - } -}; - -class DSPFunc_IDCT_SSE_16x16 : public DSPFunc_IDCT_Base -{ -public: - DSPFunc_IDCT_SSE_16x16() : DSPFunc_IDCT_Base(16) { } - - virtual const char* name() const { return "IDCT-SSE-16x16"; } - - virtual DSPFunc* referenceImplementation() const { return &idct_scalar_16x16; } - - virtual void runOnBlock(int x,int y) { - memset(out,0,16*16); - ff_hevc_transform_16x16_add_8_sse4(out, xy2coeff(x,y), 16); - } -}; - -class DSPFunc_IDCT_SSE_32x32 : public DSPFunc_IDCT_Base -{ -public: - DSPFunc_IDCT_SSE_32x32() : DSPFunc_IDCT_Base(32) { } - - virtual const char* name() const { return "IDCT-SSE-32x32"; } - - virtual DSPFunc* referenceImplementation() const { return &idct_scalar_32x32; } - - virtual void runOnBlock(int x,int y) { - memset(out,0,32*32); - ff_hevc_transform_32x32_add_8_sse4(out, xy2coeff(x,y), 32); - } -}; - -DSPFunc_IDCT_SSE_4x4 idct_sse_4x4; -DSPFunc_IDCT_SSE_8x8 idct_sse_8x8; -DSPFunc_IDCT_SSE_16x16 idct_sse_16x16; -DSPFunc_IDCT_SSE_32x32 idct_sse_32x32; - - - - - -class DSPFunc_FDCT_SSE_4x4 : public DSPFunc_FDCT_Base -{ -public: - DSPFunc_FDCT_SSE_4x4() : DSPFunc_FDCT_Base(4) { } - - virtual const char* name() const { return "FDCT-SSE-4x4-to-be-implemented"; } - - virtual DSPFunc* referenceImplementation() const { return &fdct_scalar_4x4; } - - virtual void runOnBlock(int x,int y) { - // <<< function to be implemented >>> - - // fdct_4x4_8_fallback(coeffs, residuals+x+y*stride, stride); - - bool D = false; - if (D) { dump(x,y); } - } -}; - - -class DSPFunc_FDCT_SSE_8x8 : public DSPFunc_FDCT_Base -{ -public: - DSPFunc_FDCT_SSE_8x8() : DSPFunc_FDCT_Base(8) { } - - virtual const char* name() const { return "FDCT-SSE-8x8-to-be-implemented"; } - - virtual DSPFunc* referenceImplementation() const { return &fdct_scalar_8x8; } - - virtual void runOnBlock(int x,int y) { - // <<< function to be implemented >>> - - // fdct_8x8_8_fallback(coeffs, residuals+x+y*stride, stride); - - bool D = false; - if (D) { dump(x,y); } - } -}; - - -class DSPFunc_FDCT_SSE_16x16 : public DSPFunc_FDCT_Base -{ -public: - DSPFunc_FDCT_SSE_16x16() : DSPFunc_FDCT_Base(16) { } - - virtual const char* name() const { return "FDCT-SSE-16x16-to-be-implemented"; } - - virtual DSPFunc* referenceImplementation() const { return &fdct_scalar_16x16; } - - virtual void runOnBlock(int x,int y) { - // <<< function to be implemented >>> - - // fdct_16x16_8_fallback(coeffs, residuals+x+y*stride, stride); - - bool D = false; - if (D) { dump(x,y); } - } -}; - -class DSPFunc_FDCT_SSE_32x32 : public DSPFunc_FDCT_Base -{ -public: - DSPFunc_FDCT_SSE_32x32() : DSPFunc_FDCT_Base(32) { } - - virtual const char* name() const { return "FDCT-SSE-32x32-to-be-implemented"; } - - virtual DSPFunc* referenceImplementation() const { return &fdct_scalar_32x32; } - - virtual void runOnBlock(int x,int y) { - // <<< function to be implemented >>> - - // fdct_32x32_8_fallback(coeffs, residuals+x+y*stride, stride); - - bool D = false; - if (D) { dump(x,y); } - } -}; - -DSPFunc_FDCT_SSE_4x4 fdct_sse_4x4; -DSPFunc_FDCT_SSE_8x8 fdct_sse_8x8; -DSPFunc_FDCT_SSE_16x16 fdct_sse_16x16; -DSPFunc_FDCT_SSE_32x32 fdct_sse_32x32;
View file
libde265-1.0.15.tar.gz/acceleration-speed/dct.cc
Deleted
@@ -1,144 +0,0 @@ -/* - * H.265 video codec. - * Copyright (c) 2015 struktur AG, Dirk Farin <farin@struktur.de> - * - * This file is part of libde265. - * - * libde265 is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * libde265 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with libde265. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "dct.h" - - -// --- FDCT --- - -void DSPFunc_FDCT_Base::dump(int x,int y) -{ - printf("-> "); - for (int yy=0;yy<blkSize;yy++) - for (int xx=0;xx<blkSize;xx++) - printf("%d ", *(residuals+x+xx+(y+yy)*stride)); - printf("\n"); - - printf(" "); - for (int x=0;x<blkSize*blkSize;x++) - printf("%d ", coeffsx); - printf("\n"); - - int32_t out32*32; - transform_idct_8x8_fallback(out, coeffs, 20-8, 15); - - printf(" "); - for (int x=0;x<blkSize*blkSize;x++) - printf("%d ", outx); - printf("\n"); -} - - -bool DSPFunc_FDCT_Base::compareToReferenceImplementation() -{ - DSPFunc_FDCT_Base* refImpl = dynamic_cast<DSPFunc_FDCT_Base*>(referenceImplementation()); - - for (int i=0;i<blkSize*blkSize;i++) - if (coeffsi != refImpl->coeffsi) - return false; - - return true; -} - - -bool DSPFunc_FDCT_Base::prepareNextImage(std::shared_ptr<const de265_image> img) -{ - if (!curr_image) { - curr_image = img; - return false; - } - - prev_image = curr_image; - curr_image = img; - - int w = curr_image->get_width(0); - int h = curr_image->get_height(0); - - if (residuals==NULL) { - int align=16; - stride = (w+align-1)/align*align; - residuals = new int16_tstride*h; - } - - int cstride = curr_image->get_luma_stride(); - int pstride = prev_image->get_luma_stride(); - const uint8_t* curr = curr_image->get_image_plane_at_pos(0,0,0); - const uint8_t* prev = prev_image->get_image_plane_at_pos(0,0,0); - - for (int y=0;y<h;y++) - for (int x=0;x<w;x++) { - residualsy*stride+x = curry*cstride+x - prevy*pstride+x; - } - - return true; -} - - -// --- IDCT --- - -bool DSPFunc_IDCT_Base::compareToReferenceImplementation() -{ - DSPFunc_IDCT_Base* refImpl = dynamic_cast<DSPFunc_IDCT_Base*>(referenceImplementation()); - - for (int i=0;i<blkSize*blkSize;i++) - if (outi != refImpl->outi) - return false; - - return true; -} - - -bool DSPFunc_IDCT_Base::prepareNextImage(std::shared_ptr<const de265_image> img) -{ - // --- generate fake coefficients --- - // difference between two frames - - if (!curr_image) { - curr_image = img; - return false; - } - - prev_image = curr_image; - curr_image = img; - - int w = curr_image->get_width(0); - int h = curr_image->get_height(0); - - int align = blkSize; - width = (w+align-1) / align * align; - - blksPerRow = w/blkSize; - - if (coeffs==NULL) { - coeffs = new int16_twidth*h; - } - - int cstride = curr_image->get_luma_stride(); - int pstride = prev_image->get_luma_stride(); - const uint8_t* curr = curr_image->get_image_plane_at_pos(0,0,0); - const uint8_t* prev = prev_image->get_image_plane_at_pos(0,0,0); - - for (int y=0;y<h;y++) - for (int x=0;x<w;x++) { - coeffsy*w+x = curry*cstride+x - prevy*pstride+x; - } - - return true; -}
View file
libde265-1.0.15.tar.gz/acceleration-speed/dct.h
Deleted
@@ -1,111 +0,0 @@ -/* - * H.265 video codec. - * Copyright (c) 2015 struktur AG, Dirk Farin <farin@struktur.de> - * - * This file is part of libde265. - * - * libde265 is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * libde265 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with libde265. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef ACCELERATION_SPEED_DCT_H -#define ACCELERATION_SPEED_DCT_H - -#include "acceleration-speed.h" -#include "libde265/fallback-dct.h" - - -class DSPFunc_FDCT_Base : public DSPFunc -{ -public: - DSPFunc_FDCT_Base(int size) { - residuals=NULL; - blkSize=size; - coeffs = new int16_tsize*size; - } - - virtual const char* name() const { return "FDCT-Base"; } - - virtual int getBlkWidth() const { return blkSize; } - virtual int getBlkHeight() const { return blkSize; } - - virtual void runOnBlock(int x,int y) = 0; - - void dump(int x,int y); - - virtual DSPFunc* referenceImplementation() const { return NULL; } - - bool compareToReferenceImplementation(); - virtual bool prepareNextImage(std::shared_ptr<const de265_image> img); - -private: - std::shared_ptr<const de265_image> prev_image; - std::shared_ptr<const de265_image> curr_image; - -protected: - int blkSize; - - int16_t* residuals; - int stride; - int16_t* coeffs; -}; - - - - - -class DSPFunc_IDCT_Base : public DSPFunc -{ -public: - DSPFunc_IDCT_Base(int size) { - prev_image=NULL; curr_image=NULL; coeffs=NULL; blkSize=size; - out = new uint8_tsize*size; // allocate it to ensure alignment - } - - virtual const char* name() const { return "IDCT-Base"; } - - virtual int getBlkWidth() const { return blkSize; } - virtual int getBlkHeight() const { return blkSize; } - - virtual void runOnBlock(int x,int y) = 0; - - virtual DSPFunc* referenceImplementation() const { return NULL; } - - virtual bool compareToReferenceImplementation(); - virtual bool prepareNextImage(std::shared_ptr<const de265_image> img); - - inline int16_t* xy2coeff(int x,int y) const { - // note: x+y*width does not make any sense, but gives us some random data - - //int xb = x/blkSize; - //int yb = y/blkSize; - int offset = (x+y*blksPerRow)*blkSize; //(xb+yb*blksPerRow)*blkSize*blkSize; - //printf("%d %d -> %d %p\n", x,y, offset, coeffs+offset); - return coeffs + offset; - } - -private: - std::shared_ptr<const de265_image> prev_image; - std::shared_ptr<const de265_image> curr_image; - -protected: - int blkSize; - - int16_t* coeffs; - int width; - int blksPerRow; - uint8_t* out; // 32*32; -}; - - -#endif
View file
libde265-1.0.15.tar.gz/CMakeLists.txt -> libde265-1.0.16.tar.gz/CMakeLists.txt
Changed
@@ -1,8 +1,8 @@ -cmake_minimum_required (VERSION 3.3.2) +cmake_minimum_required (VERSION 3.5.0) project (libde265 LANGUAGES C CXX - VERSION 1.0.15 + VERSION 1.0.16 ) set(CMAKE_CXX_STANDARD 11) @@ -11,7 +11,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # The version number. -set (NUMERIC_VERSION 0x01001500) +set (NUMERIC_VERSION 0x01001600) set (PACKAGE_VERSION ${PROJECT_VERSION}) include (${CMAKE_ROOT}/Modules/CheckCCompilerFlag.cmake) @@ -57,6 +57,10 @@ add_definitions(-DLIBDE265_STATIC_BUILD) endif() +if(APPLE) + option(BUILD_FRAMEWORK "Build as Apple Frameworks" OFF) +endif() + include_directories ("${PROJECT_SOURCE_DIR}") include_directories ("${PROJECT_BINARY_DIR}") include_directories ("${PROJECT_SOURCE_DIR}/libde265")
View file
libde265-1.0.15.tar.gz/INSTALL -> libde265-1.0.16.tar.gz/INSTALL
Changed
@@ -1,8 +1,8 @@ Installation Instructions ************************* - Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software -Foundation, Inc. + Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free +Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -225,7 +225,7 @@ and if that doesn't work, install pre-built binaries of GCC for HP-UX. - HP-UX 'make' updates targets which have the same time stamps as their + HP-UX 'make' updates targets which have the same timestamps as their prerequisites, which makes it generally unusable when shipped generated files such as 'configure' are involved. Use GNU 'make' instead.
View file
libde265-1.0.15.tar.gz/Makefile.am -> libde265-1.0.16.tar.gz/Makefile.am
Changed
@@ -13,7 +13,10 @@ endif SUBDIRS+=tools -SUBDIRS+=acceleration-speed + +# Remove acceleration-speed test program, because it needs many internal functions (that have to be dllexported). +# On the other hand, that tool was only used for development. +# SUBDIRS+=acceleration-speed if ENABLE_SHERLOCK265 SUBDIRS+=sherlock265
View file
libde265-1.0.15.tar.gz/Makefile.in -> libde265-1.0.16.tar.gz/Makefile.in
Changed
@@ -91,6 +91,10 @@ target_triplet = @target@ @ENABLE_DEC265_TRUE@am__append_1 = dec265 @ENABLE_ENCODER_TRUE@am__append_2 = enc265 + +# Remove acceleration-speed test program, because it needs many internal functions (that have to be dllexported). +# On the other hand, that tool was only used for development. +# SUBDIRS+=acceleration-speed @ENABLE_SHERLOCK265_TRUE@am__append_3 = sherlock265 subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -193,8 +197,7 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -DIST_SUBDIRS = libde265 dec265 enc265 tools acceleration-speed \ - sherlock265 +DIST_SUBDIRS = libde265 dec265 enc265 tools sherlock265 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/libde265.pc.in AUTHORS COPYING ChangeLog INSTALL \ NEWS README compile config.guess config.sub depcomp install-sh \ @@ -292,6 +295,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ @@ -393,7 +397,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = libde265 $(am__append_1) $(am__append_2) tools \ - acceleration-speed $(am__append_3) + $(am__append_3) ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ autogen.sh \
View file
libde265-1.0.15.tar.gz/README.md -> libde265-1.0.16.tar.gz/README.md
Changed
@@ -162,6 +162,6 @@ The short video clip in the 'testdata' directory is from the movie 'Girl Shy', which is in the public domain. -Copyright (c) 2013-2014 Struktur AG -Copyright (c) 2013-2023 Dirk Farin +Copyright (c) 2013-2014 Struktur AG<br> +Copyright (c) 2013-2024 Dirk Farin<br> Contact: Dirk Farin <dirk.farin@gmail.com>
View file
libde265-1.0.15.tar.gz/aclocal.m4 -> libde265-1.0.16.tar.gz/aclocal.m4
Changed
@@ -20,7 +20,7 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.)) -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*- # serial 12 (pkg-config-0.29.2) dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. @@ -108,7 +108,7 @@ dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE(PKG_PROG_PKG_CONFIG) -dnl only at the first occurence in configure.ac, so if the first place +dnl only at the first occurrence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN(PKG_CHECK_EXISTS, @@ -177,14 +177,14 @@ AC_MSG_RESULT(no) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then - $1_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + $1_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else - $1_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + $1_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$$1_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + # Put the nasty error message in config.log where it belongs + echo "$$1_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - m4_default($4, AC_MSG_ERROR( + m4_default($4, AC_MSG_ERROR( Package requirements ($2) were not met: $$1_PKG_ERRORS @@ -196,7 +196,7 @@ ) elif test $pkg_failed = untried; then AC_MSG_RESULT(no) - m4_default($4, AC_MSG_FAILURE( + m4_default($4, AC_MSG_FAILURE( The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -206,10 +206,10 @@ To get pkg-config, see <http://pkg-config.freedesktop.org/>.)dnl ) else - $1_CFLAGS=$pkg_cv_$1_CFLAGS - $1_LIBS=$pkg_cv_$1_LIBS + $1_CFLAGS=$pkg_cv_$1_CFLAGS + $1_LIBS=$pkg_cv_$1_LIBS AC_MSG_RESULT(yes) - $3 + $3 fidnl )dnl PKG_CHECK_MODULES @@ -296,6 +296,74 @@ AS_VAR_IF($1, "", $5, $4)dnl )dnl PKG_CHECK_VAR +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl ACTION-IF-FOUND,ACTION-IF-NOT-FOUND, +dnl DESCRIPTION, DEFAULT) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl VARIABLE-PREFIX name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN(PKG_WITH_MODULES, + +m4_pushdef(with_arg, m4_tolower($1)) + +m4_pushdef(description, + m4_default($5, build with with_arg support)) + +m4_pushdef(def_arg, m4_default($6, auto)) +m4_pushdef(def_action_if_found, AS_TR_SH(with_with_arg)=yes) +m4_pushdef(def_action_if_not_found, AS_TR_SH(with_with_arg)=no) + +m4_case(def_arg, + yes,m4_pushdef(with_without, --without-with_arg), + m4_pushdef(with_without,--with-with_arg)) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description @<:@default=def_arg@:>@),, + AS_TR_SH(with_with_arg)=def_arg) + +AS_CASE($AS_TR_SH(with_with_arg), + yes,PKG_CHECK_MODULES($1,$2,$3,$4), + auto,PKG_CHECK_MODULES($1,$2, + m4_n(def_action_if_found) $3, + m4_n(def_action_if_not_found) $4)) + +m4_popdef(with_arg) +m4_popdef(description) +m4_popdef(def_arg) + +)dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl DESCRIPTION, DEFAULT) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._VARIABLE-PREFIX is exported as make variable. +AC_DEFUN(PKG_HAVE_WITH_MODULES, + +PKG_WITH_MODULES($1,$2,,,$3,$4) + +AM_CONDITIONAL(HAVE_$1, + test "$AS_TR_SH(with_m4_tolower($1))" = "yes") +)dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl DESCRIPTION, DEFAULT) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_VARIABLE-PREFIX is exported as make +dnl and preprocessor variable. +AC_DEFUN(PKG_HAVE_DEFINE_WITH_MODULES, + +PKG_HAVE_WITH_MODULES($1,$2,$3,$4) + +AS_IF(test "$AS_TR_SH(with_m4_tolower($1))" = "yes", + AC_DEFINE(HAVE_$1, 1, Enable m4_tolower($1) support)) +)dnl PKG_HAVE_DEFINE_WITH_MODULES + # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation
View file
libde265-1.0.15.tar.gz/configure -> libde265-1.0.16.tar.gz/configure
Changed
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libde265 1.0.15. +# Generated by GNU Autoconf 2.71 for libde265 1.0.16. # # Report bugs to <dirk.farin@gmail.com>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='libde265' PACKAGE_TARNAME='libde265' -PACKAGE_VERSION='1.0.15' -PACKAGE_STRING='libde265 1.0.15' +PACKAGE_VERSION='1.0.16' +PACKAGE_STRING='libde265 1.0.16' PACKAGE_BUGREPORT='dirk.farin@gmail.com' PACKAGE_URL='' @@ -698,6 +698,7 @@ ENABLE_ENCODER_TRUE MINGW_FALSE MINGW_TRUE +LIBS_PRIVATE LIBOBJS ALLOCA HAVE_VISIBILITY_FALSE @@ -1437,7 +1438,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libde265 1.0.15 to adapt to many kinds of systems. +\`configure' configures libde265 1.0.16 to adapt to many kinds of systems. Usage: $0 OPTION... VAR=VALUE... @@ -1509,7 +1510,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libde265 1.0.15:";; + short | recursive ) echo "Configuration of libde265 1.0.16:";; esac cat <<\_ACEOF @@ -1651,7 +1652,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libde265 configure 1.0.15 +libde265 configure 1.0.16 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2263,7 +2264,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libde265 $as_me 1.0.15, which was +It was created by libde265 $as_me 1.0.16, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3240,7 +3241,7 @@ ac_config_headers="$ac_config_headers config.h" -NUMERIC_VERSION=0x01001500 # Numeric representation of the version (A.B.C.D = 0xAABBCCDD) +NUMERIC_VERSION=0x01001600 # Numeric representation of the version (A.B.C.D = 0xAABBCCDD) # From https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html: @@ -3250,7 +3251,7 @@ # If any interfaces have been removed or changed since the last public release, then set age to 0. LIBDE265_CURRENT=1 -LIBDE265_REVISION=8 +LIBDE265_REVISION=9 LIBDE265_AGE=1 # --------------------------------------------------------------------------- @@ -12951,11 +12952,11 @@ then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 printf %s "checking for $CXX option to enable C++11 features... " >&6; } -if test ${ac_cv_prog_cxx_11+y} +if test ${ac_cv_prog_cxx_cxx11+y} then : printf %s "(cached) " >&6 else $as_nop - ac_cv_prog_cxx_11=no + ac_cv_prog_cxx_cxx11=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12997,11 +12998,11 @@ then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 printf %s "checking for $CXX option to enable C++98 features... " >&6; } -if test ${ac_cv_prog_cxx_98+y} +if test ${ac_cv_prog_cxx_cxx98+y} then : printf %s "(cached) " >&6 else $as_nop - ac_cv_prog_cxx_98=no + ac_cv_prog_cxx_cxx98=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17714,7 +17715,7 @@ # Define the identity of the package. PACKAGE='libde265' - VERSION='1.0.15' + VERSION='1.0.16' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -19343,6 +19344,9 @@ fi +LIBS_PRIVATE="$LIBS -lstdc++" + + if expr $host : '.*-mingw' >/dev/null 2>&1; then MINGW_TRUE= MINGW_FALSE='#' @@ -20019,23 +20023,23 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - VIDEOGFX_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libvideogfx" 2>&1` + VIDEOGFX_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libvideogfx" 2>&1` else - VIDEOGFX_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libvideogfx" 2>&1` + VIDEOGFX_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libvideogfx" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$VIDEOGFX_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$VIDEOGFX_PKG_ERRORS" >&5 - have_videogfx="no" + have_videogfx="no" elif test $pkg_failed = untried; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - have_videogfx="no" + have_videogfx="no" else - VIDEOGFX_CFLAGS=$pkg_cv_VIDEOGFX_CFLAGS - VIDEOGFX_LIBS=$pkg_cv_VIDEOGFX_LIBS + VIDEOGFX_CFLAGS=$pkg_cv_VIDEOGFX_CFLAGS + VIDEOGFX_LIBS=$pkg_cv_VIDEOGFX_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } @@ -20100,23 +20104,23 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sdl2" 2>&1` + SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sdl2" 2>&1` else - SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sdl2" 2>&1` + SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sdl2" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$SDL_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$SDL_PKG_ERRORS" >&5 - have_sdl="no" + have_sdl="no" elif test $pkg_failed = untried; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - have_sdl="no" + have_sdl="no" else - SDL_CFLAGS=$pkg_cv_SDL_CFLAGS - SDL_LIBS=$pkg_cv_SDL_LIBS + SDL_CFLAGS=$pkg_cv_SDL_CFLAGS + SDL_LIBS=$pkg_cv_SDL_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } @@ -20181,23 +20185,23 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - SWSCALE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libswscale" 2>&1` + SWSCALE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libswscale" 2>&1` else - SWSCALE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libswscale" 2>&1`
View file
libde265-1.0.15.tar.gz/configure.ac -> libde265-1.0.16.tar.gz/configure.ac
Changed
@@ -2,11 +2,11 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.68) -AC_INIT(libde265, 1.0.15, dirk.farin@gmail.com) +AC_INIT(libde265, 1.0.16, dirk.farin@gmail.com) AC_CONFIG_SRCDIR(libde265/de265.cc) AC_CONFIG_HEADERS(config.h) -NUMERIC_VERSION=0x01001500 # Numeric representation of the version (A.B.C.D = 0xAABBCCDD) +NUMERIC_VERSION=0x01001600 # Numeric representation of the version (A.B.C.D = 0xAABBCCDD) AC_SUBST(NUMERIC_VERSION) # From https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html: @@ -16,7 +16,7 @@ # If any interfaces have been removed or changed since the last public release, then set age to 0. LIBDE265_CURRENT=1 -LIBDE265_REVISION=8 +LIBDE265_REVISION=9 LIBDE265_AGE=1 # --------------------------------------------------------------------------- @@ -104,6 +104,9 @@ # AC_FUNC_REALLOC AC_FUNC_MKTIME +LIBS_PRIVATE="$LIBS -lstdc++" +AC_SUBST(LIBS_PRIVATE) + AM_CONDITIONAL(MINGW, expr $host : '.*-mingw' >/dev/null 2>&1) # Check if "__STRICT_ANSI__" is required. @@ -385,6 +388,6 @@ AC_CONFIG_FILES(enc265/Makefile) AC_CONFIG_FILES(sherlock265/Makefile) AC_CONFIG_FILES(tools/Makefile) -AC_CONFIG_FILES(acceleration-speed/Makefile) +# AC_CONFIG_FILES(acceleration-speed/Makefile) AC_CONFIG_FILES(libde265.pc) AC_OUTPUT
View file
libde265-1.0.15.tar.gz/dec265/Makefile.in -> libde265-1.0.16.tar.gz/dec265/Makefile.in
Changed
@@ -260,6 +260,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
View file
libde265-1.0.15.tar.gz/dec265/sdl.cc -> libde265-1.0.16.tar.gz/dec265/sdl.cc
Changed
@@ -25,7 +25,7 @@ */ #include "sdl.hh" -#include <assert.h> +#include <cstring> bool SDL_YUV_Display::init(int frame_width, int frame_height, enum SDL_Chroma chroma)
View file
libde265-1.0.15.tar.gz/enc265/Makefile.in -> libde265-1.0.16.tar.gz/enc265/Makefile.in
Changed
@@ -249,6 +249,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
View file
libde265-1.0.15.tar.gz/libde265/CMakeLists.txt -> libde265-1.0.16.tar.gz/libde265/CMakeLists.txt
Changed
@@ -121,20 +121,60 @@ endif() endif() -add_library(de265 ${libde265_sources} ${ENCODER_OBJECTS} ${X86_OBJECTS}) +add_library(de265 ${libde265_sources} ${libde265_public_headers} ${ENCODER_OBJECTS} ${X86_OBJECTS}) target_link_libraries(de265 PRIVATE Threads::Threads) target_include_directories(de265 PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}) write_basic_package_version_file(libde265ConfigVersion.cmake COMPATIBILITY ExactVersion) +# --- debug output + +set(LOG_LEVELS error info debug trace) +set(DE265_LOG_LEVEL "error" CACHE STRING "Log level (${LOG_LEVELS})") + +set_property(CACHE DE265_LOG_LEVEL PROPERTY STRINGS ${LOG_LEVELS}) +if (NOT DE265_LOG_LEVEL IN_LIST LOG_LEVELS) + message(FATAL_ERROR "DE265_LOG_LEVEL has to be one of: ${LOG_LEVELS}") +endif () + +if (DE265_LOG_LEVEL MATCHES "error") + target_compile_definitions(de265 PRIVATE DE265_LOG_ERROR) +elseif (DE265_LOG_LEVEL MATCHES "info") + target_compile_definitions(de265 PRIVATE DE265_LOG_ERROR DE265_LOG_INFO) +elseif (DE265_LOG_LEVEL MATCHES "debug") + target_compile_definitions(de265 PRIVATE DE265_LOG_ERROR DE265_LOG_INFO DE265_LOG_DEBUG) +elseif (DE265_LOG_LEVEL MATCHES "trace") + target_compile_definitions(de265 PRIVATE DE265_LOG_ERROR DE265_LOG_INFO DE265_LOG_DEBUG DE265_LOG_TRACE) +endif() + + if (WIN32) set_target_properties(de265 PROPERTIES PREFIX "lib") endif() +if (BUILD_FRAMEWORK) + set_target_properties(de265 PROPERTIES + FRAMEWORK TRUE + FRAMEWORK_VERSION "${PROJECT_VERSION}" + PRODUCT_BUNDLE_IDENTIFIER "github.com/strukturag/libde265" + XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" + # OUTPUT_NAME "de265" + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "" + XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO" + XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO" + PUBLIC_HEADER "${libde265_public_headers}" + MACOSX_FRAMEWORK_IDENTIFIER "github.com/strukturag/libde265" + MACOSX_FRAMEWORK_BUNDLE_VERSION "${PROJECT_VERSION}" + MACOSX_RPATH TRUE) +endif() + install(TARGETS de265 EXPORT libde265Config RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + FRAMEWORK DESTINATION Library/Frameworks COMPONENT runtime OPTIONAL + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libde265 ) install(FILES ${libde265_public_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libde265)
View file
libde265-1.0.15.tar.gz/libde265/Makefile.in -> libde265-1.0.16.tar.gz/libde265/Makefile.in
Changed
@@ -395,6 +395,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
View file
libde265-1.0.15.tar.gz/libde265/arm/Makefile.in -> libde265-1.0.16.tar.gz/libde265/arm/Makefile.in
Changed
@@ -274,6 +274,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
View file
libde265-1.0.15.tar.gz/libde265/contextmodel.cc -> libde265-1.0.16.tar.gz/libde265/contextmodel.cc
Changed
@@ -92,7 +92,7 @@ { if (D) printf("%p decouple (%p)\n",this,refcnt); - assert(refcnt); // not necessarily so, but we never use it on an unitialized object + assert(refcnt); // not necessarily so, but we never use it on an uninitialized object if (*refcnt > 1) { (*refcnt)--; @@ -125,7 +125,7 @@ { if (D) printf("%p assign = %p\n",this,&src); - // assert(src.refcnt); // not necessarily so, but we never use it on an unitialized object + // assert(src.refcnt); // not necessarily so, but we never use it on an uninitialized object if (!src.refcnt) { release();
View file
libde265-1.0.15.tar.gz/libde265/de265-version.h -> libde265-1.0.16.tar.gz/libde265/de265-version.h
Changed
@@ -28,9 +28,9 @@ #define LIBDE265_VERSION_H /* Numeric representation of the version */ -#define LIBDE265_NUMERIC_VERSION 0x01001500 +#define LIBDE265_NUMERIC_VERSION 0x01001600 /* Version string */ -#define LIBDE265_VERSION "1.0.15" +#define LIBDE265_VERSION "1.0.16" #endif
View file
libde265-1.0.15.tar.gz/libde265/de265.h -> libde265-1.0.16.tar.gz/libde265/de265.h
Changed
@@ -36,7 +36,7 @@ #endif #include <stdint.h> -#if defined(_MSC_VER) && !defined(LIBDE265_STATIC_BUILD) +#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(LIBDE265_STATIC_BUILD) #ifdef LIBDE265_EXPORTS #define LIBDE265_API __declspec(dllexport) #else
View file
libde265-1.0.15.tar.gz/libde265/decctx.cc -> libde265-1.0.16.tar.gz/libde265/decctx.cc
Changed
@@ -694,6 +694,9 @@ image_units.back()->slice_units.push_back(sliceunit); } + else { + nal_parser.free_NAL_unit(nal); + } bool did_work; err = decode_some(&did_work); @@ -1209,7 +1212,7 @@ if (nal_hdr.nuh_layer_id > 0) { // Discard all NAL units with nuh_layer_id > 0 - // These will have to be handeled by an SHVC decoder. + // These will have to be handled by an SHVC decoder. nal_parser.free_NAL_unit(nal); return DE265_OK; }
View file
libde265-1.0.15.tar.gz/libde265/encoder/Makefile.in -> libde265-1.0.16.tar.gz/libde265/encoder/Makefile.in
Changed
@@ -303,6 +303,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
View file
libde265-1.0.15.tar.gz/libde265/encoder/algo/Makefile.in -> libde265-1.0.16.tar.gz/libde265/encoder/algo/Makefile.in
Changed
@@ -273,6 +273,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
View file
libde265-1.0.15.tar.gz/libde265/encoder/algo/cb-split.cc -> libde265-1.0.16.tar.gz/libde265/encoder/algo/cb-split.cc
Changed
@@ -31,7 +31,7 @@ #include <iostream> -// Utility function to encode all four children in a splitted CB. +// Utility function to encode all four children in a split CB. // Children are coded with the specified algo_cb_split. enc_cb* Algo_CB_Split::encode_cb_split(encoder_context* ectx, context_model_table& ctxModel,
View file
libde265-1.0.15.tar.gz/libde265/image-io.cc -> libde265-1.0.16.tar.gz/libde265/image-io.cc
Changed
@@ -30,6 +30,9 @@ } +ImageSource::~ImageSource() { } + + ImageSource_YUV::ImageSource_YUV() : mFH(NULL) { @@ -131,6 +134,23 @@ } +int ImageSource_YUV::get_width() const +{ + return width; +} + + +int ImageSource_YUV::get_height() const +{ + return height; +} + + + + +ImageSink::~ImageSink() { } + +ImageSink_YUV::ImageSink_YUV() : mFH(NULL) { } ImageSink_YUV::~ImageSink_YUV() @@ -180,6 +200,8 @@ +PacketSink::~PacketSink() { } + PacketSink_File::PacketSink_File() : mFH(NULL) {
View file
libde265-1.0.15.tar.gz/libde265/image-io.h -> libde265-1.0.16.tar.gz/libde265/image-io.h
Changed
@@ -31,7 +31,7 @@ { public: LIBDE265_API ImageSource(); - virtual LIBDE265_API ~ImageSource() { } + virtual LIBDE265_API ~ImageSource(); //enum ImageStatus { Available, Waiting, EndOfVideo }; @@ -57,8 +57,8 @@ virtual LIBDE265_API de265_image* get_image(bool block=true); virtual LIBDE265_API void skip_frames(int n); - virtual LIBDE265_API int get_width() const { return width; } - virtual LIBDE265_API int get_height() const { return height; } + virtual LIBDE265_API int get_width() const; + virtual LIBDE265_API int get_height() const; private: FILE* mFH; @@ -74,7 +74,7 @@ class ImageSink { public: - virtual LIBDE265_API ~ImageSink() { } + virtual LIBDE265_API ~ImageSink(); virtual LIBDE265_API void send_image(const de265_image* img) = 0; }; @@ -82,7 +82,7 @@ class ImageSink_YUV : public ImageSink { public: - LIBDE265_API ImageSink_YUV() : mFH(NULL) { } + LIBDE265_API ImageSink_YUV(); LIBDE265_API ~ImageSink_YUV(); bool LIBDE265_API set_filename(const char* filename); @@ -98,7 +98,7 @@ class PacketSink { public: - virtual LIBDE265_API ~PacketSink() { } + virtual LIBDE265_API ~PacketSink(); virtual LIBDE265_API void send_packet(const uint8_t* data, int n) = 0; };
View file
libde265-1.0.15.tar.gz/libde265/image.cc -> libde265-1.0.16.tar.gz/libde265/image.cc
Changed
@@ -154,6 +154,8 @@ img->set_image_plane(1, p1, chroma_stride, NULL); img->set_image_plane(2, p2, chroma_stride, NULL); + img->fill_image(0,0,0); + return 1; } @@ -526,18 +528,72 @@ } +void de265_image::fill_plane(int channel, int value) +{ + int bytes_per_pixel = get_bytes_per_pixel(channel); + assert(value >= 0); // needed for the shift operation in the check below + + if (bytes_per_pixel == 1) { + if (channel==0) { + memset(pixelschannel, value, stride * height); + } + else { + memset(pixelschannel, value, chroma_stride * chroma_height); + } + } + else if ((value >> 8) == (value & 0xFF)) { + assert(bytes_per_pixel == 2); + + // if we fill the same byte value to all bytes, we can still use memset() + if (channel==0) { + memset(pixelschannel, 0, stride * height * bytes_per_pixel); + } + else { + memset(pixelschannel, 0, chroma_stride * chroma_height * bytes_per_pixel); + } + } + else { + assert(bytes_per_pixel == 2); + uint16_t v = value; + + if (channel==0) { + // copy value into first row + for (int x = 0; x < width; x++) { + *(uint16_t*) (&pixelschannel2 * x) = v; + } + + // copy first row into remaining rows + for (int y = 1; y < height; y++) { + memcpy(pixelschannel + y * stride * 2, pixelschannel, chroma_width * 2); + } + } + else { + // copy value into first row + for (int x = 0; x < chroma_width; x++) { + *(uint16_t*) (&pixelschannel2 * x) = v; + } + + // copy first row into remaining rows + for (int y = 1; y < chroma_height; y++) { + memcpy(pixelschannel + y * chroma_stride * 2, pixelschannel, chroma_width * 2); + } + } + } +} + + void de265_image::fill_image(int y,int cb,int cr) { - if (y>=0) { - memset(pixels0, y, stride * height); + if (pixels0) { + fill_plane(0, y); } - if (cb>=0) { - memset(pixels1, cb, chroma_stride * chroma_height); + if (pixels1) { + fill_plane(1, cb); } - if (cr>=0) { - memset(pixels2, cr, chroma_stride * chroma_height); + if (pixels2) { + fill_plane(2, cr); } }
View file
libde265-1.0.15.tar.gz/libde265/image.h -> libde265-1.0.16.tar.gz/libde265/image.h
Changed
@@ -244,6 +244,7 @@ } void fill_image(int y,int u,int v); + void fill_plane(int channel, int value); de265_error copy_image(const de265_image* src); void copy_lines_from(const de265_image* src, int first, int end); void exchange_pixel_data_with(de265_image&); @@ -428,7 +429,7 @@ void* userdata); */ - uint8_t integrity; /* Whether an error occured while the image was decoded. + uint8_t integrity; /* Whether an error occurred while the image was decoded. When generated, this is initialized to INTEGRITY_CORRECT, and changed on decoding errors. */
View file
libde265-1.0.15.tar.gz/libde265/motion.cc -> libde265-1.0.16.tar.gz/libde265/motion.cc
Changed
@@ -389,7 +389,7 @@ l,vi->mvl.x,vi->mvl.y,refPic->PicOrderCntVal); - // TODO: must predSamples stride really be nCS or can it be somthing smaller like nPbW? + // TODO: must predSamples stride really be nCS or can it be something smaller like nPbW? if (img->high_bit_depth(0)) { mc_luma(ctx, sps, vi->mvl.x, vi->mvl.y, xP,yP, @@ -795,7 +795,7 @@ A maximum of 4 candidates are generated. - Note 1: For a CB splitted into two PBs, it does not make sense to merge the + Note 1: For a CB split into two PBs, it does not make sense to merge the second part to the parameters of the first part, since then, we could use 2Nx2N right away. -> Exclude this candidate. */
View file
libde265-1.0.15.tar.gz/libde265/nal-parser.cc -> libde265-1.0.16.tar.gz/libde265/nal-parser.cc
Changed
@@ -105,7 +105,8 @@ int NAL_unit::num_skipped_bytes_before(int byte_position, int headerLength) const { for (int k=skipped_bytes.size()-1;k>=0;k--) - if (skipped_bytesk-headerLength <= byte_position) { + if (skipped_bytesk >= headerLength && + skipped_bytesk-headerLength <= byte_position) { return k+1; }
View file
libde265-1.0.15.tar.gz/libde265/refpic.cc -> libde265-1.0.16.tar.gz/libde265/refpic.cc
Changed
@@ -79,7 +79,7 @@ - as a list of the relative POC deltas themselves, or - by shifting an existing ref-pic-set by some number of frames When shifting an existing set, the frame 0 is also shifted as an additional reference frame. - When coding the ref-pic-sets in the SPS, predicition is always from the previous set. + When coding the ref-pic-sets in the SPS, prediction is always from the previous set. In the slice header, the ref-pic-set can use any previous set as reference. */ bool read_short_term_ref_pic_set(error_queue* errqueue,
View file
libde265-1.0.15.tar.gz/libde265/sao.cc -> libde265-1.0.16.tar.gz/libde265/sao.cc
Changed
@@ -212,20 +212,15 @@ } // Shifts are a strange thing. On x86, >>x actually computes >>(x%64). - // So we have to take care of large bandShifts. - int bandIdx; - if (bandShift >= 8) { - bandIdx = 0; - } else { - int pixel = in_imgxC+i+(yC+j)*in_stride; + // But this should never happen, because the maximum bit-depth is 16. + int pixel = in_imgxC + i + (yC + j) * in_stride; - // Note: the input pixel value should never exceed the valid range, but it seems that it still does, - // maybe when there was a decoding error and the pixels have not been filled in correctly. - // Thus, we have to limit the pixel range to ensure that we have no illegal table access. - pixel = Clip3(0,maxPixelValue, pixel); + // Note: the input pixel value should never exceed the valid range, but it seems that it still does, + // maybe when there was a decoding error and the pixels have not been filled in correctly. + // Thus, we have to limit the pixel range to ensure that we have no illegal table access. + pixel = Clip3(0, maxPixelValue, pixel); - bandIdx = bandTable pixel>>bandShift ; - } + int bandIdx = bandTablepixel >> bandShift; if (bandIdx>0) { int offset = saoinfo->saoOffsetValcIdxbandIdx-1; @@ -247,20 +242,14 @@ for (int j=0;j<ctbH;j++) for (int i=0;i<ctbW;i++) { - // see above - int bandIdx; - if (bandShift >= 8) { - bandIdx = 0; - } else { - int pixel = in_imgxC+i+(yC+j)*in_stride; + int pixel = in_imgxC + i + (yC + j) * in_stride; - // Note: the input pixel value should never exceed the valid range, but it seems that it still does, - // maybe when there was a decoding error and the pixels have not been filled in correctly. - // Thus, we have to limit the pixel range to ensure that we have no illegal table access. - pixel = Clip3(0,maxPixelValue, pixel); + // Note: the input pixel value should never exceed the valid range, but it seems that it still does, + // maybe when there was a decoding error and the pixels have not been filled in correctly. + // Thus, we have to limit the pixel range to ensure that we have no illegal table access. + pixel = Clip3(0, maxPixelValue, pixel); - bandIdx = bandTable pixel>>bandShift ; - } + int bandIdx = bandTablepixel >> bandShift; if (bandIdx>0) { int offset = saoinfo->saoOffsetValcIdxbandIdx-1;
View file
libde265-1.0.15.tar.gz/libde265/transform.cc -> libde265-1.0.16.tar.gz/libde265/transform.cc
Changed
@@ -489,6 +489,11 @@ const uint8_t* sclist; int matrixID = cIdx; + + if (nT==32) { + matrixID=0; + } + if (!intra) { if (nT<32) { matrixID += 3; } else { matrixID++; } @@ -653,7 +658,7 @@ //#define QUANT_IQUANT_SHIFT 20 // Q(QP%6) * IQ(QP%6) = 2^20 #define QUANT_SHIFT 14 // Q(4) = 2^14 -//#define SCALE_BITS 15 // Inherited from TMuC, pressumably for fractional bit estimates in RDOQ +//#define SCALE_BITS 15 // Inherited from TMuC, presumably for fractional bit estimates in RDOQ #define MAX_TR_DYNAMIC_RANGE 15 // Maximum transform dynamic range (excluding sign bit)
View file
libde265-1.0.15.tar.gz/libde265/vui.cc -> libde265-1.0.16.tar.gz/libde265/vui.cc
Changed
@@ -187,8 +187,8 @@ fixed_pic_rate_within_cvs_flagi = true; } - low_delay_hrd_flagi = 0;// Infered to be 0 when not present - cpb_cnt_minus1i = 0; // Infered to be 0 when not present + low_delay_hrd_flagi = 0;// Inferred to be 0 when not present + cpb_cnt_minus1i = 0; // Inferred to be 0 when not present if (fixed_pic_rate_within_cvs_flagi) {
View file
libde265-1.0.15.tar.gz/libde265/x86/Makefile.in -> libde265-1.0.16.tar.gz/libde265/x86/Makefile.in
Changed
@@ -258,6 +258,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
View file
libde265-1.0.15.tar.gz/libde265/x86/sse-dct.cc -> libde265-1.0.16.tar.gz/libde265/x86/sse-dct.cc
Changed
@@ -2114,7 +2114,7 @@ r4 = _mm_unpackhi_epi64(m128Tmp0, m128Tmp1); //1st half 2nd row - r6 = _mm_unpackhi_epi64(m128Tmp2, m128Tmp3); //2nd hald 2nd row + r6 = _mm_unpackhi_epi64(m128Tmp2, m128Tmp3); //2nd half 2nd row m128Tmp0 = _mm_unpackhi_epi32(E0l, E1l); m128Tmp1 = _mm_unpackhi_epi32(E2l, E3l); @@ -4924,7 +4924,7 @@ m128iS14= _mm_unpackhi_epi64(m128Tmp4,m128Tmp5); //third quarter m128iS15= _mm_unpackhi_epi64(m128Tmp6,m128Tmp7); //last quarter - //fith row + //fifth row m128Tmp0= _mm_unpacklo_epi32(E0h,E1h); m128Tmp1= _mm_unpacklo_epi32(E2h,E3h);
View file
libde265-1.0.15.tar.gz/libde265/x86/sse-motion.cc -> libde265-1.0.16.tar.gz/libde265/x86/sse-motion.cc
Changed
@@ -3527,9 +3527,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0); @@ -3710,9 +3710,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0); @@ -3887,9 +3887,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0); @@ -4058,9 +4058,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0); @@ -4241,9 +4241,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0); @@ -4419,9 +4419,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0); @@ -4592,9 +4592,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0); @@ -4778,9 +4778,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0); @@ -4958,9 +4958,9 @@ r0 = _mm_srli_epi32(r0, 6); r1 = _mm_and_si128(r1, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_and_si128(r0, - _mm_set_epi16(0, 65535, 0, 65535, 0, 65535, 0, 65535)); + _mm_set_epi16(0, -1, 0, -1, 0, -1, 0, -1)); r0 = _mm_hadd_epi16(r0, r1); _mm_store_si128((__m128i *) &dstx, r0);
View file
libde265-1.0.15.tar.gz/sherlock265/Makefile.in -> libde265-1.0.16.tar.gz/sherlock265/Makefile.in
Changed
@@ -263,6 +263,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
View file
libde265-1.0.15.tar.gz/sherlock265/README -> libde265-1.0.16.tar.gz/sherlock265/README
Changed
@@ -7,7 +7,7 @@ PBs for prediction and TBs for residual transforms. PB - Show Prediction Block structure. CB blocks may be further - subdivided, possibly using asymetric partitionings. This is + subdivided, possibly using asymmetric partitionings. This is the level on which motion-compensation and intra-prediction is performed.
View file
libde265-1.0.15.tar.gz/tools/Makefile.in -> libde265-1.0.16.tar.gz/tools/Makefile.in
Changed
@@ -268,6 +268,7 @@ LIBDE265_REVISION = @LIBDE265_REVISION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBS_PRIVATE = @LIBS_PRIVATE@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.