Skip to content

Commit 9e2ebb9

Browse files
committed
AMF v1.4.28 release
1 parent 734a9ae commit 9e2ebb9

File tree

1,051 files changed

+200529
-582
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,051 files changed

+200529
-582
lines changed

README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,22 @@ AMF is a light-weight, portable multimedia framework that abstracts away most of
1616
* Linux
1717
* RHEL 8.4 / 7.9
1818
* CentOS 8.4 / 7.9
19-
* Ubuntu 20.04.2 / 18.04.5 HWE
19+
* Ubuntu 22.04 / 20.04.2
2020
* SLED/SLES 15 SP3
2121
* Driver and AMF component installation instructions are available on the [Wiki page](https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki).
2222
* 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.
2323
* All supported distros include the AMF runtime starting driver version 20.40.
2424

2525
| OS | AMF included starting version: |
2626
| ------------- |:-------------: |
27-
| Ubuntu 18.04.1 | 18.30 |
2827
| SLE 15 | 18.40 |
2928
| Ubuntu 20.04.0 | 20.20 |
3029
| \**All supported distros* | 20.40 |
3130

3231
* AMF SDK is backward compatible with all previous driver versions.
33-
* 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.
32+
* 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.
33+
* 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.
34+
* 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.
3435
* 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.
3536
* 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.
3637
* 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.
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 numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Work around the class() function in AIX math.h clashing with
3+
* identifiers named "class".
4+
*
5+
* This file is part of FFmpeg.
6+
*
7+
* FFmpeg is free software; you can redistribute it and/or
8+
* modify it under the terms of the GNU Lesser General Public
9+
* License as published by the Free Software Foundation; either
10+
* version 2.1 of the License, or (at your option) any later version.
11+
*
12+
* FFmpeg is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with FFmpeg; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20+
*/
21+
22+
#ifndef COMPAT_AIX_MATH_H
23+
#define COMPAT_AIX_MATH_H
24+
25+
#define class class_in_math_h_causes_problems
26+
27+
#include_next <math.h>
28+
29+
#undef class
30+
31+
#endif /* COMPAT_AIX_MATH_H */
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
/*
2+
* This file is part of FFmpeg.
3+
*
4+
* FFmpeg is free software; you can redistribute it and/or
5+
* modify it under the terms of the GNU Lesser General Public
6+
* License as published by the Free Software Foundation; either
7+
* version 2.1 of the License, or (at your option) any later version.
8+
*
9+
* FFmpeg is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+
* Lesser General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU Lesser General Public
15+
* License along with FFmpeg; if not, write to the Free Software
16+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17+
*/
18+
19+
/*
20+
* based on vlc_atomic.h from VLC
21+
* Copyright (C) 2010 Rémi Denis-Courmont
22+
*/
23+
24+
#ifndef COMPAT_ATOMICS_DUMMY_STDATOMIC_H
25+
#define COMPAT_ATOMICS_DUMMY_STDATOMIC_H
26+
27+
#include <stdint.h>
28+
29+
#define ATOMIC_FLAG_INIT 0
30+
31+
#define ATOMIC_VAR_INIT(value) (value)
32+
33+
#define atomic_init(obj, value) \
34+
do { \
35+
*(obj) = (value); \
36+
} while(0)
37+
38+
#define kill_dependency(y) ((void)0)
39+
40+
#define atomic_thread_fence(order) \
41+
((void)0)
42+
43+
#define atomic_signal_fence(order) \
44+
((void)0)
45+
46+
#define atomic_is_lock_free(obj) 0
47+
48+
typedef intptr_t atomic_flag;
49+
typedef intptr_t atomic_bool;
50+
typedef intptr_t atomic_char;
51+
typedef intptr_t atomic_schar;
52+
typedef intptr_t atomic_uchar;
53+
typedef intptr_t atomic_short;
54+
typedef intptr_t atomic_ushort;
55+
typedef intptr_t atomic_int;
56+
typedef intptr_t atomic_uint;
57+
typedef intptr_t atomic_long;
58+
typedef intptr_t atomic_ulong;
59+
typedef intptr_t atomic_llong;
60+
typedef intptr_t atomic_ullong;
61+
typedef intptr_t atomic_wchar_t;
62+
typedef intptr_t atomic_int_least8_t;
63+
typedef intptr_t atomic_uint_least8_t;
64+
typedef intptr_t atomic_int_least16_t;
65+
typedef intptr_t atomic_uint_least16_t;
66+
typedef intptr_t atomic_int_least32_t;
67+
typedef intptr_t atomic_uint_least32_t;
68+
typedef intptr_t atomic_int_least64_t;
69+
typedef intptr_t atomic_uint_least64_t;
70+
typedef intptr_t atomic_int_fast8_t;
71+
typedef intptr_t atomic_uint_fast8_t;
72+
typedef intptr_t atomic_int_fast16_t;
73+
typedef intptr_t atomic_uint_fast16_t;
74+
typedef intptr_t atomic_int_fast32_t;
75+
typedef intptr_t atomic_uint_fast32_t;
76+
typedef intptr_t atomic_int_fast64_t;
77+
typedef intptr_t atomic_uint_fast64_t;
78+
typedef intptr_t atomic_intptr_t;
79+
typedef intptr_t atomic_uintptr_t;
80+
typedef intptr_t atomic_size_t;
81+
typedef intptr_t atomic_ptrdiff_t;
82+
typedef intptr_t atomic_intmax_t;
83+
typedef intptr_t atomic_uintmax_t;
84+
85+
#define atomic_store(object, desired) \
86+
do { \
87+
*(object) = (desired); \
88+
} while (0)
89+
90+
#define atomic_store_explicit(object, desired, order) \
91+
atomic_store(object, desired)
92+
93+
#define atomic_load(object) \
94+
(*(object))
95+
96+
#define atomic_load_explicit(object, order) \
97+
atomic_load(object)
98+
99+
static inline intptr_t atomic_exchange(intptr_t *object, intptr_t desired)
100+
{
101+
intptr_t ret = *object;
102+
*object = desired;
103+
return ret;
104+
}
105+
106+
#define atomic_exchange_explicit(object, desired, order) \
107+
atomic_exchange(object, desired)
108+
109+
static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *expected,
110+
intptr_t desired)
111+
{
112+
int ret;
113+
if (*object == *expected) {
114+
*object = desired;
115+
ret = 1;
116+
} else {
117+
*expected = *object;
118+
ret = 0;
119+
}
120+
return ret;
121+
}
122+
123+
#define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \
124+
atomic_compare_exchange_strong(object, expected, desired)
125+
126+
#define atomic_compare_exchange_weak(object, expected, desired) \
127+
atomic_compare_exchange_strong(object, expected, desired)
128+
129+
#define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \
130+
atomic_compare_exchange_weak(object, expected, desired)
131+
132+
#define FETCH_MODIFY(opname, op) \
133+
static inline intptr_t atomic_fetch_ ## opname(intptr_t *object, intptr_t operand) \
134+
{ \
135+
intptr_t ret; \
136+
ret = *object; \
137+
*object = *object op operand; \
138+
return ret; \
139+
}
140+
141+
FETCH_MODIFY(add, +)
142+
FETCH_MODIFY(sub, -)
143+
FETCH_MODIFY(or, |)
144+
FETCH_MODIFY(xor, ^)
145+
FETCH_MODIFY(and, &)
146+
147+
#undef FETCH_MODIFY
148+
149+
#define atomic_fetch_add_explicit(object, operand, order) \
150+
atomic_fetch_add(object, operand)
151+
152+
#define atomic_fetch_sub_explicit(object, operand, order) \
153+
atomic_fetch_sub(object, operand)
154+
155+
#define atomic_fetch_or_explicit(object, operand, order) \
156+
atomic_fetch_or(object, operand)
157+
158+
#define atomic_fetch_xor_explicit(object, operand, order) \
159+
atomic_fetch_xor(object, operand)
160+
161+
#define atomic_fetch_and_explicit(object, operand, order) \
162+
atomic_fetch_and(object, operand)
163+
164+
#define atomic_flag_test_and_set(object) \
165+
atomic_exchange(object, 1)
166+
167+
#define atomic_flag_test_and_set_explicit(object, order) \
168+
atomic_flag_test_and_set(object)
169+
170+
#define atomic_flag_clear(object) \
171+
atomic_store(object, 0)
172+
173+
#define atomic_flag_clear_explicit(object, order) \
174+
atomic_flag_clear(object)
175+
176+
#endif /* COMPAT_ATOMICS_DUMMY_STDATOMIC_H */

0 commit comments

Comments
 (0)