1) Some DV movies do not work with CoreVideo. I'm working mainly with
OpenGL so it mays work in another context. Basically with some movies
I receive only a green image, whilst these movies work perfectly in
the Quicktime player or when they are decompressed using the old ways
(GWorld, etc.).
What hardware?Again wrt my own CV / GL codes (as well as a modified
LVM example I
worked on in the past) this video (test2.mov) renders correctly. You
need a (hardware) GL
renderer capable of supporting ARB_texture_rectangle in order to
support for QE / CV
rendering. You also might post a code snippet illustrating your
problem...
2) With some codecs (like Photo-JPeg), CoreVideo sends frames only
when the movie play back has been started. Changing the movie
position does not help. You must at least change the rate once in
order to receiving a first frame. It means that you can not display a
movie in stop state just after you open it. The solution I found is
to start play, waiting for a frame, stop play and set movie time to
zero. Then it works as it should.
Yes CV uses a lazy evaluation approach to rendering / decode. After
calling
CVDisplayLinkStart(...) to start the Display Link you can call
SetMovieRate(...)
or [movie setRate: ...] as you noted in order to query the first
frame for display.
3) I'm not sure it is a bug or something I'm missing, but it seems
that all the CoreImage effects are done on a green background (at
least when you directly apply a CoreImage effects directly on a CV
OpenGL buffer). It means that when you do an effect (like a Twirl
Vortex) that generate non-opaque value in the alpha-channel, you will
have a small green border due to anti-aliasing. I found a solution by
rendering the frame to a PBuffer and then sending the PBuffer to the
CI effects. It works but it adds an extra rendering pass.
Interesting. When I was playing around w/ CI I never rean into any
specific rendering issues
although in my own case I found that the rendering performance was
completely unacceptable
for the work I was doing ;) so I ended up using the various
programmable fragment pipeline
extensions directly (ARB_fragment_program, NV_fragment_program,
NV_fragment_program2).
In any case a code snippet would be helpful to diagnose the problem
here.
5) And a small question: Is it possible to use CoreVideo to do video
capture ? It would be very nice to be able to get OpenGL texture
through CV buffers directly from a DV camera. Is there anything I'm
missing here ? Or do we still have to do it the old way (sequence
grabber, etc.) ?
Yes you can use CV for (IIDC camera) capture purposes. I've been
using it for various RT video
effects (RT motion capture / fire / distortion effects) for a while now.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quicktime-api/email@hidden