diff options
| author | 2020-10-27 02:50:03 -0400 | |
|---|---|---|
| committer | 2020-10-27 03:21:53 -0400 | |
| commit | cce14b4cd75fd3bbab548375a0a547ec499283e2 (patch) | |
| tree | 4e7b8e774ba4a07489b14ab6b42ada58d476ec14 | |
| parent | vp9: std::move buffer within ComposeFrameHeader() (diff) | |
| download | yuzu-cce14b4cd75fd3bbab548375a0a547ec499283e2.tar.gz yuzu-cce14b4cd75fd3bbab548375a0a547ec499283e2.tar.xz yuzu-cce14b4cd75fd3bbab548375a0a547ec499283e2.zip | |
h264: Make WriteUe take a u32
Enforces the type of the desired value in calling code.
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/command_classes/codecs/h264.cpp | 13 | ||||
| -rw-r--r-- | src/video_core/command_classes/codecs/h264.h | 2 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/video_core/command_classes/codecs/h264.cpp b/src/video_core/command_classes/codecs/h264.cpp index 54a749e2b..549a40f52 100644 --- a/src/video_core/command_classes/codecs/h264.cpp +++ b/src/video_core/command_classes/codecs/h264.cpp | |||
| @@ -63,7 +63,8 @@ std::vector<u8>& H264::ComposeFrameHeader(NvdecCommon::NvdecRegisters& state, bo | |||
| 63 | writer.WriteU(0, 8); | 63 | writer.WriteU(0, 8); |
| 64 | writer.WriteU(31, 8); | 64 | writer.WriteU(31, 8); |
| 65 | writer.WriteUe(0); | 65 | writer.WriteUe(0); |
| 66 | const s32 chroma_format_idc = (context.h264_parameter_set.flags >> 12) & 0x3; | 66 | const auto chroma_format_idc = |
| 67 | static_cast<u32>((context.h264_parameter_set.flags >> 12) & 3); | ||
| 67 | writer.WriteUe(chroma_format_idc); | 68 | writer.WriteUe(chroma_format_idc); |
| 68 | if (chroma_format_idc == 3) { | 69 | if (chroma_format_idc == 3) { |
| 69 | writer.WriteBit(false); | 70 | writer.WriteBit(false); |
| @@ -74,8 +75,8 @@ std::vector<u8>& H264::ComposeFrameHeader(NvdecCommon::NvdecRegisters& state, bo | |||
| 74 | writer.WriteBit(false); // QpprimeYZeroTransformBypassFlag | 75 | writer.WriteBit(false); // QpprimeYZeroTransformBypassFlag |
| 75 | writer.WriteBit(false); // Scaling matrix present flag | 76 | writer.WriteBit(false); // Scaling matrix present flag |
| 76 | 77 | ||
| 77 | const s32 order_cnt_type = static_cast<s32>((context.h264_parameter_set.flags >> 14) & 3); | 78 | const auto order_cnt_type = static_cast<u32>((context.h264_parameter_set.flags >> 14) & 3); |
| 78 | writer.WriteUe(static_cast<s32>((context.h264_parameter_set.flags >> 8) & 0xf)); | 79 | writer.WriteUe(static_cast<u32>((context.h264_parameter_set.flags >> 8) & 0xf)); |
| 79 | writer.WriteUe(order_cnt_type); | 80 | writer.WriteUe(order_cnt_type); |
| 80 | if (order_cnt_type == 0) { | 81 | if (order_cnt_type == 0) { |
| 81 | writer.WriteUe(context.h264_parameter_set.log2_max_pic_order_cnt); | 82 | writer.WriteUe(context.h264_parameter_set.log2_max_pic_order_cnt); |
| @@ -115,7 +116,7 @@ std::vector<u8>& H264::ComposeFrameHeader(NvdecCommon::NvdecRegisters& state, bo | |||
| 115 | writer.WriteUe(0); | 116 | writer.WriteUe(0); |
| 116 | writer.WriteUe(0); | 117 | writer.WriteUe(0); |
| 117 | 118 | ||
| 118 | writer.WriteBit(context.h264_parameter_set.entropy_coding_mode_flag); | 119 | writer.WriteBit(context.h264_parameter_set.entropy_coding_mode_flag != 0); |
| 119 | writer.WriteBit(false); | 120 | writer.WriteBit(false); |
| 120 | writer.WriteUe(0); | 121 | writer.WriteUe(0); |
| 121 | writer.WriteUe(context.h264_parameter_set.num_refidx_l0_default_active); | 122 | writer.WriteUe(context.h264_parameter_set.num_refidx_l0_default_active); |
| @@ -187,8 +188,8 @@ void H264BitWriter::WriteSe(s32 value) { | |||
| 187 | WriteExpGolombCodedInt(value); | 188 | WriteExpGolombCodedInt(value); |
| 188 | } | 189 | } |
| 189 | 190 | ||
| 190 | void H264BitWriter::WriteUe(s32 value) { | 191 | void H264BitWriter::WriteUe(u32 value) { |
| 191 | WriteExpGolombCodedUInt((u32)value); | 192 | WriteExpGolombCodedUInt(value); |
| 192 | } | 193 | } |
| 193 | 194 | ||
| 194 | void H264BitWriter::End() { | 195 | void H264BitWriter::End() { |
diff --git a/src/video_core/command_classes/codecs/h264.h b/src/video_core/command_classes/codecs/h264.h index c36a54399..f2292fd2f 100644 --- a/src/video_core/command_classes/codecs/h264.h +++ b/src/video_core/command_classes/codecs/h264.h | |||
| @@ -38,7 +38,7 @@ public: | |||
| 38 | /// WriteSe and WriteUe write in the Exp-Golomb-coded syntax | 38 | /// WriteSe and WriteUe write in the Exp-Golomb-coded syntax |
| 39 | void WriteU(s32 value, s32 value_sz); | 39 | void WriteU(s32 value, s32 value_sz); |
| 40 | void WriteSe(s32 value); | 40 | void WriteSe(s32 value); |
| 41 | void WriteUe(s32 value); | 41 | void WriteUe(u32 value); |
| 42 | 42 | ||
| 43 | /// Finalize the bitstream | 43 | /// Finalize the bitstream |
| 44 | void End(); | 44 | void End(); |