#640 closed defect (fixed)
crash in asfheader.c, function get_ext_stream_properties
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | very important | Component: | demuxer |
Version: | HEAD | Severity: | normal |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Reproduced by developer: | no | Analyzed by developer: | no |
Description
....
buffer +=8+8+4+4+4+4+4+4+4+4;
-> this_stream_num=le2me_16(*(uint16_t*)buffer);buffer+=2;
if (this_stream_num == stream_num) {
buffer+=2; skip stream-language-id-index
-> avg_ft = le2me_64(*(uint64_t*)buffer); provided in 100ns units
*avg_frame_time = avg_ft/10000000.0f;
.....
I'm not sure if the problem is specific only to sparc64 or GCC 4.1, but in any
case there is a workaround for it - to use 2 additional local variables and
memcpy instead of dereferencing uint16_t, uint64_t pointers this way.
Change History (2)
comment:1 by , 17 years ago
comment:2 by , 17 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Should be fixed in SVN r21470. Report if there are further issues like that (I
actually think there is another similar bug open).
We should convince ffmpeg to move the BE_*/LE_* et.c macros to libavutil and
then just make use of those.