| Schroedinger Reference Manual | ||||
|---|---|---|---|---|
SchroEncoder;
SchroEncoderFrame;
enum SchroEncoderFrameStateEnum;
enum SchroEncoderPerceptualEnum;
enum SchroPrefEnum;
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_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_weight) (double));
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 ppd);
double schro_encoder_perceptual_weight_constant
(double ppd);
double schro_encoder_perceptual_weight_moo (double ppd);
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);
void schro_encoder_reference_add (SchroEncoder *encoder,
SchroEncoderFrame *encoder_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
} 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;
};
typedef enum {
SCHRO_QUANTISER_ENGINE_SIMPLE,
SCHRO_QUANTISER_ENGINE_RATE_DISTORTION,
SCHRO_QUANTISER_ENGINE_LOSSLESS,
SCHRO_QUANTISER_ENGINE_LOWDELAY,
SCHRO_QUANTISER_ENGINE_RATE_DISTORTION_2
} 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
} 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);
encoder : |
|
| Returns : |
SchroVideoFormat* schro_encoder_get_video_format (SchroEncoder *encoder);
encoder : |
|
| Returns : |
void schro_encoder_set_video_format (SchroEncoder *encoder, SchroVideoFormat *video_format);
encoder : |
|
video_format : |
void schro_encoder_push_frame (SchroEncoder *encoder, SchroFrame *frame);
encoder : |
|
frame : |
void schro_encoder_copy_to_frame_buffer (SchroEncoder *encoder, SchroBuffer *buffer);
encoder : |
|
buffer : |
void schro_encoder_encode_access_unit_header
(SchroEncoder *encoder,
SchroPack *bits);
encoder : |
|
bits : |
void schro_encoder_encode_parse_info (SchroPack *bits, int parse_code);
bits : |
|
parse_code : |
SchroBuffer* schro_encoder_pull (SchroEncoder *encoder, int *n_decodable_frames);
encoder : |
|
n_decodable_frames : |
|
| Returns : |
int schro_encoder_preference_get_range (SchroEncoder *encoder, SchroPrefEnum pref, int *min, int *max);
encoder : |
|
pref : |
|
min : |
|
max : |
|
| Returns : |
int schro_encoder_preference_get (SchroEncoder *encoder, SchroPrefEnum pref);
encoder : |
|
pref : |
|
| Returns : |
int schro_encoder_preference_set (SchroEncoder *encoder, SchroPrefEnum pref, int value);
encoder : |
|
pref : |
|
value : |
|
| Returns : |
void schro_encoder_analyse_picture (SchroEncoderFrame *frame);
frame : |
void schro_encoder_calculate_subband_weights
(SchroEncoder *encoder,
double (*perceptual_weight) (double));
encoder : |
|
perceptual_weight : |
void schro_encoder_calculate_test_info (SchroEncoderFrame *frame);
frame : |
void schro_encoder_choose_quantisers (SchroEncoderFrame *frame);
frame : |
void schro_encoder_clean_up_transform (SchroEncoderFrame *frame);
frame : |
SchroBuffer* schro_encoder_encode_access_unit (SchroEncoder *encoder);
encoder : |
|
| Returns : |
SchroBuffer* schro_encoder_encode_auxiliary_data (SchroEncoder *encoder, SchroAuxiliaryDataID id, void *data, int size);
encoder : |
|
id : |
|
data : |
|
size : |
|
| Returns : |
SchroBuffer* schro_encoder_encode_end_of_stream (SchroEncoder *encoder);
encoder : |
|
| Returns : |
void schro_encoder_encode_lowdelay_transform_data
(SchroEncoderFrame *frame);
frame : |
void schro_encoder_encode_picture (SchroEncoderFrame *frame);
frame : |
void schro_encoder_encode_picture_all (SchroEncoderFrame *frame);
frame : |
void schro_encoder_encode_picture_header (SchroEncoderFrame *frame);
frame : |
void schro_encoder_encode_subband (SchroEncoderFrame *frame, int component, int index);
frame : |
|
component : |
|
index : |
void schro_encoder_encode_subband_noarith
(SchroEncoderFrame *frame,
int component,
int index);
frame : |
|
component : |
|
index : |
int schro_encoder_engine_backref (SchroEncoder *encoder);
encoder : |
|
| Returns : |
int schro_encoder_engine_backtest (SchroEncoder *encoder);
encoder : |
|
| Returns : |
int schro_encoder_engine_intra_only (SchroEncoder *encoder);
encoder : |
|
| Returns : |
int schro_encoder_engine_lossless (SchroEncoder *encoder);
encoder : |
|
| Returns : |
int schro_encoder_engine_lowdelay (SchroEncoder *encoder);
encoder : |
|
| Returns : |
int schro_encoder_engine_test_intra (SchroEncoder *encoder);
encoder : |
|
| Returns : |
int schro_encoder_engine_tworef (SchroEncoder *encoder);
encoder : |
|
| Returns : |
void schro_encoder_estimate_entropy (SchroEncoderFrame *frame);
frame : |
void schro_encoder_frame_downsample (SchroEncoderFrame *frame);
frame : |
void schro_encoder_frame_insert_buffer (SchroEncoderFrame *frame, SchroBuffer *buffer);
frame : |
|
buffer : |
SchroEncoderFrame* schro_encoder_frame_new (SchroEncoder *encoder);
encoder : |
|
| Returns : |
SchroFrame* schro_encoder_frame_queue_get (SchroEncoder *encoder, SchroPictureNumber frame_number);
encoder : |
|
frame_number : |
|
| Returns : |
void schro_encoder_frame_queue_remove (SchroEncoder *encoder, SchroPictureNumber frame_number);
encoder : |
|
frame_number : |
void schro_encoder_insert_buffer (SchroEncoder *encoder, SchroBuffer *buffer);
encoder : |
|
buffer : |
void schro_encoder_output_push (SchroEncoder *encoder, SchroBuffer *buffer, int slot, int presentation_frame);
encoder : |
|
buffer : |
|
slot : |
|
presentation_frame : |
double schro_encoder_perceptual_weight_ccir959
(double ppd);
ppd : |
|
| Returns : |
double schro_encoder_perceptual_weight_constant
(double ppd);
ppd : |
|
| Returns : |
double schro_encoder_perceptual_weight_moo (double ppd);
ppd : |
|
| Returns : |
void schro_encoder_postanalyse_picture (SchroEncoderFrame *frame);
frame : |
void schro_encoder_predict_picture (SchroEncoderFrame *frame);
frame : |
int schro_encoder_push_ready (SchroEncoder *encoder);
encoder : |
|
| Returns : |
void schro_encoder_recalculate_allocations
(SchroEncoder *encoder);
encoder : |
void schro_encoder_reconstruct_picture (SchroEncoderFrame *frame);
frame : |
void schro_encoder_reference_add (SchroEncoder *encoder, SchroEncoderFrame *encoder_frame);
encoder : |
|
encoder_frame : |
SchroEncoderFrame* schro_encoder_reference_get (SchroEncoder *encoder, SchroPictureNumber frame_number);
encoder : |
|
frame_number : |
|
| Returns : |
void schro_encoder_set_default_subband_weights
(SchroEncoder *encoder);
encoder : |
SchroStateEnum schro_encoder_wait (SchroEncoder *encoder);
encoder : |
|
| Returns : |
const SchroEncoderSetting* schro_encoder_get_setting_info (int i);
i : |
|
| Returns : |
void schro_encoder_init_error_tables (SchroEncoder *encoder);
encoder : |
void schro_encoder_phasecorr_estimation (SchroMotionEst *me);
me : |
double schro_encoder_setting_get_double (SchroEncoder *encoder, const char *name);
encoder : |
|
name : |
|
| Returns : |
void schro_encoder_setting_set_double (SchroEncoder *encoder, const char *name, double d);
encoder : |
|
name : |
|
d : |