Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - golgoth

Pages: 1 2 [3] 4 5 ... 7
Feature requests / SFML for iOS?
« on: November 07, 2011, 04:09:40 am »
I was wondering if we have any more info on supporting IOS? What about branching what seoushi already worked on?


SFML wiki / sfeMovie project [v1.0 RC1 available]
« 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.

SFML wiki / sfeMovie project [v1.0 RC1 available]
« 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

SFML wiki / Poor performance on Windows!
« on: October 03, 2011, 03:51:16 am »

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?

Window / What happened to Window::SetCursorPosition?
« on: July 27, 2011, 06:58:59 am »
indeed thank you!

Window / What happened to Window::GetEvent?
« on: July 27, 2011, 06:58:30 am »
nevermind this, I found it in the documentation!

Window / What happened to Window::GetEvent?
« on: July 27, 2011, 06:41:50 am »
Hi everyone, I got the latest git revision, how do we get window events now?

Window / What happened to Window::SetCursorPosition?
« on: July 27, 2011, 06:28:39 am »
Hi everyone, I got the latest git revision, how do we set the cursor position now?

General discussions / SVN Status?
« on: July 27, 2011, 05:51:36 am »
woups, ok thank you!

General discussions / SVN Status?
« on: July 27, 2011, 04:18:34 am »
Hi Laurent, is the latest revision 1816 from March 24?

Feature requests / Double Precision
« on: February 06, 2011, 05:27:53 pm »
I should add that regardless of Sleep(), the functions using clock() I’ve posted earlier did solve my timing issues when playing video.

However, when I turn the audio on, I’m getting latency and I was wondering if sf::SoundStream has any timing issue I should be aware of? Is it using ::Clock ::Sleep or any other timing methods?

Feature requests / Double Precision
« on: February 06, 2011, 05:10:37 pm »
Yes, you implemented busy-wait, not sleep. In contrast to sf::Sleep(), the CPU core is running at 100% until the time is over.

Oups, you are so right, I guess I have no choice to use sf::Sleep, or do I?

Apart from that, the standard clock may not have a high enough resolution.

Ok now I’m getting cranky… what is wrong with the resolution?

It doesn't. clock() doesn't necessarily return milliseconds (for example, on POSIX-compatible platforms it has to return microseconds).

Ok, that’s an easy fix though, but I’m telling you guys, more  I’m digging into programming, more I’m disappointed to see how people agree to make standards by making more of them.

Wasting time makes me nervous so I need a clock with ”with enough resolution”. Anyone aware of another cross-platform solution that does the job right?

Feature requests / Double Precision
« on: February 05, 2011, 09:40:17 pm »
This seems to work very well:

Code: [Select]
#include <time.h>

Double System::GetSeconds()
return (Double) clock() / CLOCKS_PER_SEC;

Int64 System::GetMicroseconds()
return (Int64) clock() * CLOCKS_PER_SEC;

Int64 System::GetMilliseconds()
return (Int64) clock();

// Pauses for a specified number of milliseconds.
void System::Sleep(Int64 in_milliseconds)
Int64 l_goal;
l_goal = in_milliseconds + clock();
while (l_goal > clock());

Am I missing anything?

EDIT: time.h is ansi so it should be cross platform.

Feature requests / Double Precision
« on: February 05, 2011, 07:36:01 pm »
But guess what? It's in the task tracker so it means that it's going to be implemented

Well I hope it is a top priority. :)

Actually you help me a lot, so now I have a good understanding of what is going on! thx again for your help!

Feature requests / Double Precision
« on: February 05, 2011, 06:15:54 pm »
You know when you send a thread to sleep, but you don't know exactly when the OS will make it wake up. Once the OS switches to another thread, it may be busy longer than the amount of ms that you passed to sf::Sleep, this value is only a hint.

Seriously? I should know because I send the exact time via Sleep… why would another thread have an effect of this?

In my opinion this is a very specific topic, and it may require more complex things than Sleep().

Accuracy shouldn’t be a specific topic though, video playback is fairly simple, what makes it mind boggling is not knowing there is randomness in the timing functions and especially pipe locks within SwapBuffers.
Code: [Select]

Int main(Int in_argc, Char **in_argv)
sf::Clock l_clock;
Float l_time = l_clock.GetElapsedTime();
return 0; /// <- break here!

I took for granted timing related functions were rock solid. (A special note is needed in the documentation) I’m just going to build my own timing functions but, why not implement the Ogre technique within SFML to fix the bug?

Let me know if you have any development on this.

Pages: 1 2 [3] 4 5 ... 7