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:mmcgin...@gmail.com]
Sent: Tuesday, May 04, 2010 1:22 AM
To: Keith Winstein
Cc: libmpeg2-devel@lists.sourceforge.net
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 
<mmcgin...@gmail.com<mailto:mmcgin...@gmail.com>> 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 <kei...@mit.edu<mailto:kei...@mit.edu>> 
> 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
>>> Libmpeg2-devel@lists.sourceforge.net<mailto:Libmpeg2-devel@lists.sourceforge.net>
>>> https://*lists.sourceforge.net/lists/listinfo/libmpeg2-devel
>>>
>>
>

------------------------------------------------------------------------------
_______________________________________________
Libmpeg2-devel mailing list
Libmpeg2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmpeg2-devel

Reply via email to