Skip to content

Commit 2cc5b04

Browse files
author
tnarine-amd
committed
Git subtree pull latest AMF shared code in preparation for 1.4.4 release.
2 parents 43b5211 + c713e89 commit 2cc5b04

File tree

10 files changed

+113
-26
lines changed

10 files changed

+113
-26
lines changed

amf/public/common/AMFSTL.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ extern "C"
5050
extern int vscwprintf(const wchar_t* p_fmt, va_list p_args);
5151
extern int vscprintf(const char* p_fmt, va_list p_args);
5252
}
53-
#elif _MSC_VER <= 1900
53+
#elif _MSC_VER <= 1910
5454
#define snprintf _snprintf
5555
#define vscprintf _vscprintf
5656
#define vscwprintf _vscwprintf // Count chars without writing to string
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
//
2+
// Notice Regarding Standards. AMD does not provide a license or sublicense to
3+
// any Intellectual Property Rights relating to any standards, including but not
4+
// limited to any audio and/or video codec technologies such as MPEG-2, MPEG-4;
5+
// AVC/H.264; HEVC/H.265; AAC decode/FFMPEG; AAC encode/FFMPEG; VC-1; and MP3
6+
// (collectively, the "Media Technologies"). For clarity, you will pay any
7+
// royalties due for such third party technologies, which may include the Media
8+
// Technologies that are owed as a result of AMD providing the Software to you.
9+
//
10+
// MIT license
11+
//
12+
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
13+
//
14+
// Permission is hereby granted, free of charge, to any person obtaining a copy
15+
// of this software and associated documentation files (the "Software"), to deal
16+
// in the Software without restriction, including without limitation the rights
17+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18+
// copies of the Software, and to permit persons to whom the Software is
19+
// furnished to do so, subject to the following conditions:
20+
//
21+
// The above copyright notice and this permission notice shall be included in
22+
// all copies or substantial portions of the Software.
23+
//
24+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
30+
// THE SOFTWARE.
31+
//
32+
33+
//-------------------------------------------------------------------------------------------------
34+
// interface declaration; Ambisonic to Stereo Renderer
35+
//-------------------------------------------------------------------------------------------------
36+
37+
#ifndef __AMFAmbisonic2SRendererHW__h__
38+
#define __AMFAmbisonic2SRendererHW__h__
39+
#pragma once
40+
41+
#include "public/include/components/Component.h"
42+
43+
#define AMFAmbisonic2SRendererHW L"AMFAmbisonic2SRenderer"
44+
45+
enum AMF_AMBISONIC2SRENDERER_MODE_ENUM
46+
{
47+
AMF_AMBISONIC2SRENDERER_MODE_SIMPLE = 0,
48+
AMF_AMBISONIC2SRENDERER_MODE_HRTF_AMD0 = 1,
49+
AMF_AMBISONIC2SRENDERER_MODE_HRTF_MIT1 = 2,
50+
};
51+
52+
53+
// static properties
54+
#define AMF_AMBISONIC2SRENDERER_IN_AUDIO_SAMPLE_RATE L"InSampleRate" // amf_int64 (default = 0)
55+
#define AMF_AMBISONIC2SRENDERER_IN_AUDIO_CHANNELS L"InChannels" // amf_int64 (only = 4)
56+
#define AMF_AMBISONIC2SRENDERER_IN_AUDIO_SAMPLE_FORMAT L"InSampleFormat" // amf_int64(AMF_AUDIO_FORMAT) (default = AMFAF_FLTP)
57+
58+
#define AMF_AMBISONIC2SRENDERER_OUT_AUDIO_CHANNELS L"OutChannels" // amf_int64 (only = 2 - stereo)
59+
#define AMF_AMBISONIC2SRENDERER_OUT_AUDIO_SAMPLE_FORMAT L"OutSampleFormat" // amf_int64(AMF_AUDIO_FORMAT) (only = AMFAF_FLTP)
60+
#define AMF_AMBISONIC2SRENDERER_OUT_AUDIO_CHANNEL_LAYOUT L"OutChannelLayout" // amf_int64 (only = 3 - defalut stereo L R)
61+
62+
#define AMF_AMBISONIC2SRENDERER_MODE L"StereoMode" //TODO: AMF_AMBISONIC2SRENDERER_MODE_ENUM(default=AMF_AMBISONIC2SRENDERER_MODE_HRTF)
63+
64+
65+
// dynamic properties
66+
#define AMF_AMBISONIC2SRENDERER_W L"w" //amf_int64 (default=0)
67+
#define AMF_AMBISONIC2SRENDERER_X L"x" //amf_int64 (default=1)
68+
#define AMF_AMBISONIC2SRENDERER_Y L"y" //amf_int64 (default=2)
69+
#define AMF_AMBISONIC2SRENDERER_Z L"z" //amf_int64 (default=3)
70+
71+
#define AMF_AMBISONIC2SRENDERER_THETA L"Theta" //double (default=0.0)
72+
#define AMF_AMBISONIC2SRENDERER_PHI L"Phi" //double (default=0.0)
73+
#define AMF_AMBISONIC2SRENDERER_RHO L"Rho" //double (default=0.0)
74+
75+
extern "C"
76+
{
77+
AMF_RESULT AMF_CDECL_CALL AMFCreateComponentAmbisonic(amf::AMFContext* pContext, void* reserved, amf::AMFComponent** ppComponent);
78+
}
79+
#endif //#ifndef __AMFAmbisonic2SRendererHW__h__

amf/public/include/components/FFMPEGFileDemuxer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,14 @@ enum FFMPEG_DEMUXER_STREAM_TYPE_ENUM
5151

5252
// component properties
5353
#define FFMPEG_DEMUXER_PATH L"Path" // string - the file to open
54+
#define FFMPEG_DEMUXER_URL L"Url" // string - the stream url to open
5455
#define FFMPEG_DEMUXER_START_FRAME L"StartFrame" // amf_int64 (default = 0)
5556
#define FFMPEG_DEMUXER_FRAME_COUNT L"FramesNumber" // amf_int64 (default = 0)
5657
#define FFMPEG_DEMUXER_DURATION L"Duration" // amf_int64 (default = 0)
5758
#define FFMPEG_DEMUXER_CHECK_MVC L"CheckMVC" // bool (default = true)
5859
//#define FFMPEG_DEMUXER_SYNC_AV L"SyncAV" // bool (default = false)
5960
#define FFMPEG_DEMUXER_INDIVIDUAL_STREAM_MODE L"StreamMode" // bool (default = true)
61+
#define FFMPEG_DEMUXER_LISTEN L"Listen" // bool (default = false)
6062

6163
//common stream properties
6264
#define FFMPEG_DEMUXER_STREAM_TYPE L"StreamType" // amf_int64( FFMPEG_DEMUXER_STREAM_TYPE_ENUM )

amf/public/include/components/FFMPEGFileMuxer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ enum FFMPEG_MUXER_STREAM_TYPE_ENUM
5151

5252
// component properties
5353
#define FFMPEG_MUXER_PATH L"Path" // string - the file to open
54+
#define FFMPEG_MUXER_URL L"Url" // string - the stream url to open
55+
#define FFMPEG_MUXER_LISTEN L"Listen" // bool (default = false)
5456
#define FFMPEG_MUXER_ENABLE_VIDEO L"EnableVideo" // bool (default = true)
5557
#define FFMPEG_MUXER_ENABLE_AUDIO L"EnableAudio" // bool (default = false)
5658

amf/public/include/components/VideoEncoderHEVC.h

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,18 @@
2020
// THE SOFTWARE.
2121
//
2222

23-
/**
24-
***************************************************************************************************
25-
* @file VideoEncoderHEVC.h
26-
* @brief AMFVideoEncoderHW_HEVC interface declaration
27-
***************************************************************************************************
28-
*/
23+
//-------------------------------------------------------------------------------------------------
24+
// VideoEncoderHW_HEVC interface declaration
25+
//-------------------------------------------------------------------------------------------------
26+
2927
#ifndef __AMFVideoEncoderHW_HEVC_h__
3028
#define __AMFVideoEncoderHW_HEVC_h__
29+
#pragma once
3130

3231
#include "Component.h"
3332

3433
#define AMFVideoEncoder_HEVC L"AMFVideoEncoderHW_HEVC"
3534

36-
//compiler def
37-
//#define H265_IMPLIMENTATION_DATED_TO_APR_2015
38-
3935
enum AMF_VIDEO_ENCODER_HEVC_USAGE_ENUM
4036
{
4137
AMF_VIDEO_ENCODER_HEVC_USAGE_TRANSCONDING = 0,
@@ -91,6 +87,7 @@ enum AMF_VIDEO_ENCODER_HEVC_PICTURE_TYPE_ENUM
9187

9288
enum AMF_VIDEO_ENCODER_HEVC_OUTPUT_DATA_TYPE_ENUM
9389
{
90+
AMF_VIDEO_ENCODER_HEVC_OUTPUT_DATA_TYPE_IDR,
9491
AMF_VIDEO_ENCODER_HEVC_OUTPUT_DATA_TYPE_I,
9592
AMF_VIDEO_ENCODER_HEVC_OUTPUT_DATA_TYPE_P
9693
};
@@ -138,13 +135,14 @@ enum AMF_VIDEO_ENCODER_HEVC_VBAQ_MODE_ENUM
138135
#define AMF_VIDEO_ENCODER_HEVC_HEADER_INSERTION_MODE L"HevcHeaderInsertionMode" // amf_int64(AMF_VIDEO_ENCODER_HEVC_HEADER_INSERTION_MODE_ENUM); default = NONE
139136

140137
// Rate control properties
141-
#define AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD L"HevcRateControlMethod" // amf_int64(AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_MODE_ENUM); default = depends on USAGE; Rate Control Method
138+
#define AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD L"HevcRateControlMethod" // amf_int64(AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_MODE_ENUM); default = depends on USAGE; Rate Control Method
142139
#define AMF_VIDEO_ENCODER_HEVC_FRAMERATE L"HevcFrameRate" // AMFRate; default = depends on usage; Frame Rate
143140
#define AMF_VIDEO_ENCODER_HEVC_VBV_BUFFER_SIZE L"HevcVBVBufferSize" // amf_int64; default = depends on USAGE; VBV Buffer Size in bits
144141
#define AMF_VIDEO_ENCODER_HEVC_INITIAL_VBV_BUFFER_FULLNESS L"HevcInitialVBVBufferFullness" // amf_int64; default = 64; Initial VBV Buffer Fullness 0=0% 64=100%
145142
#define AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_PREANALYSIS_ENABLE L"HevcRateControlPreAnalysisEnable" // bool; default = depends on USAGE; enable Pre-analysis assisted rate control
146143
#define AMF_VIDEO_ENCODER_HEVC_ENABLE_VBAQ L"HevcEnableVBAQ" // amf_int64(AMF_VIDEO_ENCODER_HEVC_VBAQ_MODE_ENUM) default = AMF_VIDEO_ENCODER_HEVC_VBAQ_MODE_NONE; Enable VBAQ
147144

145+
148146
// Dynamic properties - can be set at any time
149147

150148
// Rate control properties
@@ -163,10 +161,10 @@ enum AMF_VIDEO_ENCODER_HEVC_VBAQ_MODE_ENUM
163161
#define AMF_VIDEO_ENCODER_HEVC_QP_I L"HevcQP_I" // amf_int64; default = 26; P-frame QP; range = 0-51
164162
#define AMF_VIDEO_ENCODER_HEVC_QP_P L"HevcQP_P" // amf_int64; default = 26; P-frame QP; range = 0-51
165163

166-
#define AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_SKIP_FRAME_ENABLE L"HevcRateControlSkipFrameEnable" // bool; default = depends on USAGE; Rate Control Based Frame Skip
164+
#define AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_SKIP_FRAME_ENABLE L"HevcRateControlSkipFrameEnable" // bool; default = depends on USAGE; Rate Control Based Frame Skip
167165

168166

169-
// Motion estimation
167+
// Motion estimation
170168
#define AMF_VIDEO_ENCODER_HEVC_MOTION_HALF_PIXEL L"HevcHalfPixel" // bool; default= true; Half Pixel
171169
#define AMF_VIDEO_ENCODER_HEVC_MOTION_QUARTERPIXEL L"HevcQuarterPixel" // bool; default= true; Quarter Pixel
172170

@@ -179,10 +177,10 @@ enum AMF_VIDEO_ENCODER_HEVC_VBAQ_MODE_ENUM
179177
#define AMF_VIDEO_ENCODER_HEVC_MARK_CURRENT_WITH_LTR_INDEX L"HevcMarkCurrentWithLTRIndex" // amf_int64; default = N/A; Mark current frame with LTR index
180178
#define AMF_VIDEO_ENCODER_HEVC_FORCE_LTR_REFERENCE_BITFIELD L"HevcForceLTRReferenceBitfield"// amf_int64; default = 0; force LTR bit-field
181179

182-
// Properties set by encoder on output buffer interface
183-
#define AMF_VIDEO_ENCODER_HEVC_OUTPUT_DATA_TYPE L"HevcOutputDataType" // amf_int64(AMF_VIDEO_ENCODER_HEVC_OUTPUT_DATA_TYPE_ENUM); default = N/A
184-
#define AMF_VIDEO_ENCODER_HEVC_OUTPUT_MARKED_LTR_INDEX L"HevcMarkedLTRIndex" // amf_int64; default = -1; Marked LTR index
185-
#define AMF_VIDEO_ENCODER_HEVC_OUTPUT_REFERENCED_LTR_INDEX_BITFIELD L"HevcReferencedLTRIndexBitfield" // amf_int64; default = 0; referenced LTR bit-field
180+
// Properties set by encoder on output buffer interface
181+
#define AMF_VIDEO_ENCODER_HEVC_OUTPUT_DATA_TYPE L"HevcOutputDataType" // amf_int64(AMF_VIDEO_ENCODER_HEVC_OUTPUT_DATA_TYPE_ENUM); default = N/A
182+
#define AMF_VIDEO_ENCODER_HEVC_OUTPUT_MARKED_LTR_INDEX L"HevcMarkedLTRIndex" // amf_int64; default = -1; Marked LTR index
183+
#define AMF_VIDEO_ENCODER_HEVC_OUTPUT_REFERENCED_LTR_INDEX_BITFIELD L"HevcReferencedLTRIndexBitfield"// amf_int64; default = 0; referenced LTR bit-field
186184

187185
// HEVC Encoder capabilities - exposed in AMFCaps interface
188186
#define AMF_VIDEO_ENCODER_HEVC_CAP_MAX_BITRATE L"HevcMaxBitrate" // amf_int64; Maximum bit rate in bits

amf/public/include/components/VideoEncoderVCE.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,7 @@ enum AMF_VIDEO_ENCODER_OUTPUT_DATA_TYPE_ENUM
108108
enum AMF_VIDEO_ENCODER_PREENCODE_MODE_ENUM
109109
{
110110
AMF_VIDEO_ENCODER_PREENCODE_DISABLED = 0,
111-
AMF_VIDEO_ENCODER_PREENCODE_ENABLED,
112-
AMF_VIDEO_ENCODER_PREENCODE_ENABLED_DOWNSCALEFACTOR_2,
113-
AMF_VIDEO_ENCODER_PREENCODE_ENABLED_DOWNSCALEFACTOR_4
111+
AMF_VIDEO_ENCODER_PREENCODE_ENABLED = 1,
114112
};
115113

116114
enum AMF_VIDEO_ENCODER_CODING_ENUM
@@ -135,7 +133,8 @@ enum AMF_VIDEO_ENCODER_CODING_ENUM
135133
#define AMF_VIDEO_ENCODER_SCANTYPE L"ScanType" // amf_int64(AMF_VIDEO_ENCODER_SCANTYPE_ENUM); default = AMF_VIDEO_ENCODER_SCANTYPE_PROGRESSIVE; indicates input stream type
136134
#define AMF_VIDEO_ENCODER_MAX_NUM_REFRAMES L"MaxNumRefFrames" // amf_int64; Maximum number of reference frames
137135
#define AMF_VIDEO_ENCODER_ASPECT_RATIO L"AspectRatio" // AMFRatio; default = 1, 1
138-
#define AMF_VIDEO_ENCODER_FULL_RANGE_COLOR L"FullRangeColor" // bool; default = false; inidicates that YUV input is (0,255)
136+
#define AMF_VIDEO_ENCODER_FULL_RANGE_COLOR L"FullRangeColor" // bool; default = false; inidicates that YUV input is (0,255)
137+
#define AMF_VIDEO_ENCODER_RATE_CONTROL_PREANALYSIS_ENABLE L"RateControlPreanalysisEnable" // amf_int64(AMF_VIDEO_ENCODER_PREENCODE_MODE_ENUM); default = AMF_VIDEO_ENCODER_PREENCODE_DISABLED; controls Pre-analysis assisted rate control
139138

140139
// Quality preset property
141140
#define AMF_VIDEO_ENCODER_QUALITY_PRESET L"QualityPreset" // amf_int64(AMF_VIDEO_ENCODER_QUALITY_PRESET_ENUM); default = depends on USAGE; Quality Preset
@@ -166,7 +165,6 @@ enum AMF_VIDEO_ENCODER_CODING_ENUM
166165
#define AMF_VIDEO_ENCODER_PEAK_BITRATE L"PeakBitrate" // amf_int64; default = depends on USAGE; Peak bit rate in bits
167166
#define AMF_VIDEO_ENCODER_RATE_CONTROL_SKIP_FRAME_ENABLE L"RateControlSkipFrameEnable" // bool; default = depends on USAGE; Rate Control Based Frame Skip
168167
#define AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD L"RateControlMethod" // amf_int64(AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_ENUM); default = depends on USAGE; Rate Control Method
169-
#define AMF_VIDEO_ENCODER_RATE_CONTROL_PREANALYSIS_ENABLE L"RateControlPreanalysisEnable" // amf_int64(AMF_VIDEO_ENCODER_PREENCODE_MODE_ENUM); default = AMF_VIDEO_ENCODER_PREENCODE_DISABLED; controls Pre-analysis assisted rate control
170168

171169
// Picture control properties
172170
#define AMF_VIDEO_ENCODER_HEADER_INSERTION_SPACING L"HeaderInsertionSpacing" // amf_int64; default = depends on USAGE; Header Insertion Spacing; range 0-1000

amf/public/include/core/Debug.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ namespace amf
7070
};
7171

7272
#endif // #if defined(__cplusplus)
73-
7473
//----------------------------------------------------------------------------------------------
7574
#if defined(__cplusplus)
7675
}

amf/public/include/core/Platform.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@
5656

5757
#define AMF_TODO(_todo) (__FILE__ "(" AMF_MACRO_STRING(__LINE__) "): TODO: "_todo)
5858

59+
60+
#if defined(__GNUC__) || defined(__clang__)
61+
#define AMF_ALIGN(n) __attribute__((aligned(n)))
62+
#elif defined(_MSC_VER) || defined(__INTEL_COMPILER)
63+
#define AMF_ALIGN(n) __declspec(align(n))
64+
#else
65+
#define AMF_ALIGN(n)
66+
// #error Need to define AMF_ALIGN
67+
#endif
68+
5969
#include <stdio.h>
6070
#include <stdint.h>
6171

amf/public/include/core/Variant.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,9 @@
3838
#endif
3939

4040
#include "Interface.h"
41-
#if defined(__cplusplus)
4241
#include <locale.h>
4342
#include <wchar.h>
44-
#endif
43+
#include <string.h>
4544

4645
#if defined(__cplusplus)
4746
namespace amf

amf/public/include/core/Version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151

5252
#define AMF_VERSION_MAJOR 1
5353
#define AMF_VERSION_MINOR 4
54-
#define AMF_VERSION_RELEASE 2
54+
#define AMF_VERSION_RELEASE 4
5555
#define AMF_VERSION_BUILD_NUM 0
5656

5757
#define AMF_FULL_VERSION AMF_MAKE_FULL_VERSION(AMF_VERSION_MAJOR, AMF_VERSION_MINOR, AMF_VERSION_RELEASE, AMF_VERSION_BUILD_NUM)

0 commit comments

Comments
 (0)