Commit b8563b28 authored by Andrey Filippov's avatar Andrey Filippov
Browse files

restored interframe_params_t

parent 0b1ebecc
Loading
Loading
Loading
Loading
+27 −45
Original line number Diff line number Diff line
@@ -1611,52 +1611,34 @@ struct sensorproc_t {
/// signffff
/// timestamp_sec (camogm only, exif is separate)
/// timestamp_usec (camogm only, exif is separate)
//struct interframe_params_t {
///// This data will survive as long as the frame itself in the circular buffer. Some other fields (like exposure) are stored in Exif
///// dont move - should partially match P_* area
//   union{unsigned long hash32_r; struct{unsigned short scale_r; union {unsigned short hash16_r; struct{unsigned char gamma_r; unsigned char black_r; };};};}; ///00-03
//   union{unsigned long hash32_g; struct{unsigned short scale_g; union {unsigned short hash16_g; struct{unsigned char gamma_g; unsigned char black_g; };};};}; ///04-07
//   union{unsigned long hash32_gb;struct{unsigned short scale_gb;union {unsigned short hash16_gb;struct{unsigned char gamma_gb;unsigned char black_gb;};};};}; ///08-11
//   union{unsigned long hash32_b; struct{unsigned short scale_b; union {unsigned short hash16_b; struct{unsigned char gamma_b; unsigned char black_b; };};};}; ///12-15
//   unsigned short quality2;       /// Quality is represented by 2-byte value. Each byte uses Y table if the value is Q<128,// 16-17
//                                  /// and C table with (Q-128) if it is Q>=128.
//                                  /// If the High byte is zero, it is treated as Q^0x80  (Q|=(Q^0x80)<<8) for compatibility
//                                  /// with a standard single-byte Q value
///// updated in 8.0.8.37 - bit 7 in quality2 means "portrait mode"
//   unsigned char  color;          /// color mode //18
//   unsigned char  byrshift;       /// bayer shift in compressor //19
//   unsigned short width;          /// frame width, pixels   20-21 - NOTE: should be 20-21
//   unsigned short height;         /// frame height, pixels  22-23
//
///*24   *//// unsigned char  bindec_hor;     //! ((bh-1) << 4) | (dh-1) & 0xf (binning/decimation horizontal, 1..16 for each)
///*25   *//// unsigned char  bindec_vert;    //! ((bv-1) << 4) | (dv-1) & 0xf (binning/decimation vertical  , 1..16 for each)
///*24-25*/ unsigned short meta_index;     //! index of the linked meta page
//
///*26-27*/ unsigned short signffff;       //! should be 0xffff - it will be a signature that JPEG data was not overwritten,
//                                         //! JPEG bitstream can not have two 0xff after each other
//    union {
///*28-31*/ unsigned long  timestamp_sec ; //! number of seconds since 1970 till the start of the frame exposure
///*28-31*/ unsigned long  frame_length ;  //! JPEG frame length in circular buffer, bytes
//          };
///*32-35*/ unsigned long  timestamp_usec; //! number of microseconds to add
//};

/* Some fields were removed, may be we will need them later
 * Last three double words contain time stamp and (length+0xff) marker in new camera
 */
struct interframe_params_t {
	unsigned long  pad0;
	unsigned long  pad1;
	unsigned short quality2;
	unsigned char  color;
	unsigned char  byrshift;
	unsigned short width;
	unsigned short height;
	unsigned short meta_index;
	unsigned short signffff;
	unsigned long  timestamp_sec;        //! number of seconds since 1970 till the start of the frame exposure
	unsigned long  timestamp_usec;       //! number of microseconds to add
	unsigned long  frame_length;         // frame length in bytes
/// This data will survive as long as the frame itself in the circular buffer. Some other fields (like exposure) are stored in Exif
/// dont move - should partially match P_* area
   union{unsigned long hash32_r; struct{unsigned short scale_r; union {unsigned short hash16_r; struct{unsigned char gamma_r; unsigned char black_r; };};};}; ///00-03
   union{unsigned long hash32_g; struct{unsigned short scale_g; union {unsigned short hash16_g; struct{unsigned char gamma_g; unsigned char black_g; };};};}; ///04-07
   union{unsigned long hash32_gb;struct{unsigned short scale_gb;union {unsigned short hash16_gb;struct{unsigned char gamma_gb;unsigned char black_gb;};};};}; ///08-11
   union{unsigned long hash32_b; struct{unsigned short scale_b; union {unsigned short hash16_b; struct{unsigned char gamma_b; unsigned char black_b; };};};}; ///12-15
   unsigned short quality2;       /// Quality is represented by 2-byte value. Each byte uses Y table if the value is Q<128,// 16-17
                                  /// and C table with (Q-128) if it is Q>=128.
                                  /// If the High byte is zero, it is treated as Q^0x80  (Q|=(Q^0x80)<<8) for compatibility
                                  /// with a standard single-byte Q value
/// updated in 8.0.8.37 - bit 7 in quality2 means "portrait mode"
   unsigned char  color;          /// color mode //18
   unsigned char  byrshift;       /// bayer shift in compressor //19
   unsigned short width;          /// frame width, pixels   20-21 - NOTE: should be 20-21
   unsigned short height;         /// frame height, pixels  22-23

/*24   *//// unsigned char  bindec_hor;     //! ((bh-1) << 4) | (dh-1) & 0xf (binning/decimation horizontal, 1..16 for each)
/*25   *//// unsigned char  bindec_vert;    //! ((bv-1) << 4) | (dv-1) & 0xf (binning/decimation vertical  , 1..16 for each)
/*24-25*/ unsigned short meta_index;     //! index of the linked meta page

/*26-27*/ unsigned short signffff;       //! should be 0xffff - it will be a signature that JPEG data was not overwritten,
                                         //! JPEG bitstream can not have two 0xff after each other
    union {
/*28-31*/ unsigned long  timestamp_sec ; //! number of seconds since 1970 till the start of the frame exposure
/*28-31*/ unsigned long  frame_length ;  //! JPEG frame length in circular buffer, bytes
          };
/*32-35*/ unsigned long  timestamp_usec; //! number of microseconds to add
};

struct i2c_timing_t {