mbuf->width = wl_shm_buffer_get_width(shm_buffer);
mbuf->height = wl_shm_buffer_get_height(shm_buffer);
mbuf->pitches[0] = wl_shm_buffer_get_stride(shm_buffer);
-
- if (IS_RGB(mbuf->tbmfmt))
- mbuf->width_from_pitch = mbuf->pitches[0]>>2;
- else
- mbuf->width_from_pitch = mbuf->pitches[0];
}
else if ((tbm_surface = wayland_tbm_server_get_surface(e_comp->wl_comp_data->tbm.server, resource)))
{
mbuf->pitches[i] = pitch;
mbuf->offsets[i] = offset;
}
-
- if (IS_RGB(mbuf->tbmfmt))
- mbuf->width_from_pitch = mbuf->pitches[0]>>2;
- else
- mbuf->width_from_pitch = mbuf->pitches[0];
}
else
{
goto create_fail;
}
+ tdm_helper_get_buffer_full_size(tbm_surface, &mbuf->width_from_pitch, &mbuf->height_from_size);
+
mbuf_lists = eina_list_append(mbuf_lists, mbuf);
- BDB("type(%d) %dx%d, %c%c%c%c, name(%d,%d,%d) hnd(%d,%d,%d), pitch(%d,%d,%d), offset(%d,%d,%d): %s",
- mbuf->type, mbuf->width, mbuf->height, FOURCC_STR(mbuf->tbmfmt),
+ BDB("type(%d) %dx%d(%dx%d), %c%c%c%c, name(%d,%d,%d) hnd(%d,%d,%d), pitch(%d,%d,%d), offset(%d,%d,%d): %s",
+ mbuf->type, mbuf->width_from_pitch, mbuf->height_from_size,
+ mbuf->width, mbuf->height, FOURCC_STR(mbuf->tbmfmt),
mbuf->names[0], mbuf->names[1], mbuf->names[2],
mbuf->handles[0], mbuf->handles[1], mbuf->handles[2],
mbuf->pitches[0], mbuf->pitches[1], mbuf->pitches[2],
mbuf->offsets[i] = offset;
}
- if (IS_RGB(mbuf->tbmfmt))
- mbuf->width_from_pitch = mbuf->pitches[0]>>2;
- else
- mbuf->width_from_pitch = mbuf->pitches[0];
+ tdm_helper_get_buffer_full_size(tbm_surface, &mbuf->width_from_pitch, &mbuf->height_from_size);
mbuf_lists = eina_list_append(mbuf_lists, mbuf);
- BDB("type(%d) %dx%d, %c%c%c%c, name(%d,%d,%d) hnd(%d,%d,%d), pitch(%d,%d,%d), offset(%d,%d,%d): %s",
- mbuf->type, mbuf->width, mbuf->height, FOURCC_STR(mbuf->tbmfmt),
+ BDB("type(%d) %dx%d(%dx%d), %c%c%c%c, name(%d,%d,%d) hnd(%d,%d,%d), pitch(%d,%d,%d), offset(%d,%d,%d): %s",
+ mbuf->type, mbuf->width_from_pitch, mbuf->height_from_size,
+ mbuf->width, mbuf->height, FOURCC_STR(mbuf->tbmfmt),
mbuf->names[0], mbuf->names[1], mbuf->names[2],
mbuf->handles[0], mbuf->handles[1], mbuf->handles[2],
mbuf->pitches[0], mbuf->pitches[1], mbuf->pitches[2],
mbuf->offsets[i] = offset;
}
- if (IS_RGB(mbuf->tbmfmt))
- mbuf->width_from_pitch = mbuf->pitches[0]>>2;
- else
- mbuf->width_from_pitch = mbuf->pitches[0];
+ tdm_helper_get_buffer_full_size(tbm_surface, &mbuf->width_from_pitch, &mbuf->height_from_size);
tbm_surface_internal_unref(tbm_surface);
mbuf_lists = eina_list_append(mbuf_lists, mbuf);
- BDB("type(%d) %dx%d %c%c%c%c nm(%d,%d,%d) hnd(%d,%d,%d) pitch(%d,%d,%d) offset(%d,%d,%d): %s",
- mbuf->type, mbuf->width, mbuf->height, FOURCC_STR(mbuf->tbmfmt),
+ BDB("type(%d) %dx%d(%dx%d) %c%c%c%c nm(%d,%d,%d) hnd(%d,%d,%d) pitch(%d,%d,%d) offset(%d,%d,%d): %s",
+ mbuf->type, mbuf->width_from_pitch, mbuf->height_from_size,
+ mbuf->width, mbuf->height, FOURCC_STR(mbuf->tbmfmt),
mbuf->names[0], mbuf->names[1], mbuf->names[2],
mbuf->handles[0], mbuf->handles[1], mbuf->handles[2],
mbuf->pitches[0], mbuf->pitches[1], mbuf->pitches[2],
CLEAR(info);
info.src_config.size.h = mbuf->width_from_pitch;
- info.src_config.size.v = mbuf->height;
+ info.src_config.size.v = mbuf->height_from_size;
info.src_config.pos.x = mbuf->content_r.x;
info.src_config.pos.y = mbuf->content_r.y;
info.src_config.pos.w = mbuf->content_r.w;
tdm_info_pp info;
CLEAR(info);
- info.src_config.size.h = video->geo.input_w;
- info.src_config.size.v = video->geo.input_h;
+ info.src_config.size.h = input_buffer->width_from_pitch;
+ info.src_config.size.v = input_buffer->height_from_size;
info.src_config.pos.x = video->geo.input_r.x;
info.src_config.pos.y = video->geo.input_r.y;
info.src_config.pos.w = video->geo.input_r.w;
info.src_config.pos.h = video->geo.input_r.h;
info.src_config.format = video->tbmfmt;
info.dst_config.size.h = pp_buffer->width_from_pitch;
- info.dst_config.size.v = pp_buffer->height;
+ info.dst_config.size.v = pp_buffer->height_from_size;
info.dst_config.pos.w = video->tdm_output_r.w;
info.dst_config.pos.h = video->tdm_output_r.h;
info.dst_config.format = video->pp_tbmfmt;