00001 /* 00002 * PIAVE - PIAVE Is A Video Editor 00003 * 00004 * Copyright (C) 2002 Rolf Dubitzky, rolf@dubitzky.de 00005 * 00006 */ 00007 00008 /* 00009 * This program is free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software Foundation, 00021 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00022 */ 00023 00024 00031 #if ! defined( FFISTREAM_HH ) 00032 #define FFISTREAM_HH 00033 00034 // stdc++ 00035 #include <string> 00036 00037 // PIAVE 00038 #include "libpiave/piave_base.hh" 00039 #include "libpiave/avstream.hh" 00040 00041 #include "ffmpeg.hh" 00042 00043 namespace PIAVE { 00044 00051 class InFFMpegStream : public InAVFStream 00052 { 00053 public: 00054 InFFMpegStream( const std::string& fileName ); 00055 virtual ~InFFMpegStream(); 00056 virtual Frame getFrame( Time t ); 00057 00058 private: 00059 void initDecoder(); 00060 00061 private: 00062 AVCodec * _avCodec; 00063 AVCodecContext * _avCodecContext; 00064 FILE * _file; 00065 AVPicture _picture; 00066 }; 00067 00068 } 00069 00070 00071 #endif
1.2.18