summaryrefslogtreecommitdiff
path: root/libavcodec/h264pred.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-05-10 22:41:29 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-05-10 23:30:42 +0200
commit015903294ca983f007ab5cae098a54013e77f2f6 (patch)
tree66838f53dca82964270a1938692489c36e1fb1b0 /libavcodec/h264pred.h
parent2a793ff2bf2197f36db3bf296668d44915142d03 (diff)
parent110d0cdc9d1ec414a658f841a3fbefbf6f796d61 (diff)
downloadffmpeg-015903294ca983f007ab5cae098a54013e77f2f6.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: (25 commits) rv40dsp x86: MMX/MMX2/3DNow/SSE2/SSSE3 implementations of MC ape: Use unsigned integer maths arm: dsputil: fix overreads in put/avg_pixels functions h264: K&R formatting cosmetics for header files (part II/II) h264: K&R formatting cosmetics for header files (part I/II) rtmp: Implement check bandwidth notification. rtmp: Support 'rtmp_swfurl', an option which specifies the URL of the SWF player. rtmp: Support 'rtmp_flashver', an option which overrides the version of the Flash plugin. rtmp: Support 'rtmp_tcurl', an option which overrides the URL of the target stream. cmdutils: Add fallback case to switch in check_stream_specifier(). sctp: be consistent with socket option level configure: Add _XOPEN_SOURCE=600 to Solaris preprocessor flags. vcr1enc: drop pointless empty encode_init() wrapper function vcr1: drop pointless write-only AVCodecContext member from VCR1Context vcr1: group encoder code together to save #ifdefs vcr1: cosmetics: K&R prettyprinting, typos, parentheses, dead code, comments mov: make one comment slightly more specific lavr: replace the SSE version of ff_conv_fltp_to_flt_6ch() with SSE4 and AVX lavfi: move audio-related functions to a separate file. lavfi: remove some audio-related function from public API. ... Conflicts: cmdutils.c libavcodec/h264.h libavcodec/h264_mvpred.h libavcodec/vcr1.c libavfilter/avfilter.c libavfilter/avfilter.h libavfilter/defaults.c libavfilter/internal.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264pred.h')
-rw-r--r--libavcodec/h264pred.h81
1 files changed, 45 insertions, 36 deletions
diff --git a/libavcodec/h264pred.h b/libavcodec/h264pred.h
index 599cdb228b..d68f39bf8c 100644
--- a/libavcodec/h264pred.h
+++ b/libavcodec/h264pred.h
@@ -35,18 +35,18 @@
* Prediction types
*/
//@{
-#define VERT_PRED 0
-#define HOR_PRED 1
-#define DC_PRED 2
-#define DIAG_DOWN_LEFT_PRED 3
-#define DIAG_DOWN_RIGHT_PRED 4
-#define VERT_RIGHT_PRED 5
-#define HOR_DOWN_PRED 6
-#define VERT_LEFT_PRED 7
-#define HOR_UP_PRED 8
+#define VERT_PRED 0
+#define HOR_PRED 1
+#define DC_PRED 2
+#define DIAG_DOWN_LEFT_PRED 3
+#define DIAG_DOWN_RIGHT_PRED 4
+#define VERT_RIGHT_PRED 5
+#define HOR_DOWN_PRED 6
+#define VERT_LEFT_PRED 7
+#define HOR_UP_PRED 8
// DC edge (not for VP8)
-#define LEFT_DC_PRED 9
+#define LEFT_DC_PRED 9
#define TOP_DC_PRED 10
#define DC_128_PRED 11
@@ -56,7 +56,7 @@
#define VERT_LEFT_PRED_RV40_NODOWN 14
// VP8 specific
-#define TM_VP8_PRED 9 ///< "True Motion", used instead of plane
+#define TM_VP8_PRED 9 ///< "True Motion", used instead of plane
#define VERT_VP8_PRED 10 ///< for VP8, #VERT_PRED is the average of
///< (left col+cur col x2+right col) / 4;
///< this is the "unaveraged" one
@@ -65,44 +65,53 @@
#define DC_127_PRED 12
#define DC_129_PRED 13
-#define DC_PRED8x8 0
-#define HOR_PRED8x8 1
-#define VERT_PRED8x8 2
-#define PLANE_PRED8x8 3
+#define DC_PRED8x8 0
+#define HOR_PRED8x8 1
+#define VERT_PRED8x8 2
+#define PLANE_PRED8x8 3
// DC edge
-#define LEFT_DC_PRED8x8 4
-#define TOP_DC_PRED8x8 5
-#define DC_128_PRED8x8 6
+#define LEFT_DC_PRED8x8 4
+#define TOP_DC_PRED8x8 5
+#define DC_128_PRED8x8 6
// H264/SVQ3 (8x8) specific
-#define ALZHEIMER_DC_L0T_PRED8x8 7
-#define ALZHEIMER_DC_0LT_PRED8x8 8
-#define ALZHEIMER_DC_L00_PRED8x8 9
+#define ALZHEIMER_DC_L0T_PRED8x8 7
+#define ALZHEIMER_DC_0LT_PRED8x8 8
+#define ALZHEIMER_DC_L00_PRED8x8 9
#define ALZHEIMER_DC_0L0_PRED8x8 10
// VP8 specific
-#define DC_127_PRED8x8 7
-#define DC_129_PRED8x8 8
+#define DC_127_PRED8x8 7
+#define DC_129_PRED8x8 8
//@}
/**
* Context for storing H.264 prediction functions
*/
-typedef struct H264PredContext{
- void (*pred4x4 [9+3+3])(uint8_t *src, const uint8_t *topright, int stride);//FIXME move to dsp?
- void (*pred8x8l [9+3])(uint8_t *src, int topleft, int topright, int stride);
- void (*pred8x8 [4+3+4])(uint8_t *src, int stride);
- void (*pred16x16[4+3+2])(uint8_t *src, int stride);
+typedef struct H264PredContext {
+ void(*pred4x4[9 + 3 + 3])(uint8_t *src, const uint8_t *topright, int stride); //FIXME move to dsp?
+ void(*pred8x8l[9 + 3])(uint8_t *src, int topleft, int topright, int stride);
+ void(*pred8x8[4 + 3 + 4])(uint8_t *src, int stride);
+ void(*pred16x16[4 + 3 + 2])(uint8_t *src, int stride);
- void (*pred4x4_add [2])(uint8_t *pix/*align 4*/, const DCTELEM *block/*align 16*/, int stride);
- void (*pred8x8l_add [2])(uint8_t *pix/*align 8*/, const DCTELEM *block/*align 16*/, int stride);
- void (*pred8x8_add [3])(uint8_t *pix/*align 8*/, const int *block_offset, const DCTELEM *block/*align 16*/, int stride);
- void (*pred16x16_add[3])(uint8_t *pix/*align 16*/, const int *block_offset, const DCTELEM *block/*align 16*/, int stride);
-}H264PredContext;
+ void(*pred4x4_add[2])(uint8_t *pix /*align 4*/,
+ const DCTELEM *block /*align 16*/, int stride);
+ void(*pred8x8l_add[2])(uint8_t *pix /*align 8*/,
+ const DCTELEM *block /*align 16*/, int stride);
+ void(*pred8x8_add[3])(uint8_t *pix /*align 8*/,
+ const int *block_offset,
+ const DCTELEM *block /*align 16*/, int stride);
+ void(*pred16x16_add[3])(uint8_t *pix /*align 16*/,
+ const int *block_offset,
+ const DCTELEM *block /*align 16*/, int stride);
+} H264PredContext;
-void ff_h264_pred_init(H264PredContext *h, int codec_id, const int bit_depth, const int chroma_format_idc);
-void ff_h264_pred_init_arm(H264PredContext *h, int codec_id, const int bit_depth, const int chroma_format_idc);
-void ff_h264_pred_init_x86(H264PredContext *h, int codec_id, const int bit_depth, const int chroma_format_idc);
+void ff_h264_pred_init(H264PredContext *h, int codec_id,
+ const int bit_depth, const int chroma_format_idc);
+void ff_h264_pred_init_arm(H264PredContext *h, int codec_id,
+ const int bit_depth, const int chroma_format_idc);
+void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
+ const int bit_depth, const int chroma_format_idc);
#endif /* AVCODEC_H264PRED_H */