Opened 18 years ago

Closed 18 years ago

#124 closed defect (fixed)

SIGSEGV when trying to play Windows Media Video 8 (not supported) with build from trunk of 20060829

Reported by: Franz Owned by: vladest
Priority: normal Milestone:
Component: WVGUI-Core Version:
Severity: normal Keywords:
Cc:

Description

When I try to play a WMV file with non supported format

example:

video2.exe mms://213.254.239.51/tagesschau/msmedia/2006/0828/TV-20060828-2305-1701.wm.hi.wmv

(well not supported after the last changes in trunk) I get:

... Found video codec: Windows Media Video 8 (not supported) ... Video thread started detected 1 audio stream A: 2.971 V: 3.343 A-V: -0.37 fps: 25.00 ft: 0 ms, cpu: OK Killed by SIGSEGV pid=0x004a ppid=0x0043 tid=0x0007 slot=0x0090 pri=0x0300 mc=0x0001 O:\APPS\WVOWNOG\VIDEO2.EXE VIDEO2 0:00266afe cs:eip=005b:00276afe ss:esp=0053:05875d1c ebp=05875d34

ds=0053 es=0053 fs=150b gs=0000 efl=00012246

eax=00003fe0 ebx=008cad90 ecx=05879e4c edx=008cad90 edi=05875dfc esi=00001000 Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.

(wvgui101 has no problems with this sort of file/stream)

Attachments (1)

Call_Stack.png (24.0 KB ) - added by Franz 18 years ago.
Call Stack in Debugger after SIGSEGV

Download all attachments as: .zip

Change History (17)

comment:1 by vladest, 18 years ago

Status: newassigned

works here

comment:2 by Franz, 18 years ago

tried a complete rebuild but still same problem here.

What does 'works here' mean?

(a) doesn't crash

or

(b) the mms://... stream with 'Windows Media Video 8' is displayed ?

comment:3 by vladest, 18 years ago

both i.e. I've played that german news sucessfully

comment:4 by Franz, 18 years ago

I don't really know how to debug this, but tried anyway...

The last things I see with vac365-debugger (I don't have 3.08 debugger) is

  • line 1968 of play.hpp (the end of the _begin_play() function)
  • then a disassembly of libc61.dll thread:5

0x16f6e919 call 160265f4h if I press Over or Into I get the SIGSEV

  • the very last thing I see after WVGUI has died is
  • disassembly libc061:dll Thread:7

0x1F638DC INT 3

I hope this info is useful for solving the problem.

Franz

by Franz, 18 years ago

Attachment: Call_Stack.png added

Call Stack in Debugger after SIGSEGV

comment:5 by Franz, 18 years ago

Found the culprit (or at least a workaround):

If I downgrade dsputil_mmx.c to changeset 181 and add

static const uint64_t ff_pb_1 attribute_used attribute ((aligned(8))) = 0x0101010101010101ULL;

static const uint64_t ff_pb_3 attribute_used attribute ((aligned(8))) = 0x0303030303030303ULL;

static const uint64_t ff_pb_7 attribute_used attribute ((aligned(8))) = 0x0707070707070707ULL;

and recompile the SIGSEGV is gone and I can watch the news :-)

Franz

comment:6 by Franz, 18 years ago

Other probably better solution (workaround) is to remove ( comment out ) lines 2935 to 2952 in the current version of libavcodec\i386\dsputil_mmx.c

The inline-assembler version of ff_vector_fmul_add_add_c() is the reason for the SIGSEGV.

Now it's up to you Vlad ;-)

comment:7 by vladest, 18 years ago

what CPU you have? On my amd64 all works ok

comment:8 by vladest, 18 years ago

and did you tried -nosse option?

comment:9 by Franz, 18 years ago

I have a IBM T23 notebook with a mobile 1,13GHz PIII CPU

and no I did not try -nosse, but I'm quite shure this would work.

comment:10 by vladest, 18 years ago

patched cpu checking for nosse option to make it wvgui wide run video2.exe -nosse this should works looks like some troubles with sse code need to check if its align or just bug in code

comment:11 by Franz, 18 years ago

I can confirm that the patch works.

Thanks

comment:12 by Franz, 18 years ago

seems to me that

DECLARE_ALIGNED_16(float, window[BLOCK_MAX_SIZE * 2]);

DECLARE_ALIGNED_16(FFTSample, output[BLOCK_MAX_SIZE * 2]);

don't work as designed.

Hexadecimal representation of 'window' and 'output' in debugger end with 'C' and not with '0'

comment:13 by vladest, 18 years ago

you right I've moved those declares out of function and all works now I.e. aligned() doesnt works for stack variables

comment:14 by vladest, 18 years ago

can you confirm this?

comment:15 by Franz, 18 years ago

confirmed :-)

Tnx

comment:16 by vladest, 18 years ago

Resolution: fixed
Status: assignedclosed

Workaround works

Note: See TracTickets for help on using tickets.