Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[what][feature][h264] 支持仅解析 SPS 和 PPS #49

Merged
merged 1 commit into from
Sep 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 16 additions & 10 deletions H264Deserialize.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -192,23 +192,29 @@ bool H264Deserialize::DeserializeNalSyntax(H26xBinaryReader::ptr br, H264NalSynt
case H264NaluType::MMP_H264_NALU_TYPE_IDR: /* pass through */
case H264NaluType::MMP_H264_NALU_TYPE_SLICE:
{
// Hint : Slice = Slice header + Slice data + rbsp_trailing_bits()
// only parse slice header and may move to next nal unit
nal->slice = std::make_shared<H264SliceHeaderSyntax>();
if (!DeserializeSliceHeaderSyntax(br, nal, nal->slice))
if (enableParseSLICE)
{
assert(false);
return false;
// Hint : Slice = Slice header + Slice data + rbsp_trailing_bits()
// only parse slice header and may move to next nal unit
nal->slice = std::make_shared<H264SliceHeaderSyntax>();
if (!DeserializeSliceHeaderSyntax(br, nal, nal->slice))
{
assert(false);
return false;
}
br->MoveNextByte();
}
br->MoveNextByte();
break;
}
case H264NaluType::MMP_H264_NALU_TYPE_SEI:
{
nal->sei = std::make_shared<H264SeiSyntax>();
if (!DeserializeSeiSyntax(br, nal->sei))
if (enableParseSEI)
{
return false;
nal->sei = std::make_shared<H264SeiSyntax>();
if (!DeserializeSeiSyntax(br, nal->sei))
{
return false;
}
}
break;
}
Expand Down
3 changes: 3 additions & 0 deletions H264Deserialize.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ class H264Deserialize
bool DeserializeSeiFramePackingArrangementSyntax(H26xBinaryReader::ptr br, H264SeiFramePackingArrangementSyntax::ptr fpa);
bool DeserializeSeiAlternativeTransferCharacteristicsSyntax(H26xBinaryReader::ptr br, H264SeiAlternativeTransferCharacteristicsSyntax::ptr atc);
bool DeserializeAmbientViewingEnvironmentSyntax(H26xBinaryReader::ptr br, H264AmbientViewingEnvironmentSyntax::ptr awe);
public:
bool enableParseSEI = true;
bool enableParseSLICE = true;
private:
H264ContextSyntax::ptr _contex;
};
Expand Down
Loading