| Schroedinger Reference Manual | ||||
|---|---|---|---|---|
SchroEncoder;
SchroEncoderParams;
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_backref2 (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_phasecorr_prediction (SchroEncoderFrame *frame);
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);
void schro_encoder_use_perceptual_weighting
(SchroEncoder *encoder,
SchroEncoderPerceptualEnum type,
double dist);
SchroStateEnum schro_encoder_wait (SchroEncoder *encoder);
typedef enum {
SCHRO_ENCODER_FRAME_STATE_NEW,
SCHRO_ENCODER_FRAME_STATE_INITED,
SCHRO_ENCODER_FRAME_STATE_ANALYSE,
SCHRO_ENCODER_FRAME_STATE_PREDICT,
SCHRO_ENCODER_FRAME_STATE_ENCODING,
SCHRO_ENCODER_FRAME_STATE_RECONSTRUCT,
SCHRO_ENCODER_FRAME_STATE_POSTANALYSE,
SCHRO_ENCODER_FRAME_STATE_DONE,
SCHRO_ENCODER_FRAME_STATE_ENGINE_1,
SCHRO_ENCODER_FRAME_STATE_FREE
} 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);
|
|
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_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);
|
|
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_backref2 (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 : |
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 ppd);
|
|
Returns : |
double schro_encoder_perceptual_weight_constant
(double ppd);
|
|
Returns : |
double schro_encoder_perceptual_weight_moo (double ppd);
|
|
Returns : |
void schro_encoder_phasecorr_prediction (SchroEncoderFrame *frame);
|
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);
|
void schro_encoder_reference_add (SchroEncoder *encoder, SchroEncoderFrame *encoder_frame);
|
|
|
SchroEncoderFrame* schro_encoder_reference_get (SchroEncoder *encoder, SchroPictureNumber frame_number);
|
|
|
|
Returns : |
void schro_encoder_set_default_subband_weights
(SchroEncoder *encoder);
|
void schro_encoder_use_perceptual_weighting
(SchroEncoder *encoder,
SchroEncoderPerceptualEnum type,
double dist);
|
|
|
|
|
SchroStateEnum schro_encoder_wait (SchroEncoder *encoder);
|
|
Returns : |