Opened 13 years ago Closed 13 years ago #387 closed defect (fixed)Decoder crash when entropy slices and SAO are enabled
Description
The HM-6.0rc1 decoder crashes when the entropy slice is enabled. Attachments (1)Change History (6)comment:1 Changed 13 years ago by DefaultCC Plugin
Changed 13 years ago by shilin.xucomment:2 Changed 13 years ago by ksuehring
comment:3 Changed 13 years ago by ksuehring
This seems to be related to the SAO_UNIT_INTERLEAVING. When the macro is disabled coding seems to work again. comment:4 Changed 13 years ago by davidf
A quick look reveals the initial issue to be a lack of propagating SAO flags from one entropy slice object to the next: /usr/bin/time /users/davidf/project/build/jctvc-hm-amd64/jctvc-tmuc-enc-hm-6.0-0-ge8cc204-tags-hm-6.0 \ -c ~/project/jctvc-hm/@//cfg//encoder_intra_main.cfg \ -c ~/project/jctvc-hm/@//cfg//per-sequence/RaceHorses.cfg \ --InputFile=/users/davidf/work/video/RaceHorses_416x240_30.yuv \ --BitstreamFile=out.bit \ --ReconFile=out.bit.yuv \ --FramesToBeEncoded=1 --EntropySliceMode=1 --EntropySliceArgument=1 --SourceWidth=128 --SourceHeight=128 ... POC 0 TId: 0 ( I-SLICE, nQP 32 QP 32 ) 28352 bits [Y 31.5484 dB U 32.2214 dB V 32.0423 dB] [ET 1 ] [L0 ] [L1 ] [MD5:8b32d27801e4c5cf7c04a4a9dfc6651f]
Decoder checking: valgrind --db-attach=yes --track-origins=yes --malloc-fill=aa /users/davidf/project/build/jctvc-hm-amd64/jctvc-tmuc-dec-hm-6.0-0-ge8cc204-tags-hm-6.0 \ --BitstreamFile=out.bit \ --ReconFile=out.bit.decoded.yuv \ HM software: Decoder Version [6.0][Linux][GCC 4.6.1][64 bit] TDecCavlc::parsePPS(): m_bUseWeightPred=0 m_uiBiPredIdc=0 ==5233== Conditional jump or move depends on uninitialised value(s) ==5233== at 0x483F3D: TDecSlice::decompressSlice(TComInputBitstream*, TComInputBitstream**, TComPic*&, TDecSbac*, TDecSbac*) (TDecSlice.cpp:302) ==5233== by 0x47A3C1: TDecGop::decompressGop(TComInputBitstream*, TComPic*&, bool) (TDecGop.cpp:292) ==5233== by 0x48AB16: TDecTop::xDecodeSlice(InputNALUnit&, int, int) (TDecTop.cpp:713) ==5233== by 0x48AEC4: TDecTop::decode(InputNALUnit&, int&, int&) (TDecTop.cpp:847) ==5233== by 0x405253: TAppDecTop::decode() (TAppDecTop.cpp:145) ==5233== by 0x402F1D: main (decmain.cpp:79)
And in the debugger: 0x0000000000483f3d in TDecSlice::decompressSlice (this=0x7fefff200, pcBitstream=0x5be6e20, ppcSubstreams=0x5beb0a0, rpcPic=@0x7fefffaa8, pcSbacDecoder=0x7fefff2b8, pcSbacDecoders=0x5beb0f8) at /users/davidf/project/jctvc-hm//.git/../@/source/Lib/TLibDecoder/TDecSlice.cpp:302 302 if ( pcSlice->getSPS()->getUseSAO() && pcSlice->getSaoInterleavingFlag() && pcSlice->getSaoEnabledFlag() ) (gdb) print pcSlice->getSaoInterleavingFlag() $1 = 170 (gdb) print pcSlice->getSaoEnabledFlag() $2 = 170 (gdb)
Where 170 (0xaa) is the uninitialized value from malloc(). comment:5 Changed 13 years ago by davidf
Resolved by r2096 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
|
The config files used to reproduce the bug