Charles Mason
2007-Oct-22 03:12 UTC
[theora] Building Libtheora Beta 2 in Ms Visual C++ 2005 problems
Hi All, I have been using a slightly modified version of libtheora (from about a year ago) and since libthoera is now reached BETA 2 I thought it would be time to update. My application worked fine with that version of libtheora. So now I am trying to build libtheora beta 2 in Ms Visual C++ 2005 and I am having a few problems. When I try to compile it I get the error below. You are compiling theora without inline assembly. This is probably not what you want. Instead, please either (1) download the assembly .lib binaries or (2) compile them yourself using MinGW, and make Visual Studio link against them. Please seriously consider this before defining TH_REALLY_NO_ASSEMBLY to disable this message and compile without inline assembly. Thank you! So as you may expect I immediately defined TH_REALLY_NO_ASSEMBLY, and managed to get it to compile. The problem is when I try to decode a Theora frame the yuv_buffer output seems completely uninitialised, despite the decoder function returning the success flag. The application worked fine with the alpha I was using before. When I built the alpha libtheora build however I never got the above error. So I suspect that the error is right and I don't want to compile without inline assembly, I suppose I should listened in the first place :). I am not too clear on what exactly the "Inline Assembly" is. From what I can find through Google its some sort of hand written assembler optimisations. Option 1 in the error message sounds like the simplest option to me, but I can find no download for these .libs. So can someone explain what's going on and what I need to do to get libtheora to build and work on windows. Charlie M
Patrick Byrne
2007-Oct-22 04:14 UTC
[theora] Building Libtheora Beta 2 in Ms Visual C++ 2005 problems
Charles Mason wrote: > I am not too clear on what exactly the "Inline Assembly" is. From what > I can find through Google its some sort of hand written assembler > optimisations. Option 1 in the error message sounds like the simplest > option to me, but I can find no download for these .libs. I have seen the same problem. Inline assembly is indeed assembly that is embedded into a source file. My understanding is that the inline assembly in the theora sources is in a format which is understood by the gcc compiler, but not the microsoft compiler. You do not indicate any reason why you need to compile them yourself - why not just use the provided libs? I would have thought that the problem of translating gcc-x86 assembler to ms-x86 assembler was a relatively simple one. Perhaps someone with a longer beard could advise? -Patrick Byrne
Michael Smith
2007-Nov-05 02:49 UTC
[theora-dev] Re: [theora] Building Libtheora Beta 2 in Ms Visual C++ 2005 problems
On 11/1/07, Charles Mason <charlie.mas@gmail.com> wrote:> I have managed to cross compile litheora using MinGW on Linux. I > wasn't able to get to compile thorugh MinGW on windows. I get the same > problem as before, the YUV buffer struct is compltly empty all the > widths and strides are 0 and the pointers are also 0, so its obviously > not initalised.This sounds to me like a pretty nasty problem somewhere. Can you reproduce a minimal test case? So that we can see if you're just misusing the API, or if we've introduced a new bug in the decoder?> > My app gets the stream length before starting playing the video, by > seeking to the last packet then seeking back to the start. The > decoding of the GranualPos functions are working fine through > libtheora. So its only appears to be that one function that is having > problems. > > From what I read in the mailing list, it appears that the decoder is > now the one form the experimental branch so perhaps changing to that > is causing the problems for my .Net Wrapper. I am correct about the > decoder changing? Does anyone have any ideas about where to look. >The new releases do indeed have an all-new decoder (the one from derf's experimental branch). It's meant to be precisely ABI and API compatible, though. Mike