Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Various problems with CoreVideo/Image



From: GarageCUBE <email@hidden>

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.


Max Rupp
CoreVideo / OpenGL Programming
http://www.cs.pdx.edu/~feelgood

_______________________________________________
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

This email sent to email@hidden


Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.