Community
cancel
Showing results for 
Search instead for 
Did you mean: 
shinjite
Beginner
80 Views

h264 Threaded decoder

Yo guys,

Trying write looping points on my videos. Where the video will just restart over when Its done... I don't like how the pts values just keep incrementing on the compressed media data frames (when it hits end of media data).
I call reset on it and pts still increments? What gives.

Anyways I tried to call Reset on the video decoder and found this crash (using 4 threads).
Unhandled exception at 0x01498e21 in OpalViewer_d_Win32.exe: 0xC0000005: Access violation reading location 0x00000010.

Stack
> OpalViewer_d_Win32.exe!UMC::H264Slice::IsSliceGroups() Line 235 + 0x31 bytes C++
OpalViewer_d_Win32.exe!UMC::H264SegmentDecoder::UpdateNeighbouringAddresses(int IgnoreSliceEdges=0) Line 1617 + 0x1b bytes C++
OpalViewer_d_Win32.exe!UMC::MBDecoder::DecodeMacroblock_PSlice_CABAC(UMC::H264SegmentDecoderMultiThreaded * sd=0x035b69d8) Line 381 C++
OpalViewer_d_Win32.exe!UMC::SegmentDecoderHP<:MBDECODER>,UMC::MBReconstructor,short,unsigned char,unsigned char,1,0,1>::DecodeSegmentCABAC(unsigned int nCurMBNumber=629, unsigned int & nMaxMBNumber=650, UMC::H264SegmentDecoderMultiThreaded * sd=0x035b69d8) Line 2510 + 0xf bytes C++
OpalViewer_d_Win32.exe!UMC::H264SegmentDecoderMultiThreaded::DecodeMacroBlockCABAC(unsigned int nCurMBNumber=600, unsigned int & nMaxMBNumber=650) Line 24 + 0x29 bytes C++
OpalViewer_d_Win32.exe!UMC::H264SegmentDecoderMultiThreaded::DecodeSegment(int iCurMBNumber=600, int & iMBToDecode=50) Line 294 + 0x10 bytes C++
OpalViewer_d_Win32.exe!UMC::H264SegmentDecoderMultiThreaded::ProcessSegment() Line 210 + 0x13 bytes C++
OpalViewer_d_Win32.exe!UMC::H264Thread::DecodingThreadRoutine(void * p=0x035b69d8) Line 102 + 0xf bytes C++
OpalViewer_d_Win32.exe!_callthreadstartex() Line 348 + 0xf bytes C
OpalViewer_d_Win32.exe!_threadstartex(void * ptd=0x035b9d90) Line 331 C
0 Kudos
1 Reply
shinjite
Beginner
80 Views

Quoting - shinjite
Yo guys,

Trying write looping points on my videos. Where the video will just restart over when Its done... I don't like how the pts values just keep incrementing on the compressed media data frames (when it hits end of media data).
I call reset on it and pts still increments? What gives.

Anyways I tried to call Reset on the video decoder and found this crash (using 4 threads).
Unhandled exception at 0x01498e21 in OpalViewer_d_Win32.exe: 0xC0000005: Access violation reading location 0x00000010.

Stack
> OpalViewer_d_Win32.exe!UMC::H264Slice::IsSliceGroups() Line 235 + 0x31 bytes C++
OpalViewer_d_Win32.exe!UMC::H264SegmentDecoder::UpdateNeighbouringAddresses(int IgnoreSliceEdges=0) Line 1617 + 0x1b bytes C++
OpalViewer_d_Win32.exe!UMC::MBDecoder::DecodeMacroblock_PSlice_CABAC(UMC::H264SegmentDecoderMultiThreaded * sd=0x035b69d8) Line 381 C++
OpalViewer_d_Win32.exe!UMC::SegmentDecoderHP<:MBDECODER>,UMC::MBReconstructor,short,unsigned char,unsigned char,1,0,1>::DecodeSegmentCABAC(unsigned int nCurMBNumber=629, unsigned int & nMaxMBNumber=650, UMC::H264SegmentDecoderMultiThreaded * sd=0x035b69d8) Line 2510 + 0xf bytes C++
OpalViewer_d_Win32.exe!UMC::H264SegmentDecoderMultiThreaded::DecodeMacroBlockCABAC(unsigned int nCurMBNumber=600, unsigned int & nMaxMBNumber=650) Line 24 + 0x29 bytes C++
OpalViewer_d_Win32.exe!UMC::H264SegmentDecoderMultiThreaded::DecodeSegment(int iCurMBNumber=600, int & iMBToDecode=50) Line 294 + 0x10 bytes C++
OpalViewer_d_Win32.exe!UMC::H264SegmentDecoderMultiThreaded::ProcessSegment() Line 210 + 0x13 bytes C++
OpalViewer_d_Win32.exe!UMC::H264Thread::DecodingThreadRoutine(void * p=0x035b69d8) Line 102 + 0xf bytes C++
OpalViewer_d_Win32.exe!_callthreadstartex() Line 348 + 0xf bytes C
OpalViewer_d_Win32.exe!_threadstartex(void * ptd=0x035b9d90) Line 331 C


Just curious If I could add anything to actuately fix it in the umc - Any help provided would be nice... It just seems like the threads arn't ever told that they "stopped" and they continue with badf00ds and feefee's
Reply