[Hdrflow-svn] SF.net SVN: hdrflow: [82] lib/openlibraries
Status: Pre-Alpha
Brought to you by:
glslang
|
From: <gl...@us...> - 2007-04-17 22:24:05
|
Revision: 82
http://hdrflow.svn.sourceforge.net/hdrflow/?rev=82&view=rev
Author: glslang
Date: 2007-04-17 15:24:01 -0700 (Tue, 17 Apr 2007)
Log Message:
-----------
+ build updates
+ initial dpx storer (not fully functional)
Modified Paths:
--------------
lib/openlibraries/src/openassetlib/al/al.cpp
lib/openlibraries/src/openimagelib/il/Makefile.am
lib/openlibraries/src/openimagelib/il/il.cpp
lib/openlibraries/src/openimagelib/il/il.hpp
lib/openlibraries/src/openimagelib/il/il_vc8.vcproj
lib/openlibraries/src/openimagelib/plugins/dpx/dpx_plugin.cpp
lib/openlibraries/src/openimagelib/plugins/dpx/dpx_plugin.opl
lib/openlibraries/src/openpluginlib/pl/GL_utility.hpp
lib/openlibraries/src/openpluginlib/pl/openpluginlib.cpp
lib/openlibraries/src/openpluginlib/pl/timer.hpp
lib/openlibraries/test/openmedialib/store/store.cpp
Removed Paths:
-------------
lib/openlibraries/src/openimagelib/il/openimagelib_plugin.cpp
lib/openlibraries/test/openmedialib/store/test.cpp
Modified: lib/openlibraries/src/openassetlib/al/al.cpp
===================================================================
--- lib/openlibraries/src/openassetlib/al/al.cpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openassetlib/al/al.cpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -12,7 +12,7 @@
#include <openassetlib/al/set.hpp>
#include <openassetlib/al/base64_codec.hpp>
-#if defined(_WIN32) && !defined(USE_LIBXML2)
+#if defined( WIN32 ) && !defined( USE_LIBXML2 )
#import <msxml6.dll>
#pragma warning( disable : 4290 )
#include <atlbase.h>
@@ -39,10 +39,7 @@
al::guid_factory::initialize(guid_gen);
- opl::init();
- oil::init();
- oml::init();
- ool::init();
+ opl::init( "" );
#if defined(_WIN32) && !defined(USE_LIBXML2)
::CoInitialize(0);
@@ -53,10 +50,7 @@
AL_DECLSPEC bool uninit()
{
- opl::uninit();
- oil::uninit();
- oml::uninit();
- ool::uninit();
+ opl::uninit( );
al::guid_factory::uninitialize();
Modified: lib/openlibraries/src/openimagelib/il/Makefile.am
===================================================================
--- lib/openlibraries/src/openimagelib/il/Makefile.am 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openimagelib/il/Makefile.am 2007-04-17 22:24:01 UTC (rev 82)
@@ -16,7 +16,6 @@
il.cpp \
noise_traits.hpp \
openimagelib_plugin.hpp \
- openimagelib_plugin.cpp \
rgb_traits.hpp \
traits.hpp \
utility.cpp \
Modified: lib/openlibraries/src/openimagelib/il/il.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/il/il.cpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openimagelib/il/il.cpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -5,7 +5,7 @@
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
-#include <openimagelib/il/il.hpp>
+#include <openimagelib/il/openimagelib_plugin.hpp>
namespace olib { namespace openimagelib {
Modified: lib/openlibraries/src/openimagelib/il/il.hpp
===================================================================
--- lib/openlibraries/src/openimagelib/il/il.hpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openimagelib/il/il.hpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -8,10 +8,6 @@
#ifndef IL_INC_
#define IL_INC_
-#ifdef HAVE_CONFIG_H
-#include <openlibraries_global_config.hpp>
-#endif
-
#include <string>
#include <openimagelib/il/config.hpp>
Modified: lib/openlibraries/src/openimagelib/il/il_vc8.vcproj
===================================================================
--- lib/openlibraries/src/openimagelib/il/il_vc8.vcproj 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openimagelib/il/il_vc8.vcproj 2007-04-17 22:24:01 UTC (rev 82)
@@ -208,10 +208,6 @@
>
</File>
<File
- RelativePath=".\openimagelib_plugin.cpp"
- >
- </File>
- <File
RelativePath=".\utility.cpp"
>
</File>
Deleted: lib/openlibraries/src/openimagelib/il/openimagelib_plugin.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/il/openimagelib_plugin.cpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openimagelib/il/openimagelib_plugin.cpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -1,17 +0,0 @@
-
-// il - A image library representation.
-
-// Copyright (C) 2005-2006 VM Inc.
-// Released under the LGPL.
-// For more information, see http://www.openlibraries.org.
-
-#include <boost/filesystem/path.hpp>
-
-#include <openimagelib/il/openimagelib_plugin.hpp>
-
-namespace fs = boost::filesystem;
-namespace opl = olib::openpluginlib;
-
-namespace olib { namespace openimagelib { namespace il {
-
-} } }
Modified: lib/openlibraries/src/openimagelib/plugins/dpx/dpx_plugin.cpp
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/dpx/dpx_plugin.cpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openimagelib/plugins/dpx/dpx_plugin.cpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -102,15 +102,8 @@
char reserved[ 52 ];
};
- struct additional_image_source_information_header
+ struct image_orientation_information_header
{
- float x_scanned_size;
- float y_scanned_size;
- char reserved[ 20 ];
- };
-
- struct image_source_information_header
- {
unsigned int x_offset;
unsigned int y_offset;
float x_center;
@@ -164,6 +157,11 @@
char reserved[ 76 ];
};
+ struct user_defined_data_header
+ {
+ char user_identification[ 32 ];
+ };
+
#ifdef WIN32
# pragma pack( pop )
#else
@@ -234,7 +232,7 @@
}
}
- void swap_image_source_information_header( image_source_information_header& header )
+ void swap_image_orientation_information_header( image_orientation_information_header& header )
{
swap_32_bit( &header.x_offset, 1 );
swap_32_bit( &header.y_offset, 1 );
@@ -346,6 +344,11 @@
return !file.fail( );
}
+ bool Write_s( fs::ofstream& file, char* s, std::streamsize size )
+ {
+ return !file.write( s, size ).fail( );
+ }
+
std::wstring generate_image_pf( const image_information_header& im_header )
{
std::wostringstream str;
@@ -533,7 +536,7 @@
}
}
- void convert_10_bit_method_a_b_to_oil( const std::vector<unsigned char>& v, il::image_type_ptr im, int bs, bool swab, int packing, int plane )
+ void convert_10_bit_method_a_b_to_oil( const std::vector<unsigned char>& v, il::image_type_ptr im, bool swab, int packing, int plane )
{
int width = im->linesize( plane );
int height = im->height( plane );
@@ -595,8 +598,8 @@
if( !Read_s( file, ( char* ) &image_info_header, sizeof( image_info_header ), sizeof( image_info_header ) ) )
return il::image_type_ptr( );
- image_source_information_header image_source_info_header;
- if( !Read_s( file, ( char* ) &image_source_info_header, sizeof( image_source_info_header ), sizeof( image_source_info_header ) ) )
+ image_orientation_information_header image_orientation_info_header;
+ if( !Read_s( file, ( char* ) &image_orientation_info_header, sizeof( image_orientation_info_header ), sizeof( image_orientation_info_header ) ) )
return il::image_type_ptr( );
motion_picture_film_information_header motion_info_header;
@@ -615,7 +618,7 @@
{
swap_file_information_header( header );
swap_image_information_header( image_info_header );
- swap_image_source_information_header( image_source_info_header );
+ swap_image_orientation_information_header( image_orientation_info_header );
swap_motion_picture_film_information_header( motion_info_header );
swap_television_information_header( tv_info_header );
}
@@ -678,19 +681,111 @@
}
else if( packing == 1 || packing == 2 )
{
- convert_10_bit_method_a_b_to_oil( image_data, im, bs, swab, packing, i );
+ convert_10_bit_method_a_b_to_oil( image_data, im, swab, packing, i );
}
}
}
return im;
}
+
+ // Needs to move into IL traits.
+ void element_info( const std::wstring& pf, unsigned char& bitdepth )
+ {
+ if( pf == L"r8g8b8" || pf == L"r8g8b8a8" )
+ bitdepth = 8;
+ else if( pf == L"r10g10b10" || pf == L"r10g10b10a10" )
+ bitdepth = 10;
+ else if( pf == L"r12g12b12" || pf == L"r12g12b12a12" )
+ bitdepth = 12;
+ else if( pf == L"r16g16b16" || pf == L"r16g16b16a16" )
+ bitdepth = 16;
+ }
+
+ bool store_dpx( const fs::path& path, const il::image_type_ptr& im )
+ {
+ fs::ofstream file( path, std::ios::out | std::ios::binary );
+ if( !file.is_open( ) ) return false;
+
+ il::image_type::size_type width = im->width( );
+ il::image_type::size_type height = im->height( );
+
+ unsigned char bitdepth;
+ element_info( im->pf( ), bitdepth );
+
+ int linesize = bytes_per_line( bitdepth, im->linesize( ), 0 );
+
+ file_information_header header;
+ memset( &header, 0, sizeof( header ) );
+ header.magic = 0x53445058;
+ header.offset = 2048; // fixed value if no user defined data is present. check the specification.
+ strcpy( header.version, "V2.0" ); // xxx
+ header.filesize = 2048 + linesize * height;
+
+ image_information_header image_info_header;
+ memset( &image_info_header, 0, sizeof( image_info_header ) );
+ image_info_header.orientation = 0; // xxx
+ image_info_header.image_elements = static_cast<unsigned short>( im->plane_count( ) );
+ image_info_header.pixels_per_line = width;
+ image_info_header.lines_per_element = height;
+
+ for( int i = 0; i < image_info_header.image_elements; ++i )
+ {
+ image_info_header.element[ i ].sign = 0;
+ image_info_header.element[ i ].descriptor = 50; // xxx
+ image_info_header.element[ i ].transfer = 2; // xxx
+ image_info_header.element[ i ].colorimetric = 2; // xxx
+ image_info_header.element[ i ].bitdepth = bitdepth;
+ image_info_header.element[ i ].packing = 0;
+ image_info_header.element[ i ].encoding = 0;
+
+ if( !i )
+ image_info_header.element[ i ].offset = 2048;
+ else
+ image_info_header.element[ i ].offset = image_info_header.element[ i - 1 ].offset + im->pitch( i - 1 ) * im->height( i - 1 );
+ }
+
+ image_orientation_information_header image_orientation_info_header;
+ memset( &image_orientation_info_header, 0, sizeof( image_orientation_info_header ) );
+
+ motion_picture_film_information_header motion_info_header;
+ memset( &motion_info_header, 0, sizeof( motion_info_header ) );
+
+ television_information_header tv_info_header;
+ memset( &tv_info_header, 0, sizeof( tv_info_header ) );
+
+ user_defined_data_header user_defined_header;
+ memset( &user_defined_header, 0, sizeof( user_defined_header ) );
+
+ if( !( Write_s( file, ( char* ) &header, sizeof( header ) ) &&
+ Write_s( file, ( char* ) &image_info_header, sizeof( image_info_header ) ) &&
+ Write_s( file, ( char* ) &image_orientation_info_header, sizeof( image_orientation_info_header ) ) &&
+ Write_s( file, ( char* ) &motion_info_header, sizeof( motion_info_header ) ) &&
+ Write_s( file, ( char* ) &tv_info_header, sizeof( tv_info_header ) ) &&
+ Write_s( file, ( char* ) &user_defined_header, sizeof( user_defined_header ) ) ) )
+ return false;
+
+ for( int i = 0; i < image_info_header.image_elements; ++i )
+ {
+ unsigned char* data = im->data( i );
+
+ for( int j = 0; j < im->height( i ); ++j )
+ {
+ if( !Write_s( file, ( char* ) data, im->pitch( i ) ) )
+ return false;
+
+ data += im->pitch( i );
+ }
+ }
+
+ return true;
+ }
}
il::image_type_ptr DPX_plugin::load( const fs::path& path )
{ return load_dpx( path ); }
-bool DPX_plugin::store( const fs::path& /*path*/, const il::image_type_ptr& )
-{ return false; }
+bool DPX_plugin::store( const fs::path& path, const il::image_type_ptr& im )
+{ return store_dpx( path, im ); }
} } } }
Modified: lib/openlibraries/src/openimagelib/plugins/dpx/dpx_plugin.opl
===================================================================
--- lib/openlibraries/src/openimagelib/plugins/dpx/dpx_plugin.opl 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openimagelib/plugins/dpx/dpx_plugin.opl 2007-04-17 22:24:01 UTC (rev 82)
@@ -3,5 +3,6 @@
<!-- plugins go here -->
<openimagelib name="oil" version="0.2.0">
<plugin name="OpenLibraries DPX plugin" type="input" in_filter="*.dpx" extension='".*\.dpx"' merit="80" filename='"libopenimagelib_dpx.so", "libopenimagelib_dpx.dylib", "openimagelib_dpx-vc80-d-0_4_0.dll", "openimagelib_dpx-vc80-r-0_4_0.dll"'/>
+ <plugin name="OpenLibraries DPX plugin" type="output" in_filter="*.dpx" extension='".*\.dpx"' merit="80" filename='"libopenimagelib_dpx.so", "libopenimagelib_dpx.dylib", "openimagelib_dpx-vc80-d-0_4_0.dll", "openimagelib_dpx-vc80-r-0_4_0.dll"'/>
</openimagelib>
</openlibraries>
Modified: lib/openlibraries/src/openpluginlib/pl/GL_utility.hpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/GL_utility.hpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openpluginlib/pl/GL_utility.hpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -8,10 +8,6 @@
#ifndef GL_UTILITY_INC_
#define GL_UTILITY_INC_
-#ifdef HAVE_CONFIG_H
-#include <openlibraries_global_config.hpp>
-#endif
-
#include <GL/glew.h>
#include <utility>
Modified: lib/openlibraries/src/openpluginlib/pl/openpluginlib.cpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/openpluginlib.cpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openpluginlib/pl/openpluginlib.cpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -173,7 +173,7 @@
else
el_reg.clear( );
-# ifdef HAVE_CG_RUNTIME
+# ifdef HAVE_CG_RUNTIME
shader_manager_instance( ).destroy_Cg_context( );
# endif
}
Modified: lib/openlibraries/src/openpluginlib/pl/timer.hpp
===================================================================
--- lib/openlibraries/src/openpluginlib/pl/timer.hpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/src/openpluginlib/pl/timer.hpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -8,10 +8,6 @@
#ifndef TIMER_INC_
#define TIMER_INC_
-#ifdef HAVE_CONFIG_H
-#include <openlibraries_global_config.hpp>
-#endif
-
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#pragma warning ( push )
Modified: lib/openlibraries/test/openmedialib/store/store.cpp
===================================================================
--- lib/openlibraries/test/openmedialib/store/store.cpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/test/openmedialib/store/store.cpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -1,7 +1,7 @@
// ml - A media library representation.
-// Copyright (C) 2005-2006 VM Inc.
+// Copyright (C) 2005 Visual Media FX Ltd.
// Released under the LGPL.
// For more information, see http://www.openlibraries.org.
@@ -12,10 +12,6 @@
#include <string>
#include <iostream>
-#ifdef HAVE_CONFIG_H
-#include <openlibraries_global_config.hpp>
-#endif
-
#include <openpluginlib/pl/openpluginlib.hpp>
#include <openpluginlib/pl/utf8_utils.hpp>
@@ -26,17 +22,6 @@
namespace il = olib::openimagelib::il;
namespace opl = olib::openpluginlib;
-#ifdef WIN32
- const opl::string oml_plugin_path( "./plugins" );
- const opl::string oil_plugin_path( "./plugins" );
-#else
- const opl::string oil_plugin_path( OPENIMAGELIB_PLUGINS );
- const opl::string oml_plugin_path( OPENMEDIALIB_PLUGINS );
-#endif
-
-
-
-
class handler : public ml::store_keyboard_handler
{
public:
@@ -55,50 +40,16 @@
{
}
- void flush( int offset = 0 )
- {
- ml::frame_type_ptr frame = store_->flush( );
- if ( frame )
- input_->seek( int( frame->get_pts( ) * frame->fps( ) + offset + 0.5 ) );
- }
-
virtual void keyboard_handler( unsigned char key )
{
-
- //boost::mutex::scoped_lock scoped_lock( mutex_ );
+ boost::mutex::scoped_lock scoped_lock( mutex_ );
switch( key )
{
-
case 27:
done_ = true;
break;
- case ' ':
- speed_ = !speed_;
- flush( );
- break;
-
- case 'h':
- speed_ = 0;
- flush( -1 );
- break;
-
- case 'l':
- speed_ = 0;
- flush( 1 );
- break;
-
- case 'j':
- flush( );
- input_->seek( ( int )input_->get_frames( ) );
- break;
-
- case 'k':
- flush( );
- input_->seek( 0 );
- break;
-
default:
break;
}
@@ -106,29 +57,24 @@
void run( )
{
- int end=input_->get_frames( ) - 1;
- int pos=input_->get_position( );
-
- while( !done_ && pos < end )
+ //while( !done_ && input_->get_position( ) != input_->get_frames( ) )
{
- pos = input_->get_position( );
-
ml::frame_type_ptr frame = input_->fetch( );
+ if ( speed_ != 1 )
+ frame->set_audio( ml::audio_type_ptr( ) );
if ( !store_->push( frame ) )
- break;
-
+ //break;
+ boost::mutex::scoped_lock scoped_lock( mutex_ );
input_->seek( speed_, true );
}
-
store_->complete( );
}
-
private:
ml::input_type_ptr input_;
ml::store_type_ptr store_;
-
int speed_;
+ boost::mutex mutex_;
bool done_;
};
@@ -140,27 +86,18 @@
if ( argc > 2 )
{
ml::input_type_ptr input = ml::create_input( argv[ 1 ] );
- if ( input == 0 )
- return 1;
-
+ if ( input == 0 ) return 1;
ml::store_type_ptr store = ml::create_store( argv[ 2 ], input->fetch( ) );
- if ( store == 0 )
- return 2;
+ if ( store == 0 ) return 1;
- if ( store->init( ) )
- {
- handler handler( input, store );
- handler.run( );
- }
+ handler handler( input, store );
+ handler.run( );
}
else
{
std::cerr << "Usage: store input store" << std::endl;
- std::cerr << " ie: file.avi file.mpg" << std::endl;
+ std::cerr << " ie: file.avi glew:" << std::endl;
}
- opl::uninit( );
-
return 0;
}
-
Deleted: lib/openlibraries/test/openmedialib/store/test.cpp
===================================================================
--- lib/openlibraries/test/openmedialib/store/test.cpp 2007-04-14 22:44:40 UTC (rev 81)
+++ lib/openlibraries/test/openmedialib/store/test.cpp 2007-04-17 22:24:01 UTC (rev 82)
@@ -1,171 +0,0 @@
-
-// ml - A media library representation.
-
-// Copyright (C) 2005 Visual Media FX Ltd.
-// Released under the LGPL.
-// For more information, see http://www.openlibraries.org.
-
-// simple example to exercise the load and store features of ml
-
-
-
-
-
-#include <cstdio>
-#include <cstdlib>
-#include <string>
-#include <iostream>
-
-
-
-#ifdef HAVE_CONFIG_H
-#include <openlibraries_global_config.hpp>
-#endif
-
-#include <openpluginlib/pl/openpluginlib.hpp>
-#include <openpluginlib/pl/utf8_utils.hpp>
-
-#include <openimagelib/il/openimagelib_plugin.hpp>
-#include <openmedialib/ml/openmedialib_plugin.hpp>
-
-namespace ml = olib::openmedialib::ml;
-namespace il = olib::openimagelib::il;
-namespace opl = olib::openpluginlib;
-
-#ifdef WIN32
- const opl::string oml_plugin_path( "./plugins" );
- const opl::string oil_plugin_path( "./plugins" );
-#else
- const opl::string oil_plugin_path( OPENIMAGELIB_PLUGINS );
- const opl::string oml_plugin_path( OPENMEDIALIB_PLUGINS );
-#endif
-
-class handler : public ml::store_keyboard_handler
-{
- public:
- handler( ml::input_type_ptr input, ml::store_type_ptr store )
- : input_( input )
- , store_( store )
- , speed_( 1 )
- , done_( false )
- {
- ml::store_keyboard_feedback *feedback = dynamic_cast< ml::store_keyboard_feedback * >( store.get( ) );
- if ( feedback )
- feedback->register_keyboard_handler( this );
- }
-
- virtual ~handler( )
- {
- }
-
- void flush( int offset = 0 )
- {
- ml::frame_type_ptr frame = store_->flush( );
- if ( frame )
- input_->seek( int( frame->get_pts( ) * input_->fps( ) + offset + 0.5 ) );
- }
-
- virtual void keyboard_handler( unsigned char key )
- {
- boost::mutex::scoped_lock scoped_lock( mutex_ );
-
- switch( key )
- {
-
- case 27:
- done_ = true;
- break;
-
-
- case 'W':
- flush( int( 10 * input_->fps( ) ) );
- break;
-
- case 'B':
- flush( int( -10 * input_->fps( ) ) );
- break;
-
-
- case ' ':
- speed_ = !speed_;
- flush( );
- break;
-
- case 'h':
- speed_ = 0;
- flush( -1 );
- break;
-
- case 'l':
- speed_ = 0;
- flush( 1 );
- break;
-
-
- default:
- break;
- }
- }
-
- void run( )
- {
-
-
- olib::openmedialib::ml::image_type_ptr img;
-
- while( !done_ && input_->get_position( ) != input_->get_frames( ) )
- {
-
- ml::frame_type_ptr frame = input_->fetch( );//get the frame...
-
- if ( speed_ != 1 )
- frame->set_audio( ml::audio_type_ptr( ) );//sets the audio
-
- if ( !store_->push( frame ) )//pushes the frame
- break;
-
- boost::mutex::scoped_lock scoped_lock( mutex_ );
- input_->seek( speed_, true );
- }
- store_->complete( );
- }
-
- private:
- ml::input_type_ptr input_;
- ml::store_type_ptr store_;
- int speed_;
- boost::mutex mutex_;
- bool done_;
-};
-
-
-int main( int argc, char* argv[ ] )
-{
- // Load both oil and oml plugins since oml uses oil
- opl::init( oil_plugin_path );
- opl::init( oml_plugin_path );
-
-
-
- //now, for testing pourposes, the arguments are in the properties page
- if ( argc > 2 )
- {
- ml::input_type_ptr input = ml::create_input( argv[ 1 ] );
- if ( input == 0 )
- return 1;
- ml::store_type_ptr store = ml::create_store( argv[ 2 ], input->fetch( ) );
- if ( store == 0 )
- return 1;
-
- handler handler( input, store );
- handler.run( );
- }
- else
- {
- std::cerr << "Usage: store input store" << std::endl;
- std::cerr << " ie: file.avi glew:" << std::endl;
- }
-
- return 0;
-}
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|