[x265] x265-devel Digest, Vol 120, Issue 3
Yaswanth Sastry
yaswanth.sastry at multicorewareinc.com
Mon Jun 19 06:09:47 UTC 2023
Hi Johannes Kauffmann,
Could you share the patches attached to this email?
Thanks,
Yaswanth
On Fri, Jun 9, 2023 at 5:30 PM <x265-devel-request at videolan.org> wrote:
> Send x265-devel mailing list submissions to
> x265-devel at videolan.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://mailman.videolan.org/listinfo/x265-devel
> or, via email, send a message with subject or body 'help' to
> x265-devel-request at videolan.org
>
> You can reach the person managing the list at
> x265-devel-owner at videolan.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of x265-devel digest..."
>
>
> Today's Topics:
>
> 1. [PATCH 2/3] Fix Wundef for ENABLE_LIBVMAF (Johannes Kauffmann)
> 2. [PATCH 3/3] Add defines needed by client apps to .pc file
> (Johannes Kauffmann)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri, 9 Jun 2023 00:11:42 +0200
> From: Johannes Kauffmann <johanneskauffmann at hotmail.com>
> To: x265-devel at videolan.org
> Subject: [x265] [PATCH 2/3] Fix Wundef for ENABLE_LIBVMAF
> Message-ID:
> <
> DB6PR07MB317525092B6C7590902611CAA650A at DB6PR07MB3175.eurprd07.prod.outlook.com
> >
>
> Content-Type: text/plain
>
> ---
> source/abrEncApp.cpp | 4 ++--
> source/encoder/api.cpp | 18 +++++++++---------
> source/encoder/encoder.cpp | 2 +-
> source/encoder/frameencoder.cpp | 4 ++--
> source/encoder/frameencoder.h | 2 +-
> source/x265.h | 4 ++--
> source/x265cli.cpp | 4 ++--
> 7 files changed, 19 insertions(+), 19 deletions(-)
>
> diff --git a/source/abrEncApp.cpp b/source/abrEncApp.cpp
> index 94644a1c0..4b4c2242c 100644
> --- a/source/abrEncApp.cpp
> +++ b/source/abrEncApp.cpp
> @@ -514,7 +514,7 @@ ret:
> while (m_threadActive)
> {
>
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> x265_vmaf_data* vmafdata = m_cliopt.vmafData;
> #endif
> /* This allows muxers to modify bitstream format */
> @@ -816,7 +816,7 @@ ret:
>
> api->encoder_get_stats(m_encoder, &stats, sizeof(stats));
> if (m_param->csvfn && !b_ctrl_c)
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> api->vmaf_encoder_log(m_encoder, m_cliopt.argCnt,
> m_cliopt.argString, m_cliopt.param, vmafdata);
> #else
> api->encoder_log(m_encoder, m_cliopt.argCnt,
> m_cliopt.argString);
> diff --git a/source/encoder/api.cpp b/source/encoder/api.cpp
> index 18edb9a70..542b074a5 100644
> --- a/source/encoder/api.cpp
> +++ b/source/encoder/api.cpp
> @@ -32,7 +32,7 @@
> #include "bitcost.h"
> #include "svt.h"
>
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> #include "libvmaf/libvmaf.h"
> #endif
>
> @@ -626,7 +626,7 @@ void x265_encoder_get_stats(x265_encoder *enc,
> x265_stats *outputStats, uint32_t
> encoder->fetchStats(outputStats, statsSizeBytes);
> }
> }
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> void x265_vmaf_encoder_log(x265_encoder* enc, int argc, char **argv,
> x265_param *param, x265_vmaf_data *vmafdata)
> {
> if (enc)
> @@ -1076,7 +1076,7 @@ static const x265_api libapi =
> &x265_csvlog_encode,
> &x265_dither_image,
> &x265_set_analysis_data,
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> &x265_calculate_vmafscore,
> &x265_calculate_vmaf_framelevelscore,
> &x265_vmaf_encoder_log,
> @@ -1381,7 +1381,7 @@ FILE* x265_csvlog_open(const x265_param* param)
> /* detailed performance statistics */
> fprintf(csvfp, ", DecideWait (ms), Row0Wait (ms),
> Wall time (ms), Ref Wait Wall (ms), Total CTU time (ms),"
> "Stall Time (ms), Total frame time (ms), Avg WPP,
> Row Blocks");
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> fprintf(csvfp, ", VMAF Frame Score");
> #endif
> }
> @@ -1392,7 +1392,7 @@ FILE* x265_csvlog_open(const x265_param* param)
> fputs(summaryCSVHeader, csvfp);
> if (param->csvLogLevel >= 2 || param->maxCLL ||
> param->maxFALL)
> fputs("MaxCLL, MaxFALL,", csvfp);
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> fputs(" Aggregate VMAF Score,", csvfp);
> #endif
> fputs(" Version\n", csvfp);
> @@ -1508,7 +1508,7 @@ void x265_csvlog_frame(const x265_param* param,
> const x265_picture* pic)
>
> frameStats->totalFrameTime);
>
> fprintf(param->csvfpt, " %.3lf, %d", frameStats->avgWPP,
> frameStats->countRowBlocks);
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> fprintf(param->csvfpt, ", %lf", frameStats->vmafFrameScore);
> #endif
> }
> @@ -1529,7 +1529,7 @@ void x265_csvlog_encode(const x265_param *p, const
> x265_stats *stats, int padx,
> fputs(summaryCSVHeader, p->csvfpt);
> if (p->csvLogLevel >= 2 || p->maxCLL || p->maxFALL)
> fputs("MaxCLL, MaxFALL,", p->csvfpt);
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> fputs(" Aggregate VMAF score,", p->csvfpt);
> #endif
> fputs(" Version\n",p->csvfpt);
> @@ -1627,7 +1627,7 @@ void x265_csvlog_encode(const x265_param *p, const
> x265_stats *stats, int padx,
> fprintf(p->csvfpt, " -, -, -, -, -, -, -,");
> if (p->csvLogLevel >= 2 || p->maxCLL || p->maxFALL)
> fprintf(p->csvfpt, " %-6u, %-6u,", stats->maxCLL,
> stats->maxFALL);
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> fprintf(p->csvfpt, " %lf,", stats->aggregateVmafScore);
> #endif
> fprintf(p->csvfpt, " %s\n", api->version_str);
> @@ -1722,7 +1722,7 @@ void x265_dither_image(x265_picture* picIn, int
> picWidth, int picHeight, int16_t
> }
> }
>
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> /* Read y values of single frame for 8-bit input */
> int read_image_byte(FILE *file, float *buf, int width, int height, int
> stride)
> {
> diff --git a/source/encoder/encoder.cpp b/source/encoder/encoder.cpp
> index 977ae19e3..e3e205fd0 100644
> --- a/source/encoder/encoder.cpp
> +++ b/source/encoder/encoder.cpp
> @@ -3080,7 +3080,7 @@ void Encoder::finishFrameStats(Frame* curFrame,
> FrameEncoder *curEncoder, x265_f
> #define ELAPSED_MSEC(start, end) (((double)(end) - (start)) / 1000)
> if (m_param->csvLogLevel >= 2)
> {
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> frameStats->vmafFrameScore = curFrame->m_fencPic->m_vmafScore;
> #endif
> frameStats->decideWaitTime = ELAPSED_MSEC(0,
> curEncoder->m_slicetypeWaitTime);
> diff --git a/source/encoder/frameencoder.cpp
> b/source/encoder/frameencoder.cpp
> index 659b87c89..c11ede720 100644
> --- a/source/encoder/frameencoder.cpp
> +++ b/source/encoder/frameencoder.cpp
> @@ -959,7 +959,7 @@ void FrameEncoder::compressFrame()
> m_frameFilter.processRow(i - m_filterRowDelay);
> }
> }
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> vmafFrameLevelScore();
> #endif
>
> @@ -2232,7 +2232,7 @@ void
> FrameEncoder::readModel(FilmGrainCharacteristics* m_filmGrain, FILE* filmgr
> }
> }
> }
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> void FrameEncoder::vmafFrameLevelScore()
> {
> PicYuv *fenc = m_frame->m_fencPic;
> diff --git a/source/encoder/frameencoder.h b/source/encoder/frameencoder.h
> index 9c5810883..21f2ffaf0 100644
> --- a/source/encoder/frameencoder.h
> +++ b/source/encoder/frameencoder.h
> @@ -277,7 +277,7 @@ protected:
> void enqueueRowFilter(int row) { WaveFront::enqueueRow(row * 2 + 1);
> }
> void enableRowEncoder(int row) { WaveFront::enableRow(row * 2 + 0); }
> void enableRowFilter(int row) { WaveFront::enableRow(row * 2 + 1); }
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> void vmafFrameLevelScore();
> #endif
> void collectDynDataFrame();
> diff --git a/source/x265.h b/source/x265.h
> index 901f33ded..d153d048e 100644
> --- a/source/x265.h
> +++ b/source/x265.h
> @@ -2522,7 +2522,7 @@ void x265_csvlog_encode(const x265_param*, const
> x265_stats *, int padx, int pad
> /* In-place downshift from a bit-depth greater than 8 to a bit-depth of
> 8, using
> * the residual bits to dither each row. */
> void x265_dither_image(x265_picture *, int picWidth, int picHeight,
> int16_t *errorBuf, int bitDepth);
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> /* x265_calculate_vmafScore:
> * returns VMAF score for the input video.
> * This api must be called only after encoding was done. */
> @@ -2593,7 +2593,7 @@ typedef struct x265_api
> 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);
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> double (*calculate_vmafscore)(x265_param *, x265_vmaf_data *);
> double (*calculate_vmaf_framelevelscore)(x265_vmaf_framedata
> *);
> void (*vmaf_encoder_log)(x265_encoder*, int, char**,
> x265_param *, x265_vmaf_data *);
> diff --git a/source/x265cli.cpp b/source/x265cli.cpp
> index eef101fe9..4e3e4a4e5 100755
> --- a/source/x265cli.cpp
> +++ b/source/x265cli.cpp
> @@ -637,7 +637,7 @@ namespace X265_NS {
> x265_log(NULL, X265_LOG_ERROR, "param alloc failed\n");
> return true;
> }
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> vmafData = (x265_vmaf_data*)x265_malloc(sizeof(x265_vmaf_data));
> if (!vmafData)
> {
> @@ -930,7 +930,7 @@ namespace X265_NS {
> param->sourceWidth, param->sourceHeight, param->fpsNum,
> param->fpsDenom,
> x265_source_csp_names[param->internalCsp]);
> }
> -#if ENABLE_LIBVMAF
> +#ifdef ENABLE_LIBVMAF
> if (!reconfn)
> {
> x265_log(param, X265_LOG_ERROR, "recon file must be specified
> to get VMAF score, try --help for help\n");
> --
> 2.34.1
>
>
>
> ------------------------------
>
> Message: 2
> Date: Fri, 9 Jun 2023 00:11:43 +0200
> From: Johannes Kauffmann <johanneskauffmann at hotmail.com>
> To: x265-devel at videolan.org
> Subject: [x265] [PATCH 3/3] Add defines needed by client apps to .pc
> file
> Message-ID:
> <
> DB6PR07MB3175A8AD89183E730E949D72A650A at DB6PR07MB3175.eurprd07.prod.outlook.com
> >
>
> Content-Type: text/plain
>
> For now, the only defines also needed by client apps are HIGH_BIT_DEPTH
> and ENABLE_LIBVMAF.
>
> Also, use HIGH_BIT_DEPTH define in public header, instead of X265_DEPTH.
> ---
> source/CMakeLists.txt | 15 +++++++++++----
> source/x265.h | 2 +-
> source/x265.pc.in | 2 +-
> 3 files changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
> index e1c83bf97..cbbd813d2 100755
> --- a/source/CMakeLists.txt
> +++ b/source/CMakeLists.txt
> @@ -37,6 +37,10 @@ configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
>
> SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake"
> "${CMAKE_MODULE_PATH}")
>
> +# Added to the .pc file, and also passed to add_definitions() later. Use
> this variable
> +# instead of add_definitions() for flags needed by both x265 itself and
> client applications.
> +set(X265_PUBLIC_DEFINES "")
> +
> # System architecture detection
> if (APPLE AND CMAKE_OSX_ARCHITECTURES)
> string(TOLOWER "${CMAKE_OSX_ARCHITECTURES}" SYSPROC)
> @@ -129,7 +133,7 @@ if(UNIX)
> find_library(VMAF vmaf)
> option(ENABLE_LIBVMAF "Enable VMAF" OFF)
> if(ENABLE_LIBVMAF)
> - add_definitions(-DENABLE_LIBVMAF)
> + set(X265_PUBLIC_DEFINES "${X265_PUBLIC_DEFINES} -DENABLE_LIBVMAF")
> endif()
> endif(UNIX)
>
> @@ -405,14 +409,15 @@ if(X64)
> option(HIGH_BIT_DEPTH "Store pixel samples as 16bit values
> (Main10/Main12)" OFF)
> endif(X64)
> if(HIGH_BIT_DEPTH)
> + set(X265_PUBLIC_DEFINES "${X265_PUBLIC_DEFINES} -DHIGH_BIT_DEPTH")
> option(MAIN12 "Support Main12 instead of Main10" OFF)
> if(MAIN12)
> - add_definitions(-DHIGH_BIT_DEPTH=1 -DX265_DEPTH=12)
> + add_definitions(-DX265_DEPTH=12)
> else()
> - add_definitions(-DHIGH_BIT_DEPTH=1 -DX265_DEPTH=10)
> + add_definitions(-DX265_DEPTH=10)
> endif()
> else(HIGH_BIT_DEPTH)
> - add_definitions(-DHIGH_BIT_DEPTH=0 -DX265_DEPTH=8)
> + add_definitions(-DX265_DEPTH=8)
> endif(HIGH_BIT_DEPTH)
>
> if (ENABLE_HDR10_PLUS)
> @@ -722,6 +727,8 @@ if(ENABLE_SHARED)
> endif()
> endif()
>
> +add_definitions("${X265_PUBLIC_DEFINES}")
> +
> if(X265_LATEST_TAG)
> # convert lists of link libraries into -lstdc++ -lm etc..
> foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
> diff --git a/source/x265.h b/source/x265.h
> index d153d048e..be50639c3 100644
> --- a/source/x265.h
> +++ b/source/x265.h
> @@ -181,7 +181,7 @@ typedef struct x265_weight_param
> int wtPresent;
> }x265_weight_param;
>
> -#if X265_DEPTH < 10
> +#ifndef HIGH_BIT_DEPTH
> typedef uint32_t sse_t;
> #else
> typedef uint64_t sse_t;
> diff --git a/source/x265.pc.in b/source/x265.pc.in
> index 0bf99e938..993d674a2 100644
> --- a/source/x265.pc.in
> +++ b/source/x265.pc.in
> @@ -8,4 +8,4 @@ Description: H.265/HEVC video encoder
> Version: @X265_LATEST_TAG@
> Libs: -L${libdir} -lx265
> Libs.private: @PRIVATE_LIBS@
> -Cflags: -I${includedir}
> +Cflags: -I${includedir} @X265_PUBLIC_DEFINES@
> --
> 2.34.1
>
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
>
> ------------------------------
>
> End of x265-devel Digest, Vol 120, Issue 3
> ******************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20230619/6f4fbf78/attachment-0001.htm>
More information about the x265-devel
mailing list