![]() |
![]() |
![]() |
Schroedinger Reference Manual | ![]() |
---|---|---|---|---|
SchroEncoder; SchroEncoderFrame; enum SchroEncoderFrameStateEnum; enum SchroEncoderPerceptualEnum; enum SchroPrefEnum; struct SchroEncoderSettings; enum SchroQuantiserEngineEnum; enum SchroStateEnum; enum SchroEncoderGOPEnum; enum SchroEncoderRateControlEnum; SchroEncoderSetting; int (*SchroEngineIterateFunc) (SchroEncoder *encoder); SchroEncoder* schro_encoder_new (void); void schro_encoder_free (SchroEncoder *encoder); SchroVideoFormat* schro_encoder_get_video_format (SchroEncoder *encoder); void schro_encoder_set_video_format (SchroEncoder *encoder, SchroVideoFormat *video_format); void schro_encoder_end_of_stream (SchroEncoder *encoder); void schro_encoder_push_frame (SchroEncoder *encoder, SchroFrame *frame); void schro_encoder_copy_to_frame_buffer (SchroEncoder *encoder, SchroBuffer *buffer); void schro_encoder_encode_access_unit_header (SchroEncoder *encoder, SchroPack *bits); void schro_encoder_encode_parse_info (SchroPack *bits, int parse_code); SchroBuffer* schro_encoder_pull (SchroEncoder *encoder, int *n_decodable_frames); int schro_encoder_preference_get_range (SchroEncoder *encoder, SchroPrefEnum pref, int *min, int *max); int schro_encoder_preference_get (SchroEncoder *encoder, SchroPrefEnum pref); int schro_encoder_preference_set (SchroEncoder *encoder, SchroPrefEnum pref, int value); void schro_encoder_analyse_picture (SchroEncoderFrame *frame); void schro_encoder_calculate_subband_weights (SchroEncoder *encoder, double (perceptual_weightdouble) ()); void schro_encoder_calculate_test_info (SchroEncoderFrame *frame); void schro_encoder_choose_quantisers (SchroEncoderFrame *frame); void schro_encoder_clean_up_transform (SchroEncoderFrame *frame); SchroBuffer* schro_encoder_encode_access_unit (SchroEncoder *encoder); SchroBuffer* schro_encoder_encode_auxiliary_data (SchroEncoder *encoder, SchroAuxiliaryDataID id, void *data, int size); SchroBuffer* schro_encoder_encode_end_of_stream (SchroEncoder *encoder); void schro_encoder_encode_lowdelay_transform_data (SchroEncoderFrame *frame); void schro_encoder_encode_picture (SchroEncoderFrame *frame); void schro_encoder_encode_picture_all (SchroEncoderFrame *frame); void schro_encoder_encode_picture_header (SchroEncoderFrame *frame); void schro_encoder_encode_subband (SchroEncoderFrame *frame, int component, int index); void schro_encoder_encode_subband_noarith (SchroEncoderFrame *frame, int component, int index); int schro_encoder_engine_backref (SchroEncoder *encoder); int schro_encoder_engine_backtest (SchroEncoder *encoder); int schro_encoder_engine_intra_only (SchroEncoder *encoder); int schro_encoder_engine_lossless (SchroEncoder *encoder); int schro_encoder_engine_lowdelay (SchroEncoder *encoder); int schro_encoder_engine_test_intra (SchroEncoder *encoder); int schro_encoder_engine_tworef (SchroEncoder *encoder); void schro_encoder_estimate_entropy (SchroEncoderFrame *frame); void schro_encoder_frame_analyse (SchroEncoderFrame *frame); void schro_encoder_frame_downsample (SchroEncoderFrame *frame); void schro_encoder_frame_insert_buffer (SchroEncoderFrame *frame, SchroBuffer *buffer); SchroEncoderFrame* schro_encoder_frame_new (SchroEncoder *encoder); SchroFrame* schro_encoder_frame_queue_get (SchroEncoder *encoder, SchroPictureNumber frame_number); void schro_encoder_frame_queue_remove (SchroEncoder *encoder, SchroPictureNumber frame_number); void schro_encoder_frame_ref (SchroEncoderFrame *frame); void schro_encoder_frame_unref (SchroEncoderFrame *frame); void schro_encoder_init_subbands (SchroEncoderFrame *frame); void schro_encoder_insert_buffer (SchroEncoder *encoder, SchroBuffer *buffer); void schro_encoder_output_push (SchroEncoder *encoder, SchroBuffer *buffer, int slot, int presentation_frame); double schro_encoder_perceptual_weight_ccir959 (double cpd); double schro_encoder_perceptual_weight_constant (double cpd); double schro_encoder_perceptual_weight_moo (double cpd); void schro_encoder_postanalyse_picture (SchroEncoderFrame *frame); void schro_encoder_predict_picture (SchroEncoderFrame *frame); int schro_encoder_push_ready (SchroEncoder *encoder); void schro_encoder_recalculate_allocations (SchroEncoder *encoder); void schro_encoder_reconstruct_picture (SchroEncoderFrame *frame); SchroEncoderFrame* schro_encoder_reference_get (SchroEncoder *encoder, SchroPictureNumber frame_number); void schro_encoder_set_default_subband_weights (SchroEncoder *encoder); void schro_encoder_start (SchroEncoder *encoder); SchroStateEnum schro_encoder_wait (SchroEncoder *encoder); int schro_encoder_get_n_settings (void); const SchroEncoderSetting* schro_encoder_get_setting_info (int i); void schro_encoder_global_estimation (SchroMotionEst *me); void schro_encoder_init_error_tables (SchroEncoder *encoder); void schro_encoder_phasecorr_estimation (SchroMotionEst *me); double schro_encoder_setting_get_double (SchroEncoder *encoder, const char *name); void schro_encoder_setting_set_double (SchroEncoder *encoder, const char *name, double d);
typedef enum { SCHRO_ENCODER_FRAME_STATE_NEW = 0, SCHRO_ENCODER_FRAME_STATE_INITED = (1<<0), SCHRO_ENCODER_FRAME_STATE_ANALYSE = (1<<1), SCHRO_ENCODER_FRAME_STATE_PREDICT = (1<<2), SCHRO_ENCODER_FRAME_STATE_ENCODING = (1<<3), SCHRO_ENCODER_FRAME_STATE_RECONSTRUCT = (1<<4), SCHRO_ENCODER_FRAME_STATE_POSTANALYSE = (1<<5), SCHRO_ENCODER_FRAME_STATE_DONE = (1<<6), SCHRO_ENCODER_FRAME_STATE_HAVE_GOP = (1<<7), SCHRO_ENCODER_FRAME_STATE_HAVE_PARAMS = (1<<8), SCHRO_ENCODER_FRAME_STATE_FREE = (1<<9), SCHRO_ENCODER_FRAME_STATE_HAVE_REFS = (1<<10) } SchroEncoderFrameStateEnum;
typedef enum { SCHRO_ENCODER_PERCEPTUAL_CONSTANT, SCHRO_ENCODER_PERCEPTUAL_CCIR959, SCHRO_ENCODER_PERCEPTUAL_MOO, SCHRO_ENCODER_PERCEPTUAL_MANOS_SAKRISON } SchroEncoderPerceptualEnum;
typedef enum { SCHRO_PREF_ENGINE, SCHRO_PREF_QUANT_ENGINE, SCHRO_PREF_REF_DISTANCE, SCHRO_PREF_TRANSFORM_DEPTH, SCHRO_PREF_INTRA_WAVELET, SCHRO_PREF_INTER_WAVELET, SCHRO_PREF_LAMBDA, SCHRO_PREF_PSNR, SCHRO_PREF_BITRATE, SCHRO_PREF_NOARITH, SCHRO_PREF_MD5, SCHRO_PREF_LAST } SchroPrefEnum;
struct SchroEncoderSettings { int transform_depth; int wavelet_filter_index; /* stuff we don't handle yet */ int profile; int level; int xbsep_luma; int ybsep_luma; int xblen_luma; int yblen_luma; }; #endif enum { SCHRO_MOTION_FIELD_HIER_REF0, SCHRO_MOTION_FIELD_HIER1_REF0, SCHRO_MOTION_FIELD_HIER2_REF0, SCHRO_MOTION_FIELD_HIER3_REF0, SCHRO_MOTION_FIELD_HIER_REF1, SCHRO_MOTION_FIELD_HIER1_REF1, SCHRO_MOTION_FIELD_HIER2_REF1, SCHRO_MOTION_FIELD_HIER3_REF1, SCHRO_MOTION_FIELD_PHASECORR_REF0, SCHRO_MOTION_FIELD_PHASECORR_REF1, SCHRO_MOTION_FIELD_DC, SCHRO_MOTION_FIELD_GLOBAL_REF0, SCHRO_MOTION_FIELD_GLOBAL_REF1, SCHRO_MOTION_FIELD_ZERO_REF0, SCHRO_MOTION_FIELD_ZERO_REF1, SCHRO_MOTION_FIELD_FULLSCAN_REF0, SCHRO_MOTION_FIELD_FULLSCAN_REF1, SCHRO_MOTION_FIELD_LAST };
typedef enum { SCHRO_QUANTISER_ENGINE_SIMPLE, SCHRO_QUANTISER_ENGINE_RATE_DISTORTION, SCHRO_QUANTISER_ENGINE_LOSSLESS, SCHRO_QUANTISER_ENGINE_LOWDELAY, SCHRO_QUANTISER_ENGINE_CONSTANT_LAMBDA, SCHRO_QUANTISER_ENGINE_CONSTANT_ERROR } SchroQuantiserEngineEnum;
typedef enum { SCHRO_STATE_NEED_FRAME, SCHRO_STATE_HAVE_BUFFER, SCHRO_STATE_AGAIN, SCHRO_STATE_END_OF_STREAM } SchroStateEnum;
typedef enum { SCHRO_ENCODER_GOP_ADAPTIVE, SCHRO_ENCODER_GOP_INTRA_ONLY, SCHRO_ENCODER_GOP_BACKREF, SCHRO_ENCODER_GOP_CHAINED_BACKREF, SCHRO_ENCODER_GOP_BIREF, SCHRO_ENCODER_GOP_CHAINED_BIREF, } SchroEncoderGOPEnum;
typedef enum { SCHRO_ENCODER_RATE_CONTROL_CONSTANT_NOISE_THRESHOLD, SCHRO_ENCODER_RATE_CONTROL_CONSTANT_BITRATE, SCHRO_ENCODER_RATE_CONTROL_LOW_DELAY, SCHRO_ENCODER_RATE_CONTROL_LOSSLESS, SCHRO_ENCODER_RATE_CONTROL_CONSTANT_LAMBDA, SCHRO_ENCODER_RATE_CONTROL_CONSTANT_ERROR } SchroEncoderRateControlEnum;
typedef struct { char *name; SchroEncoderSettingTypeEnum type; double min; double max; double default_value; char **enum_list; } SchroEncoderSetting;
int (*SchroEngineIterateFunc) (SchroEncoder *encoder);
|
|
Returns : |
SchroVideoFormat* schro_encoder_get_video_format (SchroEncoder *encoder);
|
|
Returns : |
void schro_encoder_set_video_format (SchroEncoder *encoder, SchroVideoFormat *video_format);
|
|
|
void schro_encoder_push_frame (SchroEncoder *encoder, SchroFrame *frame);
|
|
|
void schro_encoder_copy_to_frame_buffer (SchroEncoder *encoder, SchroBuffer *buffer);
|
|
|
void schro_encoder_encode_access_unit_header (SchroEncoder *encoder, SchroPack *bits);
|
|
|
void schro_encoder_encode_parse_info (SchroPack *bits, int parse_code);
|
|
|
SchroBuffer* schro_encoder_pull (SchroEncoder *encoder, int *n_decodable_frames);
|
|
|
|
Returns : |
int schro_encoder_preference_get_range (SchroEncoder *encoder, SchroPrefEnum pref, int *min, int *max);
|
|
|
|
|
|
|
|
Returns : |
int schro_encoder_preference_get (SchroEncoder *encoder, SchroPrefEnum pref);
|
|
|
|
Returns : |
int schro_encoder_preference_set (SchroEncoder *encoder, SchroPrefEnum pref, int value);
|
|
|
|
|
|
Returns : |
void schro_encoder_analyse_picture (SchroEncoderFrame *frame);
|
void schro_encoder_calculate_subband_weights (SchroEncoder *encoder, double (perceptual_weightdouble) ());
|
|
|
void schro_encoder_calculate_test_info (SchroEncoderFrame *frame);
|
void schro_encoder_choose_quantisers (SchroEncoderFrame *frame);
|
void schro_encoder_clean_up_transform (SchroEncoderFrame *frame);
|
SchroBuffer* schro_encoder_encode_access_unit (SchroEncoder *encoder);
|
|
Returns : |
SchroBuffer* schro_encoder_encode_auxiliary_data (SchroEncoder *encoder, SchroAuxiliaryDataID id, void *data, int size);
|
|
|
|
|
|
|
|
Returns : |
SchroBuffer* schro_encoder_encode_end_of_stream (SchroEncoder *encoder);
|
|
Returns : |
void schro_encoder_encode_lowdelay_transform_data (SchroEncoderFrame *frame);
|
void schro_encoder_encode_picture (SchroEncoderFrame *frame);
|
void schro_encoder_encode_picture_all (SchroEncoderFrame *frame);
|
void schro_encoder_encode_picture_header (SchroEncoderFrame *frame);
|
void schro_encoder_encode_subband (SchroEncoderFrame *frame, int component, int index);
|
|
|
|
|
void schro_encoder_encode_subband_noarith (SchroEncoderFrame *frame, int component, int index);
|
|
|
|
|
int schro_encoder_engine_backref (SchroEncoder *encoder);
|
|
Returns : |
int schro_encoder_engine_backtest (SchroEncoder *encoder);
|
|
Returns : |
int schro_encoder_engine_intra_only (SchroEncoder *encoder);
engine for intra-only encoding.
|
|
Returns : |
int schro_encoder_engine_lossless (SchroEncoder *encoder);
|
|
Returns : |
int schro_encoder_engine_lowdelay (SchroEncoder *encoder);
|
|
Returns : |
int schro_encoder_engine_test_intra (SchroEncoder *encoder);
|
|
Returns : |
int schro_encoder_engine_tworef (SchroEncoder *encoder);
|
|
Returns : |
void schro_encoder_estimate_entropy (SchroEncoderFrame *frame);
|
void schro_encoder_frame_downsample (SchroEncoderFrame *frame);
|
void schro_encoder_frame_insert_buffer (SchroEncoderFrame *frame, SchroBuffer *buffer);
|
|
|
SchroEncoderFrame* schro_encoder_frame_new (SchroEncoder *encoder);
|
|
Returns : |
SchroFrame* schro_encoder_frame_queue_get (SchroEncoder *encoder, SchroPictureNumber frame_number);
|
|
|
|
Returns : |
void schro_encoder_frame_queue_remove (SchroEncoder *encoder, SchroPictureNumber frame_number);
|
|
|
void schro_encoder_insert_buffer (SchroEncoder *encoder, SchroBuffer *buffer);
|
|
|
void schro_encoder_output_push (SchroEncoder *encoder, SchroBuffer *buffer, int slot, int presentation_frame);
|
|
|
|
|
|
|
double schro_encoder_perceptual_weight_ccir959 (double cpd);
|
|
Returns : |
double schro_encoder_perceptual_weight_constant (double cpd);
|
|
Returns : |
double schro_encoder_perceptual_weight_moo (double cpd);
|
|
Returns : |
void schro_encoder_postanalyse_picture (SchroEncoderFrame *frame);
|
void schro_encoder_predict_picture (SchroEncoderFrame *frame);
|
int schro_encoder_push_ready (SchroEncoder *encoder);
|
|
Returns : |
void schro_encoder_recalculate_allocations (SchroEncoder *encoder);
|
void schro_encoder_reconstruct_picture (SchroEncoderFrame *frame);
|
SchroEncoderFrame* schro_encoder_reference_get (SchroEncoder *encoder, SchroPictureNumber frame_number);
|
|
|
|
Returns : |
void schro_encoder_set_default_subband_weights (SchroEncoder *encoder);
|
SchroStateEnum schro_encoder_wait (SchroEncoder *encoder);
|
|
Returns : |
const SchroEncoderSetting* schro_encoder_get_setting_info (int i);
|
|
Returns : |
void schro_encoder_init_error_tables (SchroEncoder *encoder);
|
void schro_encoder_phasecorr_estimation (SchroMotionEst *me);
|
double schro_encoder_setting_get_double (SchroEncoder *encoder, const char *name);
|
|
|
|
Returns : |
void schro_encoder_setting_set_double (SchroEncoder *encoder, const char *name, double d);
|
|
|
|
|