MCPcopy Create free account
hub / github.com/Monibuca/engine / ParseVps

Method ParseVps

codec/h265.go:277–309  ·  view source on GitHub ↗
(vps []byte)

Source from the content-addressed store, hash-verified

275 return sh, nil
276}
277func (ctx *HVCDecoderConfigurationRecord) ParseVps(vps []byte) error {
278 if len(vps) < 2 {
279 return ErrHevc
280 }
281
282 rbsp := nal2rbsp(vps[2:])
283 br := nazabits.NewBitReader(rbsp)
284
285 // skip
286 // vps_video_parameter_set_id u(4)
287 // vps_reserved_three_2bits u(2)
288 // vps_max_layers_minus1 u(6)
289 if _, err := br.ReadBits16(12); err != nil {
290 return ErrHevc
291 }
292
293 vpsMaxSubLayersMinus1, err := br.ReadBits8(3)
294 if err != nil {
295 return ErrHevc
296 }
297 if vpsMaxSubLayersMinus1+1 > ctx.numTemporalLayers {
298 ctx.numTemporalLayers = vpsMaxSubLayersMinus1 + 1
299 }
300
301 // skip
302 // vps_temporal_id_nesting_flag u(1)
303 // vps_reserved_0xffff_16bits u(16)
304 if _, err := br.ReadBits32(17); err != nil {
305 return ErrHevc
306 }
307
308 return ctx.parsePtl(&br, vpsMaxSubLayersMinus1)
309}
310
311func (ctx *HVCDecoderConfigurationRecord) ParseSps(sps []byte) error {
312 var err error

Callers 1

Calls 2

parsePtlMethod · 0.95
nal2rbspFunction · 0.85

Tested by

no test coverage detected