Opened 17 years ago

Closed 17 years ago

Last modified 17 years ago

#640 closed defect (fixed)

crash in asfheader.c, function get_ext_stream_properties

Reported by: klement2@… Owned by: r_togni@…
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 reimar, 17 years ago

We should convince ffmpeg to move the BE_*/LE_* et.c macros to libavutil and
then just make use of those.

comment:2 by reimar, 17 years ago

Resolution: fixed
Status: newclosed

Should be fixed in SVN r21470. Report if there are further issues like that (I
actually think there is another similar bug open).

Note: See TracTickets for help on using tickets.