summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_core/command_classes/codecs/h264.cpp13
-rw-r--r--src/video_core/command_classes/codecs/h264.h2
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
190void H264BitWriter::WriteUe(s32 value) { 191void H264BitWriter::WriteUe(u32 value) {
191 WriteExpGolombCodedUInt((u32)value); 192 WriteExpGolombCodedUInt(value);
192} 193}
193 194
194void H264BitWriter::End() { 195void 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();