#1209 closed defect (fixed)segmentation fault with custom GOP structure
Description (last modified by ksuehring)
I get a segmentation fault from encoder when using custom GOP structure. #======== Coding Structure ============= IntraPeriod : 800 # Period of I-Frame ( -1 = only first) DecodingRefreshType : 1 # Random Accesss 0:none, 1:CDR, 2:IDR GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs Frame1: P 1 0 0.5 0 0 0 0 1 -1 0 Frame2: P 3 0 0.5 0 0 0 1 2 -3 -2 0 Frame3: B 2 0 0.5 0 0 0 1 3 -2 -1 1 0 Frame4: P 8 0 0.5 0 0 0 1 1 -8 0 Frame5: B 4 0 0.5 0 0 0 1 2 -4 4 0 Frame6: P 7 0 0.5 0 0 0 1 1 -3 0 Frame7: B 6 0 0.5 0 0 0 1 2 -2 1 0 Frame8: B 5 0 0.5 0 0 0 1 2 -1 1 0 Attachments (2)Change History (9)comment:1 Changed 11 years ago by DefaultCC Plugin
Changed 11 years ago by dominik.wojtChanged 11 years ago by dominik.wojtcomment:2 Changed 11 years ago by karlsharmancomment:3 Changed 11 years ago by dominik.wojt
I first encountered the problem in my modified version based on 12.1-dev (non RExt) branch.
The problem is reproducible in all three above cases.
The output of encoder is:
~/Downloads/HM-12.1/bin/TAppEncoderStatic -c test.cfg HM software: Encoder Version [12.1][Linux][GCC 4.8.2][64 bit] ****************************************************************** ** WARNING: --SEIDecodedPictureHash is now disabled by default. ** ** Automatic verification of decoded pictures by a ** ** decoder requires this option to be enabled. ** ****************************************************************** *************************************************************************** ** WARNING: For conforming bitstreams a valid Profile value must be set! ** *************************************************************************** *************************************************************************** ** WARNING: For conforming bitstreams a valid Level value must be set! ** *************************************************************************** Input File : test.yuv Bitstream File : test.h265 Reconstruction File : test_rec.yuv Real Format : 72x72 30Hz Internal Format : 72x72 30Hz Frame/Field : Frame based coding Frame index : 0 - 19 (20 frames) CU size / depth : 32 / 3 RQT trans. size (min / max) : 4 / 32 Max RQT depth inter : 4 Max RQT depth intra : 4 Min PCM size : 8 Motion search range : 64 Intra period : 800 Decoding refresh type : 1 QP : 10.00 Max dQP signaling depth : 2 Cb QP Offset : 0 Cr QP Offset : 0 QP adaptation : 0 (range=0) GOP size : 8 Internal bit depth : (Y:8, C:8) PCM sample bit depth : (Y:8, C:8) RateControl : 0 Max Num Merge Candidates : 5 TOOL CFG: IBD:0 HAD:1 SRD:1 RDQ:1 RDQTS:1 RDpenalty:0 SQP:1 ASR:0 FEN:1 ECU:0 FDM:1 CFM:0 ESD:0 RQT:1 TransformSkip:1 TransformSkipFast:1 Slice: M=0 SliceSegment: M=0 CIP:0 SAO:1 PCM:1 LosslessCuEnabled:0 WPP:0 WPB:0 PME:2 WaveFrontSynchro:0 WaveFrontSubstreams:1 ScalingList:1 TMVPMode:1 AQpS:0 SignBitHidingFlag:1 RecalQP:0 POC 0 TId: 0 ( I-SLICE, nQP 11 QP 11 ) 16424 bits [Y 54.0324 dB U 54.2189 dB V 54.6030 dB] [ET 3 ] [L0 ] [L1 ] Segmentation fault
n.b. to use the supplied makefile I had to disable "-Werror" option, as otherwise compilation failed with this message: In file included from /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibDecoder/TDecEntropy.h:43:0, from /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibDecoder/TDecCAVLC.h:45, from /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibDecoder/TDecCAVLC.cpp:38: /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibCommon/TComSlice.h: In member function ‘virtual Void TDecCavlc::parseVPS(TComVPS*)’: /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibCommon/TComSlice.h:450:96: error: array subscript is above array bounds [-Werror=array-bounds] Void setMaxDecPicBuffering(UInt v, UInt tLayer) { m_uiMaxDecPicBuffering[tLayer] = v; } ^ /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibCommon/TComSlice.h:447:90: error: array subscript is above array bounds [-Werror=array-bounds] Void setNumReorderPics(UInt v, UInt tLayer) { m_numReorderPics[tLayer] = v; } ^ /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibCommon/TComSlice.h:453:96: error: array subscript is above array bounds [-Werror=array-bounds] Void setMaxLatencyIncrease(UInt v, UInt tLayer) { m_uiMaxLatencyIncrease[tLayer] = v; } ^ /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibCommon/TComSlice.h: In member function ‘virtual Void TDecCavlc::parseSPS(TComSPS*)’: /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibCommon/TComSlice.h:863:87: error: array subscript is above array bounds [-Werror=array-bounds] Void setMaxDecPicBuffering ( UInt ui, UInt tlayer ) { m_uiMaxDecPicBuffering[tlayer] = ui; } ^ /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibCommon/TComSlice.h:812:84: error: array subscript is above array bounds [-Werror=array-bounds] Void setNumReorderPics(Int i, UInt tlayer) { m_numReorderPics[tlayer] = i; } ^ /home/dmw/Downloads/HM-12.1/build/linux/lib/TLibDecoder/../../../../source/Lib/TLibCommon/TComSlice.h:865:87: error: array subscript is above array bounds [-Werror=array-bounds] Void setMaxLatencyIncrease ( UInt ui , UInt tlayer) { m_uiMaxLatencyIncrease[tlayer] = ui; } comment:4 follow-up: ↓ 5 Changed 11 years ago by ksuehring
comment:5 in reply to: ↑ 4 Changed 11 years ago by bmandel
Replying to ksuehring: I was just switching from RExt 12.0 4.1 to RExt 12.1 5.1 today and came across the same makefile, compile error on array bounds mentioned in the prior comment. Removing -Werror allows compilation to proceed. I've also switched from a 32 bit OS (slackware 14.0) to 64 bit OS (slackware 14.1). So I tried recompiling 4.1 again and get the same array bounds error with that too. I suspect this is some issue with libraries used with this system as on AWS/Ubuntu I had no issue compiling 4.1 in the past. comment:6 Changed 11 years ago by fbossen
Is it intentional to have ref_pics_active set to 0 in the Frame1 configuration parameter? Shouldn't it be at least 1 for a P slice? comment:7 Changed 11 years ago by fbossen
Added support for specifying I slices in GOP structure in r3777 Note: See
TracTickets for help on using
tickets. | This list contains all users that will be notified about changes made to this ticket. These roles will be notified: Reporter, Owner, Subscriber, Participant
|
Please can you confirm that your configuration also seg-faults with HM12.1 (not RExt).