SFML community forums

General => SFML wiki => Topic started by: Ceylo on October 31, 2010, 06:38:42 pm

Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 31, 2010, 06:38:42 pm
Update from July 30th, 2012

sfeMovie 1.0 is available, see http://en.sfml-dev.org/forums/index.php?topic=8701.msg58578#msg58578


=============================

Update from March 15th, 2012

sfeMovie 1.0 RC1 is available, see http://www.sfml-dev.org/forum/viewtopic.php?p=48199#48199


=============================
Hello everyone,

Information update from 2011-05-12
I'm writing here to give you the latest news about the sfeMovie project.

sfeMovie is a small C++ library that lets you play movies in SFML based applications. It relies on SFML for the rendering process and FFmpeg for the decoding process. It supports both audio and video, and basic controls. This project has been written to work closely with SFML and tries to keep the same easy-to-use paradigm, while remaining coherent with SFML's conventions.


Information and download:
Most of the information is available through the wiki page (https://github.com/SFML/SFML/wiki/ProjectSfeMovie), including the download links (https://github.com/SFML/SFML/wiki/ProjectSfeMovie#downloads).

For now, sfeMovie is available to Windows and Mac OS X, and is in a beta state. Thanks to FFmpeg, sfeMovie can read many formats, including AAC, MP3, Vorbis, WMA, H.264, MPEG4, Theora, VP6 and WMV.
There is still a lot of work to do, but the current version already lets you use the main features.

I'm inviting you to test the library and write your feedback about bugs or any other issue you encountered. The bug tracker (https://github.com/Yalir/sfeMovie/issues) allows you to check the already-reported bugs or upcoming features and improvements.


As for the differences with the previous versions:
- all of the precompiled FFmpeg binaries have been dropped
- a script to compile everything for you has been added, it also allows you to exactly choose which decoders you want to enable
- FFmpeg is statically linked to sfeMovie, thus you don't have to care about FFmpeg dlls
- some minor bugs have been fixed


Ceylo


Original post:
Quote
Hellooo everyone,

I'm posting here to get some comments about a video class I'm currently working on. The purpose is to be able to display a video with its audio soundtrack, and to get something as easy to use as sf::Music.

It's supposed to work on all the OSs supported by SFML and has been currently successfully tested on Windows and Mac OS X. It uses SFML 1.6 and FFmpeg 0.6.1. It can be used to play videos but also to play music formats that are not supported by SFML (such as MP3).

Here is a short example on how to use the sfe::Video class :
Code: [Select]
int main()
{
    sf::RenderWindow window(sf::VideoMode(640, 480), "SFE Video");
    sfe::Video video;
   
    if (!video.OpenFromFile("video.avi"))
        return 1;
   
    video.Play();
   
    while (window.IsOpened())
    {
        sf::Event ev;
        while (window.GetEvent(ev))
        {
            if (ev.Type == sf::Event::Closed)
                window.Close();
        }
       
        window.Clear();
        window.Draw(video);
        window.Display();
    }
   
    return 0;
}

The sources, dependencies and project files (currently CodeBlocks 10.05 project for Windows and Xcode project for Mac OS X) can be downloaded from here (http://github.com/Ceylo/Yalir/archives/master).

Currently known issues :
- if your computer is too slow to decode the video, no video frame will be skiped, thus the video will get late
- video decoding is still not very efficient on high resolution videos on Windows (such as 1280x720)

Currently implemented features :
- video support with these formats* (short list) : FLV, H264, MPEG4, Theora, WMV
- audio support with these formats* (short list) : AAC, AC3, FLAC, MP3, PCM, Vorbis, WMA
- audio and video synchronization**
- getting some properties such as the video duration, size and framerate
- setting the sound volume
- scaling the video to fit a any frame (and every other sf::Drawable's features)
- basic video controls : play, pause, stop

Once the class gets stable enough, it'll be posted on the wiki :) .

* this list depends on the configuration options you use when building the FFmpeg binaries. It can includes GPL and non-free dependencies, but the default FFmpeg configuration is under the LGPL licence. See Video.h for a more detailed list of the video and audio formats supported with a basic build.

** video is synchronized until your CPU is fast enough to support the requested video framerate. If your CPU is faster, the video will keep a normal speed, but if it's too slow the video will get late. There is currently no support for skipping frames when the video decoding is late.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 01, 2010, 03:56:46 pm
Some news here. I've added the following methods to the sfe::Video class:
- HasAudioTrack()
- HasVideoTrack()
- GetVolume()
- GetSampleRate()
- GetChannelsCount()
- GetPlayingOffset()
- GetImageCopy()

So.. nothing really interesting except maybe the latest method : GetImageCopy(). It allows you to get a copy of the current image of the video. I've just been doing some testing and.. it works quite well with small resolutions. With a video resolution of 320x240 px and live file saving, there's about 1 MB/s written to the disk and each image file weights about 120 KB. But on bigger video resolutions, you will definitely notice the difference.

I'm also thinking of a way to modify the next picture to be displayed right after it's been decoded, thus you can apply some effects like shader effects. I think I'll do something similar to how sf::Thread works : provide a function pointer or use inheritance. Anyway, if you wish to modify the image, you'll have to handle raw RGBA data.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on November 01, 2010, 07:53:25 pm
Hey, this sounds great! A video implementation in addition to SFML is really interesting. I especially appreciate that you are trying to design an API that is close to SFML's. It will make the usage more intuitive.

Keep us up to date! :)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 01, 2010, 10:17:53 pm
Thanks for the comment !

If you want to get the latest information and can read French, here is the original topic (http://www.sfml-dev.org/forum-fr/viewtopic.php?t=3131).

But don't worry, I'll still post all of the updates here too though :) .
Title: sfeMovie project [v1.0 RC1 available]
Post by: Xorlium on November 02, 2010, 07:27:45 am
Hi Celyo,

Wow, your Video class is better than mine :)

The only thing I like better about mine is that the my Video doesn't contain a Sprite within, and I defined implicit cast (operator const sf::Image&), so that the video can be used as an image and linked to many sprites.

Also, I hope you don't mind, I blatantly copied a little part of your code into mine. The part in which you calculate the frame rate. My frame rate calculation was wrong (I think it changed in ffmpeg).

Xorlium
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 02, 2010, 05:15:13 pm
Well, I don't really mind until you write you took some parts from another author. Anyway I'm pleased, it means my work looks good to you :D .

Otherwise, I don't really understand why you would like to link the image to many sprites ? I mean, do you have a example where this would be useful ?


As for the news, it's been decided there would not be any support for shader effects on the video, especially because we could not find any example where the users NEED to apply an effect to the movie only. And as SFML already supports effects on the whole window, it means less useless work for me :) .

For now, I have to change the 'Video' name to 'Movie' as suggested on the French forum and fix the Move::Stop() method that does not go back to the beginning of the movie. I also have a few surprises that, I hope, you'll appreciate :P .

By the way, as sf::SoundStream in SFML 1.x does not support audio seeking, I may not implement movie seeking for now.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Xorlium on November 02, 2010, 06:33:08 pm
Hi Ceylo,

I mentioned in the download (wiki), but not in the actual source code. Should I?

Anyway, in my project, I use many sprites with the same video all the time. And I also use shaders on the video, and that comes for free with my design, since the programmer has full control on when and where to render the video.

Imagine the same video being played in many different parts of the screen, or the "game world". Maybe it's a special effect, or a video texture.

And it's not hard to do (it's actually easier), check it out: http://www.sfml-dev.org/wiki/en/sources/video_integration

Anyway, good luck.

Xorlium
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 02, 2010, 06:52:07 pm
It does look fine to me as it is now. Giving the name on the wiki and explaining what has been used is really enough :) . Anyway, it's more like something I appreciate rather than an obligation.

As explained by the zlib/ligpng licence :
Quote
The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.


Well.. here you only used a really small part of it, but I think it's similar. At least, that's the idea.


As for your project, do you mean you use movies to display animations ? Do you have a screenshot or something like that to show us ?

It does look like you planned to use your movie class for a very specific use (which may also explains why you do not support audio), whereas I'm trying to do something rather general and for a basic use : display an introduction movie for a video game, or display transition movies.


Edit: by the way, I'm not saying I did all of the work too. The first work I've been noticing is the video integration tutorial (http://www.sfml-dev.org/wiki/fr/tutoriels/integrervideo) posted by timidouveg, although it's mostly copied from the ffmpeg tutorial with some improvements especially as for the deprecated functions. I admit I did not post any thanks for now, but you can be sure they will be present when sfe::Movie get posted on the wiki.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Xorlium on November 02, 2010, 07:20:06 pm
Hi Celyo,

Sure, but don't laugh ;) Here's an image:
http://grola.no-ip.org/snapshot.png

The two weird-looking things (pointed to in red; I realize most of it is weird looking :)) are video textures, generated from a video source file (in mkv format) and shaders, so that it can take different shapes.

I made mine for this particularly, but I realized it can be used as a "moving texture".

But for example, say someone wants to add subtitles to the intro movie. How would they do it with yours?

Of course, the problem with mine is that it doesn't have any sound :)

Xorlium
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 02, 2010, 07:38:58 pm
Well, as for the subtitles, I guess the developer would have to hardcode it in the movie, or display it with a sf::String on the movie's image. FFmpeg can also read the subtitles from the movie's file, but I didn't add any support for this point.

So, from what I understand, you used a movie to display an animation. Wouldn't a basic image sequence or animation sheet be easier to use ? You can also apply shaders with these.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Xorlium on November 02, 2010, 07:53:24 pm
Hi Celyo,

Well, considering the image size is about 700x700 and there are about 10000 frames, it really is better with video :)

The thing is, I'm thinking of a video as an sf::Image that just happens to change over time.

For simple animations with 25 frames or so, sure, multiple images might be better, but when you get in the thousands...

And then if you have a consistent way to interchange videos and images, then why not?

Xorlium
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 02, 2010, 08:46:00 pm
Ok I understand better now. Indeed I had never considered so big and long animations :D . But I'm still curious about why you need these. I mean, on your screenshot, I can only see a animation that is about 100x100 pixels, and I don't really realise why you would need a 10 000 frames' animation. It represents an animation of more than 6 hours with 25 FPS :o .

And can you easily change the video ? Because encoding 6 hours is.. well... quite long :mrgreen: . Whereas with basic animations you can change only the concerned image.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Xorlium on November 02, 2010, 09:25:58 pm
Check your math there :)

10000 frames at 25fps is 6 minutes, not 6 hours :) And it takes about 1-2 hours to generate (I generate them using libnoise), and another hour or so to encode.

On the screenshot I showed a zoomed out version (in my game, you can zoom in and out) so that you'd see both "nebulas".

Xorlium
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 02, 2010, 09:32:52 pm
Oh well, please forgive me for the 6 hours, I'm a bit tired :mrgreen: .

And sooo.. you don't mind having to wait for.. 2-3 hours to get your movie ready to use ? Did you do some testing with basic animations ?
Title: sfeMovie project [v1.0 RC1 available]
Post by: Xorlium on November 02, 2010, 09:47:04 pm
Hi Celyo,

Yes, I tried first to generate it on the fly, but it dropped my framerate abruptly. I tried maany different ways until I came to this one.

The reason I must have 10000 frames is that I wanted it to be cyclical. Libnoise generates coherent 3d noise, so what I do is I take a torus and generate it like that, so that the last frame is the same as the first frame. If I take less than that many frames, it "moves" too fast (or too choppy if I decrease fps), and if I decrease the radius of the Torus, I get the right of the image moving way faster than the left.

Also, I encoded the video a long time ago and haven't had to re-encode since. And at the beginning I generating it on the fly, which meant that at least for small (like 200x200 pixels) it was still fast enough for me to test and tweak as much as I wanted in real time. Once that worked well, I just scaled up. Nailed it in the second try :) (I did have to encode two times because I was using only 1000 frames and that made it jump way too fast, but whatever)

Xorlium
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 06, 2010, 11:54:30 pm
Time for some news! :D

What has been done since last time
- sfe::Movie::Stop() is working fine now. It goes back to the beginning and you can resume playing right after stopping the movie.
- I've been working a lot on performance optimization. Now if the video decoding is late, it is shortened as much as possible (the image is still decoded, but not resized, not converted, not loaded, and not synchronized ; in other words, it's skipped). Thus audio and video keep synchronized. See the second part of this post for more information about this point.
- I've added sfe::Movie::ResizeToFrame() to easily resize the movie. It's main interest is that you *can* preserve the original movie ratio. If you choose to do so, the movie will be centered according to the given frame. Thus you can really easily get the right position and size for your movie, so that it best fits your screen when you want to play a movie in full screen mode for example.
- I've also updated the Xcode (Mac OS X), and Code::Blocks (Windows) project files to match the file name changes.


Performances
I did a lot of testing to find which parts in the code were taking too much time. These tests have been done on my personal laptop :
Intel Core 2 Duo 2.4 GHz, Intel GMA X3100 graphic card with 144 MB, 2 GB of DDR2 RAM.

Here are the results :

On Mac OS X:
- 31.6% : sf::Sprite::Draw()
- 16% : video decoding (avcodec_decode_video2())
- 10.1% : synchronization between the main thread and the video decoding thread with mutexes (sf::Lock)
- 7.7% : image loading (sf::Image::LoadFromPixels())
- 4.4% : image conversion from YUV to RGBA format (sws_scale())

On Windows (same computer) :
- 38% : sf::Sprite::Draw()
- 18.3% : video decoding (avcodec_decode_video2())  
- 18.4% (!!!) : synchronization between the main thread and the video decoding thread with mutexes (sf::Lock)
- 6.1% : image loading (sf::Image::LoadFromPixels())
- 6.3% : image conversion from YUV to RGBA format (sws_scale()) (sws_scale())


As you can see, on Windows the synchronization is taking twice as much time as on Mac OS X. I've no explanation about this for now. But to sum it up : a 1280x544 definition movie plays fine on both Mac OS X and Windows, but as for the 2048x872 definition movie... it works fine on Mac OS X (no frame skipped) but not on Windows (frames are skipped every 1 or 2 seconds).

To my mind, this is still quite good, 1280x544 is still a good definition, and I don't have a very powerful laptop, this should be usable for higher definition movies with computers that are just a bit more powerful. I'll of course try to improve the performances for Windows if I can find a solution.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 10, 2010, 01:56:27 pm
I've been doing a little bug fix : when pausing/resuming the movie playback several times, the audio track was getting late. This is due to the fact that sf::SoundStream often plays again the last samples that were being played right before performing the pause. Thus now audio and video should ALWAYS keep synchronized.

This was the only remaining bug I knew as far as Mac OS X and Windows are concerned. As for Linux, there's been a crash reported and I still need to fix it. After this is done, I think I'll post sfe::Movie on the wiki.


Now... I would like to get your feedback for a few questions :
- for now, Pause() pauses the movie playback if it's playing, and resumes it if it's paused. This is the behavior I find the most logical but I realised sf::Music was not working that way, and I would like to know which behavior you prefer.

- the second point is about the error/warning messages. With the last bug fix, there are even some more messages because the video track is catching up with the audio track. But... there messages are not really useful. They are actually mostly used for debug purposes. So, even if these messages are outputted to std::cerr only, I would like to know whether you think I should remove them. They could be useful when you're developping an application and want to check whether your movie definition is too high for a basic computer. What do you think of it ?

- and last but not least, I've start a blog in order to make some advertisement for me and SFML. Till now I wrote an article (in english) to sum up what is the sfe::Movie project. If you're interested, you can have a look at it at http://ceylow.wordpress.com/ . I'm probably going to reuse what I wrote in this article for the project's presentation on SFML's wiki. I also plan to write another article, more focused on how sfe::Movie works, rather than what is does. So... if you have any comment, don't hesitate, I'm listening to you! :) (I hope my English is not too bad :roll: )
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on December 04, 2010, 03:20:24 pm
Some news here :) .

1. As for Ubuntu, I wasn't able to make a bootable USB stick (it has several partitions and my laptop won't boot from it...). Thus I asked Ubuntu.org for a CD, and I'll get it.. when I get it.

2. I'm looking for two persons to help me to develop sfe::Movie. The first person must be a Windows developer and the second one a Linux developer. If one works regularly on both and can do both, it's even better.

The goal is to do testing to find out what's slowing down the video playback (this may depend on the OS and hardware). You'll also have to test sfe::Movie to the limit so that we can exactly know what's its behavior in these conditions and to find out possible bugs (one has been reported on Linux but I still don't know why it is happening). This testing will also help us to improve the overall performances with high resolution movies and/or with "slow" computers.
I'd also like to provide the simplest integration, thus the developer will choose the way the library should be distributed for the OS he's using. It may seem obvious to the one using the concerned OS, but to me it does not as for Windows and Linux.


Note that I *could* do most of that work, but it would take time.. that's I don't have. And as I want sfe::Movie to reach a mature state, I'll focus on Mac OS X and let the rest of it to one or two other developers.

To the one who may participate, note that's you'll have to use Git to post your work.


3. As for the improvements, here are my thoughts till now.

I'm thinking of decreasing the time during which the displaying and decoding threads are locked. I plan to lock the mutexes for the time of an image swap instead of an image loading. Thus there'll be a front and a back image directly handled by sfe::Movie. This should allow the class to better use the processing units and provide an even smoother video playback.

I'm also thinking of letting the possibility to define a target definition. For example if I have a movie with a 2048x872 definition and my screen's definition is only 1280x800, copying and transferring pictures of the original size is useless. This would also let the final user, if he's running a slow computer, and the developer does not want to provide video files for each definition, get better results. This is not as efficient as providing the video files for several definitions but it may still be a significant improvement with very few efforts.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on December 09, 2010, 11:58:31 am
News again :) .

1. The source files have been updated and can be used to compile sfe::Movie against SFML 2.0. I didn't make any change to the headers and libraries on the Git repository, thus you'll have to replace them with the SFML 2.0 version in order to compile sfe::Movie for this version.

2. I've also committed a very small change that greatly improves the fluidity* of the video playback. This change applies to both SFML 1 and SFML 2.

3. Danman is helping me on the Linux version of sfe::Movie (still crashes quite often for now).


Sooo.... still many things to do, but it's still getting better and better ! :)


*Is it the right word to say the video playback is much more fluent ?
Title: sfeMovie project [v1.0 RC1 available]
Post by: Terrydil on December 10, 2010, 04:51:51 am
Quote from: "Ceylo"
*Is it the right word to say the video playback is much more fluent ?


If you mean that the playback is smoother than before then "improves the fluidity" makes sense.  I wouldn't say playback is "fluent" though, just smooth, or maybe consistent. :)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on December 10, 2010, 06:57:00 pm
Ok, so.. the fluidity of the video playback has been improved ^^.


(smoothness is fine too?)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 17, 2011, 01:12:13 pm
Some news again :P

Right now I'm trying to provide binaries for each OS so that you do no more have to deal with compiling sfeMovie (I admit it's not so obvious). As for Mac OS X, the library is ready. As for Windows.. I'm still working on it and I'll try to get it ready next week-end.


Otherwise, I've noticed a few issues with audio/video sync. When video is late, it correctly catches up with the movie timeline, but not audio. I hadn't noticed this earlier because audio processing is much lighter and hardly ever blocked as samples are buffered and ready to use even if the program is freezed.

One way to "fix" this issue is pausing then playing. Because at playing time it'll synchronize according to the audio timeline. However I cannot always synchronize to the audio timeline because it's not precise enough (it's not updated often enough). Thus I would have to implement seeking.

I could also manually skip some samples, as I do for the video track. But I think I'll just implement seeking as it's also needed.

I guess that'll be the first task for v1.1.
Title: Awesome
Post by: Haikarainen on May 07, 2011, 10:14:57 pm
Where can i get my hands on this?

Im working on a project for my car, basically an embedded computer. Writing the shell in SFML, and i need video playback support. It will be running Linux Debian on ARM Architecture, is linux supported?

How much work would it be to be able to seek the videos? If its not too hardcore lowlevel coding i might be able to pull it off.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 07, 2011, 10:39:13 pm
Hello Haikarainen,

Thanks for your interest :) .

You're quite true, I didn't even give a link to the Git repository...
Here it is : https://github.com/Yalir/sfeMovie

I didn't really work on the Linux port, but the developer who wanted to help told me it often crashed. Thus the short answer is no. However you can notice that this project relies on portable libraries only, thus you may be able to fix the bug. Note that I've never tested sfeMovie on an ARM architecture.

As for building sfeMovie, the shell script supposed to do so is not ready yet, so here is what you have to do :
1. Build FFmpeg static libraries
2. Put these libraries in sfeMovie/deps/ffmpeg-build (create the directory if needed)
3. Run CMake and the EDI/compiler you chose to use (probably make)

As for seeking, I don't know how much time you'll need. There is no hardcore coding, it's all about properly using FFmpeg and making the rights changes to sfeMovie.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 08, 2011, 03:03:42 pm
As a side note, here is a wiki page I had started : https://github.com/SFML/SFML/wiki/ProjectsfeMovie

It's still incomplete but you may find some useful information.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Haikarainen on May 08, 2011, 10:04:58 pm
Quote from: "Ceylo"
Hello Haikarainen,

Th.. blablab text.


Ok, shouldn't be too hard. If I ever get the code working perfectly on a linux platform I will notice you :)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 08, 2011, 10:13:23 pm
Indeed it would be really nice of you! :D

I wish I had the time to get sfeMovie work perfectly everywhere and support every important features and get the world peaceful and.. but well no, for now I don't have enough time :oops: .
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 12, 2011, 06:20:30 pm
Hello everyone,

Information update from 2011-05-12
I'm writing here to give you the latest news about the sfeMovie project.

As you may know, sfeMovie is a small C++ library that lets you play movies in SFML based applications. It relies on SFML for the rendering process and FFmpeg for the decoding process. It supports both audio and video, and basic controls. This project has been written to work closely with SFML and tries to keep the same easy-to-use paradigm, while remaining coherent with SFML's conventions.


Information and download:
Most of the information is available through the wiki page (https://github.com/SFML/SFML/wiki/ProjectSfeMovie), including the download links (https://github.com/SFML/SFML/wiki/ProjectSfeMovie#downloads).

For now, sfeMovie is available to Windows and Mac OS X, and is in a beta state. Thanks to FFmpeg, sfeMovie can read many formats, including AAC, MP3, Vorbis, WMA, H.264, MPEG4, Theora, VP6 and WMV.
There is still a lot of work to do, but the current version already lets you use the main features.

I'm inviting you to test the library and write your feedback about bugs or any other issue you encountered. The bug tracker (https://github.com/Yalir/sfeMovie/issues) allows you to check the already-reported bugs or upcoming features and improvements.


As for the differences with the previous versions:
- all of the precompiled FFmpeg binaries have been dropped
- a script to compile everything for you has been added, it also allows you to exactly choose which decoders you want to enable
- FFmpeg is statically linked to sfeMovie, thus you don't have to care about FFmpeg dlls
- some minor bugs have been fixed


Ceylo
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on May 28, 2011, 05:38:18 pm
I downloaded the binaries for Windows, but in the "lib" directory there is no libsfe-movie.lib file to link against. What am I missing? I really don't want to install GCC, MinGW etc to recompile this. I have no experience with them and it'll turn into a can of worms...

Thanks
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 28, 2011, 06:23:56 pm
For now the only supported compiler is GCC. Supporting the other compilers is among the many things to do. That's why there is no .lib. The provided package only contains the libraries for GCC.
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on May 28, 2011, 09:05:59 pm
Ahh ok, thanks very much :)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 13, 2011, 12:06:27 am
Hello!

Here are some news about the project :) . This time the updates mainly target bugfixes. And at the time I'm writing this, there is no more known blocking bug!

As for the fixed bugs:
- there's no more shimmering while rendering on Windows
- there's no more freeze at the end of the movie playback
- there's no more freeze when replaying the movie after its end
- there's no more freeze when replaying the movie after a manual Stop()
- there's no more random freeze when pausing/playing the movie

As for the other changes not directly related to bugs:
- the time system has been switched to milliseconds, in order to follow SFML 2.x updates
- the underlying implementation now further relies on threads : the image swap at the right time and the video decoding now occur in different threads
- when opening a video file, the first image is automatically loaded before you call Play(), in order to display this image even if the movie playback hasn't started yet
- pausing/resuming is now a little bit more efficient as it does no more involves stopping and restarting a thread

And the only remaining bug:
- there's still nothing done when the audio playback gets late

What I'm currently working on but which is still not ready:
- Visual Studio support for Windows


So, if you want to give a try at this latest update, I invite you to have a look at the sfeMovie wiki (https://github.com/SFML/SFML/wiki/ProjectsfeMovie) :) .
Title: sfeMovie project [v1.0 RC1 available]
Post by: Haikarainen on June 15, 2011, 01:08:45 am
Quote from: "Ceylo"
Hello!


Sweet update! will check this out immediatly and reply with some feedback ;D

Edit: Fail :( Couldn't play any of the 28 video files i had on my computer because of codec-errors :/ and the compileityourself-thing wasnt a road i felt like taking today.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 15, 2011, 02:17:09 am
What did you use to read your files?

If you used the beta binaries, they only include decoders for the flac, vorbis and theora formats. This is for patents reasons, because I cannot distribute the other (compiled) decoders without paying royalties.

That's why everything is provided to build sfeMovie with the decoders you want.

Thus, if you want to give it a try, you'll have to find OGV video files, or build sfeMovie yourself.


PS: note that the provided beta binary is from may 12th, which is not the updated version I was talking of in my last post.
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on June 22, 2011, 04:16:20 pm
Sounds like really good progress is being made, I can't wait to get this running under Visual Studio, this will make a BIG different to the stuff I am working on.

On another note, do any of the included decoders support transparency?

I have animations I need to play, but over the top of the rendered scene. Rendering out a few thousand frames is a bit time-consuming :p

Thanks
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 23, 2011, 08:36:01 am
Hi slotdev,

Thanks for your comment :) .

As for the decoders that support transparancy, you should have a look at the Sorenson Video 3 codec. It does look like it is indeed supported by FFmpeg (named as "svq3"), thus by sfeMovie too. It has never been tested though.

Ceylo
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on June 23, 2011, 11:23:03 am
Ah that's fantastic, thanks for the info!
Title: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on July 02, 2011, 04:31:03 pm
sfeMovie is not ready yet on Visual Studio, is it?

You define the macro sfe_movie_EXPORTS, although you use SFE_EXPORTS in the code. And it seems like some libraries aren't linked yet, I get unresolved symbols to av_free() etc.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 02, 2011, 09:24:39 pm
Indeed it isn't, though I have no unresolved symbols. Actually I succeeded in making the sfeMovie Visual Studio libraries but it crashes at runtime. And even if sfe_movie_EXPORTS is defined, SFE_EXPORTS is supposed to be defined too.

Did you use the build.sh script to build sfeMovie?
Because the purpose of this script is to build FFmpeg and make the project file for your IDE through CMake, plus a little explanation for Visual Studio:
Quote
The files required to build sfeMovie for Visual Studio have been created.
Now run Visual Studio, open sfeMovie.sln and follow these instructions:
- go to the sfe-movie properties panel. There, go to Linker > Input and add the following lines:
libavdevice.a
libavformat.a
libavcodec.a
libavutil.a
libswscale.a
libz.a
libgcc.a
libmingwex.a
libmoldname.a
- build the solution



Edit: hum looks like I forgot to commit my latest CMakeLists.txt file, that defines SFE_EXPORTS. You should manually add this definition for now.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on July 02, 2011, 10:22:59 pm
Quote from: "Ceylo"
Did you use the build.sh script to build sfeMovie?
No, I only ran CMake. How can I execute a .sh file without a Linux environment/emulator?

And don't you want to build FFmpeg with CMake, too?
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 02, 2011, 10:31:52 pm
Well.. the FFmpeg developers only provided a configure script, and I need this script to enable only the decoders that the user wants to use (and possibly pay the royalties). Thus no, I can't use CMake to build FFmpeg.

To run the build.sh script, you must use MinGW (download here (http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/)) as stated on the wiki (https://github.com/SFML/SFML/wiki/ProjectsfeMovie#build).
Title: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on July 03, 2011, 12:47:31 am
Can't CMake invoke the configure script? It would certainly be good if you didn't force every Windows user to install those Linux tools just to build the library... Maybe you can also add binaries or links to websites where users can find them.

I think it is not MinGW, rather MSYS, isn't it? I have downloaded the "msys/console" binaries from here (http://sourceforge.net/projects/mingw/files/MSYS/console), and guess what's there: A Linux shell file! Is that some kind of "to understand recursion you must first understand recursion" joke? The documentation (which is stored in an extension-less file, probably to annoy Windows users more) recommends console2 (http://sourceforge.net/projects/console/), the only problem is that this is a Windows console, of which I already have cmd.exe.

[Edit] Okay, I have now installed the whole MSYS, in spite of my initial hope that the shell could come standalone. To ensure that this isn't getting boring, the configure script and with it cmd.exe crashes (host for console window stopped working). With option 4 (use all codecs), I get "./configure: fork: Invalid argument", but cmd.exe stays alive.

Have you ever encountered these issues? By the way, I tried both sh.exe and bash.exe.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 03, 2011, 11:38:21 am
I dunno whether CMake could invoke this script, but anyway FFmpeg needs a recent MinGW runtime to build.

And that's why MSYS is not suitable for building sfeMovie. MSYS fails in passing the whole configure tests because of a too old runtime version. That's why a gave a link to MinGW and not MSYS.

As for giving a link to prebuilt versions, I dunno whether this is a good idea.  Because these versions usually include all the decoders and the user thinks everything is fine. But what the user often doesn't know, is that if he/she distributes his/her software program with sfeMovie, he'll probably have to pay royalties or get sued, because not all decoders are free to distribute.

By the way, I should probably add a check like "I have read the above notice and I am aware of the involved responsibilities (among which, the fact I may have to pay royalties for some decoders)".
Title: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on July 03, 2011, 11:57:15 am
Thanks for the explanation. Sorry for the annoying questions, but how do I actually build the configure scripts with MinGW? I have already installed MinGW to test my code on g++, but I can't find a shell or a tool to run .sh files apart from those in MSYS. Do you happen to know the name of the executable with which I can execute your build script?
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 03, 2011, 12:42:46 pm
Your questions are NOT annoying! Actually it rather shows what anyone could wonder, and what's make sfeMovie tricky to use. And as I want it to be the most easy to use as possible... you're welcome :D .

As for your question, I've switched to Windows and... I'm a bit surprised. You were right with MSYS, but it's the one provided with MinGW :P : C:\MinGW\msys\1.0\msys.bat
Title: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on July 03, 2011, 01:22:54 pm
Thank you. Now msys.bat can be started after I moved it to the MinGW/msys/bin folder. I really don't understand why there is always a user-side configuration necessary before something works. It wouldn't have been difficult at all to set the MSYS working directory or to put the batch file to the right place. :roll:

Anyway, now it doesn't crash, but I get the following error when running build.sh from msys.bat:
Quote
Enabled outdevs:

License: LGPL version 2.1 or later
Creating config.mak and config.h...
config.h is unchanged
libavutil/avconfig.h is unchanged
libavcodec/../subdir.mak:96: *** missing separator.  Stop.
*** an error occured, aborting.

The line in this makefile contains the following code:
Code: [Select]
$(eval $(RULES))
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 03, 2011, 02:33:51 pm
I didn't have to move any file to get the MinGW shell working. And I remember having your error.. but I can't remember how I got it fixed exactly. I would just recommend you to use MinGW with the link I gave.

I don't know which runtime version you're using and why you needed to manually add the msys.bat file.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on July 03, 2011, 03:52:33 pm
Quote from: "Ceylo"
I don't know which runtime version you're using and why you needed to manually add the msys.bat file.
I used the most recent MinGW version of the link you gave. And I just reinstalled MinGW with MSYS. The msys.bat probably didn't work directly because my path contains spaces (btw another limitation I can't stand).

For sfeMovie/build.sh, I also set up a path without spaces, but I still got the same error when building. I also tried to insert a tab before that line, to no avail... :?
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 03, 2011, 04:08:46 pm
Ok, I've no other idea for now. I'll remove MinGW, reinstall it and fully download sfeMovie and see what I get as soon as I have a bit more time.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 03, 2011, 04:47:03 pm
So.. here is what I've done:
- remove MinGW
- install MinGW from the link I gave (and select MSYS base system in the options of what-is-to-be-installed)
- download a zip of the latest sources of sfeMovie
- run "./build.sh windows" from the MSYS shell provided by MinGW

And it got to the compilation phase without any issue. Thus I don't know what's wrong with the build process on your computer. I let the default installation path for MinGW and the sfeMovie archive has been extracted to the desktop.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on July 03, 2011, 06:18:11 pm
When I don't check the 3rd box "MinGW developer toolkit" at the installer, I get errors because pr.exe isn't installed. I tried to install everything multiple times (with both the second box checked and unchecked). If there is no space in the path, msys.bat is able to start, but I still get the above error... I don't know whether it is a OS-related issue, I use Windows 7 64 Bit. The PATH environment variable contains both MinGW/bin and MinGW/msys/1.0/bin.

Thanks a lot for the support in this thread. I will possibly try it after some time again... If I should find out something, I will post it here.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 03, 2011, 07:01:27 pm
Oh, I didn't know for the pr thing, thanks! Till know I just let these pr errors as they didn't prevent me from building sfeMovie.

As for the OS, I'm using Windows 7 32 bit, I don't think it's related. I've checked my path though, and here's what I had:
Quote
C:\Program Files\Common Files\Microsoft Shared\Windows Live;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Windows Live\Shared;
C:\Program Files\CMake 2.8\bin;
C:\Program Files\CodeBlocks\MinGW\bin;
C:\Program Files\CMake 2.8\bin;
C:\Program Files\GnuWin32\bin;
c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;
C:\Program Files\QuickTime\QTSystem\


I dropped these to see whether it was related to the current issue:
Quote
C:\Program Files\CodeBlocks\MinGW\bin;
C:\Program Files\CMake 2.8\bin;
C:\Program Files\GnuWin32\bin;

But it did not change anything (still building fine).

And if I do echo $PATH after that change I get:
Quote
.:
/usr/local/bin:
/mingw/bin:
/bin:
/c/Program Files/Common Files/Microsoft Shared/Windows Live:
/c/Windows/system32:
/c/Windows:
/c/Windows/System32/Wbem:
/c/Windows/System32/WindowsPowerShell/v1.0/:
/c/Program Files/Windows Live/Shared:
/c/Program Files/CMake 2.8/bin:
/c/Program Files/Microsoft SQL Server/100/Tools/Binn/:
/c/Program Files/Microsoft SQL Server/100/DTS/Binn/:
/c/Program Files/QuickTime/QTSystem/


Dunno whether this can be of any help. I'd love to know how you fix this, it'll be useful to other users.


Edit: I still can't get your issue but I noticed that when you want to build the libraries for GCC, you need to select the C++ compiler when installing MinGW. It was working fine for me because I also had CodeBlock's MinGW in the path and it was the one being used, but otherwise CMake doesn't find the C++ compiler.
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on July 08, 2011, 11:25:51 am
Hi

I really need to start using sfeMovie very soon. I use VS 2005. I think I have to recompile the Theora libs and also the sfeMovie code?

Do I have to use CMake at all??

Thanks
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 08, 2011, 12:48:00 pm
Hi slotdev,

You should first have a look at the project's wiki : https://github.com/SFML/SFML/wiki/ProjectsfeMovie

You'll probably get the answer to most of your questions there, including how to build and use sfeMovie.
But note that even if I'm working on it on my free time, Visual Studio is still not supported and I can't give you any release date.

Ceylo
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 08, 2011, 07:32:16 pm
Some news:

- I still can't get sfeMovie to work with Visual Studio. Still investigating. What's weird is that I *can* make a library that uses both FFmpeg and SFML within Visual Studio, and use that library, but not sfeMovie...

- sfeMovie works fine on Linux! This is probably due to the previous changes as I haven't especially worked on this port. However I have noticed a small bug : the video freezes when using pause/play. I know what's wrong and it shouldn't take much time to be fixed.
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on July 13, 2011, 11:02:02 pm
Hmm that is strange. What kind of library are you trying to make (static .lib or DLL?) and what kind of error messages are you getting?

What version of VS are you using?

Maybe I can try here. Can you can ZIP everything you have so far for the VS version, and send me a link?

Thanks

Ed
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 18, 2011, 12:23:17 pm
Yup, I'll commit the latest changes as soon as I've some time and let you know so that you can give it a try (it's kinda mess for now). I tried both dynamic and static libraries, using Visual C++ Express 2010.
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on July 23, 2011, 01:03:18 pm
Thanks. I really need to get this working and into my project ASAP so anything you can do is appreciated :)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 23, 2011, 06:04:23 pm
Should be ok for testing (and crashing) now. Download the zip file from https://github.com/Yalir/sfeMovie/zipball/master . Then perform the normal build.sh thing (see the sfeMovie wiki).

This will build static FFmpeg libraries and create a solution for Visual Studio. The build.sh script gives you some notes about some flags you need to manually set in Visual Studio. Then build the library with Visual Studio and you're done. This will produce a dynamic sfeMovie library with FFmpeg statically included.

If you want to use FFmpeg dynamic libraries, copy the configure lines when the build.sh script builds FFmpeg, and add --enable-shared. Then in Visual Studio replace the previously added .a libraries with the newly generated FFmpeg .lib files. When using the .lib files, you don't need libz.a, libgcc.a, libmingwex.a or libmoldname.a.

Note that I do not use the latest SFML 2.0 files, maybe it works with these too as I don't use sf::Input. There are included SFML binaries and headers from the revision I used.
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on July 24, 2011, 05:27:28 pm
Thanks! I've built it, and the (debug...) sfe-movie.dll is 17mb! Ouch :)

Anyway, I will look at it soon, and update to SFML 2.0.

Ed
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 31, 2011, 03:47:25 pm
Have you got some time to test the sfe-movie dll and see what's wrong with it?

By the way, would be interesting to know if you did something special in order to build the dll, as it doesn't seem to have been that easy for Nexus.

Ceylo
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 02, 2011, 07:16:11 pm
A quick note for those who would still like to use sfeMovie with a recent version of SFML 2, as the latest sfeMovie commit doesn't work fine :
- download this version : https://github.com/Yalir/sfeMovie/zipball/1c249813dafaae28309512e871054eace14d5d16
- go to src/Movie_video.cpp ligne 40, and set GL_HACK to 1 (instead of 0) then build as usual


I'm a bit busy and can't do more for now.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 16, 2011, 09:56:02 pm
A little note to tell you I stop working on sfeMovie for, in order to work on another library: Awl. This library should allow me and others to work with parallel programming much more easily, and sfeMovie will be able to benefit from it. I've indeed been a little bit fed up of all the parallel programming issues I got with sfeMovie.

The repository : https://github.com/Yalir/Awl
A sample with SFML : http://pastebin.com/4SKHyAms
Title: sfeMovie project [v1.0 RC1 available]
Post by: Hiura on September 17, 2011, 11:59:26 am
Well, good luck to you! Sounds great! ;-)

I'm wondering, is the paste bin example the definitive syntax (i.e. AwlAsyncBlock/AwlMainThreadBlock and AwlCloseAsyncBlock/AwlCloseMainThreadBlock pairs) or will you (perhaps) change it later ?
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 17, 2011, 12:13:52 pm
Well.. yeah, I suppose this is the definitive syntax, and I can't find anything better as these are macros and thus need to be written as one word. Would you think of some other syntax ?

Moreover since yesterday there has been some additions and one now has:
AwlAsyncBlock
AwlCloseAsyncBlock
AwlCloseAsyncControlledBlock(taskRef) (gives back a Task object to allow cancelling/killing/waiting)

AwlAsyncCall(function)
AwlAsyncMethod(method, object)

AwlMainThreadBlock
AwlCloseAsyncMainThreadBlock (execute on main thread but don't wait for completion)
AwlCloseMainThreadBlock (execute on main thread and ensure completion before continuing)

AwlMainThreadCall(function)
AwlMainThreadMethod(method, object)

Hopefully I don't think there will be other macros like these, it seems enough to fit any situation.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Hiura on September 17, 2011, 12:44:08 pm
Your syntax is not bad - you define a small DSL, that's it. However, if you want to keep the "C-like" syntax maybe the following could be a solution. I don't know exactly if it fits very well, though.



Code: [Select]
#define AwlAsyncBlock(functionBlock) \
{ \
    struct __awl_local_struct \
    { \
        static void __awl_async_block(void) \
        { \
            functionBlock \
        } \
    }; \
    awl::AsyncCall(boost::bind(__awl_local_struct::__awl_async_block)); \
}

:
:

AwlAsyncBlock
(
    tex1.LoadFromFile("big_image1.png");
    :
    :
)


So instead of using accolades you can use parenthesis.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 17, 2011, 12:56:35 pm
And no more closing macro needed. I like it. Actually what I would have really loved would be writing the same with { } and no closing macro, for two reasons: to explicitly keep the idea of block, and to ease indentation.

As for the latest point, with { } the block is correctly indented, whereas with ( ) it's indented by one space and the closing parenthesis is not aligned to the opening one. These are details but annoying details for everyday's programming.

But.. I could successfully try the following syntax:
Code: [Select]
AwlAsyncBlock
({
    // some code
})


Which is more interesting than with the close macro. Thanks!
Title: sfeMovie project [v1.0 RC1 available]
Post by: Laurent on September 17, 2011, 02:04:34 pm
I'm not sure that you can have a ';' inside a macro argument, it would mess up the code parser.

And I strongly encourage you to open a new topic about Awl instead of "polluting" the sfeMovie thread ;)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Hiura on September 17, 2011, 02:15:42 pm
Quote from: "Laurent"
I'm not sure that you can have a ';' inside a macro argument, it would mess up the code parser.
Well, I just tested on gcc 4.2 and apple llvm compiler and both compiled the code fine. So apparently it works with these two at least.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 17, 2011, 02:19:14 pm
Created new topic for Awl there : http://www.sfml-dev.org/forum/viewtopic.php?p=38679#38679
Title: sfeMovie project [v1.0 RC1 available]
Post by: greeniekin on September 26, 2011, 07:39:34 am
I am thinking of adding video to a current project I'm working on.

I downloaded the windows binary version, to test it. In my example I used big buck bunny OGG Theora Video, Vorbis stereo sound version.

It is the example code you provided on the wiki.

What I get back in console output is
Quote
[avi @ 00932850]max_analyze_duration reached
Movie_video::Initialize() - could not find any video decoder for this video form
at
Movie_audio::Initialize() - could not find any audio decoder for this audio form
at
[/code]

I then removed  movie.ResizeToFrame(0, 0, 640, 480); for some reason
then i swear i heard sound for a second then the app crashed. every time after this the app crashed even when i changed it back and compiled.


now i get this in console whenever it crashes

Quote


[theora @ 00983aa0]7 bits left in packet 82
    Last message repeated 1 times
[theora @ 00983aa0]Warning, unsupported keyframe coding type?!
    Last message repeated 1 times
[theora @ 00983aa0]Header packet passed to frame decoder, skipping
Movie_video::DecodeFrontFrame() - an error occured while decoding the video fram
e


I will try compile the library from scratch when I get some time and see if I have some better luck. Though if anyone has any insight that would be very helpful.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 26, 2011, 12:26:25 pm
1. Make sure the video format is really Theora and the audio format is really Vorbis.
2. You can indeed try to build it but if the point is an unsupported video/audio codec, building with the same configuration (ie. enabling only flac, theora and ogg) should produce the same results. You can give it a try with more decoders though.
3. It would be nice if I could get a piece of your video to test it.
4. If you only need Theora and Vorbis support you can have a look at SFMLTheora (http://www.sfml-dev.org/forum/viewtopic.php?t=4448).
Title: sfeMovie project [v1.0 RC1 available]
Post by: greeniekin on September 26, 2011, 05:37:09 pm
Quote from: "Ceylo"
1. Make sure the video format is really Theora and the audio format is really Vorbis.
2. You can indeed try to build it but if the point is an unsupported video/audio codec, building with the same configuration (ie. enabling only flac, theora and ogg) should produce the same results. You can give it a try with more decoders though.
3. It would be nice if I could get a piece of your video to test it.
4. If you only need Theora and Vorbis support you can have a look at SFMLTheora (http://www.sfml-dev.org/forum/viewtopic.php?t=4448).


The video is freely available from http://www.bigbuckbunny.org/index.php/download/
I downloaded the lowest resolution OGG format.
I checked in vlc it's codec details and it is theora and vorbis(as the site says).

I will check out SFMLTheora and see if it is a replacement. One feature i want is to get the current frame and set it to an opengl texture.

Thank you for your fast reply.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 26, 2011, 07:15:39 pm
Ok. I tested your video file and indeed it won't display properly (although I've no crash and I have the soundtrack playing fine). I rebuilt sfeMovie with all of the codecs and I didn't get any better results, so I suppose this is just because of FFmpeg (used by sfeMovie). Maybe it's been fixed since I posted that beta but I can't tell you now.

I'll give it a try with the latest FFmpeg sources and tell you what's up.

PS: as for the feature you were wishing, note that even if sfeMovie gives access to the current image, it doesn't guarantee that you'll get every images. If your code is too slow, you may not be able to get some images, and if your code is too fast, you'll get some images several times.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 26, 2011, 08:37:55 pm
With the latest FFmpeg source I get the same "no decoder found" message as you, and I can't work on it now, thus I think you've no other choice than using SFMLTheora.
Title: sfeMovie project [v1.0 RC1 available]
Post by: greeniekin on September 27, 2011, 06:47:18 am
Quote from: "Ceylo"
With the latest FFmpeg source I get the same "no decoder found" message as you, and I can't work on it now, thus I think you've no other choice than using SFMLTheora.


Thanks a lot for your help. I don't actually need to play big buck bunny specifically. I just wanted an example to try. Though I do expect other people to make videos in one of my projects. I could say they have to use a particular format theora and vorbis to avoid licensing. Though it might be an issue if it has trouble with decoding legitimate movies.

The behavior about getting an image twice when fast and skipping when slow is exactly what I want. To ensure the person see's the movie at the speed it should display. The idea(in one project) is to be able to have a tv in an opengl 3d world.

Edit:
Also. I removed some code in my loop where i tried to use the image and it no longer crashes and I hear the music playing in the background.

Though i converted a different video using
http://v2v.cc/~j/ffmpeg2theora/download.html
and the console output is still.
Code: [Select]
Movie_video::DecodeFrontFrame() - an error occured while decoding the video fram
e
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 27, 2011, 04:40:35 pm
The first video frame is never decoded, whichever video you choose. I don't exactly know why, maybe it's not an error and it just means the video header has been decoded. I print this message in sfeMovie every time the decoding function returns an error, but I can't know more about what this error means. You shouldn't worry about it, except if it's repeated.

Now as for the Theora codec, I think the issue is specific to some profiles* or codec version, because I could play some other OGV files without trouble. But I don't know which profile/version is ok. Maybe SFMLTheora is working fine concerning that point.

*see Wikipedia (http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles) for example
Title: Poor performance on Windows!
Post by: golgoth on October 03, 2011, 03:51:16 am
Greetings,

I`ve managed to compiled your player on Windows 7 with Visual studio 2010 but the movie playback at 1920x1080 is chunky and makes HD movies unwatchable. I tried the same movie with the VLC player to make sure it wasn’t my system and it works fine.
Any thought on what might be killing the performance on widows?
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 03, 2011, 09:12:00 am
Hello golgoth,

First of all I must say I am REALLY interested in knowing how you got it working with Visual Studio.

Secondly, there isn't much you can do except playing lower resolution movies. The highest resolution I could play with an Intel Core 2 Duo 2.4 GHz was 2048x872 on Mac OS X, and the results were not as good on Windows. 2048x872 is already around 1.8M pixels/image, your video is around 2.1M pixels/image which is just... too much for sfeMovie. Besides, when sf::Texture appeared in SFML, there has been threading issues that forced the use of additional computing and the performances got worse. I do not know how VLC gets such good performances yet, this is one of the things I've to work on for sfeMovie.

I'm wondering exactly which version of the library you're using, but you should try resolutions like 1280x720. Depends on your hardware (and software but I don't think you want to bother with fixing and improving the lib yourself).
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on October 03, 2011, 02:43:37 pm
Quote

First of all I must say I am REALLY interested in knowing how you got it working with Visual Studio.


That makes two of us. Please tell, and share! I use VS2005 and I cannot get it to work, and I really need to soon!

Ed
Title: sfeMovie project [v1.0 RC1 available]
Post by: golgoth on October 04, 2011, 04:33:03 am
Hello there,

I`ll be glad to share as most people here especially Laurent and Ceylo have been a great inspiration to me!

Here is what I did, kind of sketchy but you’ll get the idea.

•   I got the Yalir-sfeMovie-1c7b4c4 source files from sfeMovie site.
•   Removed anything related to ffmpeg you provided and replaced them by those binaries: http://ffmpeg.zeranoe.com/builds/
•   Close Visual Studio 2010
•   I used cmake-gui to create the project
•   Open your solution and drag and drop all related libs directly in sfe-movie project (sfml and ffmpeg libs)
•   In the solution property, change your output dir to some location and copy the dlls over there (sfml and ffmpeg dlls)
•   You might have to add new lib and include folders to your project properties
•   Build your sfeMovie solution
•   Replace missing defines by AVMEDIA_TYPE_VIDEO and AVMEDIA_TYPE_AUDIO
•   Build again
•   Create an empty win32 project inside your solution, add the sfeMovie lib, main.cpp and movie.h to your new project
•   Select your new project as the default project in the solution property and set sfeMovie as dependency, make sure you have a valid path for your movie (main.cpp), build and voila

That how I did it in a nutshell.

Now, I’ve been on this for a while and can’t handle HD movies so far, I was curious if Ceylo did managed to beat me to it so I inverse engineered is stuff… all in vain. :) NOTE:  I use OpenGL with PBO to render and I still have horrible latency. With that in mind, there is a bottleneck that is very hard to grasp.

Few thoughts,

•   Sws_scale might be too heavy on the CPU, I’m considering converting YUV to BGRA in a GLSL shader but still not sure how yet.
•   I’m currently decoding only one frame at the time. Adding a dedicated thread for decoding and storing few frames might improve speed.
•   Eliminate copying the decoded data to the CPU and/or the GPU. Means the decode data would be pass to GLSL and mapped directly to SubTex2D, that’s a long shot but not impossible.

I’ve looked at VLC source and it’s like Chinese to me, hopefully you’ll have a better understanding.

I’ll be very interested I your findings also. You might consider opening a new thread.

Hope it helps. -Golgoth
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 04, 2011, 07:30:29 pm
Thank you very very much for your feedback golgoth, I'll have a look at Visual Studio as soon as possible :D .

As for your thoughts, I've been studying the bottlenecks too, and I can tell you it's not because of the conversion from YUV to RGBA. This conversion takes some time but is only a very small part of the CPU use. Besides.. I don't know whether you also use FFmpeg for the video decoding but from what I know there is no warranty for the output format to be YUV422, thus you'd need to consider each output format.

You can see some more detailed results I got long time ago here : http://www.sfml-dev.org/forum/viewtopic.php?p=22888#22888

As for the one frame at a time, you can draw, upload a texture and decode a frame in a parallelized way, but you cannot decode several frames at the same time, because each image depends on the previous one. Without the previous image, the current one can't be decoded except if it's a key frame.

As for eliminating the copying of the data... FFmpeg outputs the decoded data to a buffer in the RAM, not VRAM. And I don't know whether it is possible to give a buffer to the VRAM to FFmpeg.

As for the VLC sources I've never thought of looking at them, but I suspect they use hardware decoding through the OS API.
Title: sfeMovie project [v1.0 RC1 available]
Post by: golgoth on October 07, 2011, 03:30:57 am
Hello again,

I made a performance profiling when playing HD movies with my ffmpeg player and 75% of my process is dedicated to SFML Window::Display();  OpenGL SwapBuffers() that is!

I`m stunt and yet, not surprised. Anyone have ideas why the OpenGL context is stalling and what solutions are there to optimize this call?

NOTE: I tried different combinations but so far, the best result comes with Window::SetFramerateLimit to the movie`s frame rate and Window::EnableVerticalSync to false.

Any constructive inputs would be look at closely.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Laurent on October 07, 2011, 07:39:40 am
Quote
Anyone have ideas why the OpenGL context is stalling and what solutions are there to optimize this call?

OpenGL commands are queued by the driver, and executed in SwapBuffers (or glFlush/glFinish if you call them). So it will always be these functions that consume most of the CPU.

If you call SetFramerateLimit or EnableVerticalSync, the wait also happens in Window::Display(), so this might be another explanation.

I don't know whath happens exactly in this particular situation. The rendering code is very specific, it's hard to tell. Deeper tests are definitely necessary in order to identify the "problem" precisely.
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on October 12, 2011, 10:43:53 pm
Golgoth, is there any chance you can ZIP up your VS2010 project which built the libraries and share with us?

Thanks
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 19, 2011, 11:40:58 am
:shock:  I got it running within Visual Studio 2010.
With crashes, as expected, but at least now I can start debugging :D .
I got one weird point though : even if I linked against FFmpeg static libs, it was still requesting the FFmpeg dlls. But it's not really important compared to getting it running :) .

Thank you very very much golgoth, I love ya!
Title: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on October 20, 2011, 12:35:22 pm
Ceylo

If you need some testing doing on the VS2010 version, let me know!!

Ed
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 26, 2011, 06:57:36 pm
Okay. I think I've got something ready for Visual Studio :) Dynamically linked, release only, and with "a few" dlls, but it's working fine. Don't expect anything great as for performances, but at least you'll be able to work with both sfeMovie and Visual Studio.


Download the first zip and get the FFmpeg dlls from the second link (I'm not providing the FFmpeg dlls for legal reasons).

sfeMovie and SFML files: https://github.com/downloads/Yalir/sfeMovie/MSVC_files.zip
FFmpeg files: http://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-git-6bca574-win32-shared.7z

As for the Git repository, what you can get from there is still not usable for Visual Studio. I've some cleaning to do.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 07, 2012, 12:19:24 am
Some news about the project!

• I finally did the texture upload in the drawing thread => no more useless glFlush() => better performances
• I updated FFmpeg to v0.10 => multithreaded decoding => again better performances (= 2048x872 playback without getting late even when running in a virtual machine) AND more video formats supported (actually I can read any video I've on my computer)

Everything is currently stable and fully working for :
• GCC on Mac OS X (64 bits)
• MinGW and Visual Studio on Windows

For now I'm especially waiting for SFML 2.0 release in order to fix names and use the latest classes (I still don't use sf::Time).

So... well.. now let's just wait for Laurent!
Title: sfeMovie project [v1.0 RC1 available]
Post by: Laurent on March 07, 2012, 08:01:11 am
Great news! I'm glad you finally managed to fix all the bugs and get very good performances :)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 07, 2012, 10:31:50 pm
Quote from: "greeniekin"
Quote from: "Ceylo"
1. Make sure the video format is really Theora and the audio format is really Vorbis.
2. You can indeed try to build it but if the point is an unsupported video/audio codec, building with the same configuration (ie. enabling only flac, theora and ogg) should produce the same results. You can give it a try with more decoders though.
3. It would be nice if I could get a piece of your video to test it.
4. If you only need Theora and Vorbis support you can have a look at SFMLTheora (http://www.sfml-dev.org/forum/viewtopic.php?t=4448).


The video is freely available from http://www.bigbuckbunny.org/index.php/download/
I downloaded the lowest resolution OGG format.
I checked in vlc it's codec details and it is theora and vorbis(as the site says).

I will check out SFMLTheora and see if it is a replacement. One feature i want is to get the current frame and set it to an opengl texture.

Thank you for your fast reply.

I tested the video again and it's playing fine now.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 13, 2012, 09:08:41 pm
I did the naming convention change and I now use sf::Time. So sfeMovie is now usable with SFML 2.0.

Currently I'm trying to find out how to make sure it'll run on Windows XP too. On Mac OS X there are SDK to build your application against some older OS version, but I don't know if there is something similar on Windows.

Does one of you know about it ?
Title: sfeMovie project [v1.0 RC1 available]
Post by: Laurent on March 13, 2012, 10:31:13 pm
There's nothing to do, it should work.
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 15, 2012, 05:00:20 pm
sfeMovie 1.0 RC1 available :) => see wiki (https://github.com/SFML/SFML/wiki/ProjectSfeMovie)

Everything you need to know should be in the wiki. I'm waiting for your questions or comments! If everything goes well, sfeMovie 1.0 will be released when SFML 2.0 is released.

For those who want to see a demo (Windows) : sfeMovie Demo.zip (http://lucas.soltic.perso.luminy.univmed.fr/downloads/sfeMovie%20Demo.zip)
Title: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 19, 2012, 09:24:32 pm
Not much feedback except one person on the French forum !

Has something annoyed or stopped you ? or some other reason ?

When the final v1.0 is released, I'll make a new topic in the right section : SFML projects.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 27, 2012, 02:05:18 pm
I've just noticed there was an issue with the RC1 sources download (the link was fine but nobody could download the file). It's fixed.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on March 29, 2012, 06:34:30 pm
Hey, this project still looks very interesting. At the moment, it's just a little bit difficult for me to fully exploit it, because I'm currently occupied with Thor and another project, but nevertheless I hope to spend some time on it soon. Do you know if sfeMovie works well for Visual Studio?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 29, 2012, 08:26:40 pm
Hello Nexus,

Yes it is working well with Visual Studio, except for one point : I noticed than when launching the exe within the EDI, it crashes at exit (after main() is over), whereas it doesn't when launched from the Explorer. I had hoped to get some feedback about it, to see whether I'm the only one concerned or not (or because of some specific hardware for example).

This is something I want to fix before the 1.0 release, in case I find out it depends on my work. The reason is still unknown.

As for the performances, they are as good as with MinGW.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: DJuego on April 04, 2012, 01:42:16 pm
This project is fantastic! Thanks Ceylo!

Have you considered adapt it for other video sources? Camera adquisition? Stream video? images-generated-on-the-fly?... it would be fantastic!

I made a very very simple (and very very useful) class (I named CDisplay) for showing *video* with SDL a varios years ago. The *input* was unsigned char * uncompressed RGB frames (bitmap images). LOL! Nothing professional of course (my skills are low) but it worked like a charm for my purposes.

More details: I worked with a SAPERA SDK from Teledyne Dalsa and a photonfocus Camera. The adquisition speed was 200 frames per second. The display render speed was unknown (:D)

DJuego

Sorry for my shocking English.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 04, 2012, 02:03:02 pm
Thanks for your comment :)

No I haven't considered these features yet. I prefer to focus on simple and basic features for now, and make sure everything is reliable. Especially as far as Visual Studio is concerned (see previous posts).

Once everything is ok, there are a few other features I would like to focus on, before extending sfeMovie to a wider area : seeking and subtitles. And once this is done, maybe playing video from other sources like RTSP streams or custom input streams. Remember that sfeMovie is still a video player, not a video recorder or generator.

May I ask which resolution you were using for your frames ?

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: DJuego on April 04, 2012, 02:57:13 pm

Once everything is ok, there are a few other features I would like to focus on, before extending sfeMovie to a wider area : seeking and subtitles. And once this is done, maybe playing video from other sources like RTSP streams or custom input streams. Remember that sfeMovie is still a video player, not a video recorder or generator.

A cold and organized mind.  I like it!


May I ask which resolution you were using for your frames ?



Yep! 640 x 480. Obviously, the parameter was configurable.

Originally, in operation mode, the 'display' had to be turn off or the system missed frames. The threading improved it but not enough  >:(. At last the display only could be used in calibration mode  :-[.

In any case the images was very bored. You can believe me. A damned cross-platform industrial OCR.  ::) It was built with Visual Studio and GNU gcc (Mingw port & Ubuntu).

DJuego
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 04, 2012, 10:27:47 pm
Yep! 640 x 480. Obviously, the parameter was configurable.

Originally, in operation mode, the 'display' had to be turn off or the system missed frames. The threading improved it but not enough  >:(. At last the display only could be used in calibration mode  :-[.

In any case the images was very bored. You can believe me. A damned cross-platform industrial OCR.  ::) It was built with Visual Studio and GNU gcc (Mingw port & Ubuntu).

DJuego
Does it mean the rendering process was consuming too much time ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: DJuego on April 05, 2012, 12:52:05 pm
Does it mean the rendering process was consuming too much time ?

Not too much time. Simply, our requirements were unreasonable at that time and at that place. 

In any case 200 frames per second, 5ms per frame...  Although it could make it we wouldn't *see* it (refresh monitor limits). Nowdays 3D monitor refreshes the screen to 120hz or so. AND...  too fast for the human visual pathway  ::)


Our solution for rendering (more or less) was:
             
First. A thread for rendering.

Second. When a new frame was adquired from camera (SAPERA calls to our callback function)...

We test if the render process was busy(with an old frame).

    - if yes, the new frame was not rendered (discard rendering).

    - if no, the new frame is rendered (concurrently).

***

Here, the character recognition process (in very broad outlines) <- Industrial secret  ;D...¡nah!

***

The callback function returns. The system is ready for new frames.

DJuego

Sorry for my English!  :(

P.S: SAPERA is the adquisition card driver

                         
                                 





Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 05, 2012, 10:53:21 pm
Uh ok I understand better. 200 frames/second, that's quite a lot to process for the OCR system. And of course too much for displays, but not important as human can't see it, as you said.

Sounds quite efficient even if you said it wasn't professional.
As for the industrial secret, if I didn't miss the point : there are 'not that bad' free and open source OCR systems now, such as Tesseract (http://code.google.com/p/tesseract-ocr/).

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 07, 2012, 03:50:30 pm
The crash at exit when running within Visual Studio has been identified.

It's similar to https://github.com/SFML/SFML/issues/30 (although not the exact same one) and can be fixed by using the latest OpenAL DLL from http://kcat.strangesoft.net/openal.html.

Thus there is no more known bug for Visual Studio where sfeMovie is responsible.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: snoozer87 on April 20, 2012, 04:52:30 pm
Alright, your project looks really good and it would be perfect for showing an intro. However, the function movie.openFromFile(...) never seems to work, I've tried with all sorts of formats now (.avi and flv for example) and it just never loads...

I also don't get any errors or debug information... Any idea what the problem is? Do I need to doo something with ffmpeg first or is it enough to link against the sfe-movie.lib and add the .dlls to the project?

Best regards

*EDIT*

Tried an ogg file and that loads perfectly (only audio)

*EDIT2*
Video ogg works aswell, everything else fails :(
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 20, 2012, 06:41:20 pm
Hello snoozer87 !

Thanks for your interest :)
As you have found out, the provided sfeMovie binaries only include some decoders : ogg vorbis, ogg theora and flac.

This is because I cannot provide decoders for other formats without paying royalties. Thus if you want support for avi or flv files (note that avi and flv are just containers, not codecs), you'll have to build sfeMovie yourself and enable some or all of the decoders. To do so you can follow the explanations on the wiki (https://github.com/SFML/SFML/wiki/ProjectsfeMovie).

Or if you want to keep things simple, use one of the free codecs*.

Ceylo


* since sfeMovie 1.0 rc has been released, I've found out a few more free codecs : VP8 on any OS, and WMV/WMA on Windows. These will be included in the final v1.0.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: snoozer87 on April 20, 2012, 08:09:26 pm
Thanks a lot for the info, I just thought about rebuilding myself, so my apologies for the rather stupid question :p.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 20, 2012, 08:24:06 pm
Don't worry, you're not the first one to ask :P
I should make this info more visible.

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: snoozer87 on April 21, 2012, 02:51:07 am
I'm sorry to bother you again, but I just rebuild the whole project and I selected to build all the codecs (to be sure). Sadly enough, the problem persists and I cannot load avi or flv files :(.

I'm aware that avi and flv are containers, so maybe the underling codec is not supported :).
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 21, 2012, 08:48:47 am
Did you replace the FFmpeg dlls (avcodec & such) with the one you just built ?
They are in sfeMovie/deps/ffmpeg-build.


NB : one more info I should make more visible :D
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 22, 2012, 12:28:03 pm
Wiki updated.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 25, 2012, 02:01:56 pm
Hello,

I'm currently working on movie seeking. It's already working quite well, but I have a question for you.

Movies are in general composed of key frames (containing a full image) and progressive images (containing only the changes from the previous frames). The interval between two key frames can be of a few seconds. Also note that when seeking to a non key (ie. progressive) frame, you'll see artifacts as the image is incomplete.

Thus I would like to know, among the following possibilities, which one you prefer :
- use key images : produces perfect images but the reached position may not be the exact one you wanted, instant seeking
- use any image : may produce incomplete images until a key frame is reached but the reached position is the one you wanted, instant seeking
- use a more complex algorithm that seek to the closest previous key frame and then load the next frames as fast as possible until the wanted position is reached. This produces perfect images and the reached position is the one you wanted, but it takes some time (usually less than one second, but it's quite noticeable)
- let the user choose which method to use among the previous ones

So what's your thought about it?

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on April 25, 2012, 05:34:11 pm
I'd prefer exact images, because one might also use the seeking feature for previews/screenshots or the like. And I'd start with the expensive algorithm, while you can still add a default parameter in the future.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 25, 2012, 08:24:39 pm
I'd prefer exact images, because one might also use the seeking feature for previews/screenshots or the like. And I'd start with the expensive algorithm, while you can still add a default parameter in the future.

Ok I understand. It's noted.

Laurent has answered on the French forum too. And he said the user should be able to choose between any of these three methods. But I'm actually trying to figure out in which cases each method would be useful.

- approximative perfect images : the use case you said but on slow computers
- incomplete images : I saw it was used in the Kdenlive video editor. But I don't really know why they didn't use the 3rd method. In order to do faster and less CPU expensive seeking? But I don't expect people to do video editing on slow computers so...
- expensive method : in common movie players and your use case

If someone had needs for the instant seeking with incomplete images, it'd be great to tell his/her use case and reasons here :) .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Laurent on April 25, 2012, 08:34:39 pm
You can also use the approach where you only implement what you personally find relevant, and then wait for users feedback to decide whether you must implement other methods or not.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on April 26, 2012, 11:44:34 am
You can also use the approach where you only implement what you personally find relevant, and then wait for users feedback to decide whether you must implement other methods or not.
Ok. I think I'll rather do this, and just do the expensive algorithm for now, as Nexus said. This is also the one that seems the most relevant to me.

Thanks for your feedback!
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: N1ghtly on May 02, 2012, 10:03:34 pm
Very cool library man!
I'll use this for my cutscenes :D
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 02, 2012, 10:30:20 pm
Hello N1ghtly!

I'm really pleased to know it'll be useful to you :D
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: aNewHobby on May 03, 2012, 09:14:06 am
dose this have the abilities to use masks, either as a black and white video that plays at the same time acting as a mask or a embed channel of some kind. I know quicklime can embed a alpha channel.. I am sure there are other formates as well that can.

I'm using SFML to make a small 2D project and was wondering what options there are for playing videos at exact pixel coordinates. So say your game window is 1280x720 and you have a few videos one is say 100x100 pixels to make your still image background look like the fountain is running... stuff like that.

All (heh I say this like it would be nothing) would be to be able to loop seamlessly and just play from an exact pixel location.. either have an alpha channel or just overlay ontop of it a 2d bitmap masking out the parts you do not want.. that might be easier as you wouldn't need a video alpha but could get near the same results in most cases (unless you wanted something to move behind teh video.. scene design could make this not needed i guess.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 03, 2012, 03:25:01 pm
Hello aNewHobby,

If I understood correctly, you want to display a looping animation that has an alpha channel, but no audio? As for exact pixel coordinates, I think any player is ok, this shouldn't be a problem.

As far as sfeMovie is concerned, there are several supported formats that can handle alpha channel (including qtrle, gif and maybe svq3 but I can't find back the information for this latest format) but looping isn't available for now. Plus you made me notice bug that will prevent you from playing short animations.

Thus, sfeMovie is currently not ready for what you want to do.

But for what you want, I think you can find simpler solutions :
- adapt a GIF player
- make or use an existing animation player : basically, they load several image files and display them sequentially, or load one sprite sheet and display a different subrect of the image for each frame. You can find sample codes or even projects about this available on the SFML forum.

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: aNewHobby on May 03, 2012, 06:43:41 pm
If I understood correctly, you want to display a looping animation that has an alpha channel, but no audio? As for exact pixel coordinates, I think any player is ok, this shouldn't be a problem.

well, alpha is not strictly needed as I said, but yes... video .. . or at least a sequence of sprites that play like a video with no sound is what I am looking for.

But for what you want, I think you can find simpler solutions :
- adapt a GIF player
- make or use an existing animation player : basically, they load several image files and display them sequentially, or load one sprite sheet and display a different subrect of the image for each frame. You can find sample codes or even projects about this available on the SFML forum.

thank you I will look into these .. much appreciated.. I'll find a way to use your thing though.. maybe a logo tumble at the start on application load or something :)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 03, 2012, 08:19:24 pm
thank you I will look into these .. much appreciated.. I'll find a way to use your thing though.. maybe a logo tumble at the start on application load or something :)

Glad I could help you, but please don't consider you *have* to use sfeMovie just to use it :D
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on May 05, 2012, 07:26:47 pm
Ceylo

Can I static link sfeMovie....? I seem to remember a long time ago it was not possible...

Thanks
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 05, 2012, 07:56:23 pm
Hello slotdev!

I still haven't allowed static linking against sfeMovie because it's under LGPL, so that you don't have to care about all of the dependencies, and because static linking with FFmpeg and Visual Studio does not work. Why do you need to statically link against sfeMovie ? for which IDE on which OS ?

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 05, 2012, 08:02:44 pm
As far as sfeMovie is concerned, there are several supported formats that can handle alpha channel (including qtrle, gif and maybe svq3 but I can't find back the information for this latest format) but looping isn't available for now. Plus you made me notice bug that will prevent you from playing short animations.
A little note about the GIF format: I found out FFmpeg cannot load animated GIF, it'll just load the first image.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on May 05, 2012, 08:49:16 pm
Hello slotdev!

I still haven't allowed static linking against sfeMovie because it's under LGPL, so that you don't have to care about all of the dependencies, and because static linking with FFmpeg and Visual Studio does not work. Why do you need to statically link against sfeMovie ? for which IDE on which OS ?

Ceylo

I have to static link all our code because we cannot change/update MSVC runtime libraries. We have fixed hardware platforms which are out of our control.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 05, 2012, 09:08:51 pm
Hmmm.. FFmpeg libraries cannot be statically linked into your program with Visual Studio.

But FFmpeg is a C library always built with MinGW, where Visual Studio is used to produce the .lib files only. Thus I don't think the FFmpeg dlls depend on any MSVC runtime version. Therefore, what could be done is produce a static version of sfeMovie and provide FFmpeg as dlls. Would that fit your needs?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: aNewHobby on May 06, 2012, 06:19:43 pm
- make or use an existing animation player : basically, they load several image files and display them sequentially, or load one sprite sheet and display a different subrect of the image for each frame. You can find sample codes or even projects about this available on the SFML forum.

Did some tests with Thor2 and the animation class it has.. and this seams to work fine for my needs. Though there could be some frame rate problems.. I'll put some work into it.. thanks for the tips.

I was wondering, am I correct in thinking your player thing only works in windows and mac and not in linux?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 06, 2012, 06:41:09 pm
I was wondering, am I correct in thinking your player thing only works in windows and mac and not in linux?

As far as Linux is concerned, sfeMovie works on my Debian VM and works for a Gentoo user too. But danman reported crashes so for now I'm trying to figure out what's wrong. Thus it should be ready for Linux soon but there are some fixes required first.

You could give it a try and tell me whether it works fine for you though :) . (with the latest sources from the git repository)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 18, 2012, 04:46:46 pm
Hello everyone!

As you may know, current sfeMovie's status on Linux is undefined. The main reason is that some Linux users told me it's working fine, whereas others told me it's not. Thus I would like to know, once for all, what's wrong with sfeMovie on Linux.

That's why I'm now inviting Linux users to test the following sfeMovie package (Intel) : sfeMovie-linux-32b-1.0-rc1.tar.gz (https://github.com/downloads/Yalir/sfeMovie/sfeMovie-linux-32b-1.0-rc1.tar.gz) (5.1 MB). It uses SFML 2.0 RC.

As for the source code of the testing program, you can use the provided sample code : main.cpp (https://github.com/Yalir/sfeMovie/blob/master/sample/main.cpp).

You should also know that, for now, I don't know much about distributing packages for Linux, so if anything is lacking or there are more interesting ways to provide packages than the way I did, don't hesitate to tell it :) . The binary files I gave include the FLAC, Vorbis, Theora and VP8 decoders (and no other one !). Thus, I'm especially expecting users to test OGG/OGV/WebM movies.

I'm also asking to the testers, to tell me whether it works AND what is your OS, processor and graphics card. That way I can check whether it works for a particular family of hardware.

Thanks :)
Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 23, 2012, 04:49:08 pm
No Linux user interested in testing the library ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: shadowguns on May 24, 2012, 12:53:59 pm
Hello Ceylo ...
I'm Having a problem in running sfe-movie :(
i made everything .. every step ..
and it successfully running in Release Mode
but .. while running in Debug Mode .. it displays this error !

Unhandled exception at 0x7548b9bc in Project.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0039ef84..

when i press Continue .. this appears :
Project.exe has triggered a breakpoint

when i press Continue again .. this appears :
Unhandled exception at 0x6b1f20c4 in Project.exe: 0xC0000005: Access violation writing location 0x694bc7ec.

any help on this problem .. ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 24, 2012, 01:08:39 pm
Hello shadowguns,

Could you tell me a bit more about what you did? Which version of sfeMovie are you using? Is it a prebuilt version or did you build it yourself?

Does the issue happen with one specific video file or any video? Could you write a minimal sample code that reproduces the issue?

I don't know much about how debug/release binaries are handled by Visual Studio but it might also be the reason of the crash. If this is the true reason, you'll have to stay with release mode for now as I provided no way to build debug binaries.

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: shadowguns on May 24, 2012, 01:17:13 pm
Hello Ceylo ..
i've downloaded the compiled version .. Windows (Visual C++ 2010)
i'm using SFML 2.0
on Windows 7
and this is my code ...

int main()
{
    sf::RenderWindow window(sf::VideoMode(640, 480), "sfeMovie Player");
    sfe::Movie movie;

    // Open movie file for reading
    if (!movie.openFromFile("video.ogg"))
        return 1;

    // Scale the movie drawable to fit the window and start the playback
    movie.resizeToFrame(0, 0, 640, 480);
    movie.play();

    while (window.isOpen())
    {
        sf::Event ev;
        while (window.pollEvent(ev))
        {
            if (ev.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        // Render the movie, the images and sound are updated in the background
        window.draw(movie);
        window.display();
    }

    return 0;
}
----------------------------------------------------------------------------------------------------------------------
when running in debug mode .. and start without debugging (Ctrl + F5)
it says the following error :
Debug Error !

R6010
- abort() has been called
(Press retry to debug the application)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 24, 2012, 01:26:52 pm
Ok, so you're trying to play an Ogg video with sfeMovie 1.0rc under Visual Studio 2010 in debug mode.
I'll have a look at it next weekend, but not before. I'm too busy right now. For now stay in release mode if you can.

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: shadowguns on May 24, 2012, 02:06:53 pm
ok Thanks a lot Ceylo :)
but .. opps !
the next weekend !? :( :(
i'll go for an exam with my project next Saturday :(
so .. i need to complete my whole project with the video before Saturday morning !
so.. if you could please look at that problem & done it on Friday ??
Thanks again :D
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 24, 2012, 04:08:41 pm
Yes I can have a look at it friday afternoon too, but remember that it doesn't mean I'll immediately find out what's wrong. Thus you have no guarantee. For your exam you have to do a demo in debug mode ? (I'm actually busy with exams too these days :P )
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: shadowguns on May 24, 2012, 05:18:08 pm
Thanks Ceylo :D
i know of course :P
but .. please work hardly on it as you can :)
it is important for me please :)
thanks again ^^
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 25, 2012, 04:36:56 pm
*currently looking at what's wrong with debug mode*

For now I successfully reproduced the crash in debug mode (and it's working fine in release mode).

Edit: a debug build of sfeMovie made it work for me. Tell me if it's ok : https://legacy.sfmluploads.org/file/137 (34KB). I used both this debug build and the debug version of SFML in debug mode.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: shadowguns on May 26, 2012, 04:13:12 pm
Thanks a lot Ceylo :D
it is now WORKS Perfectly :) :)
Thanks Again :)
----------------------------------------------------------------
there is a new problem here :(
movie.close();

"sfe::Movie::close" (declared at line 241 of "C:\sfml2\include\SFML\Movie.h") is inaccessible

it can't see the close() method ! .. i don't know why ! :( :(
although .. Movie.h is accessible and exists in that folder !
can you help me in this please ??
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 26, 2012, 04:15:43 pm
Thanks a lot Ceylo :D
it is now WORKS Perfectly :) :)
Thanks Again :)
Good to know! :)

there is a new problem here :(
movie.close();

"sfe::Movie::close" (declared at line 241 of "C:\sfml2\include\SFML\Movie.h") is inaccessible

it can't see the close() method ! .. i don't know why ! :( :(
although .. Movie.h is accessible and exists in that folder !
can you help me in this please ??
sfe::Movie::close() is private. Why do you want to use it?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: shadowguns on May 26, 2012, 04:32:20 pm
i want to use a cut scene in my game project !
so .. i want to play it when i run the project .. while the game is not running !
then i want to close that video after it done .. and then run the game !
how can i do that ??
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on May 26, 2012, 04:38:10 pm
If you want to let the movie play until it's finished, use sfe::Movie::getStatus() every frame and start your game once it returns sfe::Movie::Stopped. If you want to stop it before the end, just call sfe::Movie::stop().

And note that the movie will still be displayed (even if not playing) until you stop calling window.draw(movie) every frame. Thus you should not call this when you want to play the game.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 01, 2012, 05:25:11 pm
Hello everyone!

As you may know, current sfeMovie's status on Linux is undefined. The main reason is that some Linux users told me it's working fine, whereas others told me it's not. Thus I would like to know, once for all, what's wrong with sfeMovie on Linux.

That's why I'm now inviting Linux users to test the following sfeMovie package (Intel) : sfeMovie-linux-32b-1.0-rc1.tar.gz (https://github.com/downloads/Yalir/sfeMovie/sfeMovie-linux-32b-1.0-rc1.tar.gz) (5.1 MB). It uses SFML 2.0 RC.

As for the source code of the testing program, you can use the provided sample code : main.cpp (https://github.com/Yalir/sfeMovie/blob/master/sample/main.cpp).

You should also know that, for now, I don't know much about distributing packages for Linux, so if anything is lacking or there are more interesting ways to provide packages than the way I did, don't hesitate to tell it :) . The binary files I gave include the FLAC, Vorbis, Theora and VP8 decoders (and no other one !). Thus, I'm especially expecting users to test OGG/OGV/WebM movies.

I'm also asking to the testers, to tell me whether it works AND what is your OS, processor and graphics card. That way I can check whether it works for a particular family of hardware.

Thanks :)
Ceylo
No feedback about this ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on June 13, 2012, 05:53:13 am
Hello Ceylo

I managed to compile the library and run the sample program (from the git sources) using clang 3.1.
However, I found this issues:

* CMake was trying to link a static version of ffmpeg, which (at least for me) resulted in unresolved symbols even with the -fPIC flag, linking against a shared version solved the problem.

* The audio did not play in sync (it started after the video) in the movie I used with the sample program. The same video plays fine with mplayer and ffplay.


There may be other issues, but this is what I have found.

For additional information, this is my software/hardware stack:

OS: Arch Linux x86_64 (using kernel 3.4.x)
Processor: AMD Athlon X2 Dual-Core QL-64
Graphic Card: ATI Mobility Radeon HD 3200
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 13, 2012, 10:46:54 am
Hello Rogof!

Thanks for your feedback :) .

Quote from: Rogof
* CMake was trying to link a static version of ffmpeg, which (at least for me) resulted in unresolved symbols even with the -fPIC flag, linking against a shared version solved the problem.

I indeed noticed this recently thanks to the feedback of a French user. It was not happening for me because I was using a 32 bits Debian VM, and this issue appears on Linux 64 bits only. I've been able to statically link FFmpeg by adding the -fPIC flag, but also by disabling the assembler optimizations, which is not satisfying. Thus I ended up linking dynamically too. I think that's the solution I'll keep for Linux.

Quote
* The audio did not play in sync (it started after the video) in the movie I used with the sample program. The same video plays fine with mplayer and ffplay.
It may be this issue: https://github.com/Yalir/sfeMovie/issues/3 (although I didn't give much details about it).
But just in case: could you provide your testing video or at least a part of it ? by how much (approximatively) was it desynchronized ?

Thanks again!
Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on June 13, 2012, 10:32:06 pm
Quote from: Ceylo
But just in case: could you provide your testing video or at least a part of it ? by how much (approximatively) was it desynchronized ?
The audio starts about 3 seconds after it should. About the movie, I don't know if I can provide it because it's not mine. The movie is a demo movie I downloaded from here:  (NSFW)http://www.game-style.jp/dl/201206/07/99hir_li.php (http://www.game-style.jp/dl/201206/07/99hir_li.php), the download link is the button bellow "デモムービー(104MB)".

The movie itself has a mpeg1 video stream and a mp2 audio stream. I converted the movie to ogv issuing this command:
ffmpeg -i hiragumo_demo_typeA.mpeg -c:v libtheora -c:a libvorbis -q:v 8 some_movie.ogv

The software used was:
    ffmpeg v0.10.3
    libtheora v1.1.1
    libvorbis v1.3.3

When playing the ogv movie with the sample program, found the next issues:

When closing the window while the movie is playing, it displays:
pthread_cond_destroy() error

When toggling to full-screen (pressing f) while playing the movie, a segfault occurs

EDIT: I'm using the open source radeon driver which, when toggling to full-screen gives a bunch of:
radeon: The kernel rejected CS, see dmesg for more information.

with this backtrace:
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff04545ca in ?? () from /usr/lib/xorg/modules/dri/r600_dri.so
#2  0x00007ffff041ad4d in ?? () from /usr/lib/xorg/modules/dri/r600_dri.so
#3  0x00007ffff041fec1 in ?? () from /usr/lib/xorg/modules/dri/r600_dri.so
#4  0x00007ffff042018c in ?? () from /usr/lib/xorg/modules/dri/r600_dri.so
#5  0x00007ffff0420bf9 in ?? () from /usr/lib/xorg/modules/dri/r600_dri.so
#6  0x00007ffff7f76478 in sf::Texture::~Texture() () from build-clang-release/lib/libsfml-graphics.so.2
#7  0x00007ffff7f41af3 in sfe::Movie_video::~Movie_video() () from build-clang-release/lib/libsfeMovie.so.1.0.0
#8  0x00007ffff7f3f1b3 in sfe::Movie::~Movie() () from build-clang-release/lib/libsfeMovie.so.1.0.0
#9  0x0000000000401db5 in main ()
 

And when I run dmesg there is a lot of:
[19815.432173] radeon 0000:01:05.0: texture bo too small ((800 600) (1 1) 0 26 0 -> 1920000 have 4096)
[19815.432184] radeon 0000:01:05.0: alignments 832 1 1 1
[19815.432190] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream !
 

By the way, I've also successfully build the library with gcc 4.7, and got the same problems.

EDIT2: Sometimes the audio plays in sync with the video, don't know the reason though.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 17, 2012, 10:46:44 pm
As for the radeon issue, isn't it the same issue as this ? https://bugs.freedesktop.org/show_bug.cgi?id=47039

As for the audio desynchronization, I still didn't test it. Till now I only fixed the Linux build so that sfeMovie is dynamically linked against FFmpeg. It's committed. But then I noticed I get a crash in sws_scale() on Debian 64 bits but not on Debian 32 bits (exact same build except it's 64 bits). The crash more exactly occurs in an assembler code. I could disable assembler optimizations to get it work but 64 bits Linux users would get a loss in performances. I'm still searching how I can fix this. Thus I couldn't even test fullscreen switching (it works fine for me with the 32 bits kernel).
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on June 18, 2012, 04:03:54 am
Quote from: Ceylo
As for the radeon issue, isn't it the same issue as this ? https://bugs.freedesktop.org/show_bug.cgi?id=47039

No, the bug is this: https://bugs.freedesktop.org/show_bug.cgi?id=49817 (https://bugs.freedesktop.org/show_bug.cgi?id=49817).

Quote from: Ceylo
... I noticed I get a crash in sws_scale() on Debian 64 ...

Actually, I also got a segfault using the same movie but encoded with a different quality.
I think is the same error but just in case, here is the backtrace:
#0  0x00007ffff38f6656 in yuv420_bgr32_MMX (c=0x11b5a80, src=0x7fffffffd520, srcStride=0x7fffffffd500, srcSliceY=0, srcSliceH=600,
    dst=0x7fffffffd540, dstStride=0x7fffffffd510) at libswscale/x86/yuv2rgb_template.c:417
#1  0x00007ffff38e2e20 in sws_scale (c=<optimized out>, srcSlice=<optimized out>, srcStride=0xe380e0, srcSliceY=0, srcSliceH=600,
    dst=<optimized out>, dstStride=0xe382c0) at libswscale/swscale_unscaled.c:1030
#2  0x00007ffff731d5bf in sfe::Movie_video::decodeFrontFrame(bool) () from ../product/lib/libsfeMovie.so.1.0.0
#3  0x00007ffff731d7ac in sfe::Movie_video::loadNextImage(bool) () from ../product/lib/libsfeMovie.so.1.0.0
#4  0x00007ffff731d875 in sfe::Movie_video::preLoad() () from ../product/lib/libsfeMovie.so.1.0.0
#5  0x00007ffff731adbc in sfe::Movie::openFromFile(std::string const&) () from ../product/lib/libsfeMovie.so.1.0.0
#6  0x0000000000401616 in main ()

Quote from: Ceylo
I could disable assembler optimizations to get it work but 64 bits Linux users would get a loss in performances.

If by "disable assembler optimizations" do you mean to build ffmpeg with the "--disable-asm" flag, then I also got a segfault with this backtrace:
#0  0x00007ffff3932b39 in yuv2rgb_c_32 (c=0xd9c630, src=<optimized out>, srcStride=0x7fffffffd500, srcSliceY=0, srcSliceH=600, dst=<optimized out>,
    dstStride=0x7fffffffd510) at libswscale/yuv2rgb.c:217
#1  0x00007ffff392d840 in sws_scale (c=<optimized out>, srcSlice=<optimized out>, srcStride=0xc08c20, srcSliceY=0, srcSliceH=600,
    dst=<optimized out>, dstStride=0xe373b0) at libswscale/swscale_unscaled.c:1030
#2  0x00007ffff731d5bf in sfe::Movie_video::decodeFrontFrame(bool) () from ../product/lib/libsfeMovie.so.1.0.0
#3  0x00007ffff731d7ac in sfe::Movie_video::loadNextImage(bool) () from ../product/lib/libsfeMovie.so.1.0.0
#4  0x00007ffff731d875 in sfe::Movie_video::preLoad() () from ../product/lib/libsfeMovie.so.1.0.0
#5  0x00007ffff731adbc in sfe::Movie::openFromFile(std::string const&) () from ../product/lib/libsfeMovie.so.1.0.0
#6  0x0000000000401616 in main ()
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: slotdev on June 18, 2012, 11:20:05 am
Hi

There was an sfeMove demo of Big Buck Bunny running on the Windows version (i.e. all compiled and ready to run) - where is that file located now? I just need to test it on some hardware to make sure it works!

Thanks
Ed
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 18, 2012, 01:26:59 pm
No, the bug is this: https://bugs.freedesktop.org/show_bug.cgi?id=49817 (https://bugs.freedesktop.org/show_bug.cgi?id=49817).
From what I understood, it's related to SFML, not to sfeMovie. Thus I guess I can't do much about it, or did I miss something?

Actually, I also got a segfault using the same movie but encoded with a different quality.
I think is the same error but just in case, here is the backtrace: [...]
Yes it's the same error.

If by "disable assembler optimizations" do you mean to build ffmpeg with the "--disable-asm" flag, then I also got a segfault with this backtrace: [...]
That's indeed what I mean, and you're right, it stills crashes :-\. I guess I'll have to search deeper for what's wrong there.

There was an sfeMove demo of Big Buck Bunny running on the Windows version (i.e. all compiled and ready to run) - where is that file located now? I just need to test it on some hardware to make sure it works!
Sure, here it is: http://tinyurl.com/sfeMovieDemo (166 MB)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on June 19, 2012, 01:29:53 am
Quote from: Ceylo
From what I understood, it's related to SFML, not to sfeMovie. Thus I guess I can't do much about it, or did I miss something?

Yes, the problem is either something in SFML or in the radeon driver. I will try using the catalyst driver to see if the same thing happens, but my guess is that it only affects the open source driver.

EDIT: The catalyst driver does not have this issue.

I've compiled the ffplay that comes with the ffmpeg in the deps directory to see if the problem is swscale, but it plays (almost) without problems with it.

note: I compiled ffmpeg with the flags used by the build script + the --disable-avfilter flag since ffplay uses it instead of swscale if compiled.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 19, 2012, 09:35:46 am
EDIT: The catalyst driver does not have this issue.
Good to know :) .

I've compiled the ffplay that comes with the ffmpeg in the deps directory to see if the problem is swscale, but it plays (almost) without problems with it.
Yeah I don't expect sws_scale() to be buggy, I must have done something wrong earlier. I've already checked the parameters given to sws_scale() in 32 bits and 64 bits and they're the same (I suspected wrong computations due to the sizes of types), so it should be because of a mistake somewhere else.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: waxx on June 22, 2012, 09:45:49 pm
Is there any option to use this in SFML 1.6?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on June 22, 2012, 11:34:15 pm
Uh... I gave up on SFML 1.6 a... very long time ago. Even in the first (buggy) beta I was already using SFML 2.0. Thus no, sfeMovie isn't usable with SFML 1.6.


Edit: but thank you, thanks to you I found out very old projects I had written, and I'm kinda nostalgic now :D .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 01, 2012, 05:57:29 pm
Yeah I don't expect sws_scale() to be buggy, I must have done something wrong earlier. I've already checked the parameters given to sws_scale() in 32 bits and 64 bits and they're the same (I suspected wrong computations due to the sizes of types), so it should be because of a mistake somewhere else.
The crash with sws_scale() has been fixed :) . I could successfully play movies with Linux 64 bits and OS X with GuardMalloc enabled (the later was actually reporting the same sws_scale() error).

Tell me if everything works fine for you! (use the latest sources from the Git repository)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on July 01, 2012, 09:05:57 pm
Yes, the video plays without crashing, even those encoded with ffmpeg2theora. The only problem is that the audio still lags.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 01, 2012, 09:07:41 pm
Yes, the video plays without crashing, even those encoded with ffmpeg2theora. The only problem is that the audio still lags.
You mean that audio is late ? Yeah I still didn't look at this issue yet. Everything in its own time :) .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 01, 2012, 10:52:32 pm
As for audio, it's late only when I do a stop (S) or restart (R) command with the sample player. Is it the same for you or does it also occur when launching the program ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on July 01, 2012, 10:57:15 pm
When starting the sample program.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 01, 2012, 11:36:54 pm
I couldn't get audio to be late at launch. Even if I've an idea to fix this if it's what I think of. Does it resync when you do pause/play (Space) ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on July 01, 2012, 11:54:49 pm
Quote from: Ceylo
I couldn't get audio to be late at launch. Even if I've an idea to fix this if it's what I think of. Does it resync when you do pause/play (Space) ?

Yes, it does.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 02, 2012, 01:20:53 am
I did another push. Can you tell me whether audio is still desynchronized when launching the sample program ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on July 02, 2012, 02:02:07 am
I did another push. Can you tell me whether audio is still desynchronized when launching the sample program ?

Unfortunately, it is.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on July 02, 2012, 03:19:59 am
I have found the problem  (kind of). For some reason the audio is desynchronized when using the project's sfml build.

Using the version that comes whit archlinux, the audio plays synchronised.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 02, 2012, 09:07:51 am
Uh.. sfeMovie come with SFML 2.0 RC sources (as of April 15) and I didn't see any commit related to the audio package since that time.

Anyway (keep my libraries if it can help at spotting the issue), I've added debug messages that print when audio chunks and images are decoded (see latest push). Add sfe::Movie::useDebugMessages(true); at the beginning of the sample program before testing. If you see something like that :
Code: [Select]
[0.129s] Movie_video::DecodeFrontFrame() - frame not decoded (or incomplete)
[0.129s] Movie_video::DecodeFrontFrame() - frame not decoded (or incomplete)
[0.131s] Movie_video::DecodeFrontFrame() - frame not decoded (or incomplete)
[0.132s] Movie_video::DecodeFrontFrame() - frame not decoded (or incomplete)
[0.140s] did decode a full image
[0.141s] did decode a full image
[0.162s] did load an audio chunk
[0.162s] did start movie timer
[0.163s] did load an audio chunk
[0.164s] did load an audio chunk
[0.332s] did decode a full image
[0.378s] did decode a full image
[0.417s] did decode a full image
[0.425s] did decode a full image
[0.457s] did decode a full image
[0.491s] did decode a full image
it's ok. As you can see, audio loading finishes about 2ms after the movie timer is started (against which video is synchronized). If it's still late I guess it's because of the audio driver that takes too much time to do the initial load. It'd be great if you could give me the first 30 lines of what you get.

By the way, the purpose of my previous push was to force play() to wait for an audio chunk to be loaded before starting the timer, which is, I guess, what was making audio late in most cases.


Edit: and you made me notice that I'm incorrectly counting incomplete images as displayed images  ;D which is why there is 150ms between the 3rd audio loading and the following images loading.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 04, 2012, 10:00:22 am
In case you get similar results to those that I get right above, which would mean the audio driver is responsible for the audio delay, I can think of one solution. What I could do is not starting playing the video before the audio playing offset changes.

From what I've measured, it changes before 23ms, whereas a common movie at 25 FPS has an image every 40ms. Thus that would mean sfeMovie could miss the first image. But as the first image is preloaded, it could even miss none. This is kinda twisted solution but it would make sure audio and video are always synchronized whatever your OS and drivers are.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 05, 2012, 06:49:38 pm
I did implement the previous idea. It'll be useful even in any case, and much more efficient than what was being done to "ensure" audio synchronization. Rogof, could you tell me whether it's working fine now, and in case it's not, what the debug output is ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on July 09, 2012, 10:48:47 pm
I currently have some problems whith my linux system, plus some other issues to attend, so I won't be able to test the library till the next weekend.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 11, 2012, 09:29:51 am
Ok, then I'll be waiting for the next weekend :) .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Flash619 on July 12, 2012, 11:48:10 pm
Hey not sure were to post this, but I seem to get a
Quote
Unhandled exception at 0x77e715de (ntdll.dll) in Genesis.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0075e5b0..
The moment it reaches this line in the stack trace:
if(!PredawnSplash.openFromFile("Recource/SplashScreen/PredawnStudios/predawn_splash.avi"))
 

The whole chunk of code:
void SplashScreen::PredawnStudiosGenesisSplash(sf::RenderWindow& renderWindow)
{
        sfe::Movie PredawnSplash;

        if(!PredawnSplash.openFromFile("Recource/SplashScreen/PredawnStudios/predawn_splash.avi"))
                return;
 

And lastly, the line in the call stack.
Quote
>   Genesis.exe!SplashScreen::PredawnStudiosGenesisSplash(sf::RenderWindow & renderWindow)  Line 14 + 0x29 bytes   C++

I followed the tutorial on your github.  ;D Any ideas on what I did wrong? I see that a lot of other people got this to work, so I doubt its anything to do with sfeMovie. I was just wondering if you had come across this before, and if so, what went wrong, and or, how to fix it. xD
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 12, 2012, 11:55:15 pm
Hello Flash619,

Are you mixing debug and release binaries ? The provided sfeMovie binaries are release only.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Flash619 on July 12, 2012, 11:57:04 pm
Hello Flash619,

Are you mixing debug and release binaries ? The provided sfeMovie binaries are release only.
Hi Ceylo!

Yep! xD Thats exactly what I'm doing. haha. Is there a way to build any debug binaries? Is it just like building the SFML binaries? Because if so it should be easy.... I think... *doesn't build binaries very often*

Also I was able to get the video playing, well not playing. But the screen flickers a lot, and the audio chops in/out/repeats. I looked and I get about 1 Unknown Skeleton v4.0 error every second. Did my encoding go bad on my video?

I should also point out. I noticed it only plays the sounds when I'm NOT on the render window, and it only displayes the skeleton errors as I move the mouse over the render window. o.O'' Could this just be a huge bug in my programming? Because it seems like it could be a huge bug in my programming...... :|
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 13, 2012, 12:15:36 am
For now building sfeMovie really isn't as easy as SFML, especially because it uses FFmpeg that can't be built within Visual Studio. You can try to follow the wiki instructions (https://github.com/SFML/SFML/wiki/ProjectSfeMovie#wiki-build) though (without forgetting to set the Debug mode in Visual Studio).

But as another user had had the same issue, I'd made a debug build : sfeMovie-msvc-debug.zip (http://lucas.soltic.perso.luminy.univmed.fr/downloads/sfeMovie-msvc-debug.zip) (34KB). You can try this although it doesn't benefit from the latest bug fixes (it's from May 15th).
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 13, 2012, 12:20:39 am
Also I was able to get the video playing, well not playing. But the screen flickers a lot, and the audio chops in/out/repeats. I looked and I get about 1 Unknown Skeleton v4.0 error every second. Did my encoding go bad on my video?

I should also point out. I noticed it only plays the sounds when I'm NOT on the render window, and it only displayes the skeleton errors as I move the mouse over the render window. o.O'' Could this just be a huge bug in my programming? Because it seems like it could be a huge bug in my programming...... :|
If you use the FFmpeg binaries provided within the sfeMove 1.0 RC1 package, note that they only include some decoders : vorbis, theora and flac. Thus if your video uses another codec it won't work until you rebuild sfeMovie and choose to enable more (non-free) decoders.

If you use one of the free decoders for your video and don't mix debug/release binaries, then I'll need to have a closer look at it and fix it.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Flash619 on July 13, 2012, 12:23:37 am
For now building sfeMovie really isn't as easy as SFML, especially because it uses FFmpeg that can't be built within Visual Studio. You can try to follow the wiki instructions (https://github.com/SFML/SFML/wiki/ProjectSfeMovie#wiki-build) though (without forgetting to set the Debug mode in Visual Studio).

But as another user had had the same issue, I'd made a debug build : sfeMovie-msvc-debug.zip (http://lucas.soltic.perso.luminy.univmed.fr/downloads/sfeMovie-msvc-debug.zip) (34KB). You can try this although it doesn't benefit from the latest bug fixes (it's from May 15th).

Well it is just for debugging after all. :)

As for the problems I'm expiriencing, I think they have to do with my events in the loop that I'm rendering the video from. It seems when a even't is poll'd it stops the audio stream, then when the event stops, it restarts it. I also see no video. >_> hmnnn Time to delete things until something works.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Flash619 on July 13, 2012, 12:30:26 am
Also I was able to get the video playing, well not playing. But the screen flickers a lot, and the audio chops in/out/repeats. I looked and I get about 1 Unknown Skeleton v4.0 error every second. Did my encoding go bad on my video?

I should also point out. I noticed it only plays the sounds when I'm NOT on the render window, and it only displayes the skeleton errors as I move the mouse over the render window. o.O'' Could this just be a huge bug in my programming? Because it seems like it could be a huge bug in my programming...... :|
If you use the FFmpeg binaries provided within the sfeMove 1.0 RC1 package, note that they only include some decoders : vorbis, theora and flac. Thus if your video uses another codec it won't work until you rebuild sfeMovie and choose to enable more (non-free) decoders.

If you use one of the free decoders for your video and don't mix debug/release binaries, then I'll need to have a closer look at it and fix it.

The video itself is a .ogv Originally it was a .avi that I converted with "ffmpeg2theora-0.29"

I could try rendering it from the video editor as a stright .ogg and see if that helps. I still say something may be going fuzzy with the way I did things. I'm not even sure if half of this code was even neccesary. I was just trying to be safe xD "that goes for the way I checked the window/video size and so on"

Anyway here is the source code for what I'm doing:
SplashScreen.cpp
#include "stdafx.h"
#include "SplashScreen.h"
#include "WindowEngine.h"
#include <Movie.h>

void SplashScreen::showSplash(sf::RenderWindow& renderWindow)
{
        PredawnStudiosGenesisSplash(renderWindow);
}
void SplashScreen::PredawnStudiosGenesisSplash(sf::RenderWindow& renderWindow)
{
        sfe::Movie PredawnSplash;
        if(!PredawnSplash.openFromFile("Recource/SplashScreen/PredawnStudios/predawn_splash.ogv"))
        {
                return;
        }

        sf::Vector2u WindowSize = renderWindow.getSize();
        sf::Vector2i PredawnSplashSize = PredawnSplash.getSize();

    int PositionX = (WindowSize.x / 4);
    int PositionY = (WindowSize.y / 4);

        int SplashX = PredawnSplashSize.x;
        int SplashY = PredawnSplashSize.y;

        int CenterX = (PredawnSplashSize.x / 2);
        int CenterY = (PredawnSplashSize.y / 2);

        PredawnSplash.setOrigin(CenterX,CenterY);
        PredawnSplash.setPosition(PositionX,PositionY);

        if(SplashX > WindowSize.x)
                SplashX = WindowSize.x;
           
        if(SplashY > WindowSize.y)
                SplashY = WindowSize.y;

        PredawnSplash.resizeToFrame(0,0,SplashX,SplashY);
        PredawnSplash.play();

        while(PredawnSplash.Playing)
        {
                sf::Event PredawnSplashEvent;
                while(renderWindow.pollEvent(PredawnSplashEvent))
                {
                        if(PredawnSplashEvent.type = sf::Event::Closed)
                        {
                                PredawnSplash.stop();
                        }
                        if(PredawnSplashEvent.type = sf::Event::MouseButtonPressed)
                        {
                                PredawnSplash.stop();
                        }
                        if(PredawnSplashEvent.type = sf::Event::KeyPressed)
                        {
                                PredawnSplash.stop();
                        }
                }
                renderWindow.clear();
                renderWindow.draw(PredawnSplash);
                renderWindow.display();
        }
        return;
}
 

Let me know what I did wrong, or what I shouldn't have done and so on. I still think somethings going wrong with that loop I just can't lay a finger on it. Perhaps when a more expirienced eye such as yourself see's it. You may be able to give some recomendations. I too will be trying to figure this out. xD

Well off to dinner for now. Be back in about an hour. :)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 13, 2012, 12:41:23 am
if(PredawnSplashEvent.type = sf::Event::Closed)
should be
if(PredawnSplashEvent.type == sf::Event::Closed)

Same for the other tests.

And I'm not sure what you want to do with
int PositionX = (WindowSize.x / 4);
    int PositionY = (WindowSize.y / 4);

        int SplashX = PredawnSplashSize.x;
        int SplashY = PredawnSplashSize.y;

        int CenterX = (PredawnSplashSize.x / 2);
        int CenterY = (PredawnSplashSize.y / 2);

        PredawnSplash.setOrigin(CenterX,CenterY);
        PredawnSplash.setPosition(PositionX,PositionY);

        if(SplashX > WindowSize.x)
                SplashX = WindowSize.x;
           
        if(SplashY > WindowSize.y)
                SplashY = WindowSize.y;
 
but the movie's position and scaling are overwritten by
PredawnSplash.resizeToFrame(0,0,SplashX,SplashY);
thus your setPosition() seems useless.

Edit : And PredawnSplash.Playing is a enum value, thus testing your while loop against it has no meaning. You probably wanted to write "while (PredawnSplash.getStatus() == sfe::Movie::Playing)".
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Flash619 on July 13, 2012, 01:34:24 am
if(PredawnSplashEvent.type = sf::Event::Closed)
should be
if(PredawnSplashEvent.type == sf::Event::Closed)

Same for the other tests.

And I'm not sure what you want to do with
int PositionX = (WindowSize.x / 4);
    int PositionY = (WindowSize.y / 4);

        int SplashX = PredawnSplashSize.x;
        int SplashY = PredawnSplashSize.y;

        int CenterX = (PredawnSplashSize.x / 2);
        int CenterY = (PredawnSplashSize.y / 2);

        PredawnSplash.setOrigin(CenterX,CenterY);
        PredawnSplash.setPosition(PositionX,PositionY);

        if(SplashX > WindowSize.x)
                SplashX = WindowSize.x;
           
        if(SplashY > WindowSize.y)
                SplashY = WindowSize.y;
 
but the movie's position and scaling are overwritten by
PredawnSplash.resizeToFrame(0,0,SplashX,SplashY);
thus your setPosition() seems useless.

Edit : And PredawnSplash.Playing is a enum value, thus testing your while loop against it has no meaning. You probably wanted to write "while (PredawnSplash.getStatus() == sfe::Movie::Playing)".

Oh wow. >_< I always switch around the = and the == symboles.

As for the large chunk of code. I was just checking the windows size and compairing it to that of the default size of the video. If the window is too small for the default video size, it scales the video to the right window size before playing it.

Thanks for the info on the enum. You were correct with what I wanted. :)

I was not aware that "PredawnSplash.resizeToFrame(0,0,SplashX,SplashY);" would overwrite that but now that I know I will update it to include the proper position. Though, I was woundering what those to 0's were about.  ::)

Have a nice day, and thanks a bunch for the help! I look foreward to hooking this up and testing. :D
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Flash619 on July 13, 2012, 02:03:01 am

So I seem to still get audio, but no video. All that happens video wise, is I originally, right after my WindowEngine launches the render window. I print a "Loading..." to the upper left corner. Something video wise happens because it does flicker a lot. But nothing new renders to the screen at all. I only get 1 unknown skeleton version 4.0 error. I think that may have to do with why there is no video.

I will include a copy of my most up to date code.
#include "stdafx.h"
#include "SplashScreen.h"
#include "WindowEngine.h"
#include <Movie.h>

void SplashScreen::showSplash(sf::RenderWindow& renderWindow)
{
        PredawnStudiosGenesisSplash(renderWindow);
}
void SplashScreen::PredawnStudiosGenesisSplash(sf::RenderWindow& renderWindow)
{
        sfe::Movie PredawnSplash;
        if(!PredawnSplash.openFromFile("Recource/SplashScreen/PredawnStudios/predawn_splash.ogv"))
        {
                return;
        }

        sf::Vector2u WindowSize = renderWindow.getSize();
        sf::Vector2i PredawnSplashSize = PredawnSplash.getSize();

    int PositionX = (WindowSize.x / 4);
    int PositionY = (WindowSize.y / 4);

        int SplashX = PredawnSplashSize.x;
        int SplashY = PredawnSplashSize.y;

        int CenterX = (PredawnSplashSize.x / 2);
        int CenterY = (PredawnSplashSize.y / 2);

        PredawnSplash.setOrigin(CenterX,CenterY);

        if(SplashX > WindowSize.x)
                SplashX = WindowSize.x;
           
        if(SplashY > WindowSize.y)
                SplashY = WindowSize.y;

        PredawnSplash.resizeToFrame(PositionX,PositionY,SplashX,SplashY);
        PredawnSplash.play();
        while(PredawnSplash.getStatus() == sfe::Movie::Status::Playing)
        {
                sf::Event PredawnSplashEvent;
                while(renderWindow.pollEvent(PredawnSplashEvent))
                {
                        if(PredawnSplashEvent.type == sf::Event::Closed)
                        {
                                PredawnSplash.stop();
                        }
                        if(PredawnSplashEvent.type == sf::Event::MouseButtonPressed)
                        {
                                PredawnSplash.stop();
                        }
                        if(PredawnSplashEvent.type == sf::Event::KeyPressed)
                        {
                                PredawnSplash.stop();
                        }
                }
                renderWindow.clear();
                renderWindow.draw(PredawnSplash);
                renderWindow.display();
        }
        return;
}
 

I think I'm going to do some snooping on my video codec's. Do let me know if you have any ideas. :)

Also, kind of off the subject, but do you know how to make it so visual studio can find files and resources while debugging? It doesn't find my video file in debugging mode, yet if I go to the directory and run it manually, it works just fine. Just a little annoying because it makes debugging impossible. Anyway. Let me know what you think.

Also, the video does play perfectly in VLC. So I at least know that it does have a video track. xD

Also, again, if you want a copy of the video for testing let me know. :)

EDIT

found this, I plan to read it, all.
http://roundup.libav.org/issue2600

EDIT Just tried a different encoder, same issue. >_> Though, now it seems I no longer get the skeleton error. So.... Thats fixed, but its still not working. xD
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 13, 2012, 09:30:03 am
Just to make sure, did you try to play your video with the provided sfeMovie sample (sample/main.cpp in the Git repo or the "src" package) ? Just change the name of the file to load.

If it still doesn't work, can you give me a sample of the video in order to reproduce the issue ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Flash619 on July 13, 2012, 02:51:58 pm
Just to make sure, did you try to play your video with the provided sfeMovie sample (sample/main.cpp in the Git repo or the "src" package) ? Just change the name of the file to load.

If it still doesn't work, can you give me a sample of the video in order to reproduce the issue ?

I just did, the example video did the same thing. :/ ...not sure where to go from here.

Fortunettely for now, I can continue working on the engine since you can skip the video by pressing any button ;) Though, I still have to figure out whats wrong, at this point, I havn't a clue.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 13, 2012, 06:26:13 pm
...not sure where to go from here.
I think you do :P :
If it still doesn't work, can you give me a sample of the video in order to reproduce the issue ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Flash619 on July 13, 2012, 07:18:30 pm
...not sure where to go from here.
I think you do :P :
If it still doesn't work, can you give me a sample of the video in order to reproduce the issue ?

Well I had the same issue with the sample video, which was named "big_buck_bunny_480p_stereo.ogg"

It's too big to upload here, but I downloeded it from your example you posted.

Both, my video, and your video, did the same thing. I'm not sure if its the video anymore. :|

Just the same though, I'll send a PM with a link to a location to download the videos from my website.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rogof on July 15, 2012, 03:35:56 am
I've tested the latest source (commit 0ccadac) and the audio plays in sync this time.

Thanks.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 15, 2012, 01:02:12 pm
I've tested the latest source (commit 0ccadac) and the audio plays in sync this time.

Thanks.
Great!! :D

Thanks for your help too :) .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rennnyyy on July 21, 2012, 06:38:19 pm
Hey guys,

I'm definitly new to SFML and sfeMovie, so maybe my question seems stupid or silly.

I installed SFML and sfeMovie on my Windows XP 32bit machine in MSVC+ 2008 Express. Than I compiled and linked the given example for sfeMovie, which you can find on the wiki. But when I closed the SFML Window, everytime an error occured about memory overwrite. I think it comes with sfeMovie and not with SMFL itself, because without adding a movie widget everything works alright. I also tried to compile in Debug and in Release mod, but the error stayed the same.

This is the error message (i try to translate it to English, because at my computer it is German, so don't kill me for my English :) )

Unhandled excaption at point 0x004c53cc in SMFL_Test.exe: 0xC0000005: Access violation while reading at position 0x056ac040.

The editor is not able to show a line in code where it happens. He can only give me the disassembly:

[...]
004C53B3  mov         ecx,dword ptr [esi+10h]
004C53B6  mov         dword ptr [esi+0Ch],1
004C53BD  push        ecx 
004C53BE  call        00495880
004C53C3  mov         eax,dword ptr [esi+8]
004C53C6  mov         dword ptr [esi+10h],edi
004C53C9  mov         dword ptr [esi+0Ch],edi
004C53CC  mov         edx,dword ptr [eax]
004C53CE  add         esp,4
004C53D1  push        eax 
004C53D2  mov         eax,dword ptr [edx+8]
004C53D5  call        eax 
004C53D7  mov         eax,dword ptr [esi+4]
004C53DA  mov         dword ptr [esi+8],edi
004C53DD  cmp         eax,edi
[...]

The error occurs at 004C53CC mov edx, dword ptr [eax].

Is that a error based on my stupidnes or has it to do with the sfeMovie script? Can anyone tell me how to fix?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 21, 2012, 06:43:11 pm
Are you mixing release/debug modes or mixing static/dynamic linking for SFML and sfeMovie ?

You should make sure you link everything dynamically in release mode.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rennnyyy on July 21, 2012, 07:29:31 pm
Are the sfeMovie *.lib files made for Release or Debug? Than I can answer that :D
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 21, 2012, 07:33:04 pm
The provided one in the 1.0 RC1 package are made for Release.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rennnyyy on July 21, 2012, 07:37:59 pm
Okey, I tried everything what is thinkable (i think :D)

1) sfe-movie.lib with SMFL *.lib on Release
2) sfe-movie.lib with SMFL *-d.lib on Release
3) sfe-movie.lib with SFML *-s.lib on Release
4) sfe-movie.lib with SFML *-s-d.lib on Release

On 3) and 4) the linker returned a lot of errors. When using 2) it crashes while loading the window. And 1) is the described error thing.

And when I'm right I'm linking dynamicly, because I need all the *.dll files to execute the programm.

Am I doing anything wrong?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 21, 2012, 07:42:14 pm
Hmmm looks like you didn't do anything wrong. Could you provide a minimal package with everything required to reproduce the crash ? (including your project file)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rennnyyy on July 21, 2012, 07:53:41 pm
Here it is. It includes the VC-Project, the cpp file and the video I used (btw. i tried another one, but nothing changed).

http://www.file-upload.net/download-4583063/SMFL.zip.html
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 21, 2012, 08:32:21 pm
Ok I remember now. This is related to https://github.com/SFML/SFML/issues/30 and the OpenAL dll. I got it working using the binary from http://kcat.strangesoft.net/openal.html#download (take Win32/soft_oal.dll, rename it to openal32.dll and replace it in your executable's directory).

Tell me if it works for you too :) .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rennnyyy on July 21, 2012, 08:42:46 pm
Ah ok ... now i know why another exampled failed when searching for the process entry point :D

I'll try when I'm at home again. Thanks a lot!
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rennnyyy on July 22, 2012, 12:14:46 pm
Ok I did exactly what you said, but it didn't change the problem.

The exception changed a bit: now its at position

Unhandled excaption at point 0x6b627bc5 in SMFL_Test.exe: 0xC0000005: Access violation while reading at position 0x05670148

The disassemly code stays the same.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 22, 2012, 12:28:37 pm
Is there any other OpenAL dll installed on your system ?

Edit: does the error also occurs when building in release mode and launching this executable outside of Visual Studio ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rennnyyy on July 22, 2012, 01:43:27 pm
No I searched the whole PC for another openal32.dll ... didn't found any.

Yeah it's occuring everytime -.-
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on July 30, 2012, 01:12:34 am
sfeMovie 1.0 has been released!

As sfeMovie isn't anymore a small wiki code but a real project, I created a new topic in the correct section. News will be posted there and discussions should now happen there too : http://en.sfml-dev.org/forums/index.php?topic=8701.msg58578#msg58578

Changes since RC include:
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: PotcFdk on September 15, 2012, 12:21:30 am
I've got a problem when trying to link with libsfeMovie.dll.a  (using MinGW (up-to-date)).
I tried the binary release and a self-compiled version, both give me the same error:

||=== Project, Debug ===|
c:\mingw\bin\..\lib\gcc\mingw32\4.7.0\libgcc_eh.a(unwind-dw2.o)|| multiple definition of `__Unwind_Resume'|
C:\sfeMovie-1.0\lib\libsfeMovie.dll.a(d000140.o)|| first defined here|
||=== Build finished: 2 errors, 0 warnings ===|

Do you know how I can fix that?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 15, 2012, 12:26:48 am
What's the output if you rebuild sfeMovie after having removed the line 113 in CMakeLists.txt?
Code: [Select]
set (LINKER_FLAGS ${LINKER_FLAGS} "-static-libgcc")
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: PotcFdk on September 16, 2012, 11:14:10 am
Hey, that seems to work.
I'm now recompiling with the correct settings.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: PotcFdk on September 16, 2012, 01:01:42 pm
After properly setting up everything it does work, thank you!

There are two more things though.

1. How can I compile a static-linked version?
2. Is it possible to load the video from memory?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on September 16, 2012, 01:28:01 pm
After properly setting up everything it does work, thank you!
Nice!

1. How can I compile a static-linked version?
You cannot. Or if you want a more precise answer: I didn't provide any way to do so (till now).
2. Is it possible to load the video from memory?
No. I may — in the future — let the user load the video from a sf::InputStream, but most probably not from memory.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: smashthewindow on January 04, 2013, 03:47:22 pm
Did anyone successfully compiled sfeMovie for Visual Studio 2012?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: iride on January 04, 2013, 04:22:13 pm
Did anyone successfully compiled sfeMovie for Visual Studio 2012?

VS 2010 binary worked fine for me
Title: sfeMovie project [v1.0 RC1 available]
Post by: gazben on August 15, 2013, 10:38:55 pm
Hello!

I can get this library to work :( ( vs2012 )

After the program compiles and runs there is no picture. There are several dll-s but none of them is working. There is sound from the bunny animation. What could be the problem?

MovieState.h

#ifndef MovieState_h__
#define MovieState_h__

#include <SFML/Graphics.hpp>
#include <SFML/Graphics/Texture.hpp>

#include "sfe/include/sfeMovie/Movie.hpp"
#include "gameState.h"
#include "Globals.h"

class Game;

class MovieState :public GameState{

private:

        //pointer to the game (for the render)
        Game *game;

        sfe::Movie* intro;

public:

        MovieState();

        MovieState(Game*);

        ~MovieState();

        void Update();

        void Draw();

};

#endif // MovieState_h__
 

MovieState.cpp

#include "MovieState.h"
#include "game.h"


//DO NOT USE
MovieState::MovieState(){}

MovieState::MovieState( Game *game )
{
        intro = new sfe::Movie;

        this -> game = game;

//      if( !intro->openFromFile( "introkszk.ogv" ) )
//              game->currentState = MENU;
        intro->openFromFile( "some_movie.ogv" );

        game->window.Getwindow().setVerticalSyncEnabled( true );

        //intro.resizeToFrame( 0 , 0 , Globals::resolution->xres , Globals::resolution->yres  );

        intro->play();

        Globals::log->log( "intro" );
}

MovieState::~MovieState(){}

void MovieState::Update()
{

//      if( sf::Keyboard::isKeyPressed( sf::Keyboard::Space ) || sf::Keyboard::isKeyPressed( sf::Keyboard::Escape ) )
//      {
//              game->currentState = MENU;
//      }

}

void MovieState::Draw()
{
        game -> window.Getwindow().draw( *intro );
}
 
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on August 16, 2013, 01:40:04 am
Hello gazben,

At the moment I cannot really help you because your code is neither complete nor minimal.
You should check what sfe::Movie::openFromFile() returns, although it seems to work as you say there's sound.
You also need to give a size to the drawable, and make sure your Draw() method is really called.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: gazben on August 19, 2013, 02:29:00 pm
It works now :) There was a problem with the linker options. But there is another problem. When a try to close the program this pops up: First-chance exception at 0x75CBA4B9 (ole32.dll) in project.exe: 0xC0000005: Access violation reading location 0xFEEEFEEE.

What could be the problem?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on August 19, 2013, 05:45:33 pm
I cannot be sure but this is most probably this issue: http://lucas.soltic.etu.p.luminy.univ-amu.fr/sfeMovie/faq.php#windows-crash-at-exit
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ixrec on October 12, 2013, 09:49:47 am
I just dl'd and got the vs2010 binaries working with your test code, so first off thanks for making sfeMovie not a pain in the ass to setup (I also tried cmusphinx today and those guys...left out a few steps).

I wanted to ask if these error messages in the console are a problem at all:
(http://gyazo.com/109022ed5a38007afadde711d36c2c1c.png)
As you can see the actual video made it all the way to the end; I didn't see or hear anything with the video itself that implied a problem.

Also, any idea how to get rid of the console entirely?  My VS project isn't a console app.

Edit: The ad-hoc #pragma method for getting rid of it shown here (http://www.irrlicht3d.org/wiki/index.php?n=Main.DisablingConsoleWindow) seemed to work, though I'd still like to know how it got in there in the first place.

Plus I hit another snag: Closing the window causes an unhandled exception/access violation.  All the debugger can tell me is that it's happening sometime after main() exits. Never mind, forgot about SFML's longstanding audio crash issues (https://github.com/SFML/SFML/issues/30).  I really hope that gets fixed someday. =(
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 12, 2013, 11:01:19 am
Hello Ixrec,

Glad you like sfeMovie!

I wanted to ask if these error messages in the console are a problem at all:
I don't know: I often see those too, it depends on the movie I read. So until it works and until you don't get errors printed, I guess it's ok.

Also, any idea how to get rid of the console entirely?  My VS project isn't a console app.
You mean you chose to make a GUI application when creating your project but VS is still showing this console?

Plus I hit another snag: Closing the window causes an unhandled exception/access violation.  All the debugger can tell me is that it's happening sometime after main() exits.
You'd need to check but I guess it is
Quote from: http://lucas.soltic.etu.p.luminy.univ-amu.fr/sfeMovie/faq.php#windows-crash-at-exit
I use Windows and my program crashes at exit

Check out SFML issue #30 (https://github.com/SFML/SFML/issues/30).
I wonder if there's any workaround at the moment though.

Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ixrec on October 12, 2013, 11:26:58 am
I believe I chose an empty project, to be precise.  I'm fairly sure it didn't auto-generate any useless code for me.

I think my only real concern with the library at this point is that I can't statically link to it, which means I'd be going from 2 dlls in my project to 11 (since I can't link SFML statically while using sfeMovie).  Then again your library actually uses multithreading so there may be a legitimate benefit to dynamic linking in this case, in addition to not having to worry about whatever the hell the LGPL actually requires...ugh.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 13, 2013, 02:47:34 pm
I believe I chose an empty project, to be precise.  I'm fairly sure it didn't auto-generate any useless code for me.
Then you should be able to fix this in the project's properties.

I think my only real concern with the library at this point is that I can't statically link to it, which means I'd be going from 2 dlls in my project to 11 (since I can't link SFML statically while using sfeMovie).  Then again your library actually uses multithreading so there may be a legitimate benefit to dynamic linking in this case, in addition to not having to worry about whatever the hell the LGPL actually requires...ugh.
There is a constraint that prevents full static linking but multithreading isn't one. The fact that's you can't statically link against sfeMovie yet is just because I didn't make it possible yet. That's on the todo list (https://github.com/Yalir/sfeMovie/issues/42) though. However, when using VS, you'll always at least have the FFmpeg dlls next to your program, because FFmpeg libraries were not built with VS, and it somehow works when linked dynamically, but not statically (function addresses).

So what is possible but yet "to be done" is linking against static SFML and sfeMovie libraries, but keep FFmpeg dlls.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ixrec on October 13, 2013, 02:53:25 pm
Out of curiosity, is it possible to build ffmpeg from source as a single dll?  Is there any particular reason it's split up like that?

When I mentioned multithreading I didn't mean to say that I thought it made static linking impossible; rather I mean it might give dynamic linking a legitimate benefit (because multiple threads share the code) beyond merely keeping the LGPL happy.  No idea if that's a real issue with real performance implications, but that possibility is what I was referring to.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 13, 2013, 05:19:06 pm
FFmpeg does not provide any way to build a single, but it is technically possible yes. However, the FFmpeg license doesn't allow this. And from what I know... it's split up because it's several projects put together for FFmpeg.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ixrec on October 14, 2013, 12:09:07 am
Thanks for clearing that up.

Also, since sfeMovie is also under LGPL, how would static linking work?  Would it require me to put sfeMovie source somewhere in my distribution?  I've read a lot about the LGPL but tl;dr no one seems to have a clue what it actually means, so I kind of have to ask you what you intend it to mean for sfeMovie.

By the way, any reason you used std::cerr instead of sf::err()? (or maybe sfe::err())  I can't figure out a way to redirect std::cerr so I can deal with sfeMovie errors myself, plus it seems a bit inconsistent.

Edit: I think I'm done playing around with this for the time being.  Unfortunately I still get the crash-on-exit bug in any code that constructs an sfe::Movie object, yet not in any of my own code.  I know the bug isn't on your end but I won't be able to integrate this library until there's some kind of solution for that (and preferably the static link option).
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on October 18, 2013, 07:42:44 pm
Hmm.. I forgot to answer, sorry.

Thanks for clearing that up.

Also, since sfeMovie is also under LGPL, how would static linking work?  Would it require me to put sfeMovie source somewhere in my distribution?  I've read a lot about the LGPL but tl;dr no one seems to have a clue what it actually means, so I kind of have to ask you what you intend it to mean for sfeMovie.
This would mean your software is under LGPL too and you have to provide the sources of your program. You have to provide sfeMovie's sources only if you modify them. So depending on whether your project is private/commercial, this can be annoying.

By the way, any reason you used std::cerr instead of sf::err()? (or maybe sfe::err())  I can't figure out a way to redirect std::cerr so I can deal with sfeMovie errors myself, plus it seems a bit inconsistent.
Is "because I didn't think of sf::Err" a valid answer? ;D However, redirecting std::err or sf::Err should be exactly the same thing, because they're both std::ostream objects, or I missed something.

Edit: I think I'm done playing around with this for the time being.  Unfortunately I still get the crash-on-exit bug in any code that constructs an sfe::Movie object, yet not in any of my own code.  I know the bug isn't on your end but I won't be able to integrate this library until there's some kind of solution for that (and preferably the static link option).
Yup I understand, I don't know when that'll be fixed though.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 06, 2013, 08:56:02 am
Hi! I recently dealt with the work of SFML + sfe, but immediately ran into a problem. When I change the video file ("movie.openFromFile(playlist[file_num]") i get  memory leak, maybe I'm doing something wrong ...

*I also tried to allocate memory dynamically, but the operator "delete movie" do not release a memory.



my code:

#include <SFML/Graphics.hpp>
#include <sfeMovie/Movie.hpp>
#include <iostream>
#include <vector>

using namespace std;

int main(int argc, const char *argv[])
{
                vector<string> playlist;
                playlist.push_back("Skorbaks31.12.13_wmv2.avi");
                playlist.push_back("porche_wmw.avi");
                playlist.push_back("exp11_01_p1_wmv2_001.avi");

        // Some settings
        const std::string windowTitle = "sfeMovie Player";
        const int windowWidth = 800;
        const int windowHeight = 600;
        bool fullscreen = false;
        std::string movieFile;
        if (argc < 2)
        {
                std::cout << "Usage: " << std::string(argv[0]) << " movie_path" << std::endl;
                //return 1;
                                movieFile=playlist[0];

        }
                else
                {
                movieFile = std::string(argv[1]);
                }

        std::cout << "Going to open movie file \"" << movieFile << "\"" << std::endl;
       
        // Create window
       // sf::RenderWindow window(sf::VideoMode(windowWidth, windowHeight), windowTitle, sf::Style::Close);
                sf::RenderWindow window(sf::VideoMode::getDesktopMode(), windowTitle, sf::Style::Fullscreen);
        window.setFramerateLimit(60);
        // Create and open movie
                sfe::Movie movie;
        //movie=new sfe::Movie();
        if (!movie.openFromFile(movieFile))
                return 1;
        // Scale movie to the window drawing area and enable VSync
        movie.resizeToFrame(0, 0, window.getSize().x, window.getSize().y);
        window.setVerticalSyncEnabled(true);
                sf::Texture pTexture;
                sf::Font font1;
                font1.loadFromFile("arial.ttf");
                sf::Text text1;
                text1.setFont(font1);
                text1.setStyle(sf::Text::Bold);
                text1.setColor(sf::Color::Green);
                text1.setPosition(300,50);

                sf::Sprite playerImage;
                if (!pTexture.loadFromFile("image.png")) //,sf::IntRect(32,0,32,32))
                cout<<"Error loadd image"<<endl;
                playerImage.setTexture(pTexture);
                float timer1=0;
                sf::Clock cl1;
        // Start movie playback
      //  movie.play();
                int counter=0;
                int file_num=0;
                char *buf=new char(255);
                playerImage.move(500,300);
                movie.play();
        while (window.isOpen())
        {

                        /*
                        timer1 =cl1.getElapsedTime().asMilliseconds();
                        //itoa((int)1000/timer1,buf,10);
                        sprintf(buf, "%f", 1000/timer1);
                        text1.setString(buf);
                        cl1.restart();
                        */

                                                if (movie.getStatus()<2){

                                                //movie.play();
                                                movie.stop();

                                                //delete movie;
                                                //movie=NULL;
                                                //movie=new sfe::Movie();
                                               
                                                text1.setString("OFF");
                                               
                                                        file_num++;
                                                        if (file_num>=playlist.size())
                                                        file_num=0;

                                                        if (movie.openFromFile(playlist[file_num]))
                                                        {
                                                        window.setVerticalSyncEnabled(true);
                                                        movie.resizeToFrame(0, 0, window.getSize().x, window.getSize().y);
                                                        movie.play();
                                                        }
                                                        else
                                                        {
                                                        exit(0);
                                                        }

                                                }
                                                else
                                                {
                                                text1.setString("ON");
                                                }

                sf::Event ev;
                while (window.pollEvent(ev))
                {
                        // Window closure
                        if (ev.type == sf::Event::Closed ||
                                (ev.type == sf::Event::KeyPressed &&
                                 ev.key.code == sf::Keyboard::Escape))
                        {
                                window.close();
                        }
                       
                        // Handle basic controls
                        else if (ev.type == sf::Event::KeyPressed)
                        {
                                // Play/Pause
                                if (ev.key.code == sf::Keyboard::Space)
                                {
                                        if (movie.getStatus() != sfe::Movie::Playing)
                                                movie.play();
                                        else
                                                movie.pause();
                                }
                                // Stop
                                if (ev.key.code == sf::Keyboard::S)
                                        movie.stop();
                               
                                // Restart playback
                                if (ev.key.code == sf::Keyboard::R)
                                {
                                        movie.stop();
                                        movie.play();
                                }
                               
                                // Toggle fullscreen mode
                                if (ev.key.code == sf::Keyboard::F)
                                {
                                        fullscreen = !fullscreen;
                                        // We want to switch to the full screen mode
                                        if (fullscreen)
                                        {
                                                window.create(sf::VideoMode::getDesktopMode(), windowTitle, sf::Style::Fullscreen);
                                                                                                window.setVerticalSyncEnabled(true);
   
                                                movie.resizeToFrame(0, 0, window.getSize().x, window.getSize().y);
                                        }
                                       
                                        // We want to switch back to the windowed mode
                                        else
                                        {
                                                window.create(sf::VideoMode(windowWidth, windowHeight), windowTitle, sf::Style::Close);
                                                window.setVerticalSyncEnabled(true);
                                                movie.resizeToFrame(0, 0, window.getSize().x, window.getSize().y);
                                        }
                                }
                        }
                }
               
                // Render movie
               
                counter++;
                // Render movie
                                if (counter>2){
                                playerImage.rotate(0.2);
                                counter=0;
                                }
                               
                window.clear();
                               
                                window.draw(movie);
                                window.draw(playerImage);
                                window.draw(text1);
                window.display();
        }

        return 0;
}
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 07, 2013, 07:18:02 pm
Hi Rodion777,

No, you did nothing wrong. After running your program and using a leak detection tool, it showed me that there was indeed a leak (and a big one ;D). I've made a fix and I can no more see the leak now. Please tell me if it's ok on your side too :) The fix is available with the latest sources from the git repo.

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 12, 2013, 04:03:34 pm
Thx for operativeness! But I don't  have experience with Linux compilers. I tried to build with MinGW for Windows, but I didn't succeed. Please compile the updated library or give step by step manual. Instructions from section "Getting started" was not enough for me.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 12, 2013, 09:13:51 pm
Hum yes you're right, building steps changed "a bit" since version 1.0.

Do you need to build sfeMovie for Linux or Windows or both?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 13, 2013, 08:12:47 am
My programm will working on windows, but I would like to know both ways.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 13, 2013, 11:46:04 pm
I don't know if you're familiar with CMake tools but except with Windows, the build steps are quiet usual:

On Linux, choose your settings with the CMake GUI then run make and sudo make install.
On Windows, make sure you have a full MinGW+MSYS installation, then use the CMake GUI, then build sfeMovie within your IDE.

There are some important configuration choices during the CMake step:
- CMAKE_BUILD_TYPE, either Release or Debug, and the build mode in your Windows IDE need to match this setting
- LINK_AGAINST_INTERNAL_FFMPEG, to choose whether you want to provide your own FFmpeg binaries (FALSE) or let the sfeMovie build process also build FFmpeg (TRUE)
- ENABLED_DECODERS, in case LINK_AGAINST_INTERNAL_FFMPEG=TRUE, this defines the video/audio codecs that will be supported by the final sfeMovie build.
- SFML_ROOT, set to the directory containing SFML include et lib directories
- MINGW_DIR, on Windows, is the path of the directory of your MinGW (also containing MSYS) installation
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 14, 2013, 10:18:59 am
I'm sorry but I have again failed to compile. Compile please for windows. (Debug and Release)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Nexus on November 14, 2013, 12:57:18 pm
I'm sorry but I have again failed to compile.
What failed exactly?

I think it's more important to have a clear build guide that everybody understands than providing binaries. I already built sfeMovie for Windows some time ago, but things may have changed meanwhile.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 14, 2013, 01:59:31 pm
My actions:

1. I  downloaded and installed full MinGW with msys from official site. (C:\MinGW)
2. I  downloaded and installed Cmake with GUI ("C:\CMake 2.8")
3. I  execute "cmake-gui.exe" and choose a folder with unpacked sfeMovie sources
4. I set output folder for build
5. I press Configure button
6. I set generator for generate VS10 project
7. In the same window I set option: "Use default native compilers"
8. Next step compiling begin and compiler return error:

Compilation log:

The C compiler identification is MSVC 16.0.30319.1
The CXX compiler identification is MSVC 16.0.30319.1
Check for working C compiler using: Visual Studio 10
Check for working C compiler using: Visual Studio 10 -- broken
CMake Error at C:/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "C:/Program Files/Microsoft Visual Studio
  10.0/VC/bin/cl.exe" is not able to compile a simple test program.

  It fails with the following output:

   Change Dir: C:/MinGW/msys/1.0/home/Rodion/CMakeFiles/CMakeTmp

 

  Run Build Command:C:\PROGRA~1\MICROS~2.0\Common7\IDE\devenv.com
  CMAKE_TRY_COMPILE.sln /build Debug /project cmTryCompileExec1556368347

 


  Microsoft (R) Visual Studio Version 10.0.30319.1.


  Copyright (C) Microsoft Corp.  All rights reserved.


  1>------ Build started: Project: cmTryCompileExec1556368347, Configuration:
  Debug Win32 ------


  1> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01
  for 80x86


  1> Copyright (C) Microsoft Corporation.  All rights reserved.


  1>


  1> cl /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D
  "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise
  /Zc:wchar_t /Zc:forScope /Fo"cmTryCompileExec1556368347.dir\Debug\\"
  /Fd"cmTryCompileExec1556368347.dir\Debug\vc100.pdb" /Gd /TC /analyze-
  /errorReport:prompt testCCompiler.c


  1>


  1> testCCompiler.c


  1>LINK : fatal error LNK1123: failure during conversion to COFF: file
  invalid or corrupt


  ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
  ==========


 

 

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:11 (project)


Configuring incomplete, errors occurred!
See also "C:/MinGW/msys/1.0/home/Rodion/CMakeFiles/CMakeOutput.log".
See also "C:/MinGW/msys/1.0/home/Rodion/CMakeFiles/CMakeError.log".


/*******************************************************************/

CMakeError.log :
Determining if the C compiler works failed with the following output:
Change Dir: C:/MinGW/msys/1.0/home/Rodion/CMakeFiles/CMakeTmp

Run Build Command:C:\PROGRA~1\MICROS~2.0\Common7\IDE\devenv.com CMAKE_TRY_COMPILE.sln /build Debug /project cmTryCompileExec3931991746


Microsoft (R) Visual Studio Version 10.0.30319.1.

Copyright (C) Microsoft Corp. All rights reserved.

1>------ Build started: Project: cmTryCompileExec3931991746, Configuration: Debug Win32 ------

1>  Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86

1>  Copyright (C) Microsoft Corporation.  All rights reserved.

1> 

1>  cl /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"cmTryCompileExec3931991746.dir\Debug\\" /Fd"cmTryCompileExec3931991746.dir\Debug\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt testCCompiler.c

1> 

1>  testCCompiler.c

1>LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: eXpl0it3r on November 14, 2013, 03:22:41 pm
Not sure if that still applies but looking at the official website it says:

Quote from: sfeMovie (http://lucas.soltic.etu.p.luminy.univmed.fr/sfeMovie/start.php)
To build sfeMovie, make sure you have CMake, Make and Clang/GCC installed. You'll also need Visual Studio if you want to build sfeMovie for this IDE. Then download the latest sources (see Downloads section), and run build.sh from a command line interpreter. Directly using CMake will not work!
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 14, 2013, 03:53:15 pm
Not sure if that still applies but looking at the official website it says:

Quote from: sfeMovie (http://lucas.soltic.etu.p.luminy.univmed.fr/sfeMovie/start.php)
To build sfeMovie, make sure you have CMake, Make and Clang/GCC installed. You'll also need Visual Studio if you want to build sfeMovie for this IDE. Then download the latest sources (see Downloads section), and run build.sh from a command line interpreter. Directly using CMake will not work!

official website it says also:

Quote
Windows specific

sfeMovie relies on FFmpeg, and to build FFmpeg you need a Unix environment plus some settings. This can be achieved by following these steps:

download the latest MinGW binary from this page
install MinGW, without forgetting to enable: C++ Compiler, MSYS Basic System and MinGW Developer ToolKit
install CMake (see CMake website) and accept setting CMake in your PATH
launch the MinGW shell (C:\MinGW\msys\1.0\msys.bat)
within the command line interpreter, go to the directory where you downloaded sfeMovie through the "cd" command, type "./build.sh windows" and return
Note if you use Visual Studio, you'll need to finish the compilation process using the generated sfeMovie.sln solution. For technical reasons, when targeting Visual Studio, the sfeMovie library is dynamically linked against FFmpeg (instead of static linking when targeting MinGW/CodeBlocks). This implies that you'll also have to copy the newly built FFmpeg DLLs from sfeMovie/deps/ffmpeg-build once you've built sfeMovie, in order to use the new set of decoders.

I also tried it, but in the source code folder there is no file  "build.sh" but there is a file "build_ffmpeg.sh".

execution of commands "./build_ffmpeg.sh windows" given nothing

Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 15, 2013, 04:01:57 pm
Not sure if that still applies but looking at the official website it says:
Indeed these do no more apply (but that's a nice try :D), they only apply to the sfeMovie 1.0 source package.

The issue here isn't about sfeMovie but about how to setup CMake to work with VS. And the important part is described in SFML's tutorial: http://www.sfml-dev.org/tutorials/2.1/compile-with-cmake.php (section Configuring your SFML build)
Quote
With Visual C++, you can either run CMake from the "Visual Studio command prompt" available from the start menu, or call the vcvars32.bat file of your Visual Studio installation; it will setup the environment variables properly.

> your_visual_studio_folder\VC\bin\vcvars32.bat
> cmake
The issue is that CMake doesn't know anything about your VS installation, thus you need to tell it how it can use VS compiler. That's what is done when executing the vcvars32.bat file (automatically executed when launching the VS command line prompt).

I'm not a Windows expert so I don't know if you really have to run CMake from the VS command line prompt or if there is a graphical way of doing so. I hope that'll help you though. Maybe SFML users know a bit more about this :) .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 15, 2013, 04:09:29 pm
I also tried it, but in the source code folder there is no file  "build.sh" but there is a file "build_ffmpeg.sh".

execution of commands "./build_ffmpeg.sh windows" given nothing
Indeed many things changed on the build system and build.sh does no more exist. As for the build_ffmpeg.sh, you should never need to execute it manually.

About my above post, from what I remember, I don't need to run vcvars32.bat, but I built sfeMovie on Windows a long time ago and I don't remember what I did to achievd this :(
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 15, 2013, 09:22:04 pm
Hi!
I have a progress! I found out that .Net 4.5 framework interfere with cmake, after i unistalled .Net 4.5 framework there were less errors, but i have new errors:

CMake Error at C:/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
  execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
  C:/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
  C:/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:11 (project)


The C compiler identification is unknown
CMake Error at C:/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
  execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
  C:/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
  C:/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:11 (project)


The CXX compiler identification is unknown
Using these FFmpeg libraries:
- C:/MinGW/msys/1.0/home/Rodion/FFmpeg-binaries/lib/avformat.lib
- C:/MinGW/msys/1.0/home/Rodion/FFmpeg-binaries/lib/avdevice.lib
- C:/MinGW/msys/1.0/home/Rodion/FFmpeg-binaries/lib/avcodec.lib
- C:/MinGW/msys/1.0/home/Rodion/FFmpeg-binaries/lib/avutil.lib
- C:/MinGW/msys/1.0/home/Rodion/FFmpeg-binaries/lib/swscale.lib
Found SFML 2.0 in D:\Programming\C++LIB\SFML-2.0\include
Headers directories: D:\Programming\C++LIB\SFML-2.0\include include src C:/MinGW/msys/1.0/home/Rodion/sfe/deps/headers
Libraries directories: C:/MinGW/msys/1.0/home/Rodion/sfe/deps/windows-binaries;C:/MinGW/msys/1.0/home/Rodion/sfe/deps/windows-binaries/gcc
Configuring incomplete, errors occurred!
See also "C:/MinGW/msys/1.0/home/Rodion/CMakeFiles/CMakeOutput.log".
See also "C:/MinGW/msys/1.0/home/Rodion/CMakeFiles/CMakeError.log".
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 15, 2013, 09:26:51 pm
I don't know what produces the "errors" at the beginning of your log but
Quote
Could NOT find SFML (missing: SFML_GRAPHICS_LIBRARY SFML_WINDOW_LIBRARY
  SFML_SYSTEM_LIBRARY SFML_AUDIO_LIBRARY)
is because you need to tell CMake where SFML is, by defining the SFML_ROOT variable in CMake. Set it to the path of the directory containing SFML's include and lib directories.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 15, 2013, 09:30:52 pm
I don't know what produces the "errors" at the beginning of your log but
Quote
Could NOT find SFML (missing: SFML_GRAPHICS_LIBRARY SFML_WINDOW_LIBRARY
  SFML_SYSTEM_LIBRARY SFML_AUDIO_LIBRARY)
is because you need to tell CMake where SFML is, by defining the SFML_ROOT variable in CMake. Set it to the path of the directory containing SFML's include and lib directories.

Thx, I fixed it
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 17, 2013, 09:46:04 pm
Does your "I fixed it" means you could fully build sfeMovie for Windows?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 18, 2013, 07:36:03 am
No, just when compiling fewer errors
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 18, 2013, 08:03:20 am
I won't be able to help if you don't give more details. At the moment I've absolutely no idea of where you're stuck.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 19, 2013, 10:05:11 am
Hi. Today i have a progress. I created  "Visual Studio 9 solution" with CMAKE. The problem was in the Visual Studio 2010, possible incompatibility. I also compiled sfeMovie, but i don't have success. After compilation, I got only "sfeMovie.dll". I tried to replace this dll in my project, after this my programm compiled successful, but return an  error after start execution : "Point of entry to the procedure ?initialize@SoundStream@sf@@IAEXII@Z not found in DLL avformat-55.dll".
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 19, 2013, 10:33:01 am
Why didn't you create a Visual Studio 2010 solution with CMake?

So from what I understand, you successfully built sfeMovie but you have errors in your project?
Can you describe exactly what you did to use sfeMovie in your own project?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 19, 2013, 11:03:56 am
Why didn't you create a Visual Studio 2010 solution with CMake?
Because during configuration for vs2010 in CMAKE, i got an error: 
"Check for working C compiler using: Visual Studio 10 -- broken"


So from what I understand, you successfully built sfeMovie but you have errors in your project?
Can you describe exactly what you did to use sfeMovie in your own project?

If I understand correctly, your project comprise ffmpeg and other sources, but i compiled sfeMovie only. Rest parts causes errors during compilation.

Now I opened my working project (last successful build with memory leaks) and replaced sfeMovie.dll, after this my programm compiled successful, but return an  error after start execution : "Point of entry to the procedure ?initialize@SoundStream@sf@@IAEXII@Z not found in DLL avformat-55.dll".

for more information:

Additional Include Derictories:
D:\Programming\C++LIB\sfeMovie\include;
D:\Programming\C++LIB\SFML-2.0\include;

Additional Library Derictories:
D:\Programming\C++LIB\sfeMovie\lib;
D:\Programming\C++LIB\SFML-2.0\lib;

Additional Dependencies:
"sfml-graphics.lib"
"sfml-window.lib"
"sfml-system.lib"
"sfml-audio.lib"
"sfeMovie.lib"

Screenshot:
http://5.firepic.org/5/images/2013-11/19/jf5mgqtyo693.jpg



Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 19, 2013, 11:34:39 am
Because during configuration for vs2010 in CMAKE, i got an error: 
"Check for working C compiler using: Visual Studio 10 -- broken"
Unless you wish to work with VS 2008, you should fix that issue. There is absolutely no warranty that libraries built with VS 2008 will work with VS 2010. After some searches I've found this:
Quote from: http://stackoverflow.com/questions/11187157/cmake-says-c-compiler-is-broken
I know this is really old.. but in case someone else has this problem, the solution for me was to install service pack 1 for visual studio 2010

If I understand correctly, your project comprise ffmpeg and other sources, but i compiled sfeMovie only. Rest parts causes errors during compilation.
What do you exactly mean with "Rest parts causes errors during compilation."? Can you tell me what are these errors?

And you're right about the project, there are sfeMovie sources (a few files) and FFmpeg sources. But it's not possible to successfully build sfeMovie if FFmpeg's compilation failed (unless you provided your own FFmpeg binaries), so I suppose everything went fine as you could build sfeMovie's dll.

Now, opened my working project (last succeful build with memory leaks) and replaced sfeMovie.dll, after this my programm compiled successful, but return an  error after start execution : "Point of entry to the procedure ?initialize@SoundStream@sf@@IAEXII@Z not found in DLL avformat-55.dll".

for more information:

Additional Include Derictories:
D:\Programming\C++LIB\sfeMovie\include;
D:\Programming\C++LIB\SFML-2.0\include;

Additional Library Derictories:
D:\Programming\C++LIB\sfeMovie\lib;
D:\Programming\C++LIB\SFML-2.0\lib;

Additional Dependencies Derictories:
"sfml-graphics.lib"
"sfml-window.lib"
"sfml-system.lib"
"sfml-audio.lib"
"sfeMovie.lib"
That's looks fine to me, but you also need to copy some DLLs for you application to run. Namely:
sfml-graphics-2.dll
sfml-window-2.dll
sfml-audio-2.dll
sfml-system-2.dll
sfeMovie.dll
avcodec-54.dll
avdevice-54.dll
avfilter-3.dll
avformat-54.dll
avutil-52.dll
swscale-2.dll
libsndfile-1.dll
openal32.dll

At the moment sfeMovie can't be statically linked against SFML, and for technical reasons, FFmpeg libraries cannot be statically linked to sfeMovie with Visual Studio, so there're quite a few DLLs ;D .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on November 26, 2013, 10:05:21 am
Hi. I so far can't  build sfeMovie :(. I recorded video while building:
https://www.youtube.com/watch?v=k2B0ZPsU9DU

Building log:
1>------ Rebuild All started: Project: FFmpeg, Configuration: Release Win32 ------
1>Build started 11/26/2013 10:59:38.
1>_PrepareForClean:
1>  Deleting file "Win32\Release\FFmpeg\FFmpeg.lastbuildstate".
1>InitializeBuildStatus:
1>  Touching "Win32\Release\FFmpeg\FFmpeg.unsuccessfulbuild".
1>CustomBuild:
1>  Building Custom Rule C:/MinGW/msys/1.0/home/Rodion/sfe/CMakeLists.txt
1>  CMake does not need to re-run because D:\Programming\C++LIB\SFE_3\CMakeFiles\generate.stamp is up-to-date.
1>  Generating FFmpeg-binaries/lib/avformat.lib, FFmpeg-binaries/lib/avdevice.lib, FFmpeg-binaries/lib/avcodec.lib, FFmpeg-binaries/lib/avutil.lib, FFmpeg-binaries/lib/swscale.lib
1>  Build directory : D:/Programming/C++LIB/SFE_3
1>  OS              : windows
1>  Visual Studio   : 1
1>  OS X arch       : notosx
1>  Decoders        : theora flac vorbis vp8
1>  FFmpeg sources found, skipping archive extraction
1>  /tmp/ffmpeg/configure  --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-encoders --disable-decoders --disable-muxers --disable-yasm  --enable-decoder=theora --enable-decoder=flac --enable-decoder=vorbis --enable-decoder=vp8 --enable-memalign-hack --enable-w32threads
1>  install prefix            /usr/local
1>  source path               /tmp/ffmpeg
1>  C compiler                gcc
1>  ARCH                      x86 (generic)
1>  big-endian                no
1>  runtime cpu detection     yes
1>  yasm                      no
1>  MMX enabled               yes
1>  MMXEXT enabled            yes
1>  3DNow! enabled            yes
1>  3DNow! extended enabled   yes
1>  SSE enabled               yes
1>  SSSE3 enabled             yes
1>  AVX enabled               yes
1>  FMA4 enabled              yes
1>  CMOV enabled              no
1>  CMOV is fast              no
1>  EBX available             yes
1>  EBP available             no
1>  debug symbols             yes
1>  strip symbols             yes
1>  optimize for size         no
1>  optimizations             yes
1>  static                    no
1>  shared                    yes
1>  postprocessing support    no
1>  new filter support        yes
1>  network support           yes
1>  threading support         w32threads
1>  safe bitstream reader     yes
1>  SDL support               no
1>  libdxva2 enabled          no
1>  libva enabled             no
1>  libvdpau enabled          no
1>  AVISynth enabled          no
1>  frei0r enabled            no
1>  gnutls enabled            no
1>  libaacplus enabled        no
1>  libass enabled            no
1>  libcaca enabled           no
1>  libcdio support           no
1>  libcelt enabled           no
1>  libdc1394 support         no
1>  libfaac enabled           no
1>  libfdk-aac enabled        no
1>  libgsm enabled            no
1>  libiec61883 support       no
1>  libilbc enabled           no
1>  libmodplug enabled        no
1>  libmp3lame enabled        no
1>  libnut enabled            no
1>  libopencore-amrnb support no
1>  libopencore-amrwb support no
1>  libopencv support         no
1>  libopenjpeg enabled       no
1>  libopus enabled           no
1>  libpulse enabled          no
1>  librtmp enabled           no
1>  libschroedinger enabled   no
1>  libspeex enabled          no
1>  libstagefright-h264 enabled    no
1>  libtheora enabled         no
1>  libtwolame enabled        no
1>  libutvideo enabled        no
1>  libv4l2 enabled           no
1>  libvo-aacenc support      no
1>  libvo-amrwbenc support    no
1>  libvorbis enabled         no
1>  libvpx enabled            no
1>  libx264 enabled           no
1>  libxavs enabled           no
1>  libxvid enabled           no
1>  openal enabled            no
1>  openssl enabled           no
1>  zlib enabled              no
1>  bzlib enabled             no
1>  texi2html enabled         no
1>  perl enabled              yes
1>  pod2man enabled           yes
1>  makeinfo enabled          yes
1> 
1>  Enabled decoders:
1>  flac         vorbis         vp8
1>  theora         vp3
1> 
1>  Enabled encoders:
1> 
1>  Enabled hwaccels:
1> 
1>  Enabled parsers:
1>  aac         dvbsub         mpegaudio
1>  aac_latm      dvdsub         mpegvideo
1>  ac3         flac         png
1>  adx         gsm         pnm
1>  bmp         h261         rv30
1>  cavsvideo      h263         rv40
1>  cook         h264         vc1
1>  dca         mjpeg         vorbis
1>  dirac         mlp         vp3
1>  dnxhd         mpeg4video      vp8
1> 
1>  Enabled demuxers:
1>  aac         image2         pcm_u32le
1>  ac3         image2pipe      pcm_u8
1>  act         ingenient      pmp
1>  adf         ipmovie         pva
1>  adx         iss         qcp
1>  aea         iv8         r3d
1>  aiff         ivf         rawvideo
1>  amr         jacosub         realtext
1>  anm         jv         rl2
1>  apc         latm         rm
1>  ape         lmlm4         roq
1>  asf         loas         rpl
1>  ass         lxf         rso
1>  au         m4v         rtp
1>  avi         matroska      rtsp
1>  avs         mgsts         sami
1>  bethsoftvid      microdvd      sap
1>  bfi         mjpeg         sbg
1>  bink         mlp         sdp
1>  bintext         mm         segafilm
1>  bit         mmf         shorten
1>  bmv         mov         siff
1>  c93         mp3         smacker
1>  caf         mpc         smjpeg
1>  cavsvideo      mpc8         smush
1>  cdg         mpegps         sol
1>  cdxl         mpegts         sox
1>  daud         mpegtsraw      spdif
1>  dfa         mpegvideo      srt
1>  dirac         msnwc_tcp      str
1>  dnxhd         mtv         subviewer
1>  dsicin         mvi         swf
1>  dts         mxf         thp
1>  dv         mxg         tiertexseq
1>  dxa         nc         tmv
1>  ea         nsv         truehd
1>  ea_cdata      nut         tta
1>  eac3         nuv         tty
1>  ffm         ogg         txd
1>  ffmetadata      oma         vc1
1>  filmstrip      paf         vc1t
1>  flac         pcm_alaw      vmd
1>  flic         pcm_f32be      voc
1>  flv         pcm_f32le      vqf
1>  fourxm         pcm_f64be      w64
1>  g722         pcm_f64le      wav
1>  g723_1         pcm_mulaw      wc3
1>  g729         pcm_s16be      webvtt
1>  gsm         pcm_s16le      wsaud
1>  gxf         pcm_s24be      wsvqa
1>  h261         pcm_s24le      wtv
1>  h263         pcm_s32be      wv
1>  h264         pcm_s32le      xa
1>  hls         pcm_s8         xbin
1>  ico         pcm_u16be      xmv
1>  idcin         pcm_u16le      xwma
1>  idf         pcm_u24be      yop
1>  iff         pcm_u24le      yuv4mpegpipe
1>  ilbc         pcm_u32be
1> 
1>  Enabled muxers:
1> 
1>  Enabled protocols:
1>  applehttp      hls         pipe
1>  cache         http         rtmp
1>  concat         httpproxy      rtmpt
1>  crypto         md5         rtp
1>  ffrtmphttp      mmsh         tcp
1>  file         mmst         udp
1>  gopher
1> 
1>  Enabled filters:
1>  aconvert      crop         pan
1>  aevalsrc      deshake         pixdesctest
1>  afifo         drawbox         removelogo
1>  aformat         earwax         rgbtestsrc
1>  alphaextract      edgedetect      scale
1>  alphamerge      fade         select
1>  amerge         fieldorder      sendcmd
1>  amix         fifo         setdar
1>  amovie         format         setfield
1>  anull         fps         setpts
1>  anullsink      framestep      setsar
1>  anullsrc      gradfun         settb
1>  aresample      hflip         showinfo
1>  asendcmd      hue         showwaves
1>  asetnsamples      idet         silencedetect
1>  asetpts         join         slicify
1>  asettb         life         smptebars
1>  ashowinfo      lut         split
1>  asink         lutrgb         swapuv
1>  asink         lutyuv         testsrc
1>  asplit         mandelbrot      thumbnail
1>  astreamsync      movie         tile
1>  bbox         negate         transpose
1>  blackdetect      noformat      unsharp
1>  cellauto      null         vflip
1>  channelmap      nullsink      volume
1>  channelsplit      nullsrc         volumedetect
1>  color         overlay         vsink
1>  concat         pad         vsink
1>  copy
1> 
1>  Enabled bsfs:
1>  aac_adtstoasc      mjpeg2jpeg      mp3_header_decompress
1>  chomp         mjpega_dump_header   noise
1>  dump_extradata      mov2textsub      remove_extradata
1>  h264_mp4toannexb   mp3_header_compress   text2movsub
1>  imx_dump_header
1> 
1>  Enabled indevs:
1>  lavfi         oss         vfwcap
1> 
1>  Enabled outdevs:
1>  oss
1> 
1>  License: LGPL version 2.1 or later
1>  Creating config.mak and config.h...
1>  config.h is unchanged
1>  libavutil/avconfig.h is unchanged
1> 
1>CUSTOMBUILD : warning : pkg-config not found, library detection may fail.
1>  CC   libavdevice/lavfi.o
1>  CC   libavdevice/oss_audio.o
1>  CC   libavdevice/avdevice.o
1>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
1>  /tmp/ffmpeg/libavutil/common.h:31:22: inttypes.h: No such file or directory
1>  CC   libavdevice/alldevices.o
1>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
1>  /tmp/ffmpeg/libavutil/common.h:65: error: parse error before "ff_log2_tab"
1>  /tmp/ffmpeg/libavutil/common.h:65: warning: type defaults to `int' in declaration of `ff_log2_tab'
1>  /tmp/ffmpeg/libavutil/common.h:65: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavutil/common.h:70: error: parse error before "av_reverse"
1>  /tmp/ffmpeg/libavutil/common.h:70: warning: type defaults to `int' in declaration of `av_reverse'
1>  /tmp/ffmpeg/libavutil/common.h:70: warning: data definition has no type or storage class
1>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
1>  /tmp/ffmpeg/libavutil/intmath.h:24:20: stdint.h: No such file or directory
1>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
1>  /tmp/ffmpeg/libavutil/intmath.h:33: error: parse error before "ff_inverse"
1>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: type defaults to `int' in declaration of `ff_inverse'
1>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavdevice/oss_audio.c:25:20: stdint.h: No such file or directory
1>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
1>  /tmp/ffmpeg/libavutil/intmath.h:58: error: parse error before "ff_sqrt_tab"
1>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: type defaults to `int' in declaration of `ff_sqrt_tab'
1>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: data definition has no type or storage class
1>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
1>  /tmp/ffmpeg/libavutil/common.h:127: error: parse error before "av_clip_uint8_c"
1>  /tmp/ffmpeg/libavutil/common.h:128: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/common.h:128: warning: no previous prototype for 'av_clip_uint8_c'
1>  /tmp/ffmpeg/libavutil/common.h:138: error: parse error before "av_clip_int8_c"
1>  /tmp/ffmpeg/libavutil/common.h:139: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/common.h:139: warning: no previous prototype for 'av_clip_int8_c'
1>  /tmp/ffmpeg/libavutil/common.h:149: error: parse error before "av_clip_uint16_c"
1>  /tmp/ffmpeg/libavutil/common.h:150: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/common.h:150: warning: no previous prototype for 'av_clip_uint16_c'
1>  /tmp/ffmpeg/libavutil/common.h:160: error: parse error before "av_clip_int16_c"
1>  /tmp/ffmpeg/libavutil/common.h:161: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/common.h:161: warning: no previous prototype for 'av_clip_int16_c'
1>  /tmp/ffmpeg/libavutil/common.h:171: error: parse error before "av_clipl_int32_c"
1>  /tmp/ffmpeg/libavutil/common.h:171: error: parse error before "a"
1>  /tmp/ffmpeg/libavutil/common.h:172: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/common.h:172: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/common.h: In function `av_clipl_int32_c':
1>  /tmp/ffmpeg/libavutil/common.h:173: error: `a' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/common.h:173: error: (Each undeclared identifier is reported only once
1>  /tmp/ffmpeg/libavutil/common.h:173: error: for each function it appears in.)
1>  /tmp/ffmpeg/libavutil/common.h:173: warning: implicit declaration of function `UINT64_C'
1>  /tmp/ffmpeg/libavutil/common.h:174: error: `int32_t' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/common.h:174: error: parse error before "a"
1>  /tmp/ffmpeg/libavutil/common.h: In function `av_sat_add32_c':
1>  /tmp/ffmpeg/libavutil/common.h:198: error: `int64_t' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/common.h:198: error: parse error before "a"
1>  /tmp/ffmpeg/libavutil/common.h:199: warning: no return statement in function returning non-void
1>  /tmp/ffmpeg/libavutil/common.h: At top level:
1>  /tmp/ffmpeg/libavutil/common.h:241: error: parse error before "x"
1>  /tmp/ffmpeg/libavutil/common.h:242: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount_c':
1>  /tmp/ffmpeg/libavutil/common.h:243: error: `x' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/common.h: At top level:
1>  /tmp/ffmpeg/libavutil/common.h:255: error: parse error before "x"
1>  /tmp/ffmpeg/libavutil/common.h:256: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount64_c':
1>  /tmp/ffmpeg/libavutil/common.h:257: error: `uint32_t' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/common.h:257: error: parse error before "x"
1>  /tmp/ffmpeg/libavutil/common.h:258: warning: no return statement in function returning non-void
1>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/common.h:31:22: inttypes.h: No such file or directory
1>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/common.h:65: error: parse error before "ff_log2_tab"
1>  /tmp/ffmpeg/libavutil/common.h:65: warning: type defaults to `int' in declaration of `ff_log2_tab'
1>  /tmp/ffmpeg/libavutil/common.h:65: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavutil/common.h:70: error: parse error before "av_reverse"
1>  /tmp/ffmpeg/libavutil/common.h:70: warning: type defaults to `int' in declaration of `av_reverse'
1>  /tmp/ffmpeg/libavutil/common.h:70: warning: data definition has no type or storage class
1>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/intmath.h:33: error: parse error before "ff_inverse"
1>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: type defaults to `int' in declaration of `ff_inverse'
1>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: data definition has no type or storage class
1>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/intmath.h:58: error: parse error before "ff_sqrt_tab"
1>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: type defaults to `int' in declaration of `ff_sqrt_tab'
1>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: data definition has no type or storage class
1>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/common.h:127: error: parse error before "av_clip_uint8_c"
1>  /tmp/ffmpeg/libavutil/common.h:128: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/common.h:128: warning: no previous prototype for 'av_clip_uint8_c'
1>  /tmp/ffmpeg/libavutil/common.h:149: error: parse error before "av_clip_uint16_c"
1>  /tmp/ffmpeg/libavutil/common.h:150: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/common.h:150: warning: no previous prototype for 'av_clip_uint16_c'
1>  /tmp/ffmpeg/libavutil/common.h: In function `av_clipl_int32_c':
1>  /tmp/ffmpeg/libavutil/common.h:173: warning: implicit declaration of function `UINT64_C'
1>  /tmp/ffmpeg/libavutil/common.h: At top level:
1>  /tmp/ffmpeg/libavutil/common.h:241: error: parse error before "x"
1>  /tmp/ffmpeg/libavutil/common.h:242: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount_c':
1>  /tmp/ffmpeg/libavutil/common.h:243: error: `x' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/common.h:243: error: (Each undeclared identifier is reported only once
1>  /tmp/ffmpeg/libavutil/common.h:243: error: for each function it appears in.)
1>  /tmp/ffmpeg/libavutil/common.h: At top level:
1>  /tmp/ffmpeg/libavutil/common.h:255: error: parse error before "x"
1>  /tmp/ffmpeg/libavutil/common.h:256: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount64_c':
1>  /tmp/ffmpeg/libavutil/common.h:257: error: `uint32_t' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/common.h:257: error: parse error before "x"
1>  /tmp/ffmpeg/libavutil/common.h:258: warning: no return statement in function returning non-void
1>  In file included from /tmp/ffmpeg/libavutil/timer.h:42,
1>                   from /tmp/ffmpeg/libavutil/internal.h:39,
1>                   from /tmp/ffmpeg/libavutil/common.h:379,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/x86/timer.h: At top level:
1>  /tmp/ffmpeg/libavutil/x86/timer.h:30: error: parse error before "read_time"
1>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: no previous prototype for 'read_time'
1>  /tmp/ffmpeg/libavutil/x86/timer.h: In function `read_time':
1>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: `uint32_t' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: parse error before "a"
1>  In file included from /tmp/ffmpeg/libavutil/timer.h:42,
1>                   from /tmp/ffmpeg/libavutil/internal.h:39,
1>                   from /tmp/ffmpeg/libavutil/common.h:379,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
1>  /tmp/ffmpeg/libavutil/x86/timer.h: At top level:/tmp/ffmpeg/libavutil/x86/timer.h:33: error: `a' undeclared (first use in this function)
1> 
1>  /tmp/ffmpeg/libavutil/x86/timer.h:30: error: parse error before "read_time"
1>  /tmp/ffmpeg/libavutil/x86/timer.h:33: error: `d' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: `uint64_t' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: parse error before "d"
1>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: no previous prototype for 'read_time'
1>  /tmp/ffmpeg/libavutil/x86/timer.h: In function `read_time':
1>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: `uint32_t' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: parse error before "a"
1>  /tmp/ffmpeg/libavutil/x86/timer.h:33: error: `d' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: `uint64_t' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: parse error before "d"
1>  In file included from /tmp/ffmpeg/libavutil/libm.h:30,
1>                   from /tmp/ffmpeg/libavutil/internal.h:109,
1>                   from /tmp/ffmpeg/libavutil/common.h:379,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
1>  /tmp/ffmpeg/libavutil/intfloat.h:28: error: parse error before "uint32_t"
1>  /tmp/ffmpeg/libavutil/intfloat.h:28: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavutil/intfloat.h:30: error: parse error before '}' token
1>  /tmp/ffmpeg/libavutil/intfloat.h:33: error: parse error before "uint64_t"
1>  /tmp/ffmpeg/libavutil/intfloat.h:33: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavutil/intfloat.h:34: error: conflicting types for 'f'
1>  /tmp/ffmpeg/libavutil/intfloat.h:29: error: previous declaration of 'f' was here
1>  /tmp/ffmpeg/libavutil/intfloat.h:35: error: parse error before '}' token
1>  /tmp/ffmpeg/libavutil/intfloat.h:40: error: parse error before "i"
1>  /tmp/ffmpeg/libavutil/intfloat.h:41: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/intfloat.h: In function `av_int2float':
1>  /tmp/ffmpeg/libavutil/intfloat.h:42: error: storage size of 'v' isn't known
1>  /tmp/ffmpeg/libavutil/intfloat.h:43: error: `i' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/intfloat.h:42: warning: unused variable `v'
1>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
1>  /tmp/ffmpeg/libavutil/intfloat.h:50: error: parse error before "av_float2int"
1>  /tmp/ffmpeg/libavutil/intfloat.h:51: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/intfloat.h:51: warning: no previous prototype for 'av_float2int'
1>  /tmp/ffmpeg/libavutil/intfloat.h: In function `av_float2int':
1>  /tmp/ffmpeg/libavutil/intfloat.h:52: error: storage size of 'v' isn't known
1>  /tmp/ffmpeg/libavutil/intfloat.h:52: warning: unused variable `v'
1>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
1>  /tmp/ffmpeg/libavutil/intfloat.h:60: error: parse error before "i"
1>  /tmp/ffmpeg/libavutil/intfloat.h:61: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/intfloat.h: In function `av_int2double':
1>  /tmp/ffmpeg/libavutil/intfloat.h:62: error: storage size of 'v' isn't known
1>  /tmp/ffmpeg/libavutil/intfloat.h:63: error: `i' undeclared (first use in this function)
1>  /tmp/ffmpeg/libavutil/intfloat.h:62: warning: unused variable `v'
1>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
1>  /tmp/ffmpeg/libavutil/intfloat.h:70: error: parse error before "av_double2int"
1>  /tmp/ffmpeg/libavutil/intfloat.h:71: warning: return type defaults to `int'
1>  /tmp/ffmpeg/libavutil/intfloat.h:71: warning: no previous prototype for 'av_double2int'
1>  /tmp/ffmpeg/libavutil/intfloat.h: In function `av_double2int':
1>  /tmp/ffmpeg/libavutil/intfloat.h:72: error: storage size of 'v' isn't known
1>  /tmp/ffmpeg/libavutil/intfloat.h:72: warning: unused variable `v'
1>  In file included from /tmp/ffmpeg/libavutil/libm.h:30,
1>                   from /tmp/ffmpeg/libavutil/internal.h:109,
1>                   from /tmp/ffmpeg/libavutil/common.h:379,
1>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
1>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
1>  /tmp/ffmpeg/libavutil/intfloat.h:28: error: parse error before "uint32_t"
1>  /tmp/ffmpeg/libavutil/intfloat.h:28: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavutil/intfloat.h:29: confused by earlier errors, bailing out
1>  In file included from /tmp/ffmpeg/libavutil/avutil.h:277,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/mathematics.h: At top level:
1>  /tmp/ffmpeg/libavutil/mathematics.h:123: error: parse error before "a"
1>  /tmp/ffmpeg/libavutil/mathematics.h:123: warning: function declaration isn't a prototype
1>  In file included from /tmp/ffmpeg/libavutil/avutil.h:279,
1>                   from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:29: error: parse error before "uint8_t"
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:29: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:30: warning: type defaults to `int' in declaration of `mantissa'
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:30: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:31: error: parse error before '}' token
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:31: warning: type defaults to `int' in declaration of `AVExtFloat'
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:31: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:35: warning: type defaults to `int' in declaration of `AVExtFloat'
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:35: error: parse error before "ext"
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:35: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:38: error: parse error before "av_dbl2ext"
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:38: warning: type defaults to `int' in declaration of `av_dbl2ext'
1>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:38: warning: data definition has no type or storage class
1>  In file included from /tmp/ffmpeg/libavutil/log.h:25,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
1>  /tmp/ffmpeg/libavutil/avutil.h: In function `av_x_if_null':
1>  /tmp/ffmpeg/libavutil/avutil.h:288: error: `intptr_t' undeclared (first use in this function)
1>  In file included from /tmp/ffmpeg/libavdevice/oss_audio.c:38:
1>  /tmp/ffmpeg/libavutil/opt.h: At top level:
1>  /tmp/ffmpeg/libavutil/opt.h:567: warning: type defaults to `int' in declaration of `uint8_t'
1>  /tmp/ffmpeg/libavutil/opt.h:567: error: parse error before '*' token
1>  /tmp/ffmpeg/libavutil/opt.h:567: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/opt.h:587: error: parse error before "uint8_t"
1>  /tmp/ffmpeg/libavutil/opt.h:587: warning: function declaration isn't a prototype
1>  In file included from /tmp/ffmpeg/libavcodec/avcodec.h:30,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:40:
1>  /tmp/ffmpeg/libavutil/samplefmt.h:188: error: parse error before '*' token
1>  /tmp/ffmpeg/libavutil/samplefmt.h:191: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/samplefmt.h:209: error: parse error before '*' token
1>  /tmp/ffmpeg/libavutil/samplefmt.h:210: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/samplefmt.h:223: error: parse error before '*' token
1>  /tmp/ffmpeg/libavutil/samplefmt.h:225: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/samplefmt.h:236: error: parse error before '*' token
1>  /tmp/ffmpeg/libavutil/samplefmt.h:237: warning: function declaration isn't a prototype
1>  In file included from /tmp/ffmpeg/libavcodec/avcodec.h:37,
1>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:40:
1>  /tmp/ffmpeg/libavutil/audioconvert.h:133: error: parse error before "av_get_channel_layout"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:133: warning: type defaults to `int' in declaration of `av_get_channel_layout'
1>  /tmp/ffmpeg/libavutil/audioconvert.h:133: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavutil/audioconvert.h:142: error: parse error before "uint64_t"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:142: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/audioconvert.h:148: error: parse error before "uint64_t"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:148: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/audioconvert.h:153: error: parse error before "channel_layout"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:153: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/audioconvert.h:169: error: parse error before "channel_layout"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:170: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/audioconvert.h:175: error: parse error before "av_channel_layout_extract_channel"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:175: error: parse error before "channel_layout"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:175: warning: type defaults to `int' in declaration of `av_channel_layout_extract_channel'
1>  /tmp/ffmpeg/libavutil/audioconvert.h:175: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/audioconvert.h:175: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavutil/audioconvert.h:182: error: parse error before "channel"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:182: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/audioconvert.h:190: error: parse error before "channel"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:190: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavutil/audioconvert.h:201: error: parse error before "uint64_t"
1>  /tmp/ffmpeg/libavutil/audioconvert.h:202: warning: function declaration isn't a prototype
1>  In file included from /tmp/ffmpeg/libavdevice/oss_audio.c:40:
1>  /tmp/ffmpeg/libavcodec/avcodec.h:960: error: parse error before "uint8_t"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:960: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavcodec/avcodec.h:972: error: parse error before "uint8_t"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:972: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavcodec/avcodec.h:973: warning: redundant redeclaration of 'size'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:961: warning: previous declaration of 'size' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:975: error: parse error before '}' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:975: warning: type defaults to `int' in declaration of `side_data'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:975: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1005: error: parse error before '}' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1005: warning: type defaults to `int' in declaration of `AVPacket'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1005: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1037: error: parse error before "uint8_t"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1037: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1068: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1068: warning: type defaults to `int' in declaration of `extended_data'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1068: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1113: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1113: warning: type defaults to `int' in declaration of `base'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1113: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1198: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1198: warning: type defaults to `int' in declaration of `mbskip_table'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1198: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1220: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1220: warning: type defaults to `int' in declaration of `mb_type'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1220: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1249: error: parse error before "error"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1249: warning: type defaults to `int' in declaration of `error'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1249: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1257: error: conflicting types for 'type'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:974: error: previous declaration of 'type' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1342: error: parse error before "motion_subsample_log2"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1342: warning: type defaults to `int' in declaration of `motion_subsample_log2'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1342: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1358: error: parse error before "channel_layout"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1358: warning: type defaults to `int' in declaration of `channel_layout'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1358: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1418: error: parse error before '}' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1418: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1418: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1425: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1425: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1425: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1426: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1426: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1427: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1427: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1427: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1428: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1428: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1429: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1429: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1429: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1430: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1430: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1431: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1431: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1431: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1432: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1432: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1433: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1433: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1433: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1434: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1434: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1435: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1435: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1435: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1436: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1436: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1437: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1437: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1437: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1438: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1438: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1439: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1439: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1439: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1440: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1440: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1577: error: parse error before "uint8_t"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1577: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1631: warning: redundant redeclaration of 'width'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1075: warning: previous declaration of 'width' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1631: warning: redundant redeclaration of 'height'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1075: warning: previous declaration of 'height' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1691: warning: type defaults to `int' in declaration of `AVFrame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1691: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1692: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1847: warning: redundant redeclaration of 'sample_aspect_ratio'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1120: warning: previous declaration of 'sample_aspect_ratio' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2015: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2015: warning: type defaults to `int' in declaration of `intra_matrix'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2015: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2022: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2022: warning: type defaults to `int' in declaration of `inter_matrix'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2022: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2227: warning: redundant redeclaration of 'sample_rate'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1350: warning: previous declaration of 'sample_rate' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2228: error: conflicting types for 'channels'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1417: error: previous declaration of 'channels' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2282: error: parse error before "channel_layout"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2282: warning: type defaults to `int' in declaration of `channel_layout'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2282: warning: redundant redeclaration of 'channel_layout'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1358: warning: previous declaration of 'channel_layout' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2282: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2289: error: parse error before "request_channel_layout"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2289: warning: type defaults to `int' in declaration of `request_channel_layout'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2289: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2361: error: parse error before "AVFrame"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2361: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2372: error: parse error before "AVFrame"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2372: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2386: error: parse error before "AVFrame"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2386: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2733: warning: redundant redeclaration of 'reordered_opaque'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1313: warning: previous declaration of 'reordered_opaque' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2759: error: parse error before "error"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2759: warning: type defaults to `int' in declaration of `error'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2759: warning: redundant redeclaration of 'error'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1249: warning: previous declaration of 'error' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2759: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2839: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2839: warning: type defaults to `int' in declaration of `coded_frame'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2839: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:2915: warning: redundant redeclaration of 'thread_opaque'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1334: warning: previous declaration of 'thread_opaque' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3031: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3031: warning: type defaults to `int' in declaration of `subtitle_header'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3031: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3048: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3048: warning: type defaults to `int' in declaration of `pkt'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3048: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3056: error: parse error before "vbv_delay"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3056: warning: type defaults to `int' in declaration of `vbv_delay'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3056: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3085: error: parse error before '}' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3085: warning: type defaults to `int' in declaration of `AVCodecContext'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3085: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3087: warning: type defaults to `int' in declaration of `AVCodecContext'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3087: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3087: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3088: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3088: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3090: warning: type defaults to `int' in declaration of `AVCodecContext'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3090: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3090: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3091: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3091: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3132: warning: type defaults to `int' in declaration of `uint64_t'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3132: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3132: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3133: warning: type defaults to `int' in declaration of `max_lowres'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3133: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3155: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3155: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3163: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3163: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3176: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3176: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3177: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3178: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3189: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3190: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3191: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3191: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3192: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3192: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3192: error: 'close' redeclared as different kind of symbol
1>  /usr/include/sys/unistd.h:27: error: previous declaration of 'close' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3192: error: 'close' redeclared as different kind of symbol
1>  /usr/include/sys/unistd.h:27: error: previous declaration of 'close' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3197: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3197: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3198: warning: type defaults to `int' in declaration of `AVCodec'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3198: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3254: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3254: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3267: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3267: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3278: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3278: warning: function declaration isn't a prototype
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3302: error: parse error before "uint8_t"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3302: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3303: warning: redundant redeclaration of 'linesize'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1048: warning: previous declaration of 'linesize' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3304: error: parse error before '}' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3304: warning: type defaults to `int' in declaration of `AVPicture'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3304: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3339: error: parse error before "AVPicture"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3339: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3340: error: conflicting types for 'type'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1257: error: previous declaration of 'type' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3340: error: conflicting types for 'type'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1257: error: previous declaration of 'type' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3356: error: parse error before '}' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3356: warning: type defaults to `int' in declaration of `AVSubtitleRect'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3356: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3359: error: parse error before "uint16_t"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3359: warning: no semicolon at end of struct or union
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3360: warning: type defaults to `int' in declaration of `start_display_time'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3360: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3361: error: parse error before "end_display_time"
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3361: warning: type defaults to `int' in declaration of `end_display_time'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3361: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3363: error: parse error before '*' token
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3363: warning: type defaults to `int' in declaration of `rects'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3363: warning: data definition has no type or storage class
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3364: warning: redundant redeclaration of 'pts'
1>  /tmp/ffmpeg/libavcodec/avcodec.h:1128: warning: previous declaration of 'pts' was here
1>  /tmp/ffmpeg/libavcodec/avcodec.h:3365: error: p
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on November 26, 2013, 11:56:43 am
Oh. I'm surprised I never saw that error! :P
It's just that it can't find inttypes.h and stdint.h, which are provided in deps/headers/msvc. But I wonder why I never saw this issue while building FFmpeg…

What happens if in build_ffmpeg.sh at line 82, you replace
Code: [Select]
args="$args --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-encoders --disable-decoders --disable-muxers --disable-yasm $configure_flags $os_flags"with
Code: [Select]
args="$args --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-encoders --disable-decoders --disable-muxers --disable-yasm $configure_flags $os_flags --extra-cflags=\"-I${source_dir}/deps/headers/msvc\""then try to rebuild from Visual Studio?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on December 04, 2013, 11:09:19 am
Hi. I did as you said. but the library didn't  build.


1>------ Rebuild All started: Project: ZERO_CHECK, Configuration: Release Win32 ------
1>Build started 12/04/2013 11:51:32.
1>InitializeBuildStatus:
1>  Creating "Win32\Release\ZERO_CHECK\ZERO_CHECK.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>CustomBuild:
1>  Checking Build System
1>  CMake does not need to re-run because D:/Programming/C++LIB/SFE_3/CMakeFiles/generate.stamp is up-to-date.
1>FinalizeBuildStatus:
1>  Deleting file "Win32\Release\ZERO_CHECK\ZERO_CHECK.unsuccessfulbuild".
1>  Touching "Win32\Release\ZERO_CHECK\ZERO_CHECK.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:00.75
2>------ Rebuild All started: Project: FFmpeg, Configuration: Release Win32 ------
2>Build started 12/04/2013 11:51:33.
2>_PrepareForClean:
2>  Deleting file "Win32\Release\FFmpeg\FFmpeg.lastbuildstate".
2>InitializeBuildStatus:
2>  Touching "Win32\Release\FFmpeg\FFmpeg.unsuccessfulbuild".
2>CustomBuild:
2>  Building Custom Rule C:/MinGW/msys/1.0/home/Rodion/sfe/CMakeLists.txt
2>  CMake does not need to re-run because D:\Programming\C++LIB\SFE_3\CMakeFiles\generate.stamp is up-to-date.
2>  Generating FFmpeg-binaries/lib/avformat.lib, FFmpeg-binaries/lib/avdevice.lib, FFmpeg-binaries/lib/avcodec.lib, FFmpeg-binaries/lib/avutil.lib, FFmpeg-binaries/lib/swscale.lib
2>  Build directory : D:/Programming/C++LIB/SFE_3
2>  OS              : windows
2>  Visual Studio   : 1
2>  OS X arch       : notosx
2>  Decoders        : theora flac vorbis vp8
2>  FFmpeg sources found, skipping archive extraction
2>  /tmp/ffmpeg/configure  --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-encoders --disable-decoders --disable-muxers --disable-yasm  --enable-decoder=theora --enable-decoder=flac --enable-decoder=vorbis --enable-decoder=vp8 --enable-memalign-hack --enable-w32threads --extra-cflags="-IC:/MinGW/msys/1.0/home/Rodion/sfe/deps/headers/msvc"
2>  install prefix            /usr/local
2>  source path               /tmp/ffmpeg
2>  C compiler                gcc
2>  ARCH                      x86 (generic)
2>  big-endian                no
2>  runtime cpu detection     yes
2>  yasm                      no
2>  MMX enabled               yes
2>  MMXEXT enabled            yes
2>  3DNow! enabled            yes
2>  3DNow! extended enabled   yes
2>  SSE enabled               yes
2>  SSSE3 enabled             yes
2>  AVX enabled               yes
2>  FMA4 enabled              yes
2>  CMOV enabled              no
2>  CMOV is fast              no
2>  EBX available             yes
2>  EBP available             no
2>  debug symbols             yes
2>  strip symbols             yes
2>  optimize for size         no
2>  optimizations             yes
2>  static                    no
2>  shared                    yes
2>  postprocessing support    no
2>  new filter support        yes
2>  network support           yes
2>  threading support         w32threads
2>  safe bitstream reader     yes
2>  SDL support               no
2>  libdxva2 enabled          no
2>  libva enabled             no
2>  libvdpau enabled          no
2>  AVISynth enabled          no
2>  frei0r enabled            no
2>  gnutls enabled            no
2>  libaacplus enabled        no
2>  libass enabled            no
2>  libcaca enabled           no
2>  libcdio support           no
2>  libcelt enabled           no
2>  libdc1394 support         no
2>  libfaac enabled           no
2>  libfdk-aac enabled        no
2>  libgsm enabled            no
2>  libiec61883 support       no
2>  libilbc enabled           no
2>  libmodplug enabled        no
2>  libmp3lame enabled        no
2>  libnut enabled            no
2>  libopencore-amrnb support no
2>  libopencore-amrwb support no
2>  libopencv support         no
2>  libopenjpeg enabled       no
2>  libopus enabled           no
2>  libpulse enabled          no
2>  librtmp enabled           no
2>  libschroedinger enabled   no
2>  libspeex enabled          no
2>  libstagefright-h264 enabled    no
2>  libtheora enabled         no
2>  libtwolame enabled        no
2>  libutvideo enabled        no
2>  libv4l2 enabled           no
2>  libvo-aacenc support      no
2>  libvo-amrwbenc support    no
2>  libvorbis enabled         no
2>  libvpx enabled            no
2>  libx264 enabled           no
2>  libxavs enabled           no
2>  libxvid enabled           no
2>  openal enabled            no
2>  openssl enabled           no
2>  zlib enabled              no
2>  bzlib enabled             no
2>  texi2html enabled         no
2>  perl enabled              yes
2>  pod2man enabled           yes
2>  makeinfo enabled          yes
2> 
2>  Enabled decoders:
2>  flac         vorbis         vp8
2>  theora         vp3
2> 
2>  Enabled encoders:
2> 
2>  Enabled hwaccels:
2> 
2>  Enabled parsers:
2>  aac         dvbsub         mpegaudio
2>  aac_latm      dvdsub         mpegvideo
2>  ac3         flac         png
2>  adx         gsm         pnm
2>  bmp         h261         rv30
2>  cavsvideo      h263         rv40
2>  cook         h264         vc1
2>  dca         mjpeg         vorbis
2>  dirac         mlp         vp3
2>  dnxhd         mpeg4video      vp8
2> 
2>  Enabled demuxers:
2>  aac         image2         pcm_u32le
2>  ac3         image2pipe      pcm_u8
2>  act         ingenient      pmp
2>  adf         ipmovie         pva
2>  adx         iss         qcp
2>  aea         iv8         r3d
2>  aiff         ivf         rawvideo
2>  amr         jacosub         realtext
2>  anm         jv         rl2
2>  apc         latm         rm
2>  ape         lmlm4         roq
2>  asf         loas         rpl
2>  ass         lxf         rso
2>  au         m4v         rtp
2>  avi         matroska      rtsp
2>  avs         mgsts         sami
2>  bethsoftvid      microdvd      sap
2>  bfi         mjpeg         sbg
2>  bink         mlp         sdp
2>  bintext         mm         segafilm
2>  bit         mmf         shorten
2>  bmv         mov         siff
2>  c93         mp3         smacker
2>  caf         mpc         smjpeg
2>  cavsvideo      mpc8         smush
2>  cdg         mpegps         sol
2>  cdxl         mpegts         sox
2>  daud         mpegtsraw      spdif
2>  dfa         mpegvideo      srt
2>  dirac         msnwc_tcp      str
2>  dnxhd         mtv         subviewer
2>  dsicin         mvi         swf
2>  dts         mxf         thp
2>  dv         mxg         tiertexseq
2>  dxa         nc         tmv
2>  ea         nsv         truehd
2>  ea_cdata      nut         tta
2>  eac3         nuv         tty
2>  ffm         ogg         txd
2>  ffmetadata      oma         vc1
2>  filmstrip      paf         vc1t
2>  flac         pcm_alaw      vmd
2>  flic         pcm_f32be      voc
2>  flv         pcm_f32le      vqf
2>  fourxm         pcm_f64be      w64
2>  g722         pcm_f64le      wav
2>  g723_1         pcm_mulaw      wc3
2>  g729         pcm_s16be      webvtt
2>  gsm         pcm_s16le      wsaud
2>  gxf         pcm_s24be      wsvqa
2>  h261         pcm_s24le      wtv
2>  h263         pcm_s32be      wv
2>  h264         pcm_s32le      xa
2>  hls         pcm_s8         xbin
2>  ico         pcm_u16be      xmv
2>  idcin         pcm_u16le      xwma
2>  idf         pcm_u24be      yop
2>  iff         pcm_u24le      yuv4mpegpipe
2>  ilbc         pcm_u32be
2> 
2>  Enabled muxers:
2> 
2>  Enabled protocols:
2>  applehttp      hls         pipe
2>  cache         http         rtmp
2>  concat         httpproxy      rtmpt
2>  crypto         md5         rtp
2>  ffrtmphttp      mmsh         tcp
2>  file         mmst         udp
2>  gopher
2> 
2>  Enabled filters:
2>  aconvert      crop         pan
2>  aevalsrc      deshake         pixdesctest
2>  afifo         drawbox         removelogo
2>  aformat         earwax         rgbtestsrc
2>  alphaextract      edgedetect      scale
2>  alphamerge      fade         select
2>  amerge         fieldorder      sendcmd
2>  amix         fifo         setdar
2>  amovie         format         setfield
2>  anull         fps         setpts
2>  anullsink      framestep      setsar
2>  anullsrc      gradfun         settb
2>  aresample      hflip         showinfo
2>  asendcmd      hue         showwaves
2>  asetnsamples      idet         silencedetect
2>  asetpts         join         slicify
2>  asettb         life         smptebars
2>  ashowinfo      lut         split
2>  asink         lutrgb         swapuv
2>  asink         lutyuv         testsrc
2>  asplit         mandelbrot      thumbnail
2>  astreamsync      movie         tile
2>  bbox         negate         transpose
2>  blackdetect      noformat      unsharp
2>  cellauto      null         vflip
2>  channelmap      nullsink      volume
2>  channelsplit      nullsrc         volumedetect
2>  color         overlay         vsink
2>  concat         pad         vsink
2>  copy
2> 
2>  Enabled bsfs:
2>  aac_adtstoasc      mjpeg2jpeg      mp3_header_decompress
2>  chomp         mjpega_dump_header   noise
2>  dump_extradata      mov2textsub      remove_extradata
2>  h264_mp4toannexb   mp3_header_compress   text2movsub
2>  imx_dump_header
2> 
2>  Enabled indevs:
2>  lavfi         oss         vfwcap
2> 
2>  Enabled outdevs:
2>  oss
2> 
2>  License: LGPL version 2.1 or later
2>  Creating config.mak and config.h...
2>  libavutil/avconfig.h is unchanged
2> 
2>CUSTOMBUILD : warning : pkg-config not found, library detection may fail.
2>  CC   libavdevice/alldevices.o
2>  CC   libavdevice/avdevice.o
2>  CC   libavdevice/lavfi.o
2>  CC   libavdevice/oss_audio.o
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/avassert.h:31,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.c:19:
2>  /tmp/ffmpeg/libavutil/common.h:65: error: parse error before "ff_log2_tab"
2>  /tmp/ffmpeg/libavutil/common.h:65: warning: type defaults to `int' in declaration of `ff_log2_tab'
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavdevice/version.h:28,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.h:22,
2>                   from /tmp/ffmpeg/libavdevice/alldevices.c:22:
2>  /tmp/ffmpeg/libavutil/common.h:65: error: parse error before "ff_log2_tab"
2>  /tmp/ffmpeg/libavutil/common.h:65: warning: type defaults to `int' in declaration of `ff_log2_tab'
2>  /tmp/ffmpeg/libavutil/common.h:65: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/common.h:70: error: parse error before "av_reverse"
2>  /tmp/ffmpeg/libavutil/common.h:70: warning: type defaults to `int' in declaration of `av_reverse'
2>  /tmp/ffmpeg/libavutil/common.h:70: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/common.h:65: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/common.h:70: error: parse error before "av_reverse"
2>  /tmp/ffmpeg/libavutil/common.h:70: warning: type defaults to `int' in declaration of `av_reverse'
2>  /tmp/ffmpeg/libavutil/common.h:70: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
2>  /tmp/ffmpeg/libavutil/common.h:65: error: parse error before "ff_log2_tab"
2>  /tmp/ffmpeg/libavutil/common.h:65: warning: type defaults to `int' in declaration of `ff_log2_tab'
2>  /tmp/ffmpeg/libavutil/common.h:65: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/common.h:70: error: parse error before "av_reverse"
2>  /tmp/ffmpeg/libavutil/common.h:70: warning: type defaults to `int' in declaration of `av_reverse'
2>  /tmp/ffmpeg/libavutil/common.h:70: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/avassert.h:31,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.c:19:
2>  /tmp/ffmpeg/libavutil/intmath.h:33: error: parse error before "ff_inverse"
2>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: type defaults to `int' in declaration of `ff_inverse'
2>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavdevice/version.h:28,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.h:22,
2>                   from /tmp/ffmpeg/libavdevice/alldevices.c:22:
2>  /tmp/ffmpeg/libavutil/intmath.h:33: error: parse error before "ff_inverse"
2>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: type defaults to `int' in declaration of `ff_inverse'
2>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
2>  /tmp/ffmpeg/libavutil/intmath.h:33: error: parse error before "ff_inverse"
2>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: type defaults to `int' in declaration of `ff_inverse'
2>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/common.h:65: error: parse error before "ff_log2_tab"
2>  /tmp/ffmpeg/libavutil/common.h:65: warning: type defaults to `int' in declaration of `ff_log2_tab'
2>  /tmp/ffmpeg/libavutil/common.h:65: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/common.h:70: error: parse error before "av_reverse"
2>  /tmp/ffmpeg/libavutil/common.h:70: warning: type defaults to `int' in declaration of `av_reverse'
2>  /tmp/ffmpeg/libavutil/common.h:70: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/intmath.h:33: error: parse error before "ff_inverse"
2>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: type defaults to `int' in declaration of `ff_inverse'
2>  /tmp/ffmpeg/libavutil/intmath.h:33: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/avassert.h:31,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.c:19:
2>  /tmp/ffmpeg/libavutil/intmath.h:58: error: parse error before "ff_sqrt_tab"
2>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: type defaults to `int' in declaration of `ff_sqrt_tab'
2>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavdevice/version.h:28,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.h:22,
2>                   from /tmp/ffmpeg/libavdevice/alldevices.c:22:
2>  /tmp/ffmpeg/libavutil/intmath.h:58: error: parse error before "ff_sqrt_tab"
2>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: type defaults to `int' in declaration of `ff_sqrt_tab'
2>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/intmath.h:58: error: parse error before "ff_sqrt_tab"
2>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: type defaults to `int' in declaration of `ff_sqrt_tab'
2>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/common.h:102,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
2>  /tmp/ffmpeg/libavutil/intmath.h:58: error: parse error before "ff_sqrt_tab"
2>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: type defaults to `int' in declaration of `ff_sqrt_tab'
2>  /tmp/ffmpeg/libavutil/intmath.h:58: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavdevice/version.h:28,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.h:22,
2>                   from /tmp/ffmpeg/libavdevice/alldevices.c:22:
2>  /tmp/ffmpeg/libavutil/common.h:127: error: parse error before "av_clip_uint8_c"
2>  /tmp/ffmpeg/libavutil/common.h:128: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:128: warning: no previous prototype for 'av_clip_uint8_c'
2>  /tmp/ffmpeg/libavutil/common.h:138: error: parse error before "av_clip_int8_c"
2>  /tmp/ffmpeg/libavutil/common.h:139: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:139: warning: no previous prototype for 'av_clip_int8_c'
2>  /tmp/ffmpeg/libavutil/common.h:149: error: parse error before "av_clip_uint16_c"
2>  /tmp/ffmpeg/libavutil/common.h:150: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:150: warning: no previous prototype for 'av_clip_uint16_c'
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/common.h:127: error: parse error before "av_clip_uint8_c"
2>  /tmp/ffmpeg/libavutil/common.h:128: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:128: warning: no previous prototype for 'av_clip_uint8_c'
2>  /tmp/ffmpeg/libavutil/common.h:160: error: parse error before "av_clip_int16_c"
2>  /tmp/ffmpeg/libavutil/common.h:149: error: parse error before "av_clip_uint16_c"
2>  /tmp/ffmpeg/libavutil/common.h:161: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:150: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:150: warning: no previous prototype for 'av_clip_uint16_c'
2>  /tmp/ffmpeg/libavutil/common.h:161: warning: no previous prototype for 'av_clip_int16_c'
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
2>  /tmp/ffmpeg/libavutil/common.h:127: error: parse error before "av_clip_uint8_c"
2>  /tmp/ffmpeg/libavutil/common.h:171: error: parse error before "av_clipl_int32_c"
2>  /tmp/ffmpeg/libavutil/common.h:128: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:171: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_clipl_int32_c':
2>  /tmp/ffmpeg/libavutil/common.h:173: warning: implicit declaration of function `UINT64_C'
2>  /tmp/ffmpeg/libavutil/common.h:172: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:172: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_clipl_int32_c':
2>  /tmp/ffmpeg/libavutil/common.h:173: error: `a' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:173: error: (Each undeclared identifier is reported only once
2>  /tmp/ffmpeg/libavutil/common.h:173: error: for each function it appears in.)
2>  /tmp/ffmpeg/libavutil/common.h:173: warning: implicit declaration of function `UINT64_C'
2>  /tmp/ffmpeg/libavutil/common.h:128: warning: no previous prototype for 'av_clip_uint8_c'/tmp/ffmpeg/libavutil/common.h:174: error: `int32_t' undeclared (first use in this function)
2> 
2>  /tmp/ffmpeg/libavutil/common.h:174: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/common.h:138: error: parse error before "av_clip_int8_c"
2>  /tmp/ffmpeg/libavutil/common.h:139: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:139: warning: no previous prototype for 'av_clip_int8_c'
2>  /tmp/ffmpeg/libavutil/common.h: At top level:
2>  /tmp/ffmpeg/libavutil/common.h:149: error: parse error before "av_clip_uint16_c"/tmp/ffmpeg/libavutil/common.h:241: error: parse error before "x"
2> 
2>  /tmp/ffmpeg/libavutil/common.h:242: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h:150: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:150: warning: no previous prototype for 'av_clip_uint16_c'
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount_c':
2>  /tmp/ffmpeg/libavutil/common.h:243: error: `x' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:243: error: (Each undeclared identifier is reported only once
2>  /tmp/ffmpeg/libavutil/common.h:243: error: for each function it appears in.)
2>  /tmp/ffmpeg/libavutil/common.h: At top level:
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_sat_add32_c':/tmp/ffmpeg/libavutil/common.h:255: error: parse error before "x"
2> 
2>  /tmp/ffmpeg/libavutil/common.h:160: error: parse error before "av_clip_int16_c"/tmp/ffmpeg/libavutil/common.h:198: error: `int64_t' undeclared (first use in this function)
2> 
2>  /tmp/ffmpeg/libavutil/common.h:256: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h:198: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/common.h:161: warning: return type defaults to `int'/tmp/ffmpeg/libavutil/common.h: In function `av_popcount64_c':
2> 
2>  /tmp/ffmpeg/libavutil/common.h:199: warning: no return statement in function returning non-void/tmp/ffmpeg/libavutil/common.h:257: error: `uint32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:161: warning: no previous prototype for 'av_clip_int16_c'/tmp/ffmpeg/libavutil/common.h:257: error: parse error before "x"
2> 
2> 
2>  /tmp/ffmpeg/libavutil/common.h:258: warning: no return statement in function returning non-void
2>  /tmp/ffmpeg/libavutil/common.h:171: error: parse error before "av_clipl_int32_c"
2>  /tmp/ffmpeg/libavutil/common.h:171: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/common.h:172: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:172: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_clipl_int32_c':
2>  /tmp/ffmpeg/libavutil/common.h:173: error: `a' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:173: error: (Each undeclared identifier is reported only once
2>  /tmp/ffmpeg/libavutil/common.h:173: error: for each function it appears in.)
2>  /tmp/ffmpeg/libavutil/common.h:173: warning: implicit declaration of function `UINT64_C'
2>  /tmp/ffmpeg/libavutil/common.h: At top level:
2>  /tmp/ffmpeg/libavutil/common.h:241: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:174: error: `int32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:242: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h:174: error: parse error before "a"/tmp/ffmpeg/libavutil/common.h: In function `av_popcount_c':
2> 
2>  /tmp/ffmpeg/libavutil/common.h:243: error: `x' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h: At top level:
2>  /tmp/ffmpeg/libavutil/common.h:255: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:256: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_sat_add32_c':
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount64_c':/tmp/ffmpeg/libavutil/common.h:198: error: `int64_t' undeclared (first use in this function)
2> 
2>  /tmp/ffmpeg/libavutil/common.h:257: error: `uint32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:198: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/common.h:257: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:199: warning: no return statement in function returning non-void
2>  /tmp/ffmpeg/libavutil/common.h:258: warning: no return statement in function returning non-void
2>  /tmp/ffmpeg/libavutil/common.h: At top level:
2>  /tmp/ffmpeg/libavutil/common.h:241: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:242: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount_c':
2>  /tmp/ffmpeg/libavutil/common.h:243: error: `x' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h: At top level:
2>  /tmp/ffmpeg/libavutil/common.h:255: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:256: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount64_c':
2>  /tmp/ffmpeg/libavutil/common.h:257: error: `uint32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:257: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:258: warning: no return statement in function returning non-void
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/avassert.h:31,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.c:19:
2>  /tmp/ffmpeg/libavutil/common.h:127: error: parse error before "av_clip_uint8_c"
2>  /tmp/ffmpeg/libavutil/common.h:128: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:128: warning: no previous prototype for 'av_clip_uint8_c'
2>  /tmp/ffmpeg/libavutil/common.h:138: error: parse error before "av_clip_int8_c"
2>  /tmp/ffmpeg/libavutil/common.h:139: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:139: warning: no previous prototype for 'av_clip_int8_c'
2>  /tmp/ffmpeg/libavutil/common.h:149: error: parse error before "av_clip_uint16_c"
2>  /tmp/ffmpeg/libavutil/common.h:150: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:150: warning: no previous prototype for 'av_clip_uint16_c'
2>  /tmp/ffmpeg/libavutil/common.h:160: error: parse error before "av_clip_int16_c"
2>  /tmp/ffmpeg/libavutil/common.h:161: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:161: warning: no previous prototype for 'av_clip_int16_c'
2>  /tmp/ffmpeg/libavutil/common.h:171: error: parse error before "av_clipl_int32_c"
2>  /tmp/ffmpeg/libavutil/common.h:171: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/common.h:172: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/common.h:172: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_clipl_int32_c':
2>  /tmp/ffmpeg/libavutil/common.h:173: error: `a' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:173: error: (Each undeclared identifier is reported only once
2>  /tmp/ffmpeg/libavutil/common.h:173: error: for each function it appears in.)
2>  /tmp/ffmpeg/libavutil/common.h:173: warning: implicit declaration of function `UINT64_C'
2>  /tmp/ffmpeg/libavutil/common.h:174: error: `int32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:174: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_sat_add32_c':
2>  /tmp/ffmpeg/libavutil/common.h:198: error: `int64_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:198: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/common.h:199: warning: no return statement in function returning non-void
2>  /tmp/ffmpeg/libavutil/common.h: At top level:
2>  /tmp/ffmpeg/libavutil/common.h:241: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:242: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount_c':
2>  /tmp/ffmpeg/libavutil/common.h:243: error: `x' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h: At top level:
2>  /tmp/ffmpeg/libavutil/common.h:255: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:256: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/common.h: In function `av_popcount64_c':
2>  /tmp/ffmpeg/libavutil/common.h:257: error: `uint32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/common.h:257: error: parse error before "x"
2>  /tmp/ffmpeg/libavutil/common.h:258: warning: no return statement in function returning non-void
2>  In file included from /tmp/ffmpeg/libavutil/timer.h:42,
2>                   from /tmp/ffmpeg/libavutil/internal.h:39,
2>                   from /tmp/ffmpeg/libavutil/common.h:379,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavdevice/version.h:28,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.h:22,
2>                   from /tmp/ffmpeg/libavdevice/alldevices.c:22:
2>  /tmp/ffmpeg/libavutil/x86/timer.h: At top level:
2>  /tmp/ffmpeg/libavutil/x86/timer.h:30: error: parse error before "read_time"
2>  In file included from /tmp/ffmpeg/libavutil/timer.h:42,
2>                   from /tmp/ffmpeg/libavutil/internal.h:39,
2>                   from /tmp/ffmpeg/libavutil/common.h:379,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
2>  /tmp/ffmpeg/libavutil/x86/timer.h: At top level:
2>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: return type defaults to `int'/tmp/ffmpeg/libavutil/x86/timer.h:30: error: parse error before "read_time"
2> 
2>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: no previous prototype for 'read_time'
2>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: no previous prototype for 'read_time'
2>  /tmp/ffmpeg/libavutil/x86/timer.h: In function `read_time':
2>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: `uint32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h: In function `read_time':/tmp/ffmpeg/libavutil/x86/timer.h:32: error: parse error before "a"
2> 
2>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: `uint32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/x86/timer.h:33: error: `d' undeclared (first use in this function)In file included from /tmp/ffmpeg/libavutil/timer.h:42,
2>                   from /tmp/ffmpeg/libavutil/internal.h:39,
2>                   from /tmp/ffmpeg/libavutil/common.h:379,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/x86/timer.h: At top level:
2>  /tmp/ffmpeg/libavutil/x86/timer.h:33: error: `d' undeclared (first use in this function)/tmp/ffmpeg/libavutil/x86/timer.h:30: error: parse error before "read_time"
2> 
2>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: `uint64_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: `uint64_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: parse error before "d"
2>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: parse error before "d"
2>  In file included from /tmp/ffmpeg/libavutil/timer.h:42,
2>                   from /tmp/ffmpeg/libavutil/internal.h:39,
2>                   from /tmp/ffmpeg/libavutil/common.h:379,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/avassert.h:31,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.c:19:
2>  /tmp/ffmpeg/libavutil/x86/timer.h: At top level:
2>  /tmp/ffmpeg/libavutil/x86/timer.h:30: error: parse error before "read_time"
2>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: no previous prototype for 'read_time'
2>  /tmp/ffmpeg/libavutil/x86/timer.h: In function `read_time':
2>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: `uint32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/x86/timer.h:33: error: `d' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: `uint64_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: parse error before "d"
2> 
2>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/x86/timer.h:31: warning: no previous prototype for 'read_time'
2>  /tmp/ffmpeg/libavutil/x86/timer.h: In function `read_time':
2>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: `uint32_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:32: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/x86/timer.h:33: error: `a' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:33: error: `d' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: `uint64_t' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/x86/timer.h:34: error: parse error before "d"
2>  In file included from /tmp/ffmpeg/libavutil/libm.h:30,
2>                   from /tmp/ffmpeg/libavutil/internal.h:109,
2>                   from /tmp/ffmpeg/libavutil/common.h:379,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
2>  /tmp/ffmpeg/libavutil/intfloat.h:28: error: parse error before "uint32_t"
2>  /tmp/ffmpeg/libavutil/intfloat.h:28: warning: no semicolon at end of struct or union
2>  /tmp/ffmpeg/libavutil/intfloat.h:30: error: parse error before '}' token
2>  /tmp/ffmpeg/libavutil/intfloat.h:33: error: parse error before "uint64_t"
2>  /tmp/ffmpeg/libavutil/intfloat.h:33: warning: no semicolon at end of struct or union
2>  In file included from /tmp/ffmpeg/libavutil/libm.h:30,
2>                   from /tmp/ffmpeg/libavutil/internal.h:109,
2>                   from /tmp/ffmpeg/libavutil/common.h:379,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/avassert.h:31,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.c:19:
2>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
2>  /tmp/ffmpeg/libavutil/intfloat.h:34: error: conflicting types for 'f'
2>  /tmp/ffmpeg/libavutil/intfloat.h:28: error: parse error before "uint32_t"
2>  /tmp/ffmpeg/libavutil/intfloat.h:29: error: previous declaration of 'f' was here
2>  /tmp/ffmpeg/libavutil/intfloat.h:28: warning: no semicolon at end of struct or union
2>  /tmp/ffmpeg/libavutil/intfloat.h:35: error: parse error before '}' token
2>  /tmp/ffmpeg/libavutil/intfloat.h:40: error: parse error before "i"
2>  In file included from /tmp/ffmpeg/libavutil/libm.h:30,
2>                   from /tmp/ffmpeg/libavutil/internal.h:109,
2>                   from /tmp/ffmpeg/libavutil/common.h:379,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavdevice/version.h:28,
2>                   from /tmp/ffmpeg/libavdevice/avdevice.h:22,
2>                   from /tmp/ffmpeg/libavdevice/alldevices.c:22:
2>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
2>  /tmp/ffmpeg/libavutil/intfloat.h:28: error: parse error before "uint32_t"
2>  /tmp/ffmpeg/libavutil/intfloat.h:41: warning: function declaration isn't a prototype/tmp/ffmpeg/libavutil/intfloat.h:28: warning: no semicolon at end of struct or union
2> 
2>  /tmp/ffmpeg/libavutil/intfloat.h: In function `av_int2float':
2>  /tmp/ffmpeg/libavutil/intfloat.h:42: error: storage size of 'v' isn't known
2>  /tmp/ffmpeg/libavutil/intfloat.h:43: error: `i' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/intfloat.h:42: warning: unused variable `v'
2>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
2>  /tmp/ffmpeg/libavutil/intfloat.h:50: error: parse error before "av_float2int"
2>  /tmp/ffmpeg/libavutil/intfloat.h:51: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/intfloat.h:51: warning: no previous prototype for 'av_float2int'
2>  /tmp/ffmpeg/libavutil/intfloat.h: In function `av_float2int':
2>  /tmp/ffmpeg/libavutil/intfloat.h:52: error: storage size of 'v' isn't known
2>  /tmp/ffmpeg/libavutil/intfloat.h:52: warning: unused variable `v'
2>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
2>  /tmp/ffmpeg/libavutil/intfloat.h:60: error: parse error before "i"
2>  /tmp/ffmpeg/libavutil/intfloat.h:61: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/intfloat.h: In function `av_int2double':
2>  /tmp/ffmpeg/libavutil/intfloat.h:62: error: storage size of 'v' isn't known
2>  /tmp/ffmpeg/libavutil/intfloat.h:63: error: `i' undeclared (first use in this function)
2>  /tmp/ffmpeg/libavutil/intfloat.h:62: warning: unused variable `v'
2>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:
2>  /tmp/ffmpeg/libavutil/intfloat.h:70: error: parse error before "av_double2int"
2>  In file included from /tmp/ffmpeg/libavutil/libm.h:30,
2>                   from /tmp/ffmpeg/libavutil/internal.h:109,
2>                   from /tmp/ffmpeg/libavutil/common.h:379,
2>                   from /tmp/ffmpeg/libavutil/avutil.h:274,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/lavfi.c:30:
2>  /tmp/ffmpeg/libavutil/intfloat.h: At top level:/tmp/ffmpeg/libavutil/intfloat.h:71: warning: return type defaults to `int'
2>  /tmp/ffmpeg/libavutil/intfloat.h:71: warning: no previous prototype for 'av_double2int'
2> 
2>  /tmp/ffmpeg/libavutil/intfloat.h: In function `av_double2int':
2>  /tmp/ffmpeg/libavutil/intfloat.h:28: error: parse error before "uint32_t"/tmp/ffmpeg/libavutil/intfloat.h:72: error: storage size of 'v' isn't known
2>  /tmp/ffmpeg/libavutil/intfloat.h:72: warning: unused variable `v'
2> 
2>  /tmp/ffmpeg/libavutil/intfloat.h:28: warning: no semicolon at end of struct or union
2>  /tmp/ffmpeg/libavutil/intfloat.h:29: confused by earlier errors, bailing out
2>  /tmp/ffmpeg/libavutil/intfloat.h:29: confused by earlier errors, bailing out
2>  /tmp/ffmpeg/libavutil/intfloat.h:29: confused by earlier errors, bailing out
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:277,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/mathematics.h: At top level:
2>  /tmp/ffmpeg/libavutil/mathematics.h:123: error: parse error before "a"
2>  /tmp/ffmpeg/libavutil/mathematics.h:123: warning: function declaration isn't a prototype
2>  In file included from /tmp/ffmpeg/libavutil/avutil.h:279,
2>                   from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:29: error: parse error before "uint8_t"
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:29: warning: no semicolon at end of struct or union
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:30: warning: type defaults to `int' in declaration of `mantissa'
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:30: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:31: error: parse error before '}' token
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:31: warning: type defaults to `int' in declaration of `AVExtFloat'
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:31: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:35: warning: type defaults to `int' in declaration of `AVExtFloat'
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:35: error: parse error before "ext"
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:35: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:38: error: parse error before "av_dbl2ext"
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:38: warning: type defaults to `int' in declaration of `av_dbl2ext'
2>  /tmp/ffmpeg/libavutil/intfloat_readwrite.h:38: warning: data definition has no type or storage class
2>  In file included from /tmp/ffmpeg/libavutil/log.h:25,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:37:
2>  /tmp/ffmpeg/libavutil/avutil.h: In function `av_x_if_null':
2>  /tmp/ffmpeg/libavutil/avutil.h:288: error: `intptr_t' undeclared (first use in this function)
2>  In file included from /tmp/ffmpeg/libavdevice/oss_audio.c:38:
2>  /tmp/ffmpeg/libavutil/opt.h: At top level:
2>  /tmp/ffmpeg/libavutil/opt.h:567: warning: type defaults to `int' in declaration of `uint8_t'
2>  /tmp/ffmpeg/libavutil/opt.h:567: error: parse error before '*' token
2>  /tmp/ffmpeg/libavutil/opt.h:567: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/opt.h:587: error: parse error before "uint8_t"
2>  /tmp/ffmpeg/libavutil/opt.h:587: warning: function declaration isn't a prototype
2>  In file included from /tmp/ffmpeg/libavcodec/avcodec.h:30,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:40:
2>  /tmp/ffmpeg/libavutil/samplefmt.h:188: error: parse error before '*' token
2>  /tmp/ffmpeg/libavutil/samplefmt.h:191: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/samplefmt.h:209: error: parse error before '*' token
2>  /tmp/ffmpeg/libavutil/samplefmt.h:210: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/samplefmt.h:223: error: parse error before '*' token
2>  /tmp/ffmpeg/libavutil/samplefmt.h:225: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/samplefmt.h:236: error: parse error before '*' token
2>  /tmp/ffmpeg/libavutil/samplefmt.h:237: warning: function declaration isn't a prototype
2>  In file included from /tmp/ffmpeg/libavcodec/avcodec.h:37,
2>                   from /tmp/ffmpeg/libavdevice/oss_audio.c:40:
2>  /tmp/ffmpeg/libavutil/audioconvert.h:133: error: parse error before "av_get_channel_layout"
2>  /tmp/ffmpeg/libavutil/audioconvert.h:133: warning: type defaults to `int' in declaration of `av_get_channel_layout'
2>  /tmp/ffmpeg/libavutil/audioconvert.h:133: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/audioconvert.h:142: error: parse error before "uint64_t"
2>  /tmp/ffmpeg/libavutil/audioconvert.h:142: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/audioconvert.h:148: error: parse error before "uint64_t"
2>  /tmp/ffmpeg/libavutil/audioconvert.h:148: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/audioconvert.h:153: error: parse error before "channel_layout"
2>  /tmp/ffmpeg/libavutil/audioconvert.h:153: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/audioconvert.h:169: error: parse error before "channel_layout"
2>  /tmp/ffmpeg/libavutil/audioconvert.h:170: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/audioconvert.h:175: error: parse error before "av_channel_layout_extract_channel"
2>  /tmp/ffmpeg/libavutil/audioconvert.h:175: error: parse error before "channel_layout"
2>  /tmp/ffmpeg/libavutil/audioconvert.h:175: warning: type defaults to `int' in declaration of `av_channel_layout_extract_channel'
2>  /tmp/ffmpeg/libavutil/audioconvert.h:175: warning: function declaration isn't a prototype
2>  /tmp/ffmpeg/libavutil/audioconvert.h:175: warning: data definition has no type or storage class
2>  /tmp/ffmpeg/libavutil/audioc
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on December 04, 2013, 11:40:29 am
Ok, the build system is definitely not ready… I will investigate on this as soon as possible.

In the meantime I'll provide you with binaries: which VS version do you target and which codecs do you want?
As for Linux, as these issues are Windows specific, it should be fine.
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on December 13, 2013, 10:10:30 pm
Thank you for your attention to my problem.I am working with VS 2010. My program should be able to play popular free formats like ogv,vp8 and desirable xvid, divx, h264, wmv... ffmpeg suits for my targets
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on December 17, 2013, 09:01:28 pm
During the past days I've tried to build sfeMovie with VS 2010 and I got the same issues as you due to the .NET framework 4.5 being installed. The point is I have several useful software programs that depend on this framework, which would be broken if I uninstalled .NET 4.5.

Thus my question is as follow: do you need to stay with VS 2010? is upgrading to VS 2012 or 2013 a possible option for you?

Ceylo
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on December 20, 2013, 08:01:50 am
Hi!
Maximum possible version is vs2012 but preferably vs 2010. Thx.

P.S. I tried to delete framevork, it didn't help me...
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on December 25, 2013, 09:32:13 pm
Finally I got CMake to work with VS 2010, thanks to the second solution described here: http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval

After renaming the file "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cvtres.ex" everything went fine.

As for the binaries, have a look at the pm I sent :) .
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Rodion777 on December 25, 2013, 11:38:02 pm
Thank you very much for you attention for my issue and assistance in solving. In soon i will return to my project, when i will have result, i necessarily report to you. And again thx!!!  :) :) :)
Title: Re: sfeMovie project
Post by: jmark1m on March 07, 2014, 04:52:23 am

I'm using sfeMovie in a Linux Project with a mix of SFML and OpenGL.

I see that most of the examples with sfeMovie use a call to window.draw(movie); in order to display the texture to a window.

Our game engines code uses a call to getCurrentFrame to bind a texture from VRAM. 

        sf::Texture::bind(&movie.getCurrentFrame(), sf::Texture::Pixels);
        glBindVertexArray(vao);
        glDrawArrays(GL_QUADS, 0, 4);
        glBindVertexArray(0);
    sf::Texture::bind(NULL);
 

This works great and the video textures get put on our quad, but right now we are seeing a small memory leak that builds up after playing videos over and over again.  Not sure if I need to somehow be manually deleting the texture.

Can anyone share examples of the proper way to use getCurrentFrame()?  Or have suggestions for tracking down this leak while playing videos.

Thanks.

Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 07, 2014, 08:37:21 am
Isn't it the same as http://en.sfml-dev.org/forums/index.php?topic=3463.msg94353#msg94353 ?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: jmark1m on March 07, 2014, 04:16:11 pm
I don't think it is the same as I have used the latest commit, specifically with the Rodian777 memory leak fixed (Commit on Nov 7th 2013)

I don't think I mentioned I'm using the ffmpeg binaries that come with sfeMovie.

I thought the difference here might be that I am not making an explicit call to window.draw(movie);
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 07, 2014, 06:07:04 pm
Hmmm ok.. can you provide a minimal example source that reproduces the issue? So that I can dig in it more easily :)
Title: Re: sfeMovie project
Post by: Jesper Juhl on March 07, 2014, 06:25:33 pm
... suggestions for tracking down this leak while playing videos.

Tools like Valgrind (http://valgrind.org/), the various sanitizers provided by clang (http://clang.llvm.org/docs/index.html) and Electric Fence (http://en.m.wikipedia.org/wiki/Electric_Fence) can work wonders when tracking down leaks and other memory related bugs. Use them, always ;)
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: jmark1m on March 12, 2014, 11:33:44 pm

Ceylo,

Well the memory leak only seems to occur when I am using ATI Catalyst Proprietary graphics drivers on my Ubuntu set up.  Reading around I understand that they seem to have a lot of problems.

I no longer have a memory leak when using NVIDIA graphics drivers with an NVIDIA card.

It doesn't appear to be a problem with SFEMovie.  It's a lower level problem in my opinion.  Thanks for your time.

Mark
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on March 12, 2014, 11:57:05 pm
Hmm ok… then good luck with ATI :/
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Bloob on August 19, 2014, 07:41:26 pm
I'm not if i should post this in the github issues or not... I'm trying to build sfeMovie with vs2013 and everything seems to be going fine until i run into this error.

Error   2       error : no acceptable ld found in $PATH C:\Libs\sfeMovie-master\build\FFmpeg\configure  FFmpeg
 

Error   19      error LNK1104: cannot open file 'FFmpeg-binaries\lib\avformat.lib'      C:\Libs\sfeMovie-master\build\LINK      sfeMovie
 
and

I believe the second one occurs because FFmpeg is not being built. Btw im following the tutorial for the latest source from git. Is it possible to build with vs2013?
Title: Re: sfeMovie project [v1.0 RC1 available]
Post by: Ceylo on August 21, 2014, 07:59:09 pm
There should be no reason against VS2013 except that the build script is not flexible enough :)

Can you have a look at build_ffmpeg.sh, line 125 and followings? Then add 2 lines there to match the path to your VS2013 installation? It should just be a matter of replacing the number in the path with "12.0".