summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSun, Mingruo <mingruo.sun@intel.com>2015-07-03 17:31:40 +0800
committerAustin Yuan <shengquan.yuan@intel.com>2015-07-08 17:28:29 +0800
commit436cf888faa981915324b7ded157aff52178d8b0 (patch)
tree29e3256802b8d91374bb43527c8bba9270c2d20c
parent642245a435de710226b746ad1f9ee246d751151f (diff)
calculate core encoding fps
Signed-off-by: Sun, Mingruo <mingruo.sun@intel.com> Conflicts: vaenc/va_encode.c
-rw-r--r--vaenc/Android.mk4
-rw-r--r--vaenc/va_encode.c22
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);