Skip to content

Commit

Permalink
AMF v1.4.28 release
Browse files Browse the repository at this point in the history
  • Loading branch information
rhutsAMD committed Dec 13, 2022
1 parent 734a9ae commit 9e2ebb9
Show file tree
Hide file tree
Showing 1,051 changed files with 200,529 additions and 582 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,22 @@ AMF is a light-weight, portable multimedia framework that abstracts away most of
* Linux
* RHEL 8.4 / 7.9
* CentOS 8.4 / 7.9
* Ubuntu 20.04.2 / 18.04.5 HWE
* Ubuntu 22.04 / 20.04.2
* SLED/SLES 15 SP3
* Driver and AMF component installation instructions are available on the [Wiki page](https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki).
* The following table contains the driver versions in which the Linux pro driver started including the AMF runtime, otherwise, the AMF runtime is optional and has to be installed separately.
* All supported distros include the AMF runtime starting driver version 20.40.

| OS | AMF included starting version: |
| ------------- |:-------------: |
| Ubuntu 18.04.1 | 18.30 |
| SLE 15 | 18.40 |
| Ubuntu 20.04.0 | 20.20 |
| \**All supported distros* | 20.40 |

* AMF SDK is backward compatible with all previous driver versions.
* Version 1.4.24: AMD Radeon Software Adrenalin Edition 22.3.1 (21.50.02.01) or newer. Added new AMD Direct Capture mode, new HQscaler feature(Bilinear/Bicubic/FSR), new Vulkan HEVC encoder on Navi family, improvements on H264 Vulkan encoding.
* Version 1.4.28: AMD Radeon Software Adrenalin Edition 22.12.1 (22.40.00.24) or newer. Added AV1 encoding support and 12-bit AV1 decoding. New VQEnhancer component. New AVC / HEVC encoder rate control methods.
* Version 1.4.26: AMD Radeon Software Adrenalin Edition 22.7.1 (22.20.15.01) or newer. Added new PAQ, TAQ, and high motion quality boost modes for PreAnalysis. New HQScaler sharpness, low latency decoder and temporal SVC encoder options.
* Version 1.4.24: AMD Radeon Software Adrenalin Edition 22.3.1 (21.50.02.01) or newer. Added new AMD Direct Capture mode, new HQScaler feature(Bilinear/Bicubic/FSR), new Vulkan HEVC encoder on Navi family, improvements on H264 Vulkan encoding.
* Version 1.4.23: AMD Radeon Software Adrenalin Edition 21.12.1 (21.40.11.03) or newer. Added new Auto LTR encoder mode, additional encoder usage presets and encoder statistics/feedback.
* Version 1.4.21: AMD Radeon Software Adrenalin Edition 21.10.1 (21.30.25.01) or newer. Added PSNR/SSIM score feedback, new QVBR rate control mode and LTR mode for encoders, added HDR support for HEVC encoder and color converter, new EncoderLatency sample app.
* Version 1.4.18: AMD Radeon Software Adrenalin Edition 20.11.2 or newer. Added Pre-Encode filter within Pre-Processing component in 1.4.18.
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* Work around the class() function in AIX math.h clashing with
* identifiers named "class".
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#ifndef COMPAT_AIX_MATH_H
#define COMPAT_AIX_MATH_H

#define class class_in_math_h_causes_problems

#include_next <math.h>

#undef class

#endif /* COMPAT_AIX_MATH_H */
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

/*
* based on vlc_atomic.h from VLC
* Copyright (C) 2010 Rémi Denis-Courmont
*/

#ifndef COMPAT_ATOMICS_DUMMY_STDATOMIC_H
#define COMPAT_ATOMICS_DUMMY_STDATOMIC_H

#include <stdint.h>

#define ATOMIC_FLAG_INIT 0

#define ATOMIC_VAR_INIT(value) (value)

#define atomic_init(obj, value) \
do { \
*(obj) = (value); \
} while(0)

#define kill_dependency(y) ((void)0)

#define atomic_thread_fence(order) \
((void)0)

#define atomic_signal_fence(order) \
((void)0)

#define atomic_is_lock_free(obj) 0

typedef intptr_t atomic_flag;
typedef intptr_t atomic_bool;
typedef intptr_t atomic_char;
typedef intptr_t atomic_schar;
typedef intptr_t atomic_uchar;
typedef intptr_t atomic_short;
typedef intptr_t atomic_ushort;
typedef intptr_t atomic_int;
typedef intptr_t atomic_uint;
typedef intptr_t atomic_long;
typedef intptr_t atomic_ulong;
typedef intptr_t atomic_llong;
typedef intptr_t atomic_ullong;
typedef intptr_t atomic_wchar_t;
typedef intptr_t atomic_int_least8_t;
typedef intptr_t atomic_uint_least8_t;
typedef intptr_t atomic_int_least16_t;
typedef intptr_t atomic_uint_least16_t;
typedef intptr_t atomic_int_least32_t;
typedef intptr_t atomic_uint_least32_t;
typedef intptr_t atomic_int_least64_t;
typedef intptr_t atomic_uint_least64_t;
typedef intptr_t atomic_int_fast8_t;
typedef intptr_t atomic_uint_fast8_t;
typedef intptr_t atomic_int_fast16_t;
typedef intptr_t atomic_uint_fast16_t;
typedef intptr_t atomic_int_fast32_t;
typedef intptr_t atomic_uint_fast32_t;
typedef intptr_t atomic_int_fast64_t;
typedef intptr_t atomic_uint_fast64_t;
typedef intptr_t atomic_intptr_t;
typedef intptr_t atomic_uintptr_t;
typedef intptr_t atomic_size_t;
typedef intptr_t atomic_ptrdiff_t;
typedef intptr_t atomic_intmax_t;
typedef intptr_t atomic_uintmax_t;

#define atomic_store(object, desired) \
do { \
*(object) = (desired); \
} while (0)

#define atomic_store_explicit(object, desired, order) \
atomic_store(object, desired)

#define atomic_load(object) \
(*(object))

#define atomic_load_explicit(object, order) \
atomic_load(object)

static inline intptr_t atomic_exchange(intptr_t *object, intptr_t desired)
{
intptr_t ret = *object;
*object = desired;
return ret;
}

#define atomic_exchange_explicit(object, desired, order) \
atomic_exchange(object, desired)

static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *expected,
intptr_t desired)
{
int ret;
if (*object == *expected) {
*object = desired;
ret = 1;
} else {
*expected = *object;
ret = 0;
}
return ret;
}

#define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \
atomic_compare_exchange_strong(object, expected, desired)

#define atomic_compare_exchange_weak(object, expected, desired) \
atomic_compare_exchange_strong(object, expected, desired)

#define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \
atomic_compare_exchange_weak(object, expected, desired)

#define FETCH_MODIFY(opname, op) \
static inline intptr_t atomic_fetch_ ## opname(intptr_t *object, intptr_t operand) \
{ \
intptr_t ret; \
ret = *object; \
*object = *object op operand; \
return ret; \
}

FETCH_MODIFY(add, +)
FETCH_MODIFY(sub, -)
FETCH_MODIFY(or, |)
FETCH_MODIFY(xor, ^)
FETCH_MODIFY(and, &)

#undef FETCH_MODIFY

#define atomic_fetch_add_explicit(object, operand, order) \
atomic_fetch_add(object, operand)

#define atomic_fetch_sub_explicit(object, operand, order) \
atomic_fetch_sub(object, operand)

#define atomic_fetch_or_explicit(object, operand, order) \
atomic_fetch_or(object, operand)

#define atomic_fetch_xor_explicit(object, operand, order) \
atomic_fetch_xor(object, operand)

#define atomic_fetch_and_explicit(object, operand, order) \
atomic_fetch_and(object, operand)

#define atomic_flag_test_and_set(object) \
atomic_exchange(object, 1)

#define atomic_flag_test_and_set_explicit(object, order) \
atomic_flag_test_and_set(object)

#define atomic_flag_clear(object) \
atomic_store(object, 0)

#define atomic_flag_clear_explicit(object, order) \
atomic_flag_clear(object)

#endif /* COMPAT_ATOMICS_DUMMY_STDATOMIC_H */
Loading

0 comments on commit 9e2ebb9

Please sign in to comment.