encore.h
上传用户:enenge
上传日期:2007-01-08
资源大小:96k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. // This is the header file describing 
  2. // the entrance function of the encoder core
  3. // or the encore ...
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif 
  7. typedef struct _ENC_PARAM_ {
  8. int x_dim; // the x dimension of the frames to be encoded
  9. int y_dim; // the y dimension of the frames to be encoded
  10. float framerate;// the frame rate of the sequence to be encoded
  11. long bitrate; // the bitrate of the target encoded stream
  12. long rc_period; // the intended rate control averaging period
  13. long rc_reaction_period; // the reation period for rate control
  14. long rc_reaction_ratio; // the ratio for down/up rate control
  15. long max_key_interval; // the maximum interval between key frames
  16. int max_quantizer; // the upper limit of the quantizer
  17. int min_quantizer; // the lower limit of the quantizer
  18. int search_range; // the forward search range for motion estimation
  19. } ENC_PARAM;
  20. typedef struct _ENC_FRAME_ {
  21. void *image; // the image frame to be encoded
  22. void *bitstream;// the buffer for encoded bitstream
  23. long length; // the length of the encoded bitstream
  24. } ENC_FRAME;
  25. typedef struct _ENC_RESULT_ {
  26. int isKeyFrame; // the current frame is encoded as a key frame
  27. } ENC_RESULT;
  28. // the prototype of the encore() - main encode engine entrance
  29. int encore(
  30. unsigned long handle, // handle - the handle of the calling entity, must be unique
  31. unsigned long enc_opt, // enc_opt - the option for encoding, see below
  32. void *param1, // param1 - the parameter 1 (its actually meaning depends on enc_opt
  33. void *param2); // param2 - the parameter 2 (its actually meaning depends on enc_opt
  34. // encore options (the enc_opt parameter of encore())
  35. #define ENC_OPT_WRITE 1024 // write the reconstruct image to files (for debuging)
  36. #define ENC_OPT_INIT 32768 // initialize the encoder for an handle
  37. #define ENC_OPT_RELEASE 65536 // release all the resource associated with the handle
  38. // return code of encore()
  39. #define ENC_OK 0
  40. #define ENC_MEMORY 1
  41. #define ENC_BAD_FORMAT 2
  42. #ifdef __cplusplus
  43. }
  44. #endif