segmentation problem causes crash
- From: "Emmanuel Witvoet" <emmanuel.witvoet@xxxxxxxxx>
- Date: Fri, 9 Mar 2007 11:50:31 -0500
Hi all,
I wrote a matlab program which detects NALU headers in an h264
encoded video file. It worked fine, and was building it
progressively. Yesterday, for some unknown reason, it crashed and
hasn't worked since. The error seems to be once here, one there.. I
can't figure it out..
Would someone have a clue?
my program is:
function [head GOP GOPdiff]=fileToMatrix1n (filename, offset ,
BytSymb)
FIDnalu = fopen(filename,'r');
FIDtext=fopen('NALUlog.txt', 'wt');
fprintf(FIDtext,'F NRI UnitType Size \n');
offset=16448;
head=fread(FIDnalu,offset);
%buf=[0,0,0,0,0,0,0,0,0];
buf=[0,0,0,0,0,0,0];
GOP=[];
GOPdiff=[];
fseek(FIDnalu, 0, 'eof');
posfinal=ftell(FIDnalu);
posini=fseek(FIDnalu, offset,'bof');
display(ftell(FIDnalu));
buf(1)=fread(FIDnalu,1);
buf(2)=fread(FIDnalu,1);
buf(3)=fread(FIDnalu,1);
buf(4)=fread(FIDnalu,1);
buf(5)=fread(FIDnalu,1);
buf(6)=fread(FIDnalu,1);
buf(7)=fread(FIDnalu,1);
%buf(8)=fread(FIDnalu,1);
%buf(9)=fread(FIDnalu,1);
[dec2hex(buf(1), 2),'_', dec2hex(buf(2), 2),'_', dec2hex(buf(3),
2),'_', dec2hex(buf(4), 2), dec2hex(buf(5), 2), dec2hex(buf(6), 2),
dec2hex(buf(7), 2)]
GOP=[ftell(FIDnalu)-2]
previous_video=0
new_off=0;
new_off=ftell(FIDnalu)
before_pos=0;
header=[];
for i=1:(posfinal-7-new_off)
before_pos=ftell(FIDnalu);
[dec2hex(buf(1), 2),'_', dec2hex(buf(2), 2),'_', dec2hex(buf(3),
2),'_', dec2hex(buf(4), 2), '_',dec2hex(buf(5), 2),
'_',dec2hex(buf(6), 2), '_',dec2hex(buf(7), 2)]
if isequal (buf(1:2), [0,0])
%display('found and byte aligned');
%display(ftell(FIDnalu)-4-offset);
%[dec2hex(buf(1), 2),'_', dec2hex(buf(2), 2),'_',
dec2hex(buf(3), 2),'_', dec2hex(buf(4), 2)]
S=hex2dec(cat(2,dec2hex(buf(3)),dec2hex(buf(4))));
if previous_video==1
curPos=ftell(FIDnalu)-3;
curDiff=curPos-GOP(end);
GOPdiff=cat(2,GOPdiff,curDiff);
GOP= cat(2, GOP,curPos);
end
header = buf(5);
F=bitand(power(2,7),header)/power(2,7);
NRI=bitand(power(2,6) + power(2,5), header)/power(2,5);
UnitType= bitand(31,header);
fprintf(FIDtext,'%g %g %g %g
%s %s\n', F,NRI,UnitType,GOPdiff(end), dec2hex(S),
dec2hex(ftell(FIDnalu)));
%fprintf(FIDtext,'%g %g %g \n',
F,NRI,UnitType);
fseek(FIDnalu, S-4,0);
buf(1)=fread(FIDnalu,1);
buf(2)=fread(FIDnalu,1);
buf(3)=fread(FIDnalu,1);
buf(4)=fread(FIDnalu,1);
buf(5)=fread(FIDnalu,1);
buf(6)=fread(FIDnalu,1);
buf(7)=fread(FIDnalu,1);
previous_video=1;
else previous_video=0;
end
i=i+(ftell(FIDnalu)-before_pos);
buf(1)=[];
buf(7)=fread(FIDnalu,1);
end
fclose(FIDnalu);
fclose(FIDtext);
and the error (not always the same printout) can be :)
[a b GOP GOPdiff]=fileToMatrix1n ('test_h264_192_aac_24.3gp', 0 , 64)
??? Invalid function name ''
----------------------------------------------------------------------
--
Assertion detected at Fri Mar 09 16:45:14 2007
----------------------------------------------------------------------
--
Assertion failed: count==0, at line 314 of file
".\memmgr\mem32aligned.cpp".
Configuration:
MATLAB Version: 7.3.0.267 (R2006b)
MATLAB License: 297118
Operating System: Microsoft Windows 2000
Window System: Version 5.0 (Build 2195: Service Pack 3)
Processor ID: x86 Family 15 Model 1 Stepping 2, GenuineIntel
Virtual Machine: Java 1.5.0 with Sun Microsystems Inc. Java
HotSpot(TM) Client VM mixed mode
Default Charset: windows-1252
Stack Trace:
[0] bridge.dll:_
.
- Follow-Ups:
- Re: segmentation problem causes crash
- From: Philip Borghesani
- Re: segmentation problem causes crash
- From: Emmanuel Witvoet
- Re: segmentation problem causes crash
- Prev by Date: Re: How to modify the first line only of a long text file
- Next by Date: Data Acquisition Toolbox InputRange
- Previous by thread: How to modify the first line only of a long text file
- Next by thread: Re: segmentation problem causes crash
- Index(es):
Relevant Pages
|
|