![]() |
![]() |
![]() |
Schroedinger Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
SchroEncoder; SchroEncoderFrame; enum SchroEncoderFrameStateEnum; enum SchroEncoderPerceptualEnum; struct SchroEncoderSettings; enum SchroQuantiserEngineEnum; enum SchroStateEnum; enum SchroEncoderGOPEnum; enum SchroEncoderRateControlEnum; SchroEncoderSetting; enum SchroEncoderSettingTypeEnum; 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_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); 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_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); 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_ANALYSE = (1<<1), SCHRO_ENCODER_FRAME_STATE_HAVE_GOP = (1<<7), SCHRO_ENCODER_FRAME_STATE_HAVE_PARAMS = (1<<8), SCHRO_ENCODER_FRAME_STATE_PREDICT = (1<<2), SCHRO_ENCODER_FRAME_STATE_HAVE_REFS = (1<<10), SCHRO_ENCODER_FRAME_STATE_HAVE_QUANTS = (1<<11), 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_FREE = (1<<9) } SchroEncoderFrameStateEnum;
typedef enum { SCHRO_ENCODER_PERCEPTUAL_CONSTANT, SCHRO_ENCODER_PERCEPTUAL_CCIR959, SCHRO_ENCODER_PERCEPTUAL_MOO, SCHRO_ENCODER_PERCEPTUAL_MANOS_SAKRISON } SchroEncoderPerceptualEnum;
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; };
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;
typedef enum { SCHRO_ENCODER_SETTING_TYPE_BOOLEAN, SCHRO_ENCODER_SETTING_TYPE_INT, SCHRO_ENCODER_SETTING_TYPE_ENUM, SCHRO_ENCODER_SETTING_TYPE_DOUBLE, SCHRO_ENCODER_SETTING_TYPE_LAST } SchroEncoderSettingTypeEnum;
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_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 : |
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_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);
|
|
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 : |
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 : |