diff options
author | deva <deva> | 2008-03-17 09:10:42 +0000 |
---|---|---|
committer | deva <deva> | 2008-03-17 09:10:42 +0000 |
commit | 2f10a73cbbe4333e2a41e87a94eda7fb3d442dc5 (patch) | |
tree | cc023927be890bb4880d6c97ddaf055041c512ea /miavd/ffoutput.h | |
parent | 6ae128fc80dd8a32ec6f062c7767ced32e9ba495 (diff) |
Major code changes... FFMPEG introduced. Project splitup into subfolders.
Diffstat (limited to 'miavd/ffoutput.h')
-rw-r--r-- | miavd/ffoutput.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/miavd/ffoutput.h b/miavd/ffoutput.h new file mode 100644 index 0000000..ce4f83f --- /dev/null +++ b/miavd/ffoutput.h @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + * ffoutput.h + * + * Fri Dec 28 18:09:17 CET 2007 + * Copyright 2007 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of MIaV. + * + * MIaV is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * MIaV is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with MIaV; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#ifndef __MIAV_FFOUTPUT_H__ +#define __MIAV_FFOUTPUT_H__ + +extern "C" { +#include <ffmpeg/avformat.h> +#include <ffmpeg/avcodec.h> +} + +#include "ffframe.h" +#include "format.h" + +#include <string> +#include <file.h> + +// For n_savestate +#include "package.h" + +class FFOutput { +public: + FFOutput(const char *cpr, const char *clientip); + ~FFOutput(); + + void writeFrame(FFFrame *frame); + void setSaveState(n_savestate savestate); + + AVStream *audio_st; + +private: + void open(); + void close(); + + std::string filename; + File *file; + + AVStream *add_video_stream(AVFormatContext *oc, CodecID codec_id); + AVStream *add_audio_stream(AVFormatContext *oc, CodecID codec_id); + + long long int maxfilesize; + unsigned int keyframes; + + AVFormatContext *stream_oc; + AVFormatContext *oc; + AVStream *video_st; + // AVStream *audio_st; + AVStream *net_video_st; + AVStream *net_audio_st; + + size_t bit_buffer_size; + uint8_t *bit_buffer; +}; + +#endif/*__MIAV_FFOUTPUT_H__*/ |