Go to the documentation of this file.
24 #include <sys/types.h>
34 #define QCOM_TILE_WIDTH 64
35 #define QCOM_TILE_HEIGHT 32
36 #define QCOM_TILE_SIZE (QCOM_TILE_WIDTH * QCOM_TILE_HEIGHT)
37 #define QCOM_TILE_GROUP_SIZE (4 * QCOM_TILE_SIZE)
86 for (
i = 0;
i < 3;
i++) {
94 src +=
s->crop_top *
s->stride;
100 src +=
s->slice_height *
s->stride;
107 src += (
s->crop_left / 2);
122 for (j = 0; j <
height; j++) {
141 for (
i = 0;
i < 2;
i++) {
148 src +=
s->crop_top *
s->stride;
153 src +=
s->slice_height *
s->stride;
154 src +=
s->crop_top *
s->stride;
170 for (j = 0; j <
height; j++) {
191 for (
i = 0;
i < 2;
i++) {
200 src += (
s->slice_height -
s->crop_top / 2) *
s->stride;
202 src +=
s->crop_top *
s->stride;
218 for (j = 0; j <
height; j++) {
261 size_t flim = x + (y & ~1) *
w;
264 flim += (x & ~3) + 2;
265 }
else if ((
h & 1) == 0 || y != (
h - 1)) {
266 flim += (x + 2) & ~3;
284 const size_t tile_w_align = (tile_w + 1) & ~1;
292 for(
size_t y = 0; y < tile_h_luma; y++) {
293 size_t row_width =
width;
294 for(
size_t x = 0; x < tile_w; x++) {
295 size_t tile_width = row_width;
296 size_t tile_height =
height;
301 size_t chroma_idx = (luma_idx / linesize) * linesize / 2 + (luma_idx % linesize);
304 const uint8_t *src_luma =
data
308 const uint8_t *src_chroma =
data + luma_size
322 while (tile_height--) {
323 memcpy(
frame->
data[0] + luma_idx, src_luma, tile_width);
325 luma_idx += linesize;
327 memcpy(
frame->
data[0] + luma_idx, src_luma, tile_width);
329 luma_idx += linesize;
331 memcpy(
frame->
data[1] + chroma_idx, src_chroma, tile_width);
333 chroma_idx += linesize;
This structure describes decoded (raw) audio or video data.
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
#define i(width, name, range_min, range_max)
main external API structure.
int width
picture width / height.
int linesize[AV_NUM_DATA_POINTERS]
For video, a positive or negative value, which is typically indicating the size in bytes of each pict...