schro-stdint.h   schro-stdint.h 
#ifndef _SCHROEDINGER_SCHROEDINGER_SCHRO_STDINT_H #ifndef _SCHROEDINGER_SCHROEDINGER_SCHRO_STDINT_H
#define _SCHROEDINGER_SCHROEDINGER_SCHRO_STDINT_H 1 #define _SCHROEDINGER_SCHROEDINGER_SCHRO_STDINT_H 1
#ifndef _GENERATED_STDINT_H #ifndef _GENERATED_STDINT_H
#define _GENERATED_STDINT_H "schroedinger 1.0.1" #define _GENERATED_STDINT_H "schroedinger 1.0.2"
/* generated using gnu compiler gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revi sion 150839] */ /* generated using gnu compiler gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revi sion 150839] */
#define _STDINT_HAVE_STDINT_H 1 #define _STDINT_HAVE_STDINT_H 1
/* ................... shortcircuit part ........................... */
#if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H
#include <stdint.h> #include <stdint.h>
#else
#include <stddef.h>
/* .................... configured part ............................ */
/* whether we have a C99 compatible stdint header file */
/* #undef _STDINT_HEADER_INTPTR */
/* whether we have a C96 compatible inttypes header file */
/* #undef _STDINT_HEADER_UINT32 */
/* whether we have a BSD compatible inet types header */
/* #undef _STDINT_HEADER_U_INT32 */
/* which 64bit typedef has been found */
/* #undef _STDINT_HAVE_UINT64_T */
/* #undef _STDINT_HAVE_U_INT64_T */
/* which type model has been detected */
/* #undef _STDINT_CHAR_MODEL // skipped */
/* #undef _STDINT_LONG_MODEL // skipped */
/* whether int_least types were detected */
/* #undef _STDINT_HAVE_INT_LEAST32_T */
/* whether int_fast types were detected */
/* #undef _STDINT_HAVE_INT_FAST32_T */
/* whether intmax_t type was detected */
/* #undef _STDINT_HAVE_INTMAX_T */
/* .................... detections part ............................ */
/* whether we need to define bitspecific types from compiler base types */
#ifndef _STDINT_HEADER_INTPTR
#ifndef _STDINT_HEADER_UINT32
#ifndef _STDINT_HEADER_U_INT32
#define _STDINT_NEED_INT_MODEL_T
#else
#define _STDINT_HAVE_U_INT_TYPES
#endif
#endif
#endif
#ifdef _STDINT_HAVE_U_INT_TYPES
#undef _STDINT_NEED_INT_MODEL_T
#endif
#ifdef _STDINT_CHAR_MODEL
#if _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124
#ifndef _STDINT_BYTE_MODEL
#define _STDINT_BYTE_MODEL 12
#endif
#endif
#endif
#ifndef _STDINT_HAVE_INT_LEAST32_T
#define _STDINT_NEED_INT_LEAST_T
#endif
#ifndef _STDINT_HAVE_INT_FAST32_T
#define _STDINT_NEED_INT_FAST_T
#endif
#ifndef _STDINT_HEADER_INTPTR
#define _STDINT_NEED_INTPTR_T
#ifndef _STDINT_HAVE_INTMAX_T
#define _STDINT_NEED_INTMAX_T
#endif
#endif
/* .................... definition part ............................ */
/* some system headers have good uint64_t */
#ifndef _HAVE_UINT64_T
#if defined _STDINT_HAVE_UINT64_T || defined HAVE_UINT64_T
#define _HAVE_UINT64_T
#elif defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T
#define _HAVE_UINT64_T
typedef u_int64_t uint64_t;
#endif
#endif
#ifndef _HAVE_UINT64_T
/* .. here are some common heuristics using compiler runtime specifics */
#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L
#define _HAVE_UINT64_T
typedef long long int64_t;
typedef unsigned long long uint64_t;
#elif !defined __STRICT_ANSI__
#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
#define _HAVE_UINT64_T
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__
/* note: all ELF-systems seem to have loff-support which needs 64-bit */
#if !defined _NO_LONGLONG
#define _HAVE_UINT64_T
typedef long long int64_t;
typedef unsigned long long uint64_t;
#endif
#elif defined __alpha || (defined __mips && defined _ABIN32)
#if !defined _NO_LONGLONG
typedef long int64_t;
typedef unsigned long uint64_t;
#endif
/* compiler/cpu type to define int64_t */
#endif
#endif
#endif
#if defined _STDINT_HAVE_U_INT_TYPES
/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types
*/
typedef u_int8_t uint8_t;
typedef u_int16_t uint16_t;
typedef u_int32_t uint32_t;
/* glibc compatibility */
#ifndef __int8_t_defined
#define __int8_t_defined
#endif
#endif
#ifdef _STDINT_NEED_INT_MODEL_T
/* we must guess all the basic types. Apart from byte-adressable system, */
/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */
/* (btw, those nibble-addressable systems are way off, or so we assume) */
#if defined _STDINT_BYTE_MODEL
#if _STDINT_LONG_MODEL+0 == 242
/* 2:4:2 = IP16 = a normal 16-bit system */
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
#ifndef __int8_t_defined
#define __int8_t_defined
typedef char int8_t;
typedef short int16_t;
typedef long int32_t;
#endif
#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444
/* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */
/* 4:4:4 = ILP32 = a normal 32-bit system */
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
#ifndef __int8_t_defined
#define __int8_t_defined
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
#endif
#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488
/* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */
/* 4:8:8 = LP64 = a normal 64-bit system */
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
#ifndef __int8_t_defined
#define __int8_t_defined
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
#endif
/* this system has a "long" of 64bit */
#ifndef _HAVE_UINT64_T
#define _HAVE_UINT64_T
typedef unsigned long uint64_t;
typedef long int64_t;
#endif
#elif _STDINT_LONG_MODEL+0 == 448
/* LLP64 a 64-bit system derived from a 32-bit system */
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
#ifndef __int8_t_defined
#define __int8_t_defined
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
#endif
/* assuming the system has a "long long" */
#ifndef _HAVE_UINT64_T
#define _HAVE_UINT64_T
typedef unsigned long long uint64_t;
typedef long long int64_t;
#endif
#else
#define _STDINT_NO_INT32_T
#endif
#else
#define _STDINT_NO_INT8_T
#define _STDINT_NO_INT32_T
#endif
#endif
/*
* quote from SunOS-5.8 sys/inttypes.h:
* Use at your own risk. As of February 1996, the committee is squarely
* behind the fixed sized types; the "least" and "fast" types are still bei
ng
* discussed. The probability that the "fast" types may be removed before
* the standard is finalized is high enough that they are not currently
* implemented.
*/
#if defined _STDINT_NEED_INT_LEAST_T
typedef int8_t int_least8_t;
typedef int16_t int_least16_t;
typedef int32_t int_least32_t;
#ifdef _HAVE_UINT64_T
typedef int64_t int_least64_t;
#endif
typedef uint8_t uint_least8_t;
typedef uint16_t uint_least16_t;
typedef uint32_t uint_least32_t;
#ifdef _HAVE_UINT64_T
typedef uint64_t uint_least64_t;
#endif
/* least types */
#endif
#if defined _STDINT_NEED_INT_FAST_T
typedef int8_t int_fast8_t;
typedef int int_fast16_t;
typedef int32_t int_fast32_t;
#ifdef _HAVE_UINT64_T
typedef int64_t int_fast64_t;
#endif
typedef uint8_t uint_fast8_t;
typedef unsigned uint_fast16_t;
typedef uint32_t uint_fast32_t;
#ifdef _HAVE_UINT64_T
typedef uint64_t uint_fast64_t;
#endif
/* fast types */
#endif
#ifdef _STDINT_NEED_INTMAX_T
#ifdef _HAVE_UINT64_T
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
#else
typedef long intmax_t;
typedef unsigned long uintmax_t;
#endif
#endif
#ifdef _STDINT_NEED_INTPTR_T
#ifndef __intptr_t_defined
#define __intptr_t_defined
/* we encourage using "long" to store pointer values, never use "int" ! */
#if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484
typedef unsinged int uintptr_t;
typedef int intptr_t;
#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444
typedef unsigned long uintptr_t;
typedef long intptr_t;
#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T
typedef uint64_t uintptr_t;
typedef int64_t intptr_t;
#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP6
4 */
typedef unsigned long uintptr_t;
typedef long intptr_t;
#endif
#endif
#endif
/* shortcircuit*/
#endif
/* once */
#endif #endif
#endif #endif
 End of changes. 3 change blocks. 
279 lines changed or deleted 1 lines changed or added


 schrobitstream.h   schrobitstream.h 
skipping to change at line 81 skipping to change at line 81
SCHRO_VIDEO_FORMAT_DC2K_24, SCHRO_VIDEO_FORMAT_DC2K_24,
SCHRO_VIDEO_FORMAT_DC4K_24 SCHRO_VIDEO_FORMAT_DC4K_24
} SchroVideoFormatEnum; } SchroVideoFormatEnum;
typedef enum _SchroChromaFormat { typedef enum _SchroChromaFormat {
SCHRO_CHROMA_444 = 0, SCHRO_CHROMA_444 = 0,
SCHRO_CHROMA_422, SCHRO_CHROMA_422,
SCHRO_CHROMA_420 SCHRO_CHROMA_420
} SchroChromaFormat; } SchroChromaFormat;
#define SCHRO_CHROMA_FORMAT_H_SHIFT(format) (((format) == SCHRO_CHROMA_444)
?0:1)
#define SCHRO_CHROMA_FORMAT_V_SHIFT(format) (((format) == SCHRO_CHROMA_420)
?1:0)
typedef enum _SchroSignalRange { typedef enum _SchroSignalRange {
SCHRO_SIGNAL_RANGE_CUSTOM = 0, SCHRO_SIGNAL_RANGE_CUSTOM = 0,
SCHRO_SIGNAL_RANGE_8BIT_FULL = 1, SCHRO_SIGNAL_RANGE_8BIT_FULL = 1,
SCHRO_SIGNAL_RANGE_8BIT_VIDEO = 2, SCHRO_SIGNAL_RANGE_8BIT_VIDEO = 2,
SCHRO_SIGNAL_RANGE_10BIT_VIDEO = 3, SCHRO_SIGNAL_RANGE_10BIT_VIDEO = 3,
SCHRO_SIGNAL_RANGE_12BIT_VIDEO = 4 SCHRO_SIGNAL_RANGE_12BIT_VIDEO = 4
} SchroSignalRange; } SchroSignalRange;
typedef enum _SchroColourSpec { typedef enum _SchroColourSpec {
SCHRO_COLOUR_SPEC_CUSTOM = 0, SCHRO_COLOUR_SPEC_CUSTOM = 0,
 End of changes. 1 change blocks. 
0 lines changed or deleted 5 lines changed or added


 schrodebug.h   schrodebug.h 
skipping to change at line 32 skipping to change at line 32
{ {
SCHRO_DUMP_SUBBAND_CURVE, SCHRO_DUMP_SUBBAND_CURVE,
SCHRO_DUMP_SUBBAND_EST, SCHRO_DUMP_SUBBAND_EST,
SCHRO_DUMP_PICTURE, SCHRO_DUMP_PICTURE,
SCHRO_DUMP_PSNR, SCHRO_DUMP_PSNR,
SCHRO_DUMP_SSIM, SCHRO_DUMP_SSIM,
SCHRO_DUMP_LAMBDA_CURVE, SCHRO_DUMP_LAMBDA_CURVE,
SCHRO_DUMP_HIST_TEST, SCHRO_DUMP_HIST_TEST,
SCHRO_DUMP_SCENE_CHANGE, SCHRO_DUMP_SCENE_CHANGE,
SCHRO_DUMP_PHASE_CORR, SCHRO_DUMP_PHASE_CORR,
SCHRO_DUMP_MOTIONEST,
SCHRO_DUMP_LAST SCHRO_DUMP_LAST
}; };
#endif #endif
#define SCHRO_ERROR(...) \ #define SCHRO_ERROR(...) \
SCHRO_DEBUG_LEVEL(SCHRO_LEVEL_ERROR, __VA_ARGS__) SCHRO_DEBUG_LEVEL(SCHRO_LEVEL_ERROR, __VA_ARGS__)
#define SCHRO_WARNING(...) \ #define SCHRO_WARNING(...) \
SCHRO_DEBUG_LEVEL(SCHRO_LEVEL_WARNING, __VA_ARGS__) SCHRO_DEBUG_LEVEL(SCHRO_LEVEL_WARNING, __VA_ARGS__)
#define SCHRO_INFO(...) \ #define SCHRO_INFO(...) \
SCHRO_DEBUG_LEVEL(SCHRO_LEVEL_INFO, __VA_ARGS__) SCHRO_DEBUG_LEVEL(SCHRO_LEVEL_INFO, __VA_ARGS__)
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 schrodecoder.h   schrodecoder.h 
skipping to change at line 45 skipping to change at line 45
SchroBuffer *input_buffer; SchroBuffer *input_buffer;
SchroPictureNumber next_frame_number; SchroPictureNumber next_frame_number;
SchroPicture *picture; SchroPicture *picture;
int major_version; int major_version;
int minor_version; int minor_version;
int profile; int profile;
int level; int level;
schro_bool interlaced_coding;
SchroVideoFormat video_format; SchroVideoFormat video_format;
SchroQueue *frame_queue; SchroQueue *frame_queue;
SchroQueue *picture_queue; SchroQueue *picture_queue;
int queue_depth; int queue_depth;
int end_of_stream; int end_of_stream;
SchroPictureNumber earliest_frame; SchroPictureNumber earliest_frame;
 End of changes. 1 change blocks. 
1 lines changed or deleted 0 lines changed or added


 schrodomain.h   schrodomain.h 
#ifndef _SCHRO_DOMAIN_H_ #ifndef _SCHRO_DOMAIN_H_
#define _SCHRO_DOMAIN_H_ #define _SCHRO_DOMAIN_H_
#ifdef HAVE_PTHREAD
#include <pthread.h> #include <pthread.h>
#endif
typedef int SchroExecDomain; typedef int SchroExecDomain;
typedef struct _SchroMemoryDomain SchroMemoryDomain; typedef struct _SchroMemoryDomain SchroMemoryDomain;
#ifdef SCHRO_ENABLE_UNSTABLE_API #ifdef SCHRO_ENABLE_UNSTABLE_API
#define SCHRO_MEMORY_DOMAIN_SLOTS 1000 #define SCHRO_MEMORY_DOMAIN_SLOTS 1000
struct _SchroMemoryDomain { struct _SchroMemoryDomain {
#ifdef HAVE_PTHREAD
pthread_mutex_t mutex; pthread_mutex_t mutex;
#else
void * mutex;
#endif
unsigned int flags; unsigned int flags;
void *(*alloc) (int size); void *(*alloc) (int size);
void *(*alloc_2d) (int depth, int width, int height); void *(*alloc_2d) (int depth, int width, int height);
void (*free) (void *ptr, int size); void (*free) (void *ptr, int size);
struct { struct {
unsigned int flags; unsigned int flags;
void *ptr; void *ptr;
 End of changes. 4 change blocks. 
0 lines changed or deleted 6 lines changed or added


 schroencoder.h   schroencoder.h 
skipping to change at line 64 skipping to change at line 64
SCHRO_ENCODER_FRAME_STATE_DONE = (1<<6), SCHRO_ENCODER_FRAME_STATE_DONE = (1<<6),
SCHRO_ENCODER_FRAME_STATE_HAVE_GOP = (1<<7), SCHRO_ENCODER_FRAME_STATE_HAVE_GOP = (1<<7),
SCHRO_ENCODER_FRAME_STATE_HAVE_PARAMS = (1<<8), SCHRO_ENCODER_FRAME_STATE_HAVE_PARAMS = (1<<8),
SCHRO_ENCODER_FRAME_STATE_FREE = (1<<9), SCHRO_ENCODER_FRAME_STATE_FREE = (1<<9),
SCHRO_ENCODER_FRAME_STATE_HAVE_REFS = (1<<10) SCHRO_ENCODER_FRAME_STATE_HAVE_REFS = (1<<10)
} SchroEncoderFrameStateEnum; } SchroEncoderFrameStateEnum;
typedef enum { typedef enum {
SCHRO_ENCODER_PERCEPTUAL_CONSTANT, SCHRO_ENCODER_PERCEPTUAL_CONSTANT,
SCHRO_ENCODER_PERCEPTUAL_CCIR959, SCHRO_ENCODER_PERCEPTUAL_CCIR959,
SCHRO_ENCODER_PERCEPTUAL_MOO SCHRO_ENCODER_PERCEPTUAL_MOO,
SCHRO_ENCODER_PERCEPTUAL_MANOS_SAKRISON
} SchroEncoderPerceptualEnum; } SchroEncoderPerceptualEnum;
typedef enum { typedef enum {
SCHRO_ENCODER_RATE_CONTROL_CONSTANT_NOISE_THRESHOLD, SCHRO_ENCODER_RATE_CONTROL_CONSTANT_NOISE_THRESHOLD,
SCHRO_ENCODER_RATE_CONTROL_CONSTANT_BITRATE, SCHRO_ENCODER_RATE_CONTROL_CONSTANT_BITRATE,
SCHRO_ENCODER_RATE_CONTROL_LOW_DELAY, SCHRO_ENCODER_RATE_CONTROL_LOW_DELAY,
SCHRO_ENCODER_RATE_CONTROL_LOSSLESS SCHRO_ENCODER_RATE_CONTROL_LOSSLESS,
SCHRO_ENCODER_RATE_CONTROL_CONSTANT_LAMBDA,
SCHRO_ENCODER_RATE_CONTROL_CONSTANT_ERROR
} SchroEncoderRateControlEnum; } SchroEncoderRateControlEnum;
typedef enum { typedef enum {
SCHRO_ENCODER_GOP_ADAPTIVE, SCHRO_ENCODER_GOP_ADAPTIVE,
SCHRO_ENCODER_GOP_INTRA_ONLY, SCHRO_ENCODER_GOP_INTRA_ONLY,
SCHRO_ENCODER_GOP_BACKREF, SCHRO_ENCODER_GOP_BACKREF,
SCHRO_ENCODER_GOP_CHAINED_BACKREF, SCHRO_ENCODER_GOP_CHAINED_BACKREF,
SCHRO_ENCODER_GOP_BIREF, SCHRO_ENCODER_GOP_BIREF,
SCHRO_ENCODER_GOP_CHAINED_BIREF, SCHRO_ENCODER_GOP_CHAINED_BIREF,
} SchroEncoderGOPEnum; } SchroEncoderGOPEnum;
skipping to change at line 186 skipping to change at line 189
double average_luma; double average_luma;
int allocated_residual_bits; int allocated_residual_bits;
int allocated_mc_bits; int allocated_mc_bits;
double base_lambda; double base_lambda;
int estimated_residual_bits; int estimated_residual_bits;
int estimated_mc_bits; int estimated_mc_bits;
int actual_residual_bits; int actual_residual_bits;
int actual_mc_bits; int actual_mc_bits;
int mc_error; double mc_error;
double mean_squared_error_luma; double mean_squared_error_luma;
double mean_squared_error_chroma; double mean_squared_error_chroma;
double estimated_arith_context_ratio;
double badblock_ratio;
double hist_slope;
}; };
struct _SchroEncoder { struct _SchroEncoder {
/*< private >*/ /*< private >*/
SchroAsync *async; SchroAsync *async;
SchroPictureNumber next_frame_number; SchroPictureNumber next_frame_number;
SchroQueue *frame_queue; SchroQueue *frame_queue;
SchroQueue *reference_queue; SchroEncoderFrame *reference_pictures[SCHRO_LIMIT_REFERENCE_FRAMES];
int need_rap; int need_rap;
SchroVideoFormat video_format; SchroVideoFormat video_format;
int version_major; int version_major;
int version_minor; int version_minor;
/* configuration */ /* configuration */
int rate_control; int rate_control;
int bitrate; int bitrate;
skipping to change at line 256 skipping to change at line 264
double magic_chroma_lambda_scale; double magic_chroma_lambda_scale;
double magic_nonref_lambda_scale; double magic_nonref_lambda_scale;
double magic_allocation_scale; double magic_allocation_scale;
double magic_keyframe_weight; double magic_keyframe_weight;
double magic_scene_change_threshold; double magic_scene_change_threshold;
double magic_inter_p_weight; double magic_inter_p_weight;
double magic_inter_b_weight; double magic_inter_b_weight;
double magic_mc_bailout_limit; double magic_mc_bailout_limit;
double magic_bailout_weight; double magic_bailout_weight;
double magic_error_power; double magic_error_power;
double magic_mc_lambda;
double magic_subgroup_length;
double magic_lambda;
double magic_badblock_multiplier_nonref;
double magic_badblock_multiplier_ref;
/* other */ /* other */
int end_of_stream; int end_of_stream;
int end_of_stream_handled; int end_of_stream_handled;
int end_of_stream_pulled; int end_of_stream_pulled;
int completed_eos; int completed_eos;
int prev_offset; int prev_offset;
SchroPictureNumber au_frame; SchroPictureNumber au_frame;
skipping to change at line 285 skipping to change at line 298
int quantiser_engine; int quantiser_engine;
double start_time; double start_time;
#if 0 #if 0
int prefs[SCHRO_PREF_LAST]; int prefs[SCHRO_PREF_LAST];
#endif #endif
/* internal stuff */ /* internal stuff */
double pixels_per_degree_horiz; double cycles_per_degree_horiz;
double pixels_per_degree_vert; double cycles_per_degree_vert;
double pixels_per_degree_diag;
double subband_weights[SCHRO_N_WAVELETS][SCHRO_LIMIT_TRANSFORM_DEPTH][SCH RO_LIMIT_SUBBANDS]; double subband_weights[SCHRO_N_WAVELETS][SCHRO_LIMIT_TRANSFORM_DEPTH][SCH RO_LIMIT_SUBBANDS];
SchroHistogramTable intra_hist_tables[60]; SchroHistogramTable intra_hist_tables[60];
int buffer_size; int buffer_size;
int buffer_level; int buffer_level;
int bits_per_picture; int bits_per_picture;
/* statistics */ /* statistics */
double average_arith_context_ratio; double average_arith_context_ratio_intra;
double average_arith_context_ratio_inter;
/* engine specific stuff */ /* engine specific stuff */
int gop_picture; int gop_picture;
int intra_ref; int intra_ref;
int last_ref; int last_ref;
int last_ref2; int last_ref2;
//int next_ref; //int next_ref;
//int mid1_ref; //int mid1_ref;
skipping to change at line 410 skipping to change at line 423
const SchroEncoderSetting *schro_encoder_get_setting_info (int i); const SchroEncoderSetting *schro_encoder_get_setting_info (int i);
void schro_encoder_setting_set_double (SchroEncoder *encoder, const char *n ame, void schro_encoder_setting_set_double (SchroEncoder *encoder, const char *n ame,
double d); double d);
double schro_encoder_setting_get_double (SchroEncoder *encoder, const char *name); double schro_encoder_setting_get_double (SchroEncoder *encoder, const char *name);
#ifdef SCHRO_ENABLE_UNSTABLE_API #ifdef SCHRO_ENABLE_UNSTABLE_API
void schro_encoder_set_default_subband_weights (SchroEncoder *encoder); void schro_encoder_set_default_subband_weights (SchroEncoder *encoder);
void schro_encoder_calculate_subband_weights (SchroEncoder *encoder, void schro_encoder_calculate_subband_weights (SchroEncoder *encoder,
double (*perceptual_weight)(double)); double (*perceptual_weight)(double));
double schro_encoder_perceptual_weight_constant (double ppd); double schro_encoder_perceptual_weight_constant (double cpd);
double schro_encoder_perceptual_weight_ccir959 (double ppd); double schro_encoder_perceptual_weight_ccir959 (double cpd);
double schro_encoder_perceptual_weight_moo (double ppd); double schro_encoder_perceptual_weight_moo (double cpd);
double schro_encoder_perceptual_weight_manos_sakrison (double cpd);
void schro_encoder_init_subbands (SchroEncoderFrame *frame); void schro_encoder_init_subbands (SchroEncoderFrame *frame);
void schro_encoder_encode_subband (SchroEncoderFrame *frame, int component, int index); void schro_encoder_encode_subband (SchroEncoderFrame *frame, int component, int index);
void schro_encoder_encode_subband_noarith (SchroEncoderFrame *frame, int co mponent, int index); void schro_encoder_encode_subband_noarith (SchroEncoderFrame *frame, int co mponent, int index);
void schro_encoder_analyse_picture (SchroEncoderFrame *frame); void schro_encoder_analyse_picture (SchroEncoderFrame *frame);
void schro_encoder_predict_picture (SchroEncoderFrame *frame); void schro_encoder_predict_picture (SchroEncoderFrame *frame);
void schro_encoder_encode_picture (SchroEncoderFrame *frame); void schro_encoder_encode_picture (SchroEncoderFrame *frame);
void schro_encoder_reconstruct_picture (SchroEncoderFrame *frame); void schro_encoder_reconstruct_picture (SchroEncoderFrame *frame);
void schro_encoder_postanalyse_picture (SchroEncoderFrame *frame); void schro_encoder_postanalyse_picture (SchroEncoderFrame *frame);
void schro_encoder_encode_picture_all (SchroEncoderFrame *frame); void schro_encoder_encode_picture_all (SchroEncoderFrame *frame);
SchroFrame * schro_encoder_frame_queue_get (SchroEncoder *encoder, SchroFrame * schro_encoder_frame_queue_get (SchroEncoder *encoder,
SchroPictureNumber frame_number); SchroPictureNumber frame_number);
void schro_encoder_frame_queue_remove (SchroEncoder *encoder, void schro_encoder_frame_queue_remove (SchroEncoder *encoder,
SchroPictureNumber frame_number); SchroPictureNumber frame_number);
void schro_encoder_reference_add (SchroEncoder *encoder, SchroEncoderFrame *encoder_frame);
SchroEncoderFrame * schro_encoder_reference_get (SchroEncoder *encoder, SchroEncoderFrame * schro_encoder_reference_get (SchroEncoder *encoder,
SchroPictureNumber frame_number); SchroPictureNumber frame_number);
void schro_encoder_encode_picture_header (SchroEncoderFrame *frame); void schro_encoder_encode_picture_header (SchroEncoderFrame *frame);
SchroBuffer * schro_encoder_encode_end_of_stream (SchroEncoder *encoder); SchroBuffer * schro_encoder_encode_end_of_stream (SchroEncoder *encoder);
void schro_encoder_clean_up_transform (SchroEncoderFrame *frame); void schro_encoder_clean_up_transform (SchroEncoderFrame *frame);
void schro_encoder_choose_quantisers (SchroEncoderFrame *frame); void schro_encoder_choose_quantisers (SchroEncoderFrame *frame);
SchroBuffer * schro_encoder_encode_access_unit (SchroEncoder *encoder); SchroBuffer * schro_encoder_encode_access_unit (SchroEncoder *encoder);
void schro_encoder_output_push (SchroEncoder *encoder, void schro_encoder_output_push (SchroEncoder *encoder,
SchroBuffer *buffer, int slot, int presentation_frame); SchroBuffer *buffer, int slot, int presentation_frame);
 End of changes. 10 change blocks. 
12 lines changed or deleted 25 lines changed or added


 schroengine.h   schroengine.h 
skipping to change at line 16 skipping to change at line 16
SCHRO_BEGIN_DECLS SCHRO_BEGIN_DECLS
#ifdef SCHRO_ENABLE_UNSTABLE_API #ifdef SCHRO_ENABLE_UNSTABLE_API
typedef enum { typedef enum {
SCHRO_QUANTISER_ENGINE_SIMPLE, SCHRO_QUANTISER_ENGINE_SIMPLE,
SCHRO_QUANTISER_ENGINE_RATE_DISTORTION, SCHRO_QUANTISER_ENGINE_RATE_DISTORTION,
SCHRO_QUANTISER_ENGINE_LOSSLESS, SCHRO_QUANTISER_ENGINE_LOSSLESS,
SCHRO_QUANTISER_ENGINE_LOWDELAY, SCHRO_QUANTISER_ENGINE_LOWDELAY,
SCHRO_QUANTISER_ENGINE_RATE_DISTORTION_2 SCHRO_QUANTISER_ENGINE_CONSTANT_LAMBDA,
SCHRO_QUANTISER_ENGINE_CONSTANT_ERROR
} SchroQuantiserEngineEnum; } SchroQuantiserEngineEnum;
int schro_encoder_engine_intra_only (SchroEncoder *encoder); int schro_encoder_engine_intra_only (SchroEncoder *encoder);
int schro_encoder_engine_backref (SchroEncoder *encoder); int schro_encoder_engine_backref (SchroEncoder *encoder);
int schro_encoder_engine_tworef (SchroEncoder *encoder); int schro_encoder_engine_tworef (SchroEncoder *encoder);
int schro_encoder_engine_test_intra (SchroEncoder *encoder); int schro_encoder_engine_test_intra (SchroEncoder *encoder);
int schro_encoder_engine_lossless (SchroEncoder *encoder); int schro_encoder_engine_lossless (SchroEncoder *encoder);
int schro_encoder_engine_backtest (SchroEncoder *encoder); int schro_encoder_engine_backtest (SchroEncoder *encoder);
int schro_encoder_engine_lowdelay (SchroEncoder *encoder); int schro_encoder_engine_lowdelay (SchroEncoder *encoder);
 End of changes. 1 change blocks. 
1 lines changed or deleted 2 lines changed or added


 schroframe.h   schroframe.h 
skipping to change at line 143 skipping to change at line 143
int schro_upsampled_frame_get_pixel_precN (SchroUpsampledFrame *upframe, in t k, int schro_upsampled_frame_get_pixel_precN (SchroUpsampledFrame *upframe, in t k,
int x, int y, int mv_precision); int x, int y, int mv_precision);
void schro_upsampled_frame_get_block_precN (SchroUpsampledFrame *upframe, i nt k, void schro_upsampled_frame_get_block_precN (SchroUpsampledFrame *upframe, i nt k,
int x, int y, int prec, SchroFrameData *fd); int x, int y, int prec, SchroFrameData *fd);
void schro_upsampled_frame_get_block_fast_precN (SchroUpsampledFrame *upfra me, int k, void schro_upsampled_frame_get_block_fast_precN (SchroUpsampledFrame *upfra me, int k,
int x, int y, int prec, SchroFrameData *fd); int x, int y, int prec, SchroFrameData *fd);
void schro_frame_get_subdata (SchroFrame *frame, SchroFrameData *fd, void schro_frame_get_subdata (SchroFrame *frame, SchroFrameData *fd,
int comp, int x, int y); int comp, int x, int y);
void schro_frame_split_fields (SchroFrame *dest1, SchroFrame *dest2, SchroF
rame *src);
#endif #endif
SCHRO_END_DECLS SCHRO_END_DECLS
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 schrolimits.h   schrolimits.h 
skipping to change at line 45 skipping to change at line 45
*/ */
#define SCHRO_LIMIT_SUBBANDS (1+3*SCHRO_LIMIT_TRANSFORM_DEPTH) #define SCHRO_LIMIT_SUBBANDS (1+3*SCHRO_LIMIT_TRANSFORM_DEPTH)
/** /**
* SCHRO_LIMIT_REFERENCE_FRAMES: * SCHRO_LIMIT_REFERENCE_FRAMES:
* *
* The maximum number of active reference frames. In the encoder, * The maximum number of active reference frames. In the encoder,
* the number of active reference frames may be much larger than in * the number of active reference frames may be much larger than in
* the resulting stream. * the resulting stream.
*/ */
#define SCHRO_LIMIT_REFERENCE_FRAMES 20 #define SCHRO_LIMIT_REFERENCE_FRAMES 4
/** /**
* SCHRO_LIMIT_FRAME_QUEUE_LENGTH: * SCHRO_LIMIT_FRAME_QUEUE_LENGTH:
* *
* The maximum number of pictures being processed by the encoder. * The maximum number of pictures being processed by the encoder.
*/ */
#define SCHRO_LIMIT_FRAME_QUEUE_LENGTH 40 #define SCHRO_LIMIT_FRAME_QUEUE_LENGTH 40
/** /**
* SCHRO_LIMIT_WIDTH: * SCHRO_LIMIT_WIDTH:
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 schromotionest.h   schromotionest.h 
skipping to change at line 30 skipping to change at line 30
SchroUpsampledFrame *src0; SchroUpsampledFrame *src0;
SchroFrame *downsampled_src0[5]; SchroFrame *downsampled_src0[5];
SchroUpsampledFrame *src1; SchroUpsampledFrame *src1;
SchroFrame *downsampled_src1[5]; SchroFrame *downsampled_src1[5];
SchroMotion *motion; SchroMotion *motion;
SchroBlock *sblocks; SchroBlock *sblocks;
SchroMotionField *downsampled_mf[2][5]; SchroMotionField *downsampled_mf[2][5];
int badblocks;
double hier_score;
}; };
struct _SchroBlock { struct _SchroBlock {
int valid; int valid;
int error; int error;
int entropy; int entropy;
double score; double score;
SchroMotionVector mv[4][4]; SchroMotionVector mv[4][4];
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 schroparams.h   schroparams.h 
skipping to change at line 70 skipping to change at line 70
int n_vert_slices; /* slices_y */ int n_vert_slices; /* slices_y */
int slice_bytes_num; int slice_bytes_num;
int slice_bytes_denom; int slice_bytes_denom;
int quant_matrix[3*SCHRO_LIMIT_TRANSFORM_DEPTH+1]; int quant_matrix[3*SCHRO_LIMIT_TRANSFORM_DEPTH+1];
/* calculated sizes */ /* calculated sizes */
int iwt_chroma_width; int iwt_chroma_width;
int iwt_chroma_height; int iwt_chroma_height;
int iwt_luma_width; int iwt_luma_width;
int iwt_luma_height; int iwt_luma_height;
int mc_chroma_width;
int mc_chroma_height;
int mc_luma_width;
int mc_luma_height;
int x_num_blocks; int x_num_blocks;
int y_num_blocks; int y_num_blocks;
int x_offset; int x_offset;
int y_offset; int y_offset;
}; };
#define SCHRO_SUBBAND_IS_HORIZONTALLY_ORIENTED(position) (((position)&3) == 2) #define SCHRO_SUBBAND_IS_HORIZONTALLY_ORIENTED(position) (((position)&3) == 2)
#define SCHRO_SUBBAND_IS_VERTICALLY_ORIENTED(position) (((position)&3) == 1 ) #define SCHRO_SUBBAND_IS_VERTICALLY_ORIENTED(position) (((position)&3) == 1 )
#define SCHRO_SUBBAND_SHIFT(position) ((position)>>2) #define SCHRO_SUBBAND_SHIFT(position) ((position)>>2)
 End of changes. 1 change blocks. 
4 lines changed or deleted 0 lines changed or added


 schroqueue.h   schroqueue.h 
skipping to change at line 42 skipping to change at line 42
void schro_queue_add (SchroQueue *queue, void *element, void schro_queue_add (SchroQueue *queue, void *element,
SchroPictureNumber picture_number); SchroPictureNumber picture_number);
void *schro_queue_find (SchroQueue *queue, SchroPictureNumber picture_numbe r); void *schro_queue_find (SchroQueue *queue, SchroPictureNumber picture_numbe r);
void schro_queue_delete (SchroQueue *queue, SchroPictureNumber picture_numb er); void schro_queue_delete (SchroQueue *queue, SchroPictureNumber picture_numb er);
void *schro_queue_remove (SchroQueue *queue, SchroPictureNumber picture_num ber); void *schro_queue_remove (SchroQueue *queue, SchroPictureNumber picture_num ber);
void schro_queue_clear (SchroQueue *queue); void schro_queue_clear (SchroQueue *queue);
void schro_queue_pop (SchroQueue *queue); void schro_queue_pop (SchroQueue *queue);
void * schro_queue_pull (SchroQueue *queue); void * schro_queue_pull (SchroQueue *queue);
int schro_queue_is_full (SchroQueue *queue); int schro_queue_is_full (SchroQueue *queue);
int schro_queue_is_empty (SchroQueue *queue); int schro_queue_is_empty (SchroQueue *queue);
int schro_queue_slots_available (SchroQueue *queue);
#endif #endif
SCHRO_END_DECLS SCHRO_END_DECLS
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 schroutils.h   schroutils.h 
skipping to change at line 24 skipping to change at line 24
typedef uint32_t SchroPictureNumber; typedef uint32_t SchroPictureNumber;
typedef unsigned int schro_bool; typedef unsigned int schro_bool;
/* This must match the CUDA stream type, as we don't want to include the CU DA /* This must match the CUDA stream type, as we don't want to include the CU DA
includes in any of the Schroedinger include files. includes in any of the Schroedinger include files.
*/ */
typedef int SchroCUDAStream; typedef int SchroCUDAStream;
#ifdef SCHRO_ENABLE_UNSTABLE_API #ifdef SCHRO_ENABLE_UNSTABLE_API
#define SCHRO_PICTURE_NUMBER_INVALID (-1)
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
#define DIVIDE_ROUND_UP(a,b) (((a) + (b) - 1)/(b)) #define DIVIDE_ROUND_UP(a,b) (((a) + (b) - 1)/(b))
#ifndef MIN #ifndef MIN
#define MIN(a,b) ((a)<(b) ? (a) : (b)) #define MIN(a,b) ((a)<(b) ? (a) : (b))
#endif #endif
#ifndef MAX #ifndef MAX
#define MAX(a,b) ((a)>(b) ? (a) : (b)) #define MAX(a,b) ((a)>(b) ? (a) : (b))
#endif #endif
#ifndef CLAMP #ifndef CLAMP
#define CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 schrovideoformat.h   schrovideoformat.h 
skipping to change at line 40 skipping to change at line 40
int luma_offset; int luma_offset;
int luma_excursion; int luma_excursion;
int chroma_offset; int chroma_offset;
int chroma_excursion; int chroma_excursion;
SchroColourPrimaries colour_primaries; SchroColourPrimaries colour_primaries;
SchroColourMatrix colour_matrix; SchroColourMatrix colour_matrix;
SchroTransferFunction transfer_function; SchroTransferFunction transfer_function;
/* calculated values */ int interlaced_coding;
int chroma_h_shift; int unused0;
int chroma_v_shift; int unused1;
int chroma_width; int unused2;
int chroma_height;
}; };
int schro_video_format_validate (SchroVideoFormat *format); int schro_video_format_validate (SchroVideoFormat *format);
void schro_video_format_set_std_video_format (SchroVideoFormat *format, void schro_video_format_set_std_video_format (SchroVideoFormat *format,
SchroVideoFormatEnum index); SchroVideoFormatEnum index);
SchroVideoFormatEnum schro_video_format_get_std_video_format (SchroVideoFor mat *format); SchroVideoFormatEnum schro_video_format_get_std_video_format (SchroVideoFor mat *format);
void schro_video_format_set_std_frame_rate (SchroVideoFormat *format, int i ndex); void schro_video_format_set_std_frame_rate (SchroVideoFormat *format, int i ndex);
int schro_video_format_get_std_frame_rate (SchroVideoFormat *format); int schro_video_format_get_std_frame_rate (SchroVideoFormat *format);
void schro_video_format_set_std_aspect_ratio (SchroVideoFormat *format, int index); void schro_video_format_set_std_aspect_ratio (SchroVideoFormat *format, int index);
int schro_video_format_get_std_aspect_ratio (SchroVideoFormat *format); int schro_video_format_get_std_aspect_ratio (SchroVideoFormat *format);
void schro_video_format_set_std_signal_range (SchroVideoFormat *format, void schro_video_format_set_std_signal_range (SchroVideoFormat *format,
SchroSignalRange index); SchroSignalRange index);
SchroSignalRange schro_video_format_get_std_signal_range (SchroVideoFormat *format); SchroSignalRange schro_video_format_get_std_signal_range (SchroVideoFormat *format);
void schro_video_format_set_std_colour_spec (SchroVideoFormat *format, void schro_video_format_set_std_colour_spec (SchroVideoFormat *format,
SchroColourSpec index); SchroColourSpec index);
SchroColourSpec schro_video_format_get_std_colour_spec (SchroVideoFormat *f ormat); SchroColourSpec schro_video_format_get_std_colour_spec (SchroVideoFormat *f ormat);
#ifdef SCHRO_ENABLE_UNSTABLE_API
int schro_video_format_get_picture_height (SchroVideoFormat *format);
void schro_video_format_get_picture_luma_size (SchroVideoFormat *format,
int *picture_luma_width, int *picture_luma_height);
void schro_video_format_get_picture_chroma_size (SchroVideoFormat *format,
int *picture_chroma_width, int *picture_chroma_height);
void schro_video_format_get_iwt_alloc_size (SchroVideoFormat *format,
int *width, int *height);
int schro_video_format_get_bit_depth (SchroVideoFormat *format);
#endif
SCHRO_END_DECLS SCHRO_END_DECLS
#endif #endif
 End of changes. 3 change blocks. 
5 lines changed or deleted 17 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/