core/vidl/vidl_ffmpeg_ostream_params.cxx
Go to the documentation of this file.
00001 // This is core/vidl/vidl_ffmpeg_ostream_params.cxx
00002 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00003 #pragma implementation
00004 #endif
00005 #include "vidl_ffmpeg_ostream_params.h"
00006 //:
00007 // \file
00008 // \author Matt Leotta
00009 // \date   3 Jan 2006
00010 //
00011 //-----------------------------------------------------------------------------
00012 
00013 #include <vidl/vidl_config.h>
00014 
00015 #if VIDL_HAS_FFMPEG
00016 // some versions of FFMPEG require this definition before including 
00017 // the headers for C++ compatibility
00018 #define __STDC_CONSTANT_MACROS
00019 #endif // VIDL_HAS_FFMPEG
00020 
00021 #if VIDL_HAS_FFMPEG
00022 
00023 extern "C" {
00024 #if FFMPEG_IN_SEVERAL_DIRECTORIES
00025 #include <libavformat/avformat.h>
00026 #else
00027 #include <ffmpeg/avformat.h>
00028 #endif
00029 }
00030 
00031 //-----------------------------------------------------------------------------
00032 
00033 //: Many of these default values come from ffmpeg.c
00034 vidl_ffmpeg_ostream_params::vidl_ffmpeg_ostream_params()
00035   : encoder_( DEFAULT ),
00036     file_format_( GUESS ),
00037     frame_rate_( 25 ),
00038     bit_rate_( 5000 ),
00039     ni_( 640 ),
00040     nj_( 480 ),
00041     video_bit_rate_tolerance_( 4000*1000 ),
00042     frame_aspect_ratio_( 0.0f ),
00043     intra_only_( 0 ),
00044     gop_size_( 12 ),
00045     video_qscale_( 0 ),
00046     same_quality_( 0 ),
00047     mb_decision_( FF_MB_DECISION_SIMPLE ),
00048     mb_cmp_( FF_CMP_SAD ),
00049     ildct_cmp_( FF_CMP_VSAD ),
00050     sub_cmp_( FF_CMP_SAD ),
00051     cmp_( FF_CMP_SAD ),
00052     pre_cmp_( FF_CMP_SAD ),
00053     pre_me_( 0 ),
00054     lumi_mask_( 0.0f ),
00055     dark_mask_( 0.0f ),
00056     scplx_mask_( 0.0f ),
00057     tcplx_mask_( 0.0f ),
00058     p_mask_( 0.0f ),
00059     qns_( 0 ),
00060     use_4mv_( 0 ),
00061     use_obmc_( 0 ),
00062     use_loop_( 0 ),
00063     use_aic_( 0 ),
00064     use_aiv_( 0 ),
00065     use_umv_( 0 ),
00066     use_ss_( 0 ),
00067     use_alt_scan_( 0 ),
00068     use_trell_( 0 ),
00069     use_scan_offset_( 0 ),
00070     use_part_( 0 ),
00071     closed_gop_( 0 ),
00072     use_qpel_( 0 ),
00073     use_qprd_( 0 ),
00074     use_cbprd_( 0 ),
00075     b_frames_( 0 ),
00076     do_interlace_dct_( 0 ),
00077     do_interlace_me_( 0 ),
00078     video_qmin_( 2 ),
00079     video_qmax_( 31 ),
00080     video_lmin_( 2*FF_QP2LAMBDA ),
00081     video_lmax_( 31*FF_QP2LAMBDA ),
00082     video_mb_qmin_( 2 ),
00083     video_mb_qmax_( 31 ),
00084     video_qdiff_( 3 ),
00085     video_qblur_( 0.5f ),
00086     video_qcomp_( 0.5f ),
00087     video_rc_eq_( "tex^qComp" ),
00088     debug_( 0 ),
00089     debug_mv_( 0 ),
00090     video_rc_buffer_size_( 0 ),
00091     video_rc_buffer_aggressivity_( 1.0f ),
00092     video_rc_max_rate_( 0 ),
00093     video_rc_min_rate_( 0 ),
00094     video_rc_initial_cplx_( 0 ),
00095     video_b_qfactor_( 1.25f ),
00096     video_b_qoffset_( 1.25f ),
00097     video_i_qfactor_( -0.8f ),
00098     video_i_qoffset_( 0.0f ),
00099     video_intra_quant_bias_( FF_DEFAULT_QUANT_BIAS ),
00100     video_inter_quant_bias_( FF_DEFAULT_QUANT_BIAS ),
00101     dct_algo_( FF_DCT_FASTINT ),
00102     idct_algo_( FF_DCT_AUTO ),
00103     me_threshold_( 0 ),
00104     mb_threshold_( 0 ),
00105     intra_dc_precision_( 8 ),
00106     strict_( 0 ),
00107     error_rate_( 0 ),
00108     noise_reduction_( 0 ),
00109     sc_threshold_( 0 ),
00110     coder_( 0 ),
00111     context_( 0 ),
00112     predictor_( 0 ),
00113 #if 0
00114     // not supported by older versions of FFMPEG
00115     video_profile_( FF_PROFILE_UNKNOWN ),
00116     video_level_( FF_LEVEL_UNKNOWN ),
00117 #endif
00118     me_range_( 0 ),
00119     do_psnr_( 0 ),
00120     packet_size_( 0 ),
00121     me_method_( ME_EPZS ),
00122     do_pass_( 0 )
00123 {
00124 }
00125 
00126 #else // VIDL_HAS_FFMPEG
00127 
00128 vidl_ffmpeg_ostream_params::vidl_ffmpeg_ostream_params()
00129 {
00130 }
00131 
00132 #endif