root/OpenSceneGraph/trunk/src/osgPlugins/quicktime/QTUtils.h @ 9769

Revision 9769, 1.5 kB (checked in by robert, 5 years ago)

From Riccardo Corsi, "in attach you'll find a patch to cleanup a little bit the (de)initialization code of QuickTime? environment from the quickTime pluging.
It basically removes the static init() and exit() functions,and move them inside the observer class (the one that cleans everything up when the last media is unloaded).

It also add an extra check to clean up on exit if the QuickTime? env is initialized, but no media is succesfully loaded / written (it might happens with streaming resources).

I tested it under WinXP with zero, one and multiple videos.

Stephan reads in copy: could you kindly check if everything runs smooth under OSX as well? Also, have you got a chance to test it with streaming media?
"

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[2815]1/*
2 *  QTUtils.h
3 *  NativeContext
4 *
5 *  Created by Stephan Huber on Fri Sep 06 2002.
6 *  Copyright (c) 2002 digital mind. All rights reserved.
7 *
8 */
9
[5799]10#ifndef QTUTILS_HEADER_
11#define QTUTILS_HEADER_
[2815]12
[5981]13// Quicktime plugin is able to load regular 2D images
14// besides movie streams.
15// It is used as default image loader on __APPLE__
16// Uncomment this define to use it as image loader
17// on other platforms.
18// #define QT_HANDLE_IMAGES_ALSO
19
[5799]20#ifdef __APPLE__
[7624]21    #include <QuickTime/QuickTime.h>
[5799]22    #include <Carbon/Carbon.h>
[5981]23    #define QT_HANDLE_IMAGES_ALSO
[5799]24#else
25    #include <QTML.h>
26    #include <Movies.h>
27    #include <Quickdraw.h>
28    #include <QDOffscreen.h>
29    #include <QuicktimeComponents.h>
30    #include <FixMath.h>
31    #include <CGBitmapContext.h>
32    #include <CGImage.h>
33    #include <CGColorSpace.h>
34    #include <ImageCompression.h>
[2815]35
[5799]36    extern "C" {
37        /** legacy function for Windows */
38        inline void GetPortBounds(GWorldPtr gw, Rect* rect) {
39            (*rect) = (gw->portRect);
40        }
41        /** legacy function for Windows */
42        inline PixMapHandle GetPortPixMap (CGrafPtr port) {
43            return port->portPixMap;
44        }
45 
46    }
[2815]47
[5799]48#define SetRect MacSetRect
49#define OffsetRect MacOffsetRect
[2815]50
[5799]51#endif
52   
53    /** constructs an FSSpec out of an path */
54     OSStatus MakeFSSpecFromPath(const char* path, FSSpec* spec);
55   
56    /** opens a movie from a path */
[8797]57      OSStatus MakeMovieFromPath(const char* path, Movie* movie, short& resref);
[5799]58
59
60#endif
Note: See TracBrowser for help on using the browser.