#include "dsputil.h"
#include "mpegvideo.h"
+#include "cavsdsp.h"
#define SLICE_MAX_START_CODE 0x000001af
#define EXT_START_CODE 0x000001b5
MV_BWD_X3
};
-DECLARE_ALIGNED_8(typedef, struct) {
+DECLARE_ALIGNED(8, typedef, struct) {
int16_t x;
int16_t y;
int16_t dist;
typedef struct {
MpegEncContext s;
+ CAVSDSPContext cdsp;
Picture picture; ///< currently decoded frame
Picture DPB[2]; ///< reference frames
int dist[2]; ///< temporal distances from current frame to ref frames
int aspect_ratio;
int mb_width, mb_height;
int pic_type;
+ int stream_revision; ///<0 for samples from 2006, 1 for rm52j encoder
int progressive;
int pic_structure;
int skip_mode_flag; ///< select between skip_count or one skip_flag per MB
}
static inline void set_intra_mode_default(AVSContext *h) {
- h->pred_mode_Y[3] = h->pred_mode_Y[6] = INTRA_L_LP;
- h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
+ if(h->stream_revision > 0) {
+ h->pred_mode_Y[3] = h->pred_mode_Y[6] = NOT_AVAIL;
+ h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = NOT_AVAIL;
+ } else {
+ h->pred_mode_Y[3] = h->pred_mode_Y[6] = INTRA_L_LP;
+ h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
+ }
}
static inline void set_mvs(cavs_vector *mv, enum cavs_block size) {