28 #ifndef AVCODEC_H264_H
29 #define AVCODEC_H264_H
39 #define interlaced_dct interlaced_dct_is_a_bad_name
40 #define mb_intra mb_intra_is_not_initialized_see_mb_type
42 #define MAX_SPS_COUNT 32
43 #define MAX_PPS_COUNT 256
45 #define MAX_MMCO_COUNT 66
47 #define MAX_DELAYED_PIC_COUNT 16
51 #define ALLOW_INTERLACE
61 #ifdef ALLOW_INTERLACE
62 #define MB_MBAFF h->mb_mbaff
63 #define MB_FIELD h->mb_field_decoding_flag
64 #define FRAME_MBAFF h->mb_aff_frame
65 #define FIELD_PICTURE (s->picture_structure != PICT_FRAME)
74 #define FIELD_PICTURE 0
76 #define IS_INTERLACED(mb_type) 0
82 #define FIELD_OR_MBAFF_PICTURE (FRAME_MBAFF || FIELD_PICTURE)
85 #define CABAC h->pps.cabac
88 #define CHROMA422 (h->sps.chroma_format_idc == 2)
89 #define CHROMA444 (h->sps.chroma_format_idc == 3)
91 #define EXTENDED_SAR 255
93 #define MB_TYPE_REF0 MB_TYPE_ACPRED //dirty but it fits in 16 bit
94 #define MB_TYPE_8x8DCT 0x01000000
95 #define IS_REF0(a) ((a) & MB_TYPE_REF0)
96 #define IS_8x8DCT(a) ((a) & MB_TYPE_8x8DCT)
102 #define DELAYED_PIC_REF 4
104 #define QP_MAX_NUM (51 + 2*6) // The maximum supported qp
310 #define LIST_NOT_USED -1 //FIXME rename?
311 #define PART_NOT_AVAILABLE -2
689 void ff_h264_filter_mb_fast(
H264Context *h,
int mb_x,
int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr,
unsigned int linesize,
unsigned int uvlinesize);
690 void ff_h264_filter_mb(
H264Context *h,
int mb_x,
int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr,
unsigned int linesize,
unsigned int uvlinesize);
730 #define LUMA_DC_BLOCK_INDEX 48
731 #define CHROMA_DC_BLOCK_INDEX 49
734 static const uint8_t
scan8[16*3 + 3]={
735 4+ 1*8, 5+ 1*8, 4+ 2*8, 5+ 2*8,
736 6+ 1*8, 7+ 1*8, 6+ 2*8, 7+ 2*8,
737 4+ 3*8, 5+ 3*8, 4+ 4*8, 5+ 4*8,
738 6+ 3*8, 7+ 3*8, 6+ 4*8, 7+ 4*8,
739 4+ 6*8, 5+ 6*8, 4+ 7*8, 5+ 7*8,
740 6+ 6*8, 7+ 6*8, 6+ 7*8, 7+ 7*8,
741 4+ 8*8, 5+ 8*8, 4+ 9*8, 5+ 9*8,
742 6+ 8*8, 7+ 8*8, 6+ 9*8, 7+ 9*8,
743 4+11*8, 5+11*8, 4+12*8, 5+12*8,
744 6+11*8, 7+11*8, 6+12*8, 7+12*8,
745 4+13*8, 5+13*8, 4+14*8, 5+14*8,
746 6+13*8, 7+13*8, 6+14*8, 7+14*8,
747 0+ 0*8, 0+ 5*8, 0+10*8
752 return (b&0xFFFF) + (a<<16);
754 return (a&0xFFFF) + (b<<16);
760 return (b&0xFF) + (a<<8);
762 return (a&0xFF) + (b<<8);
777 const int index8=
scan8[n];
793 i4x4[4]= i4x4_cache[7+8*3];
794 i4x4[5]= i4x4_cache[7+8*2];
795 i4x4[6]= i4x4_cache[7+8*1];
821 int b_xy,
int b8_xy,
int mb_type,
int list )
825 AV_COPY128(mv_dst + 0*b_stride, mv_src + 8*0);
826 AV_COPY128(mv_dst + 1*b_stride, mv_src + 8*1);
827 AV_COPY128(mv_dst + 2*b_stride, mv_src + 8*2);
828 AV_COPY128(mv_dst + 3*b_stride, mv_src + 8*3);
836 AV_COPY16(mvd_dst + 3 + 3, mvd_src + 3 + 8*0);
837 AV_COPY16(mvd_dst + 3 + 2, mvd_src + 3 + 8*1);
838 AV_COPY16(mvd_dst + 3 + 1, mvd_src + 3 + 8*2);
845 ref_index[0+0*2]= ref_cache[
scan8[0]];
846 ref_index[1+0*2]= ref_cache[scan8[4]];
847 ref_index[0+1*2]= ref_cache[scan8[8]];
848 ref_index[1+1*2]= ref_cache[scan8[12]];
856 const int b8_xy= 4*h->
mb_xy;