diff options
author | Sun, Mingruo <mingruo.sun@intel.com> | 2015-07-03 17:31:40 +0800 |
---|---|---|
committer | Austin Yuan <shengquan.yuan@intel.com> | 2015-07-08 17:28:29 +0800 |
commit | 436cf888faa981915324b7ded157aff52178d8b0 (patch) | |
tree | 29e3256802b8d91374bb43527c8bba9270c2d20c | |
parent | 642245a435de710226b746ad1f9ee246d751151f (diff) |
calculate core encoding fps
Signed-off-by: Sun, Mingruo <mingruo.sun@intel.com>
Conflicts:
vaenc/va_encode.c
-rw-r--r-- | vaenc/Android.mk | 4 | ||||
-rw-r--r-- | vaenc/va_encode.c | 22 |
2 files changed, 17 insertions, 9 deletions
diff --git a/vaenc/Android.mk b/vaenc/Android.mk index d5277d9..65b9f5b 100644 --- a/vaenc/Android.mk +++ b/vaenc/Android.mk @@ -14,9 +14,9 @@ LOCAL_SRC_FILES := \ LOCAL_CFLAGS += \ -DANDROID -ifeq ($(TARGET_ARCH),x86_64) +#ifeq ($(TARGET_ARCH),x86_64) LOCAL_CFLAGS += -march=x86-64 -D_LINK_C -endif +#endif LOCAL_C_INCLUDES += \ $(LOCAL_PATH)/../../va \ diff --git a/vaenc/va_encode.c b/vaenc/va_encode.c index 9ceb595..9aa14a5 100644 --- a/vaenc/va_encode.c +++ b/vaenc/va_encode.c @@ -1264,8 +1264,8 @@ static void storage_task(unsigned int display_order, unsigned int encode_order) va_status = vaSyncSurface(va_dpy, src_surface[display_order % surface_num]); CHECK_VASTATUS(va_status,"vaSyncSurface"); SyncPictureTicks += GetTickCount() - tmp; - tmp = GetTickCount(); + tmp = GetTickCount(); save_codeddata(display_order, encode_order, &rec_surfaceid); SavePictureTicks += GetTickCount() - tmp; @@ -1476,16 +1476,27 @@ static int print_performance(unsigned int PictureCount) ssim = calc_SSIM(srcyuv_fp, recyuv_fp, frame_width, frame_height,MIN(srcyuv_frames, frame_count), &ssim); } + float core_time; + if (encode_syncmode) + core_time = BeginPictureTicks + RenderPictureTicks + EndPictureTicks + SyncPictureTicks; + else + core_time = BeginPictureTicks + RenderPictureTicks + EndPictureTicks; printf("\n\n"); printf("PERFORMANCE: Frame Rate : %.2f fps (%d frames, %d ms (%.2f ms per frame))\n", (double) 1000*PictureCount / TotalTicks, PictureCount, TotalTicks, ((double) TotalTicks) / (double) PictureCount); + printf("PERFORMANCE: Core Encoding FPS : %.2f fps (%d frames, %d ms (%.2f ms per frame))\n", + (double) 1000*PictureCount / core_time, PictureCount, + (int)core_time, ((double) core_time) / (double) PictureCount); + if (encode_syncmode) + printf(" (Core Encoding includes vaBegin/vaRender/vaEnd/vaSync)\n"); + else + printf(" (Core Encoding includes vaBegin/vaRender/vaEnd; vaSync in another thread and not counted)\n"); + printf("PERFORMANCE: Compression ratio : %.2f%% (%.0f vs %.0f)\n", frame_size * 100.0/total_size, frame_size, total_size); - - float core_time = BeginPictureTicks + RenderPictureTicks + EndPictureTicks + SyncPictureTicks; if (&jpeg_codec == current_codec) { float tmp = (float)frame_width * frame_height * 1.5 * frame_count/((float)TotalTicks/1000)/1024/1024; float tmp1 = (float)frame_width * frame_height * 1.5 * frame_count/(core_time/1000)/1024/1024; @@ -1557,16 +1568,13 @@ static int print_performance(unsigned int PictureCount) SavePictureTicks/(double) ThreadTicks/0.01); } printf("PERFORMANCE: =========================================================\n"); - printf("PERFORMANCE: Core Encoding Time(vaBegin/vaRender/vaEnd/vaSync): %d ms (%.2f, %.2f%%)\n", - (int)core_time, core_time/PictureCount, core_time/TotalTicks/0.01); return 0; } static void release_resouce() { - if ( - coded_fp) + if (coded_fp) fclose(coded_fp); if (srcyuv_fp) fclose(srcyuv_fp); |