MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / avcodec_align_dimensions2

Function avcodec_align_dimensions2

libavcodec/utils.c:127–208  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

125#define INTERNAL_BUFFER_SIZE 32
126
127void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, int linesize_align[4]){
128 int w_align= 1;
129 int h_align= 1;
130
131 switch(s->pix_fmt){
132 case PIX_FMT_YUV420P:
133 case PIX_FMT_YUYV422:
134 case PIX_FMT_UYVY422:
135 case PIX_FMT_YUV422P:
136 case PIX_FMT_YUV440P:
137 case PIX_FMT_YUV444P:
138 case PIX_FMT_GRAY8:
139 case PIX_FMT_GRAY16BE:
140 case PIX_FMT_GRAY16LE:
141 case PIX_FMT_YUVJ420P:
142 case PIX_FMT_YUVJ422P:
143 case PIX_FMT_YUVJ440P:
144 case PIX_FMT_YUVJ444P:
145 case PIX_FMT_YUVA420P:
146 w_align= 16; //FIXME check for non mpeg style codecs and use less alignment
147 h_align= 16;
148 if(s->codec_id == CODEC_ID_MPEG2VIDEO || s->codec_id == CODEC_ID_MJPEG || s->codec_id == CODEC_ID_AMV || s->codec_id == CODEC_ID_THP)
149 h_align= 32; // interlaced is rounded up to 2 MBs
150 break;
151 case PIX_FMT_YUV411P:
152 case PIX_FMT_UYYVYY411:
153 w_align=32;
154 h_align=8;
155 break;
156 case PIX_FMT_YUV410P:
157 if(s->codec_id == CODEC_ID_SVQ1){
158 w_align=64;
159 h_align=64;
160 }
161 case PIX_FMT_RGB555:
162 if(s->codec_id == CODEC_ID_RPZA){
163 w_align=4;
164 h_align=4;
165 }
166 case PIX_FMT_PAL8:
167 case PIX_FMT_BGR8:
168 case PIX_FMT_RGB8:
169 if(s->codec_id == CODEC_ID_SMC){
170 w_align=4;
171 h_align=4;
172 }
173 break;
174 case PIX_FMT_BGR24:
175 if((s->codec_id == CODEC_ID_MSZH) || (s->codec_id == CODEC_ID_ZLIB)){
176 w_align=4;
177 h_align=4;
178 }
179 break;
180 default:
181 w_align= 1;
182 h_align= 1;
183 break;
184 }

Callers 3

input_get_bufferFunction · 0.85
avcodec_align_dimensionsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected