return NULL;
}
-INTERN void
+EXTERN void
tdm_helper_dump_buffer_str(tbm_surface_h buffer, char *dir, char *str)
{
tbm_surface_info_s info;
- const char *ext;
char file[TDM_PATH_LEN];
int ret, bw, bh;
TDM_RETURN_IF_FAIL(buffer != NULL);
- TDM_RETURN_IF_FAIL(dir != NULL);
TDM_RETURN_IF_FAIL(str != NULL);
+ if (!dir)
+ dir = ".";
+
ret = tbm_surface_get_info(buffer, &info);
TDM_RETURN_IF_FAIL(ret == TBM_SURFACE_ERROR_NONE);
- if (IS_RGB(info.format))
- ext = file_exts[0];
- else
- ext = file_exts[1];
-
tdm_helper_get_buffer_full_size(buffer, &bw, &bh);
- snprintf(file, TDM_PATH_LEN, "%s/%c%c%c%c_%dx%d_%dx%d_%s.%s",
- dir, FOURCC_STR(info.format), bw, bh, info.width, info.height, str, ext);
+ snprintf(file, TDM_PATH_LEN, "%s/%c%c%c%c_%dx%d_%dx%d_%s",
+ dir, FOURCC_STR(info.format), bw, bh, info.width, info.height, str);
tdm_helper_dump_buffer(buffer, file);
}
EXTERN void
tdm_helper_dump_buffer(tbm_surface_h buffer, const char *file)
{
+ char temp[TDM_PATH_LEN] = {0,};
tbm_surface_info_s info;
int len, ret;
const char *ext;
int bo_cnt;
int bw, bh;
+ char *dot, *p = temp;
TDM_RETURN_IF_FAIL(buffer != NULL);
TDM_RETURN_IF_FAIL(file != NULL);
ret = tbm_surface_map(buffer, TBM_OPTION_READ, &info);
TDM_RETURN_IF_FAIL(ret == TBM_SURFACE_ERROR_NONE);
- len = strnlen(file, 1024);
if (IS_RGB(info.format))
ext = file_exts[0];
else
ext = file_exts[1];
- if (strncmp(file + (len - 3), ext, 3)) {
- TDM_ERR("can't dump to '%s' file", file + (len - 3));
- tbm_surface_unmap(buffer);
- return;
+ dot = strrchr(file, '.');
+ if (!dot || strlen(dot + 1) != 3 || strncmp(dot + 1, ext, 3)) {
+ len = strnlen(file, TDM_PATH_LEN - 5);
+ strncat(p, file, len);
+ p += len;
+ *(p++) = '.';
+ strncat(p, ext, 3);
+ p += 3;
+ *p = '\0';
}
tdm_helper_get_buffer_full_size(buffer, &bw, &bh);
switch (info.format) {
case TBM_FORMAT_ARGB8888:
case TBM_FORMAT_XRGB8888:
- _tdm_helper_dump_png(file, info.planes[0].ptr, bw, bh);
+ _tdm_helper_dump_png(temp, info.planes[0].ptr, bw, bh);
break;
case TBM_FORMAT_YVU420:
case TBM_FORMAT_YUV420:
- _tdm_helper_dump_raw(file,
+ _tdm_helper_dump_raw((const char*)temp,
info.planes[0].ptr,
info.planes[0].size,
info.planes[1].ptr,
break;
case TBM_FORMAT_NV12:
case TBM_FORMAT_NV21:
- _tdm_helper_dump_raw(file,
+ _tdm_helper_dump_raw((const char*)temp,
info.planes[0].ptr,
info.planes[0].size,
info.planes[1].ptr,
break;
case TBM_FORMAT_YUYV:
case TBM_FORMAT_UYVY:
- _tdm_helper_dump_raw(file,
+ _tdm_helper_dump_raw((const char*)temp,
info.planes[0].ptr,
info.planes[0].size, NULL, 0,
NULL, 0);
tbm_surface_unmap(buffer);
- TDM_INFO("dump %s", file);
+ TDM_INFO("dump %s", temp);
}
EXTERN void