diff options
| author | Lioncash <mathew1800@gmail.com> | 2020-10-27 02:09:17 -0400 | 
|---|---|---|
| committer | Lioncash <mathew1800@gmail.com> | 2020-10-27 02:16:42 -0400 | 
| commit | c04203b786d87ecb66811341e7ea776452664e91 (patch) | |
| tree | 425b6993279146d7096d8af35287f3cc26127e40 /src/video_core | |
| parent | d33399e1f46a10490b586196c6d0db0f04be4206 (diff) | |
nvdec: Tidy up header includes
Prevents a few unnecessary inclusions.
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/command_classes/codecs/codec.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/command_classes/codecs/codec.h | 2 | ||||
| -rw-r--r-- | src/video_core/command_classes/codecs/h264.cpp | 15 | ||||
| -rw-r--r-- | src/video_core/command_classes/codecs/h264.h | 12 | ||||
| -rw-r--r-- | src/video_core/command_classes/codecs/vp9.cpp | 31 | ||||
| -rw-r--r-- | src/video_core/command_classes/codecs/vp9.h | 32 | ||||
| -rw-r--r-- | src/video_core/command_classes/codecs/vp9_types.h | 6 | ||||
| -rw-r--r-- | src/video_core/command_classes/host1x.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/command_classes/host1x.h | 2 | ||||
| -rw-r--r-- | src/video_core/command_classes/nvdec.cpp | 6 | ||||
| -rw-r--r-- | src/video_core/command_classes/nvdec.h | 6 | ||||
| -rw-r--r-- | src/video_core/command_classes/vic.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/command_classes/vic.h | 4 | 
13 files changed, 59 insertions, 62 deletions
| diff --git a/src/video_core/command_classes/codecs/codec.cpp b/src/video_core/command_classes/codecs/codec.cpp index 2df410be8..1adf3cd13 100644 --- a/src/video_core/command_classes/codecs/codec.cpp +++ b/src/video_core/command_classes/codecs/codec.cpp @@ -4,6 +4,7 @@  #include <cstring>  #include <fstream> +#include <vector>  #include "common/assert.h"  #include "video_core/command_classes/codecs/codec.h"  #include "video_core/command_classes/codecs/h264.h" diff --git a/src/video_core/command_classes/codecs/codec.h b/src/video_core/command_classes/codecs/codec.h index 2e56daf29..cb67094f6 100644 --- a/src/video_core/command_classes/codecs/codec.h +++ b/src/video_core/command_classes/codecs/codec.h @@ -5,8 +5,6 @@  #pragma once  #include <memory> -#include <vector> -#include "common/common_funcs.h"  #include "common/common_types.h"  #include "video_core/command_classes/nvdec_common.h" diff --git a/src/video_core/command_classes/codecs/h264.cpp b/src/video_core/command_classes/codecs/h264.cpp index 1a39f7b23..54a749e2b 100644 --- a/src/video_core/command_classes/codecs/h264.cpp +++ b/src/video_core/command_classes/codecs/h264.cpp @@ -18,12 +18,27 @@  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  // +#include <array>  #include "common/bit_util.h"  #include "video_core/command_classes/codecs/h264.h"  #include "video_core/gpu.h"  #include "video_core/memory_manager.h"  namespace Tegra::Decoder { +namespace { +// ZigZag LUTs from libavcodec. +constexpr std::array<u8, 64> zig_zag_direct{ +    0,  1,  8,  16, 9,  2,  3,  10, 17, 24, 32, 25, 18, 11, 4,  5,  12, 19, 26, 33, 40, 48, +    41, 34, 27, 20, 13, 6,  7,  14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, +    30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63, +}; + +constexpr std::array<u8, 16> zig_zag_scan{ +    0 + 0 * 4, 1 + 0 * 4, 0 + 1 * 4, 0 + 2 * 4, 1 + 1 * 4, 2 + 0 * 4, 3 + 0 * 4, 2 + 1 * 4, +    1 + 2 * 4, 0 + 3 * 4, 1 + 3 * 4, 2 + 2 * 4, 3 + 1 * 4, 3 + 2 * 4, 2 + 3 * 4, 3 + 3 * 4, +}; +} // Anonymous namespace +  H264::H264(GPU& gpu_) : gpu(gpu_) {}  H264::~H264() = default; diff --git a/src/video_core/command_classes/codecs/h264.h b/src/video_core/command_classes/codecs/h264.h index 21752dd90..c36a54399 100644 --- a/src/video_core/command_classes/codecs/h264.h +++ b/src/video_core/command_classes/codecs/h264.h @@ -55,18 +55,6 @@ public:      const std::vector<u8>& GetByteArray() const;  private: -    // ZigZag LUTs from libavcodec. -    static constexpr std::array<u8, 64> zig_zag_direct{ -        0,  1,  8,  16, 9,  2,  3,  10, 17, 24, 32, 25, 18, 11, 4,  5,  12, 19, 26, 33, 40, 48, -        41, 34, 27, 20, 13, 6,  7,  14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, -        30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63, -    }; - -    static constexpr std::array<u8, 16> zig_zag_scan{ -        0 + 0 * 4, 1 + 0 * 4, 0 + 1 * 4, 0 + 2 * 4, 1 + 1 * 4, 2 + 0 * 4, 3 + 0 * 4, 2 + 1 * 4, -        1 + 2 * 4, 0 + 3 * 4, 1 + 3 * 4, 2 + 2 * 4, 3 + 1 * 4, 3 + 2 * 4, 2 + 3 * 4, 3 + 3 * 4, -    }; -      void WriteBits(s32 value, s32 bit_count);      void WriteExpGolombCodedInt(s32 value);      void WriteExpGolombCodedUInt(u32 value); diff --git a/src/video_core/command_classes/codecs/vp9.cpp b/src/video_core/command_classes/codecs/vp9.cpp index 3bae0bb5d..d888e773a 100644 --- a/src/video_core/command_classes/codecs/vp9.cpp +++ b/src/video_core/command_classes/codecs/vp9.cpp @@ -9,7 +9,7 @@  #include "video_core/memory_manager.h"  namespace Tegra::Decoder { - +namespace {  // Default compressed header probabilities once frame context resets  constexpr Vp9EntropyProbs default_probs{      .y_mode_prob{ @@ -170,6 +170,35 @@ constexpr Vp9EntropyProbs default_probs{      .high_precision{128, 128},  }; +constexpr std::array<s32, 256> norm_lut{ +    0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +constexpr std::array<s32, 254> map_lut{ +    20,  21,  22,  23,  24,  25,  0,   26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37, +    1,   38,  39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,  2,   50,  51,  52,  53,  54, +    55,  56,  57,  58,  59,  60,  61,  3,   62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72, +    73,  4,   74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  5,   86,  87,  88,  89, +    90,  91,  92,  93,  94,  95,  96,  97,  6,   98,  99,  100, 101, 102, 103, 104, 105, 106, 107, +    108, 109, 7,   110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 8,   122, 123, 124, +    125, 126, 127, 128, 129, 130, 131, 132, 133, 9,   134, 135, 136, 137, 138, 139, 140, 141, 142, +    143, 144, 145, 10,  146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 11,  158, 159, +    160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 12,  170, 171, 172, 173, 174, 175, 176, 177, +    178, 179, 180, 181, 13,  182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 14,  194, +    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 15,  206, 207, 208, 209, 210, 211, 212, +    213, 214, 215, 216, 217, 16,  218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 17, +    230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 18,  242, 243, 244, 245, 246, 247, +    248, 249, 250, 251, 252, 253, 19, +}; +} // Anonymous namespace +  VP9::VP9(GPU& gpu) : gpu(gpu) {}  VP9::~VP9() = default; diff --git a/src/video_core/command_classes/codecs/vp9.h b/src/video_core/command_classes/codecs/vp9.h index 748e11bae..dc52ddbde 100644 --- a/src/video_core/command_classes/codecs/vp9.h +++ b/src/video_core/command_classes/codecs/vp9.h @@ -4,9 +4,9 @@  #pragma once -#include <unordered_map> +#include <array>  #include <vector> -#include "common/common_funcs.h" +  #include "common/common_types.h"  #include "common/stream.h"  #include "video_core/command_classes/codecs/vp9_types.h" @@ -52,17 +52,6 @@ private:      u32 range{0xff};      s32 count{-24};      s32 half_probability{128}; -    static constexpr std::array<s32, 256> norm_lut{ -        0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, -        3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -        2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -    };  };  class VpxBitStreamWriter { @@ -193,23 +182,6 @@ private:      s32 diff_update_probability = 252;      s32 frame_sync_code = 0x498342; -    static constexpr std::array<s32, 254> map_lut = { -        20,  21,  22,  23,  24,  25,  0,   26,  27,  28,  29,  30,  31,  32,  33,  34,  35, -        36,  37,  1,   38,  39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,  2,   50, -        51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  3,   62,  63,  64,  65,  66, -        67,  68,  69,  70,  71,  72,  73,  4,   74,  75,  76,  77,  78,  79,  80,  81,  82, -        83,  84,  85,  5,   86,  87,  88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  6, -        98,  99,  100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 7,   110, 111, 112, 113, -        114, 115, 116, 117, 118, 119, 120, 121, 8,   122, 123, 124, 125, 126, 127, 128, 129, -        130, 131, 132, 133, 9,   134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, -        10,  146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 11,  158, 159, 160, -        161, 162, 163, 164, 165, 166, 167, 168, 169, 12,  170, 171, 172, 173, 174, 175, 176, -        177, 178, 179, 180, 181, 13,  182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -        193, 14,  194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 15,  206, 207, -        208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 16,  218, 219, 220, 221, 222, 223, -        224, 225, 226, 227, 228, 229, 17,  230, 231, 232, 233, 234, 235, 236, 237, 238, 239, -        240, 241, 18,  242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 19, -    };  };  } // namespace Decoder diff --git a/src/video_core/command_classes/codecs/vp9_types.h b/src/video_core/command_classes/codecs/vp9_types.h index 8688fdac0..a50acf6e8 100644 --- a/src/video_core/command_classes/codecs/vp9_types.h +++ b/src/video_core/command_classes/codecs/vp9_types.h @@ -4,13 +4,11 @@  #pragma once -#include <algorithm> -#include <list> +#include <array> +#include <cstring>  #include <vector> -#include "common/cityhash.h"  #include "common/common_funcs.h"  #include "common/common_types.h" -#include "video_core/command_classes/nvdec_common.h"  namespace Tegra {  class GPU; diff --git a/src/video_core/command_classes/host1x.cpp b/src/video_core/command_classes/host1x.cpp index a5234ee47..c4dd4881a 100644 --- a/src/video_core/command_classes/host1x.cpp +++ b/src/video_core/command_classes/host1x.cpp @@ -15,7 +15,7 @@ void Tegra::Host1x::StateWrite(u32 offset, u32 arguments) {      std::memcpy(state_offset, &arguments, sizeof(u32));  } -void Tegra::Host1x::ProcessMethod(Host1x::Method method, const std::vector<u32>& arguments) { +void Tegra::Host1x::ProcessMethod(Method method, const std::vector<u32>& arguments) {      StateWrite(static_cast<u32>(method), arguments[0]);      switch (method) {      case Method::WaitSyncpt: diff --git a/src/video_core/command_classes/host1x.h b/src/video_core/command_classes/host1x.h index 501a5ed2e..013eaa0c1 100644 --- a/src/video_core/command_classes/host1x.h +++ b/src/video_core/command_classes/host1x.h @@ -61,7 +61,7 @@ public:      ~Host1x();      /// Writes the method into the state, Invoke Execute() if encountered -    void ProcessMethod(Host1x::Method method, const std::vector<u32>& arguments); +    void ProcessMethod(Method method, const std::vector<u32>& arguments);  private:      /// For Host1x, execute is waiting on a syncpoint previously written into the state diff --git a/src/video_core/command_classes/nvdec.cpp b/src/video_core/command_classes/nvdec.cpp index ede9466eb..8ca7a7b06 100644 --- a/src/video_core/command_classes/nvdec.cpp +++ b/src/video_core/command_classes/nvdec.cpp @@ -2,13 +2,9 @@  // Licensed under GPLv2 or any later version  // Refer to the license.txt file included. -#include <bitset>  #include "common/assert.h" -#include "common/bit_util.h" -#include "core/memory.h"  #include "video_core/command_classes/nvdec.h"  #include "video_core/gpu.h" -#include "video_core/memory_manager.h"  namespace Tegra { @@ -16,7 +12,7 @@ Nvdec::Nvdec(GPU& gpu_) : gpu(gpu_), codec(std::make_unique<Codec>(gpu)) {}  Nvdec::~Nvdec() = default; -void Nvdec::ProcessMethod(Nvdec::Method method, const std::vector<u32>& arguments) { +void Nvdec::ProcessMethod(Method method, const std::vector<u32>& arguments) {      if (method == Method::SetVideoCodec) {          codec->StateWrite(static_cast<u32>(method), arguments[0]);      } else { diff --git a/src/video_core/command_classes/nvdec.h b/src/video_core/command_classes/nvdec.h index c1a9d843e..af14f9857 100644 --- a/src/video_core/command_classes/nvdec.h +++ b/src/video_core/command_classes/nvdec.h @@ -4,8 +4,8 @@  #pragma once +#include <memory>  #include <vector> -#include "common/common_funcs.h"  #include "common/common_types.h"  #include "video_core/command_classes/codecs/codec.h" @@ -23,7 +23,7 @@ public:      ~Nvdec();      /// Writes the method into the state, Invoke Execute() if encountered -    void ProcessMethod(Nvdec::Method method, const std::vector<u32>& arguments); +    void ProcessMethod(Method method, const std::vector<u32>& arguments);      /// Return most recently decoded frame      AVFrame* GetFrame(); @@ -34,6 +34,6 @@ private:      void Execute();      GPU& gpu; -    std::unique_ptr<Tegra::Codec> codec; +    std::unique_ptr<Codec> codec;  };  } // namespace Tegra diff --git a/src/video_core/command_classes/vic.cpp b/src/video_core/command_classes/vic.cpp index 66e15a1a8..5b52da277 100644 --- a/src/video_core/command_classes/vic.cpp +++ b/src/video_core/command_classes/vic.cpp @@ -26,7 +26,7 @@ void Vic::VicStateWrite(u32 offset, u32 arguments) {      std::memcpy(state_offset, &arguments, sizeof(u32));  } -void Vic::ProcessMethod(Vic::Method method, const std::vector<u32>& arguments) { +void Vic::ProcessMethod(Method method, const std::vector<u32>& arguments) {      LOG_DEBUG(HW_GPU, "Vic method 0x{:X}", static_cast<u32>(method));      VicStateWrite(static_cast<u32>(method), arguments[0]);      const u64 arg = static_cast<u64>(arguments[0]) << 8; diff --git a/src/video_core/command_classes/vic.h b/src/video_core/command_classes/vic.h index dd0a2aed8..8c4e284a1 100644 --- a/src/video_core/command_classes/vic.h +++ b/src/video_core/command_classes/vic.h @@ -63,11 +63,11 @@ public:          SetOutputSurfaceChromaVOffset = 0x1ca      }; -    explicit Vic(GPU& gpu, std::shared_ptr<Tegra::Nvdec> nvdec_processor); +    explicit Vic(GPU& gpu, std::shared_ptr<Nvdec> nvdec_processor);      ~Vic();      /// Write to the device state. -    void ProcessMethod(Vic::Method method, const std::vector<u32>& arguments); +    void ProcessMethod(Method method, const std::vector<u32>& arguments);  private:      void Execute(); | 
