From: Matthew M. <mmc...@gm...> - 2010-05-05 03:50:12
|
Hi David, Thanks. Those DLL's work and do indeed have SSE2 acceleration. (SSE2 produces approx 30% speed increase on my machine). But it is frustrating that I can't get my own build working in Visual Studio, as I would prefer to use a static library rather than a DLL. Thanks, Matt On 5 May 2010 02:46, Hoyt, David <ho...@ll...> wrote: > You can get a copy built by the OSSBuild folks: > > > > http://code.google.com/p/ossbuild/ > > > > Download and install the GPL version and then the GPL SDK and you’ll have > the headers and libs you need. I’m unsure if it’s built w/ SSE2 or not. > > My work’s filter likes to put asterisks (*) in URLs to prevent people from > clicking on just any link they find in an email, so if you see one, take it > out. > > > > *From:* Matthew McGinity [mailto:mmc...@gm...] > *Sent:* Tuesday, May 04, 2010 1:22 AM > *To:* Keith Winstein > *Cc:* lib...@li... > *Subject:* Re: [mpeg2-dev] Exception in mpeg2_idct_copy_sse2 > > > > Hi, > > Can anyone confirm that they have SSE2 acceleration from a visual studio > 2005 build of libmpeg2? > How were those .obj files generated? > > Or perhaps someone could provide me with a release build of libmpeg2.lib > 0.5.1 ?? > > Any ideas whatsoever greatly appreciated! > > Thanks > > Matt > > -- > Matthew McGinity > iCinema Centre for Interactive Cinema Research > University of New South Wales, Sydney, Australia > http://*www.*icinema.unsw.edu.au > Tel: 0405 115 322 > > On 2 May 2010 17:46, Matthew McGinity <mmc...@gm...> wrote: > > Hi Keith, > > Just resending last mail without attachment so it's not bounced by the > mailing-list. > > > I've compiled both sample1 and mpeg2dec and they both suffer the same > problem. > I've compiled version 0.4.1 and that works fine - which is to be > expected as the SSE2 support was introduced in version .5 > > > I didn't understand your remark about "I assume the source files for the > > .obj files in vc++ cannot be built with VC++". Are you saying you're not > > compiling libmpeg2 from the source code and just using somebody else's > > build? > > I'm building my own version. My project has these source files: > > libmpeg2\alloc.c > libmpeg2\decode.c > libmpeg2\header.c > libmpeg2\idct.c > libmpeg2\motion_comp.c > libmpeg2\motion_comp_vis.c > libmpeg2\slice.c > libmpeg2\convert\rgb.c > libmpeg2\convert\rgb_vis.c > libmpeg2\convert\uyvy.c > > and these object files: > vc++\cpu_accel.obj > vc++\cpu_state.obj > vc++\idct_mmx.obj > vc++\motion_comp_mmx.obj > vc++\rgb_mmx.obj > > I tried compiling these .obj files from their corresponding source .c > files but without success - I don't think they're intended to be > built with vc++. > > The only changes I've made is removing #define restrict __restrict from > config.h > > I can easily email out my complete solution should anyone with windows > and Visual Studio 2005 be willing to take a look. > (I don't think I can send attachments to this forum) > > Cheers, > Matt > > > > On 2 May 2010 02:43, Keith Winstein <ke...@mi...> wrote: > >> Hi Matthew, > >> > >> We're here. Unfortunately I don't have Windows and would have a hard > time > >> trying to reproduce this problem for you. (It works fine for me with gcc > on > >> Linux; I recognize that's not very helpful to know.) > >> > >> Are you able to compile the "mpeg2dec" program that ships with libmpeg2? > >> Does it also bomb out like this? > >> > >> I didn't understand your remark about "I assume the source files for the > >> .obj files in vc++ cannot be built with VC++". Are you saying you're not > >> compiling libmpeg2 from the source code and just using somebody else's > >> build? Sorry for the confusion. > >> > >> Regards, > >> Keith > >> > >> On Sat, 1 May 2010, Matthew McGinity wrote: > >> > >>> Hi, > >>> > >>> First question - is there anyone out there? Is this forum still alive? > >>> > >>> I have libmpeg2 version 5.0.1 compiling in VS2005. > >>> My test file, based on sample5.c, works perfectly, provided I don't > enable > >>> SSE2. > >>> > >>> That is, if I change mpeg2_init() to use > >>> mpeg2_accel(0); > >>> or > >>> mpeg2_accel(MPEG2_ACCEL_X86_MMX); > >>> or > >>> mpeg2_accel(MPEG2_ACCEL_X86_MMXEXT); > >>> everything works fine. > >>> > >>> However, if I allow auto-detection > >>> mpeg2_accel(MPEG2_ACCEL_DETECT); > >>> it chooses sse2 acceleration and I get an exception on the very first > >>> call to mpeg2_idct_copy in slice_intra_DCT in mpeg2_slice: > >>> > >>> "First-chance exception at 0x00445fa3 in icMPEG2Test.exe: 0xC0000005: > >>> Access violation reading location 0xffffffff." > >>> > >>> Stack location is: _mpeg2_idct_copy_sse2() + 0x13 bytes > >>> > >>> In my project, I'm linking to all the .obj files provided in directory > >>> \libmpeg2\vc++ > >>> > >>> Not quite sure how to proceed. I assume the source files for the .obj > >>> files in vc++ > >>> cannot be built with VC++. (I tried renaming __asm__ to __asm and > >>> __volatile__ to volatile, but it didn't get me far). > >>> > >>> Any advice appreciated, > >>> > >>> Matt > >>> - libmpeg2 v5.0.1, Windows XP, Intel Core2 Quad CPU Q9400, Visual > Studio > >>> 2005 > >>> > >>> > >>> > >>> -- > >>> Matthew McGinity > >>> iCinema Centre for Interactive Cinema Research > >>> University of New South Wales, Sydney, Australia > >>> http://*www.*icinema.unsw.edu.au > >>> Tel: 0405 115 322 > >>> > >>> > >>> > ------------------------------------------------------------------------------ > >>> _______________________________________________ > >>> Libmpeg2-devel mailing list > >>> Lib...@li... > >>> https://*lists.sourceforge.net/lists/listinfo/libmpeg2-devel > >>> > >> > > > > > |