Opened 14 years ago Closed 14 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 14 years ago by DefaultCC Plugin
Changed 14 years ago by shilin.xucomment:2 Changed 14 years ago by ksuehring
comment:3 Changed 14 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 14 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 14 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