/*
- * Copyright (C) 2003 the ffmpeg project
+ * Copyright (C) 2003 Mike Melanson
+ * Copyright (C) 2003 Dr. Tim Ferguson
*
* This file is part of FFmpeg.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
*/
#ifndef AVCODEC_ROQVIDEO_H
#define AVCODEC_ROQVIDEO_H
+#include "libavutil/random.h"
#include "avcodec.h"
#include "dsputil.h"
typedef struct {
- unsigned char y[4];
- unsigned char u, v;
+ unsigned char y[4];
+ unsigned char u, v;
} roq_cell;
typedef struct {
- int idx[4];
+ int idx[4];
} roq_qcell;
+typedef struct {
+ int d[2];
+} motion_vect;
+
typedef struct RoqContext {
AVCodecContext *avctx;
AVFrame frames[2];
AVFrame *last_frame;
AVFrame *current_frame;
- int y_stride;
- int c_stride;
+ int first_frame;
roq_cell cb2x2[256];
roq_qcell cb4x4[256];
- unsigned char *buf;
+ const unsigned char *buf;
int size;
+ int width, height;
+
+ /* Encoder only data */
+ AVRandomState randctx;
+ uint64_t lambda;
+
+ motion_vect *this_motion4;
+ motion_vect *last_motion4;
+
+ motion_vect *this_motion8;
+ motion_vect *last_motion8;
+
+ unsigned int framesSinceKeyframe;
+ AVFrame *frame_to_enc;
+ uint8_t *out_buf;
} RoqContext;
#define RoQ_INFO 0x1001
void ff_apply_motion_8x8(RoqContext *ri, int x, int y, int deltax, int deltay);
-#endif
+#endif /* AVCODEC_ROQVIDEO_H */