Lines Matching defs:slice
36 DXVA_SliceInfo slice[MAX_SLICES];
165 static void fill_slice(AVCodecContext *avctx, DXVA_SliceInfo *slice,
171 memset(slice, 0, sizeof(*slice));
172 slice->wHorizontalPosition = 0;
173 slice->wVerticalPosition = s->mb_y;
174 slice->dwSliceBitsInBuffer = 8 * size;
175 slice->dwSliceDataLocation = position;
176 slice->bStartCodeBitOffset = 0;
177 slice->bReservedBits = (s->pict_type == AV_PICTURE_TYPE_B && !v->bi_type) ? v->bfraction_lut_index + 9 : 0;
178 slice->wMBbitOffset = v->p_frame_skipped ? 0xffff : get_bits_count(&s->gb) + (avctx->codec_id == AV_CODEC_ID_VC1 ? 32 : 0);
180 slice->wNumberMBsInSlice = (s->mb_y >> v->field_mode) * s->mb_width + s->mb_x;
181 slice->wQuantizerScaleCode = v->pq;
182 slice->wBadSliceChopping = 0;
197 DXVA_SliceInfo *slice = NULL;
231 slice = &ctx_pic->slice[i];
232 position = slice->dwSliceDataLocation;
233 size = slice->dwSliceBitsInBuffer / 8;
238 slice->dwSliceDataLocation = current - dxva_data;
241 slice->wNumberMBsInSlice =
242 slice[1].wNumberMBsInSlice - slice[0].wNumberMBsInSlice;
244 slice->wNumberMBsInSlice =
245 mb_count - slice[0].wNumberMBsInSlice;
247 /* write the appropriate frame, field or slice start code */
256 slice->dwSliceBitsInBuffer += start_code_size * 8;
263 if (slice && padding > 0) {
266 slice->dwSliceBitsInBuffer += padding * 8;
307 ctx_pic->slice,
308 ctx_pic->slice_count * sizeof(*ctx_pic->slice),
358 fill_slice(avctx, &ctx_pic->slice[ctx_pic->slice_count++], position, size);