OpenGL Expert needed for Mac OSX prototype work
$100-500 USD
Paid on delivery
Needed an Expert OpenGL (preferably with Qt+ObjectiveC experience) programmer for fixing attached prototype application. The prototype application compiles fine and runs with a window which embeds a QGLWidget. The application's task is to actually embed a MPLayer's video. And your task is to **render the video correctly into opengl widget (i.e. QGLWidget)**.
## Deliverables
Needed an Expert OpenGL (preferably with Qt+ObjectiveC experience) programmer for fixing attached prototype application. The application is attached with the this post. The test application compiles fine and runs with a window which embeds a QGLWidget. The application's task is to actually embed a MPLayer's video. The command-line for running mplayer is
mplayer -vo corevideo:buffer_name=mpos [url removed, login to view]
[url removed, login to view] is the sample
Through NSConnection, our test application talks to the running instance of mplayer.
@protocol MPlayerOSXVOProto
- (int) startWithWidth: (bycopy int)width
withHeight: (bycopy int)height
withBytes: (bycopy int)bytes
withAspect: (bycopy int)aspect;
- (void) stop;
- (void) render;
- (void) toggleFullscreen;
- (void) ontop;
@end
Above is the protocol of the class, whose functions mplayer calls. When mplayer starts, it calls startWithWidth: and when it renders frames, it calls render: .
mplayer renders the video frames into a shared memory which is indicated with buffer_name parameter in command line. In our case, we have kept the name "mpos".
We map this memory in startWithWidth: function and render the mapped memory through opengl in render: function.
Now the real problem. Our QGLWidget only shows a black widget and doesn't show the video. If we give openGL commands in render: function, that is rendered properly in GL widget. So, the real problem looks like in either preparing the opengl for rendering the video frames or accessing the memory correctly. However, we didn't encounter any problem in accesing memory and we can print the memory content to output easily.
So, the task is to **render the video correctly into opengl widget (i.e. QGLWidget)**. QGLWidget probably doesn't support YUV frames directly in its api. However, we need to render YUV frames, because MPlayer outputs YUV frames. Keep in mind that conversion to RGB formats are to be avoided.
You can download "mplayer osx extended" from internet and extract mplayer binary from its package. mplayer binary doesn't require any external file or shared library.
Project ID: #3093196