00001 /* -*-c++-*- 00002 Copyright (C) 1996-1997 Gregory D. Hager, Kinh Tieu 00003 Computer Science Robotics and Vision Laboratory) 00004 00005 Permission is granted to any individual or institution to use, copy, 00006 modify, and distribute this software, provided that this complete 00007 copyright and permission notice is maintained, intact, in all copies 00008 and supporting documentation. Authors of papers that describe software 00009 systems using this software package are asked to acknowledge such use 00010 by a brief statement in the paper. 00011 00012 Gregory D. Hager provides this software "as is" without express or 00013 implied warranty. 00014 00015 */ 00016 //----------------------------------------------------------------------------- 00017 // 00018 // MPEG.hh 00019 // 00020 // Declaration of the MPEG class. 00021 // 00022 // 10/21/96 Kinh Tieu, using 00023 // 00024 // The MPEG Library 00025 // 00026 // Version 1.2 - 17 October, 1995 00027 // 00028 // MPEG decoding engine (c) 1992 The Regents of the University of California 00029 // Front end (c) 1994-95 Gregory P. Ward (greg@bic.mni.mcgill.ca) 00030 // 00031 // Copyright (c) 1994-95 by Gregory P. Ward. 00032 // All rights reserved. 00033 // 00034 // IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, 00035 // INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT 00036 // OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE 00037 // UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF 00038 // SUCH DAMAGE. 00039 // 00040 // THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT 00041 // NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 00042 // FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER 00043 // IS ON AN "AS IS" BASIS, AND THE AUTHOR HAS NO OBLIGATION TO PROVIDE 00044 // MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 00045 // 00046 // and modeled on code for IMG_SEQ by Greg Hager and Jonathan Wang. 00047 // 00048 //----------------------------------------------------------------------------- 00049 00050 #ifndef MPEG_h 00051 #define MPEG_h 00052 00053 #define DEF_MPEG_NUM 4 00054 00055 #include <stdio.h> 00056 00057 00058 #include "XVImageRGB.h" 00059 #include "Video.h" 00060 00061 00062 //----------------------------------------------------------------------------- 00063 // Class : MPEG 00064 // 00065 //* Class MPEG provides an interface between tracking and MPEG files, 00066 //* allowing users to use MPEG sequences as a source of video sequences. 00067 //* 00068 //* See also, Class Image_SequenceMono (in files IMG_SEQ.*). 00069 //----------------------------------------------------------------------------- 00070 00071 template <class T> 00072 class MPEG : public Video<T> 00073 { 00074 FILE *fd; 00075 XVImageRGB<XV_RGBA32> *work_img; 00076 int convers_active; 00077 public: 00078 00079 MPEG (const char *fname = "mpeg_file.mpg", 00080 const char *parm_string=NULL); 00081 00082 virtual int open(const char *filename); 00083 void close(); 00084 virtual int initiate_acquire(int buffernum); 00085 virtual int wait_for_completion(int buffernum); 00086 00087 int set_params(char *params) {return 1;}; 00088 00089 }; 00090 00091 00092 //----------------------------------------------------------------------------- 00093 #endif