Changes of Revision 5

libde265.changes Changed
x
 
1
@@ -1,4 +1,16 @@
2
 -------------------------------------------------------------------
3
+Sun Nov 29 09:51:59 UTC 2020 - Luigi Baldoni <aloisio@gmx.com>
4
+
5
+- Update to version 1.0.8
6
+  * read HDR parameters from VUI header
7
+  * fix reading matrix_coeffs from VUI header
8
+  version 1.0.7:
9
+  * add API to read VUI color information from bitstream
10
+  version 1.0.6:
11
+  * fix race in static mutex initialization
12
+  * fix missing headers to install in CMakeLists.txt
13
+
14
+-------------------------------------------------------------------
15
 Mon Apr 20 21:17:43 UTC 2020 - zaitor@opensuse.org
16
 
17
 - Update to version 1.0.5:
18
libde265.spec Changed
65
 
1
@@ -1,6 +1,7 @@
2
 #
3
 # spec file for package libde265
4
 #
5
+# Copyright (c) 2020 Packman Team <packman@links2linux.de>
6
 # Copyright (c) 2017 Bjørn Lie, Bryne, Norway.
7
 #
8
 # All modifications and additions to the file contributed by third parties
9
@@ -12,20 +13,20 @@
10
 # license that conforms to the Open Source Definition (Version 1.9)
11
 # published by the Open Source Initiative.
12
 
13
-%define so_ver 0
14
+# Please submit bugfixes or comments via https://bugs.links2linux.org/
15
+#
16
 
17
+%define so_ver  0
18
 Name:           libde265
19
-Version:        1.0.5
20
+Version:        1.0.8
21
 Release:        0
22
 Summary:        Open H.265 video codec implementation
23
-License:        LGPL-3.0
24
+License:        LGPL-3.0-only
25
 Group:          System/Libraries
26
-Url:            http://www.libde265.org/
27
+URL:            https://www.libde265.org/
28
 Source0:        https://github.com/strukturag/libde265/releases/download/v%{version}/%{name}-%{version}.tar.gz
29
 Source99:       baselibs.conf
30
 Patch0:         libde265-disable_tools.patch
31
-
32
-BuildRequires:  autoconf
33
 BuildRequires:  automake
34
 BuildRequires:  c++_compiler
35
 BuildRequires:  libtool
36
@@ -37,8 +38,8 @@
37
 API makes it easy to integrate it into other software.
38
 
39
 %package -n %{name}-%{so_ver}
40
-Group:          System/Libraries
41
 Summary:        Open H.265 video codec implementation - libraries
42
+Group:          System/Libraries
43
 
44
 %description -n %{name}-%{so_ver}
45
 libde265 is an open source implementation of the H.265 video codec.
46
@@ -48,8 +49,8 @@
47
 This package contains the library files.
48
 
49
 %package devel
50
-Group:          Development/Libraries/Other
51
 Summary:        Open H.265 video codec implementation - development files
52
+Group:          Development/Libraries/Other
53
 Requires:       %{name}-%{so_ver} = %{version}
54
 
55
 %description devel
56
@@ -82,7 +83,7 @@
57
 %postun -n %{name}-%{so_ver} -p /sbin/ldconfig
58
 
59
 %files -n %{name}-%{so_ver}
60
-%doc COPYING
61
+%license COPYING
62
 %{_libdir}/%{name}.so.*
63
 
64
 %files devel
65
libde265-1.0.5.tar.gz/CMakeLists.txt -> libde265-1.0.8.tar.gz/CMakeLists.txt Changed
38
 
1
@@ -2,7 +2,7 @@
2
 
3
 project (libde265
4
     LANGUAGES C CXX
5
-    VERSION 1.0.5
6
+    VERSION 1.0.8
7
 )
8
 
9
 set(CMAKE_CXX_STANDARD 11)
10
@@ -11,7 +11,7 @@
11
 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
12
 
13
 # The version number.
14
-set (NUMERIC_VERSION 0x01000500)
15
+set (NUMERIC_VERSION 0x01000800)
16
 set (PACKAGE_VERSION ${PROJECT_VERSION})
17
 
18
 include (${CMAKE_ROOT}/Modules/CheckCCompilerFlag.cmake)
19
@@ -47,13 +47,11 @@
20
   add_definitions(-Wall)
21
 endif()
22
 
23
-option(DISABLE_SSE "Disable SSE optimizations")
24
-if(NOT ${DISABLE_SSE} EQUAL OFF)
25
-  if(MSVC)
26
-    set(SUPPORTS_SSE4_1 1)
27
-  else()
28
-    CHECK_C_COMPILER_FLAG(-msse4.1 SUPPORTS_SSE4_1)
29
-  endif()
30
+option(DISABLE_SSE "Disable SSE optimizations" OFF)
31
+
32
+option(BUILD_SHARED_LIBS "Build shared library" ON)
33
+if(NOT BUILD_SHARED_LIBS)
34
+  add_definitions(-DLIBDE265_STATIC_BUILD)
35
 endif()
36
 
37
 include_directories ("${PROJECT_SOURCE_DIR}")
38
libde265-1.0.5.tar.gz/configure -> libde265-1.0.8.tar.gz/configure Changed
105
 
1
@@ -1,6 +1,6 @@
2
 #! /bin/sh
3
 # Guess values for system-dependent variables and create Makefiles.
4
-# Generated by GNU Autoconf 2.69 for libde265 1.0.5.
5
+# Generated by GNU Autoconf 2.69 for libde265 1.0.8.
6
 #
7
 # Report bugs to <farin@struktur.de>.
8
 #
9
@@ -590,8 +590,8 @@
10
 # Identity of this package.
11
 PACKAGE_NAME='libde265'
12
 PACKAGE_TARNAME='libde265'
13
-PACKAGE_VERSION='1.0.5'
14
-PACKAGE_STRING='libde265 1.0.5'
15
+PACKAGE_VERSION='1.0.8'
16
+PACKAGE_STRING='libde265 1.0.8'
17
 PACKAGE_BUGREPORT='farin@struktur.de'
18
 PACKAGE_URL=''
19
 
20
@@ -1412,7 +1412,7 @@
21
   # Omit some internal or obsolete options to make the list less imposing.
22
   # This message is too long to be a string in the A/UX 3.1 sh.
23
   cat <<_ACEOF
24
-\`configure' configures libde265 1.0.5 to adapt to many kinds of systems.
25
+\`configure' configures libde265 1.0.8 to adapt to many kinds of systems.
26
 
27
 Usage: $0 [OPTION]... [VAR=VALUE]...
28
 
29
@@ -1484,7 +1484,7 @@
30
 
31
 if test -n "$ac_init_help"; then
32
   case $ac_init_help in
33
-     short | recursive ) echo "Configuration of libde265 1.0.5:";;
34
+     short | recursive ) echo "Configuration of libde265 1.0.8:";;
35
    esac
36
   cat <<\_ACEOF
37
 
38
@@ -1626,7 +1626,7 @@
39
 test -n "$ac_init_help" && exit $ac_status
40
 if $ac_init_version; then
41
   cat <<\_ACEOF
42
-libde265 configure 1.0.5
43
+libde265 configure 1.0.8
44
 generated by GNU Autoconf 2.69
45
 
46
 Copyright (C) 2012 Free Software Foundation, Inc.
47
@@ -2391,7 +2391,7 @@
48
 This file contains any messages produced by compilers while
49
 running configure, to aid debugging if configure makes a mistake.
50
 
51
-It was created by libde265 $as_me 1.0.5, which was
52
+It was created by libde265 $as_me 1.0.8, which was
53
 generated by GNU Autoconf 2.69.  Invocation command line was
54
 
55
   $ $0 $@
56
@@ -2746,7 +2746,7 @@
57
 ac_config_headers="$ac_config_headers config.h"
58
 
59
 
60
-NUMERIC_VERSION=0x01000500 # Numeric representation of the version (A.B.C[.D] = 0xAABBCCDD)
61
+NUMERIC_VERSION=0x01000800 # Numeric representation of the version (A.B.C[.D] = 0xAABBCCDD)
62
 
63
 
64
 # From https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html:
65
@@ -2755,9 +2755,9 @@
66
 # If any interfaces have been added since the last public release, then increment age.
67
 # If any interfaces have been removed or changed since the last public release, then set age to 0.
68
 
69
-LIBDE265_CURRENT=0
70
-LIBDE265_REVISION=12
71
-LIBDE265_AGE=0
72
+LIBDE265_CURRENT=1
73
+LIBDE265_REVISION=1
74
+LIBDE265_AGE=1
75
 
76
 # ---------------------------------------------------------------------------
77
 
78
@@ -16714,7 +16714,7 @@
79
 
80
 # Define the identity of the package.
81
  PACKAGE='libde265'
82
- VERSION='1.0.5'
83
+ VERSION='1.0.8'
84
 
85
 
86
 cat >>confdefs.h <<_ACEOF
87
@@ -20140,7 +20140,7 @@
88
 # report actual input values of CONFIG_FILES etc. instead of their
89
 # values after options handling.
90
 ac_log="
91
-This file was extended by libde265 $as_me 1.0.5, which was
92
+This file was extended by libde265 $as_me 1.0.8, which was
93
 generated by GNU Autoconf 2.69.  Invocation command line was
94
 
95
   CONFIG_FILES    = $CONFIG_FILES
96
@@ -20206,7 +20206,7 @@
97
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
98
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
99
 ac_cs_version="\\
100
-libde265 config.status 1.0.5
101
+libde265 config.status 1.0.8
102
 configured by $0, generated by GNU Autoconf 2.69,
103
   with options \\"\$ac_cs_config\\"
104
 
105
libde265-1.0.5.tar.gz/configure.ac -> libde265-1.0.8.tar.gz/configure.ac Changed
28
 
1
@@ -2,11 +2,11 @@
2
 # Process this file with autoconf to produce a configure script.
3
 
4
 AC_PREREQ([2.68])
5
-AC_INIT([libde265], [1.0.5], [farin@struktur.de])
6
+AC_INIT([libde265], [1.0.8], [farin@struktur.de])
7
 AC_CONFIG_SRCDIR([libde265/de265.cc])
8
 AC_CONFIG_HEADERS([config.h])
9
 
10
-NUMERIC_VERSION=0x01000500 # Numeric representation of the version (A.B.C[.D] = 0xAABBCCDD)
11
+NUMERIC_VERSION=0x01000800 # Numeric representation of the version (A.B.C[.D] = 0xAABBCCDD)
12
 AC_SUBST(NUMERIC_VERSION)
13
 
14
 # From https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html:
15
@@ -15,9 +15,9 @@
16
 # If any interfaces have been added since the last public release, then increment age.
17
 # If any interfaces have been removed or changed since the last public release, then set age to 0.
18
 
19
-LIBDE265_CURRENT=0
20
-LIBDE265_REVISION=12
21
-LIBDE265_AGE=0
22
+LIBDE265_CURRENT=1
23
+LIBDE265_REVISION=1
24
+LIBDE265_AGE=1
25
 
26
 # ---------------------------------------------------------------------------
27
 
28
libde265-1.0.5.tar.gz/dec265/CMakeLists.txt -> libde265-1.0.8.tar.gz/dec265/CMakeLists.txt Changed
15
 
1
@@ -16,9 +16,13 @@
2
   )
3
 endif()
4
 
5
+install (TARGETS dec265 DESTINATION ${CMAKE_INSTALL_BINDIR})
6
+
7
 if(NOT MSVC)
8
   # hdrcopy uses internal APIs that are not available when compiled for Windows
9
   add_executable (hdrcopy hdrcopy.cc)
10
 
11
   target_link_libraries (hdrcopy PRIVATE ${PROJECT_NAME})
12
+
13
+  install (TARGETS hdrcopy DESTINATION ${CMAKE_INSTALL_BINDIR})
14
 endif()
15
libde265-1.0.5.tar.gz/enc265/CMakeLists.txt -> libde265-1.0.8.tar.gz/enc265/CMakeLists.txt Changed
7
 
1
@@ -11,3 +11,5 @@
2
 endif()
3
 
4
 target_link_libraries (enc265 PRIVATE ${PROJECT_NAME})
5
+
6
+install (TARGETS enc265 DESTINATION ${CMAKE_INSTALL_BINDIR})
7
libde265-1.0.5.tar.gz/libde265/CMakeLists.txt -> libde265-1.0.8.tar.gz/libde265/CMakeLists.txt Changed
59
 
1
@@ -43,6 +43,9 @@
2
   bitstream.h
3
   cabac.h
4
   configparam.h
5
+  de265-version.h
6
+  contextmodel.h
7
+  de265.h
8
   deblock.h
9
   decctx.h
10
   dpb.h
11
@@ -73,7 +76,7 @@
12
   vui.h
13
 )
14
 
15
-if(MSVC)
16
+if(MSVC OR MINGW)
17
   set (libde265_sources
18
     ${libde265_sources}
19
     ../extra/win32cond.c
20
@@ -85,12 +88,26 @@
21
 
22
 add_subdirectory (encoder)
23
 
24
-if(SUPPORTS_SSE4_1)
25
-  add_definitions(-DHAVE_SSE4_1)
26
-  add_subdirectory (x86)
27
+if(NOT DISABLE_SSE)
28
+  if (MSVC)
29
+    set(SUPPORTS_SSE2 1)
30
+    set(SUPPORTS_SSSE3 1)
31
+    set(SUPPORTS_SSE4_1 1)
32
+  else (MSVC)
33
+    check_c_compiler_flag(-msse2 SUPPORTS_SSE2)
34
+    check_c_compiler_flag(-mssse3 SUPPORTS_SSSE3)
35
+    check_c_compiler_flag(-msse4.1 SUPPORTS_SSE4_1)
36
+  endif (MSVC)
37
+
38
+  if(SUPPORTS_SSE4_1)
39
+    add_definitions(-DHAVE_SSE4_1)
40
+  endif()
41
+  if(SUPPORTS_SSE4_1 OR (SUPPORTS_SSE2 AND SUPPORTS_SSSE3))
42
+    add_subdirectory (x86)
43
+  endif()
44
 endif()
45
 
46
-add_library(${PROJECT_NAME} SHARED ${libde265_sources} ${ENCODER_OBJECTS} ${X86_OBJECTS})
47
+add_library(${PROJECT_NAME} ${libde265_sources} ${ENCODER_OBJECTS} ${X86_OBJECTS})
48
 target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
49
 
50
 write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmake COMPATIBILITY ExactVersion)
51
@@ -102,6 +119,7 @@
52
 )
53
 
54
 install(FILES ${libde265_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME})
55
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/de265-version.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME})
56
 
57
 install(EXPORT ${PROJECT_NAME}Config DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
58
 
59
libde265-1.0.5.tar.gz/libde265/de265-version.h -> libde265-1.0.8.tar.gz/libde265/de265-version.h Changed
13
 
1
@@ -28,9 +28,9 @@
2
 #define LIBDE265_VERSION_H
3
 
4
 /* Numeric representation of the version */
5
-#define LIBDE265_NUMERIC_VERSION 0x01000500
6
+#define LIBDE265_NUMERIC_VERSION 0x01000800
7
 
8
 /* Version string */
9
-#define LIBDE265_VERSION "1.0.5"
10
+#define LIBDE265_VERSION "1.0.8"
11
 
12
 #endif
13
libde265-1.0.5.tar.gz/libde265/de265.cc -> libde265-1.0.8.tar.gz/libde265/de265.cc Changed
55
 
1
@@ -171,12 +171,16 @@
2
 
3
 static int de265_init_count;
4
 
5
-static std::mutex de265_init_mutex;
6
+static std::mutex& de265_init_mutex()
7
+{
8
+  static std::mutex de265_init_mutex;
9
+  return de265_init_mutex;
10
+}
11
 
12
 
13
 LIBDE265_API de265_error de265_init()
14
 {
15
-  std::lock_guard<std::mutex> lock(de265_init_mutex);
16
+  std::lock_guard<std::mutex> lock(de265_init_mutex());
17
 
18
   de265_init_count++;
19
 
20
@@ -201,7 +205,7 @@
21
 
22
 LIBDE265_API de265_error de265_free()
23
 {
24
-  std::lock_guard<std::mutex> lock(de265_init_mutex);
25
+  std::lock_guard<std::mutex> lock(de265_init_mutex());
26
 
27
   if (de265_init_count<=0) {
28
     return DE265_ERROR_LIBRARY_NOT_INITIALIZED;
29
@@ -708,4 +712,25 @@
30
   if (nuh_layer_id)    *nuh_layer_id    = img->nal_hdr.nuh_layer_id;
31
   if (nuh_temporal_id) *nuh_temporal_id = img->nal_hdr.nuh_temporal_id;
32
 }
33
+
34
+LIBDE265_API int de265_get_image_full_range_flag(const struct de265_image* img)
35
+{
36
+  return img->get_sps().vui.video_full_range_flag;
37
+}
38
+
39
+LIBDE265_API int de265_get_image_colour_primaries(const struct de265_image* img)
40
+{
41
+  return img->get_sps().vui.colour_primaries;
42
+}
43
+
44
+LIBDE265_API int de265_get_image_transfer_characteristics(const struct de265_image* img)
45
+{
46
+  return img->get_sps().vui.transfer_characteristics;
47
+}
48
+
49
+LIBDE265_API int de265_get_image_matrix_coefficients(const struct de265_image* img)
50
+{
51
+  return img->get_sps().vui.matrix_coeffs;
52
+}
53
+
54
 }
55
libde265-1.0.5.tar.gz/libde265/de265.h -> libde265-1.0.8.tar.gz/libde265/de265.h Changed
13
 
1
@@ -186,6 +186,11 @@
2
                                              int* nuh_layer_id,
3
                                              int* nuh_temporal_id);
4
 
5
+LIBDE265_API int de265_get_image_full_range_flag(const struct de265_image*);
6
+LIBDE265_API int de265_get_image_colour_primaries(const struct de265_image*);
7
+LIBDE265_API int de265_get_image_transfer_characteristics(const struct de265_image*);
8
+LIBDE265_API int de265_get_image_matrix_coefficients(const struct de265_image*);
9
+
10
 
11
 /* === decoder === */
12
 
13
libde265-1.0.5.tar.gz/libde265/image.cc -> libde265-1.0.8.tar.gz/libde265/image.cc Changed
9
 
1
@@ -20,6 +20,7 @@
2
 
3
 #include "image.h"
4
 #include "decctx.h"
5
+#include "en265.h"
6
 
7
 #include <stdlib.h>
8
 #include <string.h>
9
libde265-1.0.5.tar.gz/libde265/threads.cc -> libde265-1.0.8.tar.gz/libde265/threads.cc Changed
52
 
1
@@ -32,8 +32,9 @@
2
 #ifndef _WIN32
3
 // #include <intrin.h>
4
 
5
-#define THREAD_RESULT       void*
6
-#define THREAD_PARAM        void*
7
+#define THREAD_RESULT_TYPE  void*
8
+#define THREAD_PARAM_TYPE   void*
9
+#define THREAD_CALLING_CONVENTION
10
 
11
 #include <stdio.h>
12
 
13
@@ -51,8 +52,9 @@
14
 void de265_cond_signal(de265_cond* c) { pthread_cond_signal(c); }
15
 #else  // _WIN32
16
 
17
-#define THREAD_RESULT       DWORD WINAPI
18
-#define THREAD_PARAM        LPVOID
19
+#define THREAD_RESULT_TYPE    DWORD
20
+#define THREAD_CALLING_CONVENTION WINAPI
21
+#define THREAD_PARAM_TYPE        LPVOID
22
 
23
 int  de265_thread_create(de265_thread* t, LPTHREAD_START_ROUTINE start_routine, void *arg) {
24
     HANDLE handle = CreateThread(NULL, 0, start_routine, arg, 0, NULL);
25
@@ -184,7 +186,7 @@
26
 #endif
27
 
28
 
29
-static THREAD_RESULT worker_thread(THREAD_PARAM pool_ptr)
30
+static THREAD_RESULT_TYPE THREAD_CALLING_CONVENTION worker_thread(THREAD_PARAM_TYPE pool_ptr)
31
 {
32
   thread_pool* pool = (thread_pool*)pool_ptr;
33
 
34
@@ -210,7 +212,7 @@
35
 
36
     if (pool->stopped) {
37
       de265_mutex_unlock(&pool->mutex);
38
-      return NULL;
39
+      return (THREAD_RESULT_TYPE)0;
40
     }
41
 
42
 
43
@@ -238,7 +240,7 @@
44
   }
45
   de265_mutex_unlock(&pool->mutex);
46
 
47
-  return NULL;
48
+  return (THREAD_RESULT_TYPE)0;
49
 }
50
 
51
 
52
libde265-1.0.5.tar.gz/libde265/vui.cc -> libde265-1.0.8.tar.gz/libde265/vui.cc Changed
201
 
1
@@ -128,8 +128,7 @@
2
   // --- hrd parameters ---
3
 
4
   vui_hrd_parameters_present_flag = false;
5
-  //hrd_parameters vui_hrd_parameters;
6
-
7
+ 
8
 
9
   // --- bitstream restriction ---
10
 
11
@@ -145,6 +144,88 @@
12
 }
13
 
14
 
15
+de265_error video_usability_information::hrd_parameters(error_queue* errqueue, bitreader* br, const seq_parameter_set* sps)
16
+{
17
+  int vlc;
18
+
19
+  nal_hrd_parameters_present_flag = get_bits(br, 1);
20
+  vcl_hrd_parameters_present_flag = get_bits(br, 1);
21
+
22
+  if (nal_hrd_parameters_present_flag || vcl_hrd_parameters_present_flag)
23
+  {
24
+    sub_pic_hrd_params_present_flag = get_bits(br, 1);
25
+    if (sub_pic_hrd_params_present_flag)
26
+    {
27
+      tick_divisor_minus2 = get_bits(br, 8);
28
+      du_cpb_removal_delay_increment_length_minus1 = get_bits(br, 5);
29
+      sub_pic_cpb_params_in_pic_timing_sei_flag = get_bits(br, 1);
30
+      dpb_output_delay_du_length_minus1 = get_bits(br, 5);
31
+    }
32
+    bit_rate_scale = get_bits(br, 4);
33
+    cpb_size_scale = get_bits(br, 4);
34
+
35
+
36
+    if (sub_pic_hrd_params_present_flag)
37
+    {
38
+      cpb_size_du_scale = get_bits(br, 4);
39
+    }
40
+    initial_cpb_removal_delay_length_minus1 = get_bits(br, 5);
41
+    au_cpb_removal_delay_length_minus1 = get_bits(br, 5);
42
+    dpb_output_delay_length_minus1 = get_bits(br, 5);
43
+  }
44
+  int  i, j, nalOrVcl;
45
+
46
+  for (i = 0; i < sps->sps_max_sub_layers; i++)
47
+  {
48
+    fixed_pic_rate_general_flag[i] = get_bits(br, 1);
49
+    if (!fixed_pic_rate_general_flag[i])
50
+    {
51
+      fixed_pic_rate_within_cvs_flag[i] = get_bits(br, 1);
52
+    }
53
+    else
54
+    {
55
+      fixed_pic_rate_within_cvs_flag[i] = true;
56
+    }
57
+
58
+    low_delay_hrd_flag[i] = 0;// Infered to be 0 when not present
59
+    cpb_cnt_minus1[i] = 0;    // Infered to be 0 when not present
60
+
61
+    if (fixed_pic_rate_within_cvs_flag[i])
62
+    {
63
+      READ_VLC_OFFSET(elemental_duration_in_tc_minus1[i], uvlc, 0);
64
+    }
65
+    else
66
+    {
67
+      low_delay_hrd_flag[i] = get_bits(br, 1);
68
+    }
69
+    if (!low_delay_hrd_flag[i])
70
+    {
71
+      READ_VLC_OFFSET(cpb_cnt_minus1[i], uvlc, 0);
72
+    }
73
+
74
+    for (nalOrVcl = 0; nalOrVcl < 2; nalOrVcl++)
75
+    {
76
+      if (((nalOrVcl == 0) && nal_hrd_parameters_present_flag) ||
77
+        ((nalOrVcl == 1) && vcl_hrd_parameters_present_flag))
78
+      {
79
+        for (j = 0; j <= cpb_cnt_minus1[i]; j++)
80
+        {
81
+          READ_VLC_OFFSET(bit_rate_value_minus1[i][j][nalOrVcl], uvlc, 0);
82
+          READ_VLC_OFFSET(cpb_size_value_minus1[i][j][nalOrVcl], uvlc, 0);
83
+
84
+          if (sub_pic_hrd_params_present_flag)
85
+          {
86
+            READ_VLC_OFFSET(cpb_size_du_value_minus1[i][j][nalOrVcl], uvlc, 0);
87
+            READ_VLC_OFFSET(bit_rate_du_value_minus1[i][j][nalOrVcl], uvlc, 0);
88
+          }
89
+          cbr_flag[i][j][nalOrVcl] = get_bits(br, 1);
90
+        }
91
+      }
92
+    }
93
+  }
94
+  return DE265_OK;
95
+}
96
+
97
 de265_error video_usability_information::read(error_queue* errqueue, bitreader* br,
98
                                               const seq_parameter_set* sps)
99
 {
100
@@ -153,33 +234,33 @@
101
 
102
   // --- sample aspect ratio (SAR) ---
103
 
104
-  aspect_ratio_info_present_flag = get_bits(br,1);
105
+  aspect_ratio_info_present_flag = get_bits(br, 1);
106
   if (aspect_ratio_info_present_flag) {
107
-    int aspect_ratio_idc = get_bits(br,8);
108
+    int aspect_ratio_idc = get_bits(br, 8);
109
     if (aspect_ratio_idc <= NUM_SAR_PRESETS) {
110
-      sar_width  = sar_presets[aspect_ratio_idc][0];
111
+      sar_width = sar_presets[aspect_ratio_idc][0];
112
       sar_height = sar_presets[aspect_ratio_idc][1];
113
     }
114
     else if (aspect_ratio_idc == EXTENDED_SAR) {
115
-      sar_width  = get_bits(br,16);
116
-      sar_height = get_bits(br,16);
117
+      sar_width = get_bits(br, 16);
118
+      sar_height = get_bits(br, 16);
119
     }
120
     else {
121
-      sar_width  = 0;
122
+      sar_width = 0;
123
       sar_height = 0;
124
     }
125
   }
126
   else {
127
-    sar_width  = 0;
128
+    sar_width = 0;
129
     sar_height = 0;
130
   }
131
 
132
 
133
   // --- overscan ---
134
 
135
-  overscan_info_present_flag = get_bits(br,1);
136
+  overscan_info_present_flag = get_bits(br, 1);
137
   if (overscan_info_present_flag) {
138
-    overscan_appropriate_flag = get_bits(br,1);
139
+    overscan_appropriate_flag = get_bits(br, 1);
140
   }
141
 
142
 
143
@@ -193,35 +274,35 @@
144
     matrix_coeffs = 2;
145
   }
146
 
147
-  video_signal_type_present_flag = get_bits(br,1);
148
+  video_signal_type_present_flag = get_bits(br, 1);
149
   if (video_signal_type_present_flag) {
150
-    int video_format_idc = get_bits(br,3);
151
+    int video_format_idc = get_bits(br, 3);
152
     if (video_format_idc > 5) {
153
       video_format_idc = VideoFormat_Unspecified;
154
     }
155
     video_format = (VideoFormat)video_format_idc;
156
 
157
-    video_full_range_flag = get_bits(br,1);
158
+    video_full_range_flag = get_bits(br, 1);
159
 
160
-    colour_description_present_flag = get_bits(br,1);
161
+    colour_description_present_flag = get_bits(br, 1);
162
     if (colour_description_present_flag) {
163
-      colour_primaries = get_bits(br,8);
164
+      colour_primaries = get_bits(br, 8);
165
       if (colour_primaries == 0 ||
166
-          colour_primaries == 3 ||
167
-          colour_primaries >= 11) {
168
+        colour_primaries == 3 ||
169
+        colour_primaries >= 11) {
170
         colour_primaries = 2;
171
       }
172
 
173
-      transfer_characteristics = get_bits(br,8);
174
+      transfer_characteristics = get_bits(br, 8);
175
       if (transfer_characteristics == 0 ||
176
-          transfer_characteristics == 3 ||
177
-          transfer_characteristics >= 18) {
178
+        transfer_characteristics == 3 ||
179
+        transfer_characteristics >= 18) {
180
         transfer_characteristics = 2;
181
       }
182
 
183
-      matrix_coeffs = get_bits(br,8);
184
-      if (matrix_coeffs == 0 ||
185
-          matrix_coeffs >= 11) {
186
+      matrix_coeffs = get_bits(br, 8);
187
+      
188
+      if (matrix_coeffs >= 11) {
189
         matrix_coeffs = 2;
190
       }
191
     }
192
@@ -230,59 +311,59 @@
193
 
194
   // --- chroma / interlaced ---
195
 
196
-  chroma_loc_info_present_flag = get_bits(br,1);
197
+  chroma_loc_info_present_flag = get_bits(br, 1);
198
   if (chroma_loc_info_present_flag) {
199
-    READ_VLC(chroma_sample_loc_type_top_field,    uvlc);
200
+    READ_VLC(chroma_sample_loc_type_top_field, uvlc);
201
libde265-1.0.5.tar.gz/libde265/vui.h -> libde265-1.0.8.tar.gz/libde265/vui.h Changed
45
 
1
@@ -46,7 +46,8 @@
2
 {
3
  public:
4
   video_usability_information();
5
-
6
+  
7
+  de265_error hrd_parameters(error_queue*, bitreader*, const seq_parameter_set*);
8
   de265_error read(error_queue*, bitreader*, const seq_parameter_set*);
9
   void dump(int fd) const;
10
 
11
@@ -106,9 +107,30 @@
12
   // --- hrd parameters ---
13
 
14
   bool     vui_hrd_parameters_present_flag;
15
-  //hrd_parameters vui_hrd_parameters;
16
-
17
-
18
+  bool     nal_hrd_parameters_present_flag;
19
+  bool     vcl_hrd_parameters_present_flag;
20
+  bool     sub_pic_hrd_params_present_flag;
21
+  uint32_t tick_divisor_minus2;
22
+  uint32_t du_cpb_removal_delay_increment_length_minus1;
23
+  bool     sub_pic_cpb_params_in_pic_timing_sei_flag;
24
+  uint32_t dpb_output_delay_du_length_minus1;
25
+  uint32_t bit_rate_scale;
26
+  uint32_t cpb_size_scale;
27
+  uint32_t cpb_size_du_scale;
28
+  uint32_t initial_cpb_removal_delay_length_minus1;
29
+  uint32_t au_cpb_removal_delay_length_minus1;
30
+  uint32_t dpb_output_delay_length_minus1;
31
+  bool     fixed_pic_rate_general_flag[7];
32
+  bool     fixed_pic_rate_within_cvs_flag[7];
33
+  bool     low_delay_hrd_flag[7];
34
+  uint32_t cpb_cnt_minus1[7];
35
+  uint32_t elemental_duration_in_tc_minus1[7];
36
+  uint32_t bit_rate_value_minus1[7][32][2];
37
+  uint32_t cpb_size_value_minus1[7][32][2];
38
+  uint32_t cpb_size_du_value_minus1[7][32][2];
39
+  uint32_t bit_rate_du_value_minus1[7][32][2];
40
+  bool     cbr_flag[7][32][2];
41
+  
42
   // --- bitstream restriction ---
43
 
44
   bool bitstream_restriction_flag;
45
libde265-1.0.5.tar.gz/libde265/x86/CMakeLists.txt -> libde265-1.0.8.tar.gz/libde265/x86/CMakeLists.txt Changed
19
 
1
@@ -13,11 +13,13 @@
2
 set(sse_flags "")
3
 
4
 if(NOT MSVC)
5
-  set(sse_flags "${sse_flags} -msse4.1")
6
+  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
7
+    set(sse_flags "${sse_flags} -msse4.1")
8
+  else(CMAKE_SIZEOF_VOID_P EQUAL 8)
9
+      set(sse_flags "${sse_flags} -msse2 -mssse3 -msse4.1")
10
+  endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
11
 endif()
12
 
13
 set(X86_OBJECTS $<TARGET_OBJECTS:x86> $<TARGET_OBJECTS:x86_sse> PARENT_SCOPE)
14
 
15
-if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
16
-  SET_TARGET_PROPERTIES(x86_sse PROPERTIES COMPILE_FLAGS "${sse_flags}")
17
-endif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
18
+SET_TARGET_PROPERTIES(x86_sse PROPERTIES COMPILE_FLAGS "${sse_flags}")
19