mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-15 22:54:00 +00:00
h264: Make WriteUe take a u32
Enforces the type of the desired value in calling code.
This commit is contained in:
parent
6291975731
commit
cce14b4cd7
2 changed files with 8 additions and 7 deletions
|
@ -63,7 +63,8 @@ std::vector<u8>& H264::ComposeFrameHeader(NvdecCommon::NvdecRegisters& state, bo
|
||||||
writer.WriteU(0, 8);
|
writer.WriteU(0, 8);
|
||||||
writer.WriteU(31, 8);
|
writer.WriteU(31, 8);
|
||||||
writer.WriteUe(0);
|
writer.WriteUe(0);
|
||||||
const s32 chroma_format_idc = (context.h264_parameter_set.flags >> 12) & 0x3;
|
const auto chroma_format_idc =
|
||||||
|
static_cast<u32>((context.h264_parameter_set.flags >> 12) & 3);
|
||||||
writer.WriteUe(chroma_format_idc);
|
writer.WriteUe(chroma_format_idc);
|
||||||
if (chroma_format_idc == 3) {
|
if (chroma_format_idc == 3) {
|
||||||
writer.WriteBit(false);
|
writer.WriteBit(false);
|
||||||
|
@ -74,8 +75,8 @@ std::vector<u8>& H264::ComposeFrameHeader(NvdecCommon::NvdecRegisters& state, bo
|
||||||
writer.WriteBit(false); // QpprimeYZeroTransformBypassFlag
|
writer.WriteBit(false); // QpprimeYZeroTransformBypassFlag
|
||||||
writer.WriteBit(false); // Scaling matrix present flag
|
writer.WriteBit(false); // Scaling matrix present flag
|
||||||
|
|
||||||
const s32 order_cnt_type = static_cast<s32>((context.h264_parameter_set.flags >> 14) & 3);
|
const auto order_cnt_type = static_cast<u32>((context.h264_parameter_set.flags >> 14) & 3);
|
||||||
writer.WriteUe(static_cast<s32>((context.h264_parameter_set.flags >> 8) & 0xf));
|
writer.WriteUe(static_cast<u32>((context.h264_parameter_set.flags >> 8) & 0xf));
|
||||||
writer.WriteUe(order_cnt_type);
|
writer.WriteUe(order_cnt_type);
|
||||||
if (order_cnt_type == 0) {
|
if (order_cnt_type == 0) {
|
||||||
writer.WriteUe(context.h264_parameter_set.log2_max_pic_order_cnt);
|
writer.WriteUe(context.h264_parameter_set.log2_max_pic_order_cnt);
|
||||||
|
@ -115,7 +116,7 @@ std::vector<u8>& H264::ComposeFrameHeader(NvdecCommon::NvdecRegisters& state, bo
|
||||||
writer.WriteUe(0);
|
writer.WriteUe(0);
|
||||||
writer.WriteUe(0);
|
writer.WriteUe(0);
|
||||||
|
|
||||||
writer.WriteBit(context.h264_parameter_set.entropy_coding_mode_flag);
|
writer.WriteBit(context.h264_parameter_set.entropy_coding_mode_flag != 0);
|
||||||
writer.WriteBit(false);
|
writer.WriteBit(false);
|
||||||
writer.WriteUe(0);
|
writer.WriteUe(0);
|
||||||
writer.WriteUe(context.h264_parameter_set.num_refidx_l0_default_active);
|
writer.WriteUe(context.h264_parameter_set.num_refidx_l0_default_active);
|
||||||
|
@ -187,8 +188,8 @@ void H264BitWriter::WriteSe(s32 value) {
|
||||||
WriteExpGolombCodedInt(value);
|
WriteExpGolombCodedInt(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void H264BitWriter::WriteUe(s32 value) {
|
void H264BitWriter::WriteUe(u32 value) {
|
||||||
WriteExpGolombCodedUInt((u32)value);
|
WriteExpGolombCodedUInt(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void H264BitWriter::End() {
|
void H264BitWriter::End() {
|
||||||
|
|
|
@ -38,7 +38,7 @@ public:
|
||||||
/// WriteSe and WriteUe write in the Exp-Golomb-coded syntax
|
/// WriteSe and WriteUe write in the Exp-Golomb-coded syntax
|
||||||
void WriteU(s32 value, s32 value_sz);
|
void WriteU(s32 value, s32 value_sz);
|
||||||
void WriteSe(s32 value);
|
void WriteSe(s32 value);
|
||||||
void WriteUe(s32 value);
|
void WriteUe(u32 value);
|
||||||
|
|
||||||
/// Finalize the bitstream
|
/// Finalize the bitstream
|
||||||
void End();
|
void End();
|
||||||
|
|
Loading…
Reference in a new issue