![]() |
![]() |
![]() |
Schroedinger Reference Manual | ![]() |
---|---|---|---|---|
SchroEncoder; SchroEncoderParams; SchroEncoderTask; SchroPredictionVector; SchroPredictionList; enum SchroPrefEnum; struct SchroEncoderSettings; 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); int schro_encoder_iterate (SchroEncoder *encoder); void schro_encoder_copy_to_frame_buffer (SchroEncoder *encoder, SchroBuffer *buffer); void schro_encoder_encode_access_unit_header (SchroEncoder *encoder, SchroBits *bits); void schro_encoder_encode_parse_info (SchroBits *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);
typedef struct { SchroAsync *async; SchroPictureNumber next_frame_number; SchroQueue *frame_queue; //int frame_queue_index; SchroQueue *reference_queue; //SchroEncoderFrame *reference_frames[SCHRO_MAX_REFERENCE_FRAMES]; //int n_reference_frames; int need_rap; int version_major; int version_minor; int profile; int level; int video_format_index; SchroVideoFormat video_format; SchroEncoderParams encoder_params; int end_of_stream; int end_of_stream_handled; int end_of_stream_pulled; int completed_eos; int prev_offset; SchroPictureNumber au_frame; int au_distance; int next_slot; int output_slot; SchroBuffer *inserted_buffer; int queue_depth; int queue_changed; #if 0 double pan_x, pan_y; double mag_x, mag_y; double skew_x, skew_y; #endif int engine_init; int engine; int prefs[SCHRO_PREF_LAST]; /* engine specific stuff */ int last_ref; int ref_distance; int next_ref; int mid1_ref; int mid2_ref; } SchroEncoder;
typedef struct { int state; int completed; SchroEncoder *encoder; SchroParams params; SchroEncoderFrame *encoder_frame; int outbuffer_size; SchroBuffer *outbuffer; SchroBits *bits; SchroFrame *encode_frame; SchroFrame *iwt_frame; SchroFrame *prediction_frame; int16_t *tmpbuf; int16_t *tmpbuf2; int subband_size; SchroBuffer *subband_buffer; SchroSubband subbands[1+SCHRO_MAX_TRANSFORM_DEPTH*3]; SchroEncoderFrame *ref_frame0; SchroEncoderFrame *ref_frame1; int16_t *quant_data; SchroMotionField *motion_field; //SchroPredictionList *predict_lists; SchroMotionField *motion_fields[32]; int slot; int is_ref; SchroPictureNumber frame_number; SchroPictureNumber reference_frame_number[2]; int n_retire; SchroPictureNumber retire[SCHRO_MAX_REFERENCE_FRAMES]; int presentation_frame; /* engine specific stuff */ /* intra_only */ /* backref */ int stats_dc; int stats_global; int stats_motion; int estimated_entropy; } SchroEncoderTask;
typedef struct { unsigned int pred_mode : 2; unsigned int using_global : 1; unsigned int split : 2; unsigned int common : 1; uint8_t dc[3]; int16_t dx; int16_t dy; int metric; int cost; } SchroPredictionVector;
typedef struct { SchroPredictionVector vectors[SCHRO_PREDICTION_LIST_LENGTH]; } SchroPredictionList;
typedef enum { SCHRO_PREF_ENGINE, SCHRO_PREF_REF_DISTANCE, SCHRO_PREF_TRANSFORM_DEPTH, SCHRO_PREF_INTRA_WAVELET, SCHRO_PREF_INTER_WAVELET, SCHRO_PREF_QUANT_BASE, SCHRO_PREF_QUANT_OFFSET_NONREF, SCHRO_PREF_QUANT_OFFSET_SUBBAND, SCHRO_PREF_QUANT_DC, SCHRO_PREF_QUANT_DC_OFFSET_NONREF, SCHRO_PREF_LAST } SchroPrefEnum;
struct SchroEncoderSettings { int transform_depth; int wavelet_filter_index; #if 0 /* stuff we don't handle yet */ int profile; int level; int xbsep_luma; int ybsep_luma; int xblen_luma; int yblen_luma; #endif };
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, SchroBits *bits);
|
|
|
void schro_encoder_encode_parse_info (SchroBits *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 : |