summaryrefslogtreecommitdiffstats
path: root/src/video_core/command_classes/codecs/h264.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2020-10-27 07:09:17 +0100
committerLioncash <mathew1800@gmail.com>2020-10-27 07:16:42 +0100
commitc04203b786d87ecb66811341e7ea776452664e91 (patch)
tree425b6993279146d7096d8af35287f3cc26127e40 /src/video_core/command_classes/codecs/h264.cpp
parentMerge pull request #4729 from ameerj/nvdec-prod (diff)
downloadyuzu-c04203b786d87ecb66811341e7ea776452664e91.tar
yuzu-c04203b786d87ecb66811341e7ea776452664e91.tar.gz
yuzu-c04203b786d87ecb66811341e7ea776452664e91.tar.bz2
yuzu-c04203b786d87ecb66811341e7ea776452664e91.tar.lz
yuzu-c04203b786d87ecb66811341e7ea776452664e91.tar.xz
yuzu-c04203b786d87ecb66811341e7ea776452664e91.tar.zst
yuzu-c04203b786d87ecb66811341e7ea776452664e91.zip
Diffstat (limited to 'src/video_core/command_classes/codecs/h264.cpp')
-rw-r--r--src/video_core/command_classes/codecs/h264.cpp15
1 files changed, 15 insertions, 0 deletions
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;