Originally committed as revision 21973 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.6
@@ -1028,8 +1028,10 @@ HAVE_LIST=" | |||||
fork | fork | ||||
getaddrinfo | getaddrinfo | ||||
gethrtime | gethrtime | ||||
GetProcessMemoryInfo | |||||
GetProcessTimes | GetProcessTimes | ||||
getrusage | getrusage | ||||
struct_rusage_ru_maxrss | |||||
inet_aton | inet_aton | ||||
inline_asm | inline_asm | ||||
isatty | isatty | ||||
@@ -2497,6 +2499,7 @@ check_func fork | |||||
check_func getaddrinfo $network_extralibs | check_func getaddrinfo $network_extralibs | ||||
check_func gethrtime | check_func gethrtime | ||||
check_func getrusage | check_func getrusage | ||||
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss | |||||
check_func inet_aton $network_extralibs | check_func inet_aton $network_extralibs | ||||
check_func isatty | check_func isatty | ||||
check_func ${malloc_prefix}memalign && enable memalign | check_func ${malloc_prefix}memalign && enable memalign | ||||
@@ -2505,6 +2508,7 @@ check_func ${malloc_prefix}posix_memalign && enable posix_memalign | |||||
check_func setrlimit | check_func setrlimit | ||||
check_func_headers io.h setmode | check_func_headers io.h setmode | ||||
check_func_headers lzo/lzo1x.h lzo1x_999_compress | check_func_headers lzo/lzo1x.h lzo1x_999_compress | ||||
check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi | |||||
check_func_headers windows.h GetProcessTimes | check_func_headers windows.h GetProcessTimes | ||||
check_func_headers windows.h VirtualAlloc | check_func_headers windows.h VirtualAlloc | ||||
@@ -734,7 +734,10 @@ Set meta data information of @var{outfile} from @var{infile}. | |||||
@item -debug | @item -debug | ||||
Print specific debug info. | Print specific debug info. | ||||
@item -benchmark | @item -benchmark | ||||
Add timings for benchmarking. | |||||
Show benchmarking information at the end of an encode. | |||||
Shows CPU time used and maximum memory consumption. | |||||
Maximum memory consumption is not supported on all systems, | |||||
it will usually display as 0 if not supported. | |||||
@item -dump | @item -dump | ||||
Dump each input packet. | Dump each input packet. | ||||
@item -hex | @item -hex | ||||
@@ -44,10 +44,15 @@ | |||||
#if HAVE_SYS_RESOURCE_H | #if HAVE_SYS_RESOURCE_H | ||||
#include <sys/types.h> | #include <sys/types.h> | ||||
#include <sys/time.h> | |||||
#include <sys/resource.h> | #include <sys/resource.h> | ||||
#elif HAVE_GETPROCESSTIMES | #elif HAVE_GETPROCESSTIMES | ||||
#include <windows.h> | #include <windows.h> | ||||
#endif | #endif | ||||
#if HAVE_GETPROCESSMEMORYINFO | |||||
#include <windows.h> | |||||
#include <psapi.h> | |||||
#endif | |||||
#if HAVE_SYS_SELECT_H | #if HAVE_SYS_SELECT_H | ||||
#include <sys/select.h> | #include <sys/select.h> | ||||
@@ -3535,6 +3540,24 @@ static int64_t getutime(void) | |||||
#endif | #endif | ||||
} | } | ||||
static int64_t getmaxrss(void) | |||||
{ | |||||
#if HAVE_GETRUSAGE && HAVE_STRUCT_RUSAGE_RU_MAXRSS | |||||
struct rusage rusage; | |||||
getrusage(RUSAGE_SELF, &rusage); | |||||
return (int64_t)rusage.ru_maxrss * 1024; | |||||
#elif HAVE_GETPROCESSMEMORYINFO | |||||
HANDLE proc; | |||||
PROCESS_MEMORY_COUNTERS memcounters; | |||||
proc = GetCurrentProcess(); | |||||
memcounters.cb = sizeof(memcounters); | |||||
GetProcessMemoryInfo(proc, &memcounters, sizeof(memcounters)); | |||||
return memcounters.PeakPagefileUsage; | |||||
#else | |||||
return 0; | |||||
#endif | |||||
} | |||||
static void parse_matrix_coeffs(uint16_t *dest, const char *str) | static void parse_matrix_coeffs(uint16_t *dest, const char *str) | ||||
{ | { | ||||
int i; | int i; | ||||
@@ -4029,7 +4052,8 @@ int main(int argc, char **argv) | |||||
av_exit(1); | av_exit(1); | ||||
ti = getutime() - ti; | ti = getutime() - ti; | ||||
if (do_benchmark) { | if (do_benchmark) { | ||||
printf("bench: utime=%0.3fs\n", ti / 1000000.0); | |||||
int maxrss = getmaxrss() / 1024; | |||||
printf("bench: utime=%0.3fs maxrss=%ikB\n", ti / 1000000.0, maxrss); | |||||
} | } | ||||
return av_exit(0); | return av_exit(0); | ||||