Yes vade you are correct about the capabilities of the Decklink.
I am using QuartzComposerOffline sample application's code already for writing
frames to offscreen pixel buffer, I will try frame buffer option too but I
don't think that would improve performance.
That pixel buffer is copied into the decklink's video buffer directly in a
callback provided by decklink API
//Render a frame from the composition at the specified time
if(![_renderer renderAtTime:time arguments:nil])
return;
//Read pixels back from the OpenGL pixel buffer in ARGB 32 bits format
- For extra safety, we save / restore the OpenGL states we change
glGetIntegerv(GL_PACK_ROW_LENGTH, &save);
glPixelStorei(GL_PACK_ROW_LENGTH, _scratchBufferRowBytes / 4);
#if __BIG_ENDIAN__
glReadPixels(0, 0, width, height, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV,
nextWord);
#else
//glReadPixels(0, 0, width, height, GL_BGRA_EXT,
GL_UNSIGNED_INT_8_8_8_8, _scratchBufferPtr);
glReadPixels(0, 0, width, height, GL_BGRA_EXT, GL_UNSIGNED_INT_8_8_8_8,
nextWord);
#endif
glPixelStorei(GL_PACK_ROW_LENGTH, save);
As you can see "nextWord" is the decklink video buffer created using decklink's
API. scratchBufferRowBytes was initialized earlier using following code
//Create a scratch buffer used to downloads the pixels from the OpenGL pixel
buffer - For optimal performances the buffer is paged-aligned and the rowbytes
is a multiple of 64 bytes_scratchBufferRowBytes = (width * 4 + 63) & ~63;
So this means that the application is using GPU capabilities and right now I am
not concerned about antialiasing and other RT effects, As a first step I am
only concerned the title to scroll smoothly at 25fps or 50fps.
Now either it is not possible with these card at all or there is some software
level trick that I am missing in my code.
ThanksNisar
Subject: Re: exporting a composition to a quicktime movie
From: [email protected]
Date: Sat, 25 Dec 2010 10:16:49 -0500
CC: [email protected]
To: [email protected]
if you are rendering out to the decklink, then you do not have any GL
acceleration and are using software rendering. The Decklink and AJA sty;e cards
do not have any GL facilities built in, so you will get CPU side rendering.
That might account for some of the sluggishness that you are seeing.
You might be better off rendering to a CGLContext and an offscreen FBO, and
doing readback yourself and sending that to your decklink's quicktime output
session. Rendering directly to the Decklink and AJA will guarantee sup-par
performance due to QCs OpenGL requirement and those cards lack of hardware
acceleration for it.
Good luck.
On Dec 25, 2010, at 6:29 AM, Nisar Ahmed wrote:Quartz crystal is not a plugin
so I cannot use it in my xcode application, but the processing it is doing on
each frame can be done inside the xcode application as I am using core video's
display link to fetch a frame from composition (QCRenderer's renderAtTime).
CoreVideo's display link syncs with the monitor's refresh rate which is 60Hz
and renders smoothly on the desktop but at 25fps the result is choppy on
Decklink as well. The hops are not an issue on the desktop but it is on the
Decklink SDI output.
I would like to know what quartz crystal does to each frame inside the code so
that I can do that to my composition frames too before sending it to SDI card's
memory.
Dear Achim,
I can understand the fps issue you are taking about but in my application I
have used displaylink which can be set to callback a function at 25fps as well
and inside that callback we can fetch next frame by using QCRendere's
renderAtTime function. Also hops are not an issue on computer's monitor, the
requirement is a smooth playback through the video card not the GPU which is
Decklink in my case.
Subject: Re: exporting a composition to a quicktime movie
From: [email protected]
Date: Fri, 24 Dec 2010 16:18:01 -0500
CC: [email protected]
To: [email protected]
It might be helpful to describe why the movie is poor. What is the expected
result, what do you actually see, etc.
If the issue is flickering text, then yes, Quartz Composer renders at 60fps, DV
@ 25 will make the title crawl look choppy since there are less frames to show
the text crawl between two positions. Doing smooth titles is not easy at high
speed, low framerate, there are some tricks you can do, but the best thing is
to adjust the speed of the scrolling until it looks good.
Maybe look into Quartz Crystal from Kineme and use frame blending which will
help ease the "pops" in position between consecutive frames.
Is that the issue you are noticing?
On Dec 24, 2010, at 7:41 AM, Nisar Ahmed wrote:I am trying to export a quartz
composition movie to a quicktime movie using quicktime pro but the result is
poor as compared to the original composition file.
I am attaching the composition you can try opening it with quicktime pro and
exporting it to dv-pal movie 25fps and see the result. I have also tried other
combinations but failed to reproduce the expected result.
Thanks in advanceNisar<crawler.qtz>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/doktorp%40mac.com
This email sent to [email protected]
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com
This email sent to [email protected]