# HG changeset patch # User Aarthi Thirumalai <aar...@multicorewareinc.com> # Date 1515059166 -19800 # Thu Jan 04 15:16:06 2018 +0530 # Node ID f29e88d85ca29d23c05d3c7d03f0f506a12bc780 # Parent 5f6f6189a239aad91505ee1ed8b1874450779a2a api: change signature of x265_csvlog_encode()
replace x265_encoder* with x265_param* and int padx, int pady as function arguments. diff -r 5f6f6189a239 -r f29e88d85ca2 source/CMakeLists.txt --- a/source/CMakeLists.txt Thu Jan 04 13:56:07 2018 +0530 +++ b/source/CMakeLists.txt Thu Jan 04 15:16:06 2018 +0530 @@ -29,7 +29,7 @@ option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF) mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD) # X265_BUILD must be incremented each time the public API is changed -set(X265_BUILD 150) +set(X265_BUILD 151) configure_file("${PROJECT_SOURCE_DIR}/x265.def.in" "${PROJECT_BINARY_DIR}/x265.def") configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in" diff -r 5f6f6189a239 -r f29e88d85ca2 source/encoder/api.cpp --- a/source/encoder/api.cpp Thu Jan 04 13:56:07 2018 +0530 +++ b/source/encoder/api.cpp Thu Jan 04 15:16:06 2018 +0530 @@ -312,7 +312,9 @@ Encoder *encoder = static_cast<Encoder*>(enc); x265_stats stats; encoder->fetchStats(&stats, sizeof(stats)); - x265_csvlog_encode(enc, &stats, argc, argv); + int padx = encoder->m_sps.conformanceWindow.rightOffset; + int pady = encoder->m_sps.conformanceWindow.bottomOffset; + x265_csvlog_encode(encoder->m_param, &stats, padx, pady, argc, argv); } } @@ -868,45 +870,38 @@ fflush(stderr); } -void x265_csvlog_encode(x265_encoder *enc, const x265_stats* stats, int argc, char** argv) +void x265_csvlog_encode(const x265_param *p, const x265_stats *stats, int padx, int pady, int argc, char** argv) { - if (enc) + if (p && p->csvfpt) { - Encoder *encoder = static_cast<Encoder*>(enc); - int padx = encoder->m_sps.conformanceWindow.rightOffset; - int pady = encoder->m_sps.conformanceWindow.bottomOffset; const x265_api * api = x265_api_get(0); - if (!encoder->m_param->csvfpt) - return; - - if (encoder->m_param->csvLogLevel) + if (p->csvLogLevel) { // adding summary to a per-frame csv log file, so it needs a summary header - fprintf(encoder->m_param->csvfpt, "\nSummary\n"); - fputs(summaryCSVHeader, encoder->m_param->csvfpt); + fprintf(p->csvfpt, "\nSummary\n"); + fputs(summaryCSVHeader, p->csvfpt); } // CLI arguments or other if (argc) { - fputc('"', encoder->m_param->csvfpt); + fputc('"', p->csvfpt); for (int i = 1; i < argc; i++) { - fputc(' ', encoder->m_param->csvfpt); - fputs(argv[i], encoder->m_param->csvfpt); + fputc(' ', p->csvfpt); + fputs(argv[i], p->csvfpt); } - fputc('"', encoder->m_param->csvfpt); + fputc('"', p->csvfpt); } else { - const x265_param* paramTemp = encoder->m_param; - char *opts = x265_param2string((x265_param*)paramTemp, padx, pady); + char *opts = x265_param2string((x265_param*)p, padx, pady); if (opts) { - fputc('"', encoder->m_param->csvfpt); - fputs(opts, encoder->m_param->csvfpt); - fputc('"', encoder->m_param->csvfpt); + fputc('"', p->csvfpt); + fputs(opts, p->csvfpt); + fputc('"', p->csvfpt); } } @@ -917,70 +912,71 @@ timeinfo = localtime(&now); char buffer[200]; strftime(buffer, 128, "%c", timeinfo); - fprintf(encoder->m_param->csvfpt, ", %s, ", buffer); + fprintf(p->csvfpt, ", %s, ", buffer); // elapsed time, fps, bitrate - fprintf(encoder->m_param->csvfpt, "%.2f, %.2f, %.2f,", + fprintf(p->csvfpt, "%.2f, %.2f, %.2f,", stats->elapsedEncodeTime, stats->encodedPictureCount / stats->elapsedEncodeTime, stats->bitrate); - if (encoder->m_param->bEnablePsnr) - fprintf(encoder->m_param->csvfpt, " %.3lf, %.3lf, %.3lf, %.3lf,", + if (p->bEnablePsnr) + fprintf(p->csvfpt, " %.3lf, %.3lf, %.3lf, %.3lf,", stats->globalPsnrY / stats->encodedPictureCount, stats->globalPsnrU / stats->encodedPictureCount, stats->globalPsnrV / stats->encodedPictureCount, stats->globalPsnr); else - fprintf(encoder->m_param->csvfpt, " -, -, -, -,"); - if (encoder->m_param->bEnableSsim) - fprintf(encoder->m_param->csvfpt, " %.6f, %6.3f,", stats->globalSsim, x265_ssim2dB(stats->globalSsim)); + fprintf(p->csvfpt, " -, -, -, -,"); + if (p->bEnableSsim) + fprintf(p->csvfpt, " %.6f, %6.3f,", stats->globalSsim, x265_ssim2dB(stats->globalSsim)); else - fprintf(encoder->m_param->csvfpt, " -, -,"); + fprintf(p->csvfpt, " -, -,"); if (stats->statsI.numPics) { - fprintf(encoder->m_param->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsI.numPics, stats->statsI.avgQp, stats->statsI.bitrate); - if (encoder->m_param->bEnablePsnr) - fprintf(encoder->m_param->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsI.psnrY, stats->statsI.psnrU, stats->statsI.psnrV); + fprintf(p->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsI.numPics, stats->statsI.avgQp, stats->statsI.bitrate); + if (p->bEnablePsnr) + fprintf(p->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsI.psnrY, stats->statsI.psnrU, stats->statsI.psnrV); else - fprintf(encoder->m_param->csvfpt, " -, -, -,"); - if (encoder->m_param->bEnableSsim) - fprintf(encoder->m_param->csvfpt, " %.3lf,", stats->statsI.ssim); + fprintf(p->csvfpt, " -, -, -,"); + if (p->bEnableSsim) + fprintf(p->csvfpt, " %.3lf,", stats->statsI.ssim); else - fprintf(encoder->m_param->csvfpt, " -,"); + fprintf(p->csvfpt, " -,"); } else - fprintf(encoder->m_param->csvfpt, " -, -, -, -, -, -, -,"); + fprintf(p->csvfpt, " -, -, -, -, -, -, -,"); if (stats->statsP.numPics) { - fprintf(encoder->m_param->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsP.numPics, stats->statsP.avgQp, stats->statsP.bitrate); - if (encoder->m_param->bEnablePsnr) - fprintf(encoder->m_param->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsP.psnrY, stats->statsP.psnrU, stats->statsP.psnrV); + fprintf(p->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsP.numPics, stats->statsP.avgQp, stats->statsP.bitrate); + if (p->bEnablePsnr) + fprintf(p->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsP.psnrY, stats->statsP.psnrU, stats->statsP.psnrV); else - fprintf(encoder->m_param->csvfpt, " -, -, -,"); - if (encoder->m_param->bEnableSsim) - fprintf(encoder->m_param->csvfpt, " %.3lf,", stats->statsP.ssim); + fprintf(p->csvfpt, " -, -, -,"); + if (p->bEnableSsim) + fprintf(p->csvfpt, " %.3lf,", stats->statsP.ssim); else - fprintf(encoder->m_param->csvfpt, " -,"); + fprintf(p->csvfpt, " -,"); } else - fprintf(encoder->m_param->csvfpt, " -, -, -, -, -, -, -,"); + fprintf(p->csvfpt, " -, -, -, -, -, -, -,"); if (stats->statsB.numPics) { - fprintf(encoder->m_param->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsB.numPics, stats->statsB.avgQp, stats->statsB.bitrate); - if (encoder->m_param->bEnablePsnr) - fprintf(encoder->m_param->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsB.psnrY, stats->statsB.psnrU, stats->statsB.psnrV); + fprintf(p->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsB.numPics, stats->statsB.avgQp, stats->statsB.bitrate); + if (p->bEnablePsnr) + fprintf(p->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsB.psnrY, stats->statsB.psnrU, stats->statsB.psnrV); else - fprintf(encoder->m_param->csvfpt, " -, -, -,"); - if (encoder->m_param->bEnableSsim) - fprintf(encoder->m_param->csvfpt, " %.3lf,", stats->statsB.ssim); + fprintf(p->csvfpt, " -, -, -,"); + if (p->bEnableSsim) + fprintf(p->csvfpt, " %.3lf,", stats->statsB.ssim); else - fprintf(encoder->m_param->csvfpt, " -,"); + fprintf(p->csvfpt, " -,"); } else - fprintf(encoder->m_param->csvfpt, " -, -, -, -, -, -, -,"); + fprintf(p->csvfpt, " -, -, -, -, -, -, -,"); - fprintf(encoder->m_param->csvfpt, " %-6u, %-6u, %s\n", stats->maxCLL, stats->maxFALL, api->version_str); + fprintf(p->csvfpt, " %-6u, %-6u, %s\n", stats->maxCLL, stats->maxFALL, api->version_str); } + } /* The dithering algorithm is based on Sierra-2-4A error diffusion. diff -r 5f6f6189a239 -r f29e88d85ca2 source/x265.h --- a/source/x265.h Thu Jan 04 13:56:07 2018 +0530 +++ b/source/x265.h Thu Jan 04 15:16:06 2018 +0530 @@ -1779,9 +1779,10 @@ void x265_csvlog_frame(const x265_param *, const x265_picture *); /* Log final encode statistics to the CSV file handle. 'argc' and 'argv' are - * intended to be command line arguments passed to the encoder. Encode + * intended to be command line arguments passed to the encoder. padx and pady are + * padding offsets for conformance and can be given from sps settings. Encode * statistics should be queried from the encoder just prior to closing it. */ -void x265_csvlog_encode(x265_encoder *encoder, const x265_stats *, int argc, char** argv); +void x265_csvlog_encode(const x265_param*, const x265_stats *, int padx, int pady, int argc, char** argv); /* In-place downshift from a bit-depth greater than 8 to a bit-depth of 8, using * the residual bits to dither each row. */ @@ -1836,7 +1837,7 @@ int (*get_ref_frame_list)(x265_encoder*, x265_picyuv**, x265_picyuv**, int, int, int*, int*); FILE* (*csvlog_open)(const x265_param*); void (*csvlog_frame)(const x265_param*, const x265_picture*); - void (*csvlog_encode)(x265_encoder*, const x265_stats*, int, char**); + void (*csvlog_encode)(const x265_param*, const x265_stats *, int, int, int, char**); void (*dither_image)(x265_picture*, int, int, int16_t*, int); int (*set_analysis_data)(x265_encoder *encoder, x265_analysis_data *analysis_data, int poc, uint32_t cuBytes); /* add new pointers to the end, or increment X265_MAJOR_VERSION */
# HG changeset patch # User Aarthi Thirumalai <aar...@multicorewareinc.com> # Date 1515059166 -19800 # Thu Jan 04 15:16:06 2018 +0530 # Node ID f29e88d85ca29d23c05d3c7d03f0f506a12bc780 # Parent 5f6f6189a239aad91505ee1ed8b1874450779a2a api: change signature of x265_csvlog_encode() replace x265_encoder* with x265_param* and int padx, int pady as function arguments. diff -r 5f6f6189a239 -r f29e88d85ca2 source/CMakeLists.txt --- a/source/CMakeLists.txt Thu Jan 04 13:56:07 2018 +0530 +++ b/source/CMakeLists.txt Thu Jan 04 15:16:06 2018 +0530 @@ -29,7 +29,7 @@ option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF) mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD) # X265_BUILD must be incremented each time the public API is changed -set(X265_BUILD 150) +set(X265_BUILD 151) configure_file("${PROJECT_SOURCE_DIR}/x265.def.in" "${PROJECT_BINARY_DIR}/x265.def") configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in" diff -r 5f6f6189a239 -r f29e88d85ca2 source/encoder/api.cpp --- a/source/encoder/api.cpp Thu Jan 04 13:56:07 2018 +0530 +++ b/source/encoder/api.cpp Thu Jan 04 15:16:06 2018 +0530 @@ -312,7 +312,9 @@ Encoder *encoder = static_cast<Encoder*>(enc); x265_stats stats; encoder->fetchStats(&stats, sizeof(stats)); - x265_csvlog_encode(enc, &stats, argc, argv); + int padx = encoder->m_sps.conformanceWindow.rightOffset; + int pady = encoder->m_sps.conformanceWindow.bottomOffset; + x265_csvlog_encode(encoder->m_param, &stats, padx, pady, argc, argv); } } @@ -868,45 +870,38 @@ fflush(stderr); } -void x265_csvlog_encode(x265_encoder *enc, const x265_stats* stats, int argc, char** argv) +void x265_csvlog_encode(const x265_param *p, const x265_stats *stats, int padx, int pady, int argc, char** argv) { - if (enc) + if (p && p->csvfpt) { - Encoder *encoder = static_cast<Encoder*>(enc); - int padx = encoder->m_sps.conformanceWindow.rightOffset; - int pady = encoder->m_sps.conformanceWindow.bottomOffset; const x265_api * api = x265_api_get(0); - if (!encoder->m_param->csvfpt) - return; - - if (encoder->m_param->csvLogLevel) + if (p->csvLogLevel) { // adding summary to a per-frame csv log file, so it needs a summary header - fprintf(encoder->m_param->csvfpt, "\nSummary\n"); - fputs(summaryCSVHeader, encoder->m_param->csvfpt); + fprintf(p->csvfpt, "\nSummary\n"); + fputs(summaryCSVHeader, p->csvfpt); } // CLI arguments or other if (argc) { - fputc('"', encoder->m_param->csvfpt); + fputc('"', p->csvfpt); for (int i = 1; i < argc; i++) { - fputc(' ', encoder->m_param->csvfpt); - fputs(argv[i], encoder->m_param->csvfpt); + fputc(' ', p->csvfpt); + fputs(argv[i], p->csvfpt); } - fputc('"', encoder->m_param->csvfpt); + fputc('"', p->csvfpt); } else { - const x265_param* paramTemp = encoder->m_param; - char *opts = x265_param2string((x265_param*)paramTemp, padx, pady); + char *opts = x265_param2string((x265_param*)p, padx, pady); if (opts) { - fputc('"', encoder->m_param->csvfpt); - fputs(opts, encoder->m_param->csvfpt); - fputc('"', encoder->m_param->csvfpt); + fputc('"', p->csvfpt); + fputs(opts, p->csvfpt); + fputc('"', p->csvfpt); } } @@ -917,70 +912,71 @@ timeinfo = localtime(&now); char buffer[200]; strftime(buffer, 128, "%c", timeinfo); - fprintf(encoder->m_param->csvfpt, ", %s, ", buffer); + fprintf(p->csvfpt, ", %s, ", buffer); // elapsed time, fps, bitrate - fprintf(encoder->m_param->csvfpt, "%.2f, %.2f, %.2f,", + fprintf(p->csvfpt, "%.2f, %.2f, %.2f,", stats->elapsedEncodeTime, stats->encodedPictureCount / stats->elapsedEncodeTime, stats->bitrate); - if (encoder->m_param->bEnablePsnr) - fprintf(encoder->m_param->csvfpt, " %.3lf, %.3lf, %.3lf, %.3lf,", + if (p->bEnablePsnr) + fprintf(p->csvfpt, " %.3lf, %.3lf, %.3lf, %.3lf,", stats->globalPsnrY / stats->encodedPictureCount, stats->globalPsnrU / stats->encodedPictureCount, stats->globalPsnrV / stats->encodedPictureCount, stats->globalPsnr); else - fprintf(encoder->m_param->csvfpt, " -, -, -, -,"); - if (encoder->m_param->bEnableSsim) - fprintf(encoder->m_param->csvfpt, " %.6f, %6.3f,", stats->globalSsim, x265_ssim2dB(stats->globalSsim)); + fprintf(p->csvfpt, " -, -, -, -,"); + if (p->bEnableSsim) + fprintf(p->csvfpt, " %.6f, %6.3f,", stats->globalSsim, x265_ssim2dB(stats->globalSsim)); else - fprintf(encoder->m_param->csvfpt, " -, -,"); + fprintf(p->csvfpt, " -, -,"); if (stats->statsI.numPics) { - fprintf(encoder->m_param->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsI.numPics, stats->statsI.avgQp, stats->statsI.bitrate); - if (encoder->m_param->bEnablePsnr) - fprintf(encoder->m_param->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsI.psnrY, stats->statsI.psnrU, stats->statsI.psnrV); + fprintf(p->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsI.numPics, stats->statsI.avgQp, stats->statsI.bitrate); + if (p->bEnablePsnr) + fprintf(p->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsI.psnrY, stats->statsI.psnrU, stats->statsI.psnrV); else - fprintf(encoder->m_param->csvfpt, " -, -, -,"); - if (encoder->m_param->bEnableSsim) - fprintf(encoder->m_param->csvfpt, " %.3lf,", stats->statsI.ssim); + fprintf(p->csvfpt, " -, -, -,"); + if (p->bEnableSsim) + fprintf(p->csvfpt, " %.3lf,", stats->statsI.ssim); else - fprintf(encoder->m_param->csvfpt, " -,"); + fprintf(p->csvfpt, " -,"); } else - fprintf(encoder->m_param->csvfpt, " -, -, -, -, -, -, -,"); + fprintf(p->csvfpt, " -, -, -, -, -, -, -,"); if (stats->statsP.numPics) { - fprintf(encoder->m_param->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsP.numPics, stats->statsP.avgQp, stats->statsP.bitrate); - if (encoder->m_param->bEnablePsnr) - fprintf(encoder->m_param->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsP.psnrY, stats->statsP.psnrU, stats->statsP.psnrV); + fprintf(p->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsP.numPics, stats->statsP.avgQp, stats->statsP.bitrate); + if (p->bEnablePsnr) + fprintf(p->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsP.psnrY, stats->statsP.psnrU, stats->statsP.psnrV); else - fprintf(encoder->m_param->csvfpt, " -, -, -,"); - if (encoder->m_param->bEnableSsim) - fprintf(encoder->m_param->csvfpt, " %.3lf,", stats->statsP.ssim); + fprintf(p->csvfpt, " -, -, -,"); + if (p->bEnableSsim) + fprintf(p->csvfpt, " %.3lf,", stats->statsP.ssim); else - fprintf(encoder->m_param->csvfpt, " -,"); + fprintf(p->csvfpt, " -,"); } else - fprintf(encoder->m_param->csvfpt, " -, -, -, -, -, -, -,"); + fprintf(p->csvfpt, " -, -, -, -, -, -, -,"); if (stats->statsB.numPics) { - fprintf(encoder->m_param->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsB.numPics, stats->statsB.avgQp, stats->statsB.bitrate); - if (encoder->m_param->bEnablePsnr) - fprintf(encoder->m_param->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsB.psnrY, stats->statsB.psnrU, stats->statsB.psnrV); + fprintf(p->csvfpt, " %-6u, %2.2lf, %-8.2lf,", stats->statsB.numPics, stats->statsB.avgQp, stats->statsB.bitrate); + if (p->bEnablePsnr) + fprintf(p->csvfpt, " %.3lf, %.3lf, %.3lf,", stats->statsB.psnrY, stats->statsB.psnrU, stats->statsB.psnrV); else - fprintf(encoder->m_param->csvfpt, " -, -, -,"); - if (encoder->m_param->bEnableSsim) - fprintf(encoder->m_param->csvfpt, " %.3lf,", stats->statsB.ssim); + fprintf(p->csvfpt, " -, -, -,"); + if (p->bEnableSsim) + fprintf(p->csvfpt, " %.3lf,", stats->statsB.ssim); else - fprintf(encoder->m_param->csvfpt, " -,"); + fprintf(p->csvfpt, " -,"); } else - fprintf(encoder->m_param->csvfpt, " -, -, -, -, -, -, -,"); + fprintf(p->csvfpt, " -, -, -, -, -, -, -,"); - fprintf(encoder->m_param->csvfpt, " %-6u, %-6u, %s\n", stats->maxCLL, stats->maxFALL, api->version_str); + fprintf(p->csvfpt, " %-6u, %-6u, %s\n", stats->maxCLL, stats->maxFALL, api->version_str); } + } /* The dithering algorithm is based on Sierra-2-4A error diffusion. diff -r 5f6f6189a239 -r f29e88d85ca2 source/x265.h --- a/source/x265.h Thu Jan 04 13:56:07 2018 +0530 +++ b/source/x265.h Thu Jan 04 15:16:06 2018 +0530 @@ -1779,9 +1779,10 @@ void x265_csvlog_frame(const x265_param *, const x265_picture *); /* Log final encode statistics to the CSV file handle. 'argc' and 'argv' are - * intended to be command line arguments passed to the encoder. Encode + * intended to be command line arguments passed to the encoder. padx and pady are + * padding offsets for conformance and can be given from sps settings. Encode * statistics should be queried from the encoder just prior to closing it. */ -void x265_csvlog_encode(x265_encoder *encoder, const x265_stats *, int argc, char** argv); +void x265_csvlog_encode(const x265_param*, const x265_stats *, int padx, int pady, int argc, char** argv); /* In-place downshift from a bit-depth greater than 8 to a bit-depth of 8, using * the residual bits to dither each row. */ @@ -1836,7 +1837,7 @@ int (*get_ref_frame_list)(x265_encoder*, x265_picyuv**, x265_picyuv**, int, int, int*, int*); FILE* (*csvlog_open)(const x265_param*); void (*csvlog_frame)(const x265_param*, const x265_picture*); - void (*csvlog_encode)(x265_encoder*, const x265_stats*, int, char**); + void (*csvlog_encode)(const x265_param*, const x265_stats *, int, int, int, char**); void (*dither_image)(x265_picture*, int, int, int16_t*, int); int (*set_analysis_data)(x265_encoder *encoder, x265_analysis_data *analysis_data, int poc, uint32_t cuBytes); /* add new pointers to the end, or increment X265_MAJOR_VERSION */
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel