I'm decoding H.264 TS file with GStreamer vpudec plug-in, but error message is generated and pipeline core dumped.
I ran the following pipeline:
GST_DEBUG=3 gst-launch-1.0 filesrc location=./h264.ts ! tsdemux ! vpudec ! fakesink
I got the following error:
root@ucm-imx8m-mini:/opt/tcr# GST_DEBUG=3 gst-launch-1.0 filesrc location=./h264.ts ! tsdemux ! vpudec ! fakesink
Setting pipeline to PAUSED ...
====== VPUDEC: 4.4.4 build on Apr 23 2019 07:42:48. ======
wrapper: 3.0.0 (VPUWRAPPER_ARM64_LINUX Build on Apr 23 2019 06:54:11)
vpulib: 1.1.1
firmware: 1.1.1.0
0:00:00.312292625 9942 0x688600 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<filesrc0> pad not activated yet
Pipeline is PREROLLING ...
0:00:00.355039625 9942 0x666cf0 FIXME videodecoder gstvideodecoder.c:933:gst_video_decoder_drain_out:<vpudec0> Sub-class should implement drain()
0:00:00.365649875 9942 0x666cf0 FIXME videodecoder gstvideodecoder.c:933:gst_video_decoder_drain_out:<vpudec0> Sub-class should implement drain()
ERROR: ACCESS UNIT BOUNDARY CHECK
0:00:00.367152125 9942 0x666cf0 WARN vpu_dec_object gstvpudecobject.c:1461:gst_vpu_dec_object_decode:<vpudecobject0> Dropped video frame before VPU init ok!
ERROR: ACCESS UNIT BOUNDARY CHECK
0:00:00.368643125 9942 0x666cf0 WARN vpu_dec_object gstvpudecobject.c:1461:gst_vpu_dec_object_decode:<vpudecobject0> Dropped video frame before VPU init ok!
gst-launch-1.0: ../../source/h264high/legacy/h264hwd_stream.c:78: h264bsdGetBits: Assertion `num_bits < 32' failed.
Aborted (core dumped)
I think cpb_removal_delay_length should be equal or less than 32,
is ASSERTION(num_bits <= 32) code right ?
This content is encoded with cpb_removal_delay_length as 32.