Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: source/libvpx/vp8/common/blockd.h

Issue 7671004: Update libvpx snapshot to v0.9.7-p1 (Cayuga). (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/libvpx/vp8/common/asm_com_offsets.c ('k') | source/libvpx/vp8/common/coefupdateprobs.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/libvpx/vp8/common/blockd.h
===================================================================
--- source/libvpx/vp8/common/blockd.h (revision 96967)
+++ source/libvpx/vp8/common/blockd.h (working copy)
@@ -137,17 +137,12 @@
modes for the Y blocks to the left and above us; for interframes, there
is a single probability table. */
-typedef struct
+union b_mode_info
{
- B_PREDICTION_MODE mode;
- union
- {
- int as_int;
- MV as_mv;
- } mv;
-} B_MODE_INFO;
+ B_PREDICTION_MODE as_mode;
+ int_mv mv;
+};
-
typedef enum
{
INTRA_FRAME = 0,
@@ -161,38 +156,26 @@
{
MB_PREDICTION_MODE mode, uv_mode;
MV_REFERENCE_FRAME ref_frame;
- union
- {
- int as_int;
- MV as_mv;
- } mv;
+ int_mv mv;
unsigned char partitioning;
unsigned char mb_skip_coeff; /* does this mb has coefficients at all, 1=no coefficients, 0=need decode tokens */
- unsigned char dc_diff;
unsigned char need_to_clamp_mvs;
-
unsigned char segment_id; /* Which set of segmentation parameters should be used for this MB */
-
- unsigned char force_no_skip; /* encoder only */
} MB_MODE_INFO;
-
typedef struct
{
MB_MODE_INFO mbmi;
- B_MODE_INFO bmi[16];
+ union b_mode_info bmi[16];
} MODE_INFO;
-
typedef struct
{
short *qcoeff;
short *dqcoeff;
unsigned char *predictor;
short *diff;
- short *reference;
-
short *dequant;
/* 16 Y blocks, 4 U blocks, 4 V blocks each with 16 entries */
@@ -206,15 +189,13 @@
int eob;
- B_MODE_INFO bmi;
-
+ union b_mode_info bmi;
} BLOCKD;
-typedef struct
+typedef struct MacroBlockD
{
DECLARE_ALIGNED(16, short, diff[400]); /* from idct diff */
DECLARE_ALIGNED(16, unsigned char, predictor[384]);
-/* not used DECLARE_ALIGNED(16, short, reference[384]); */
DECLARE_ALIGNED(16, short, qcoeff[400]);
DECLARE_ALIGNED(16, short, dqcoeff[400]);
DECLARE_ALIGNED(16, char, eobs[25]);
@@ -271,6 +252,9 @@
int mb_to_top_edge;
int mb_to_bottom_edge;
+ int ref_frame_cost[MAX_REF_FRAMES];
+
+
unsigned int frames_since_golden;
unsigned int frames_till_alt_ref_frame;
vp8_subpix_fn_t subpixel_predict;
@@ -282,6 +266,14 @@
int corrupted;
+#if ARCH_X86 || ARCH_X86_64
+ /* This is an intermediate buffer currently used in sub-pixel motion search
+ * to keep a copy of the reference area. This buffer can be used for other
+ * purpose.
+ */
+ DECLARE_ALIGNED(32, unsigned char, y_buf[22*32]);
+#endif
+
#if CONFIG_RUNTIME_CPU_DETECT
struct VP8_COMMON_RTCD *rtcd;
#endif
@@ -291,4 +283,20 @@
extern void vp8_build_block_doffsets(MACROBLOCKD *x);
extern void vp8_setup_block_dptrs(MACROBLOCKD *x);
+static void update_blockd_bmi(MACROBLOCKD *xd)
+{
+ int i;
+ int is_4x4;
+ is_4x4 = (xd->mode_info_context->mbmi.mode == SPLITMV) ||
+ (xd->mode_info_context->mbmi.mode == B_PRED);
+
+ if (is_4x4)
+ {
+ for (i = 0; i < 16; i++)
+ {
+ xd->block[i].bmi = xd->mode_info_context->bmi[i];
+ }
+ }
+}
+
#endif /* __INC_BLOCKD_H */
« no previous file with comments | « source/libvpx/vp8/common/asm_com_offsets.c ('k') | source/libvpx/vp8/common/coefupdateprobs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698