Protecting QT via callbacks?
Trevor DeVore
lists at mangomultimedia.com
Fri Jul 1 23:44:25 EDT 2005
On Jul 1, 2005, at 8:13 PM, Richard Gaskin wrote:
> I need to ship a CD with a number of QuickTime movie files, and the
> client would like to find a way to protect the files if possible.
>
> Since wired sprites seem to have a lot of capability and we have
> callbacks in Rev, I'm wondering if we could add a sprite track to the
> movie which makes a callback to the player (Rev) and expects a
> specific
> value to be returned; if the movie doesn't get the expected value it
> assumes it's running outside of our player and stops playing.
>
> Am I dreaming? Is this doable?
>
> I have GoLive (which has some cool wired sprite editing built in)
> and I
> can get LiveStagePro if needed.
>
> Thanks in advance for any tips you can offer -
This is possible though maybe not how you envisioned. A couple of
ideas come to mind.
A wired sprite cannot call a function in Rev and get a value back.
You could open a socket using Rev and a wired sprite could make a
call to the localhost (127.0.0.1). You could then return a value
from Rev but this could easily be picked up by someone watching
traffic on the machine so it wouldn't be very secure it you were just
sending back the proper password or something.
If you are using a codec other than Sorenson or you have other media
types to protect you can use the EnhancedQT external to set variables
in QuickTime movies. You can have wired sprites that will basically
shutdown a movie if the variable isn't the correct value (shut off
volume, hide all visual media, etc.). A similar method for doing
this is talked about in Interactive QuickTime: Authoring Wired Media
<http://www.amazon.com/exec/obidos/tg/detail/-/1558607463/
qid=1120275770/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/002-5692117-1577651?
v=glance&s=books&n=507846>.
As sims just mentioned in his post you can use media keys if the
playback environment supports setting those. The Sorenson codec
supports media keys but Revolution does not. Support for this could
be implemented using an external - <http://developer.apple.com/
documentation/QuickTime/APIREF/WorkingWithAccessKeys.htm>.
One thing that has intrigued me for a while is the possibility of
writing a custom QuickTime component that you can insert into every
movie. As I understand it you can have your application register
components with QuickTime when the app launches meaning it doesn't
have to be installed. By only registering the component with your
app then you could successfully load movies that use your component.
Any other QT app would fail to work since the component was missing.
I think this would be possible but I haven't played with it at all.
--
Trevor DeVore
Blue Mango Multimedia
trevor at mangomultimedia.com
More information about the use-livecode
mailing list