Ambisonic2SRenderer.h 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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) 2018 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. // interface declaration; Ambisonic to Stereo Renderer
  34. //-------------------------------------------------------------------------------------------------
  35. #ifndef AMF_Ambisonic2SRenderer_h
  36. #define AMF_Ambisonic2SRenderer_h
  37. #pragma once
  38. #include "public/include/components/Component.h"
  39. #define AMFAmbisonic2SRendererHW L"AMFAmbisonic2SRenderer"
  40. enum AMF_AMBISONIC2SRENDERER_MODE_ENUM
  41. {
  42. AMF_AMBISONIC2SRENDERER_MODE_SIMPLE = 0,
  43. AMF_AMBISONIC2SRENDERER_MODE_HRTF_AMD0 = 1,
  44. AMF_AMBISONIC2SRENDERER_MODE_HRTF_MIT1 = 2,
  45. };
  46. // static properties
  47. #define AMF_AMBISONIC2SRENDERER_IN_AUDIO_SAMPLE_RATE L"InSampleRate" // amf_int64 (default = 0)
  48. #define AMF_AMBISONIC2SRENDERER_IN_AUDIO_CHANNELS L"InChannels" // amf_int64 (only = 4)
  49. #define AMF_AMBISONIC2SRENDERER_IN_AUDIO_SAMPLE_FORMAT L"InSampleFormat" // amf_int64(AMF_AUDIO_FORMAT) (default = AMFAF_FLTP)
  50. #define AMF_AMBISONIC2SRENDERER_OUT_AUDIO_CHANNELS L"OutChannels" // amf_int64 (only = 2 - stereo)
  51. #define AMF_AMBISONIC2SRENDERER_OUT_AUDIO_SAMPLE_FORMAT L"OutSampleFormat" // amf_int64(AMF_AUDIO_FORMAT) (only = AMFAF_FLTP)
  52. #define AMF_AMBISONIC2SRENDERER_OUT_AUDIO_CHANNEL_LAYOUT L"OutChannelLayout" // amf_int64 (only = 3 - defalut stereo L R)
  53. #define AMF_AMBISONIC2SRENDERER_MODE L"StereoMode" //TODO: AMF_AMBISONIC2SRENDERER_MODE_ENUM(default=AMF_AMBISONIC2SRENDERER_MODE_HRTF)
  54. // dynamic properties
  55. #define AMF_AMBISONIC2SRENDERER_W L"w" //amf_int64 (default=0)
  56. #define AMF_AMBISONIC2SRENDERER_X L"x" //amf_int64 (default=1)
  57. #define AMF_AMBISONIC2SRENDERER_Y L"y" //amf_int64 (default=2)
  58. #define AMF_AMBISONIC2SRENDERER_Z L"z" //amf_int64 (default=3)
  59. #define AMF_AMBISONIC2SRENDERER_THETA L"Theta" //double (default=0.0)
  60. #define AMF_AMBISONIC2SRENDERER_PHI L"Phi" //double (default=0.0)
  61. #define AMF_AMBISONIC2SRENDERER_RHO L"Rho" //double (default=0.0)
  62. extern "C"
  63. {
  64. AMF_RESULT AMF_CDECL_CALL AMFCreateComponentAmbisonic(amf::AMFContext* pContext, void* reserved, amf::AMFComponent** ppComponent);
  65. }
  66. #endif //#ifndef AMF_Ambisonic2SRenderer_h