![]() |
![]() |
![]() |
Schroedinger Reference Manual | ![]() |
---|---|---|---|---|
SchroEncoder; SchroEncoderFrame; enum SchroEncoderFrameStateEnum; enum SchroEncoderPerceptualEnum; enum SchroPrefEnum; struct SchroEncoderSettings; enum SchroQuantiserEngineEnum; enum SchroStateEnum; 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);
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;
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 : |