2
// C++ Implementation: %{MODULE}
7
// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
9
// Copyright: See COPYING file that comes with this distribution
20
#include "interact.hpp"
25
#include <ADM_assert.h>
27
#include "ADM_library/default.h"
28
#include "ADM_toolkit/toolkit.hxx"
31
#include "ADM_toolkit/ADM_debugID.h"
32
#define MODULE_NAME MODULE_LAVFORMAT
33
#include "ADM_toolkit/ADM_debug.h"
35
#include "cpu_accel.h"
36
#include "mjpeg_types.h"
37
#include "mjpeg_logging.h"
38
#include "mpegconsts.h"
41
#include "outputstrm.hpp"
42
#include "multiplexor.hpp"
44
#include "ADM_inout.h"
46
FileOutputStream::FileOutputStream( const char *name_pat )
48
strncpy( filename_pat, name_pat, MAXPATHLEN );
49
snprintf( cur_filename, MAXPATHLEN, filename_pat, segment_num );
52
int FileOutputStream::Open()
54
strm = fopen( cur_filename, "wb" );
57
mjpeg_error_exit1( "Could not open for writing: %s", cur_filename );
63
void FileOutputStream::Close()
70
FileOutputStream::SegmentSize()
73
fstat(fileno(strm), &stb);
74
off_t written = stb.st_size;
79
FileOutputStream::NextSegment( )
86
cur_filename[strlen(cur_filename)-1]++; // increase
87
strm = fopen( cur_filename, "wb" );
90
mjpeg_error_exit1( "Could not open for writing: %s", cur_filename );
97
FileOutputStream::Write( uint8_t *buf, unsigned int len )
99
if( fwrite( buf, 1, len, strm ) != len )
101
mjpeg_error_exit1( "Failed write: %s", cur_filename );