<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 20, 2020 at 6:57 PM Srikanth Kurapati <<a href="mailto:srikanth.kurapati@multicorewareinc.com">srikanth.kurapati@multicorewareinc.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">From 07b19f58c24f5c9919f49309a9e299aae825f784 Mon Sep 17 00:00:00 2001<br>From: Srikanth Kurapati <<a href="mailto:srikanth.kurapati@multicorewareinc.com" target="_blank">srikanth.kurapati@multicorewareinc.com</a>><br>Date: Tue, 13 Oct 2020 20:46:56 +0530<br>Subject: [PATCH] Fix incorrect version display issue on console for archived <br> repositories.<br><br>1. adds a new file x265version.txt to maintain version information across releases.<br>2. adds functionality to process the same & updates documentation.<br>---<br> doc/reST/cli.rst | 11 ++-<br> source/CMakeLists.txt | 2 +-<br> source/cmake/Version.cmake | 193 +++++++++++++++++++++++++++++++++++++<br> source/cmake/version.cmake | 97 -------------------<br> x265Version.txt | 5 +<br> 5 files changed, 208 insertions(+), 100 deletions(-)<br> create mode 100644 source/cmake/Version.cmake<br> delete mode 100644 source/cmake/version.cmake<br> create mode 100644 x265Version.txt<br><br>diff --git a/doc/reST/cli.rst b/doc/reST/cli.rst<br>index 1a1de9f50..26ff3ff7a 100755<br>--- a/doc/reST/cli.rst<br>+++ b/doc/reST/cli.rst<br>@@ -36,13 +36,20 @@ Executable Options<br> <br> .. option:: --help, -h<br> <br>- Display help text<br>+ Displays help text<br> <br> **CLI ONLY**<br> <br> .. option:: --version, -V<br> <br>- Display version details<br>+ Displays version details in the following format *[Version Name]+/-[Number of commits from the release changeset]-/+[repository's head changeset SHA-1 paraphrase identifier]* using input from<br>+ version control software *Git or Mercurial* for cloned repositories. In case of release of any specific archive of x265 generated using version control software the cli option displays<br>+ the version string using information from configuration in file *x265Version.txt*<br></div></blockquote><div>[AM] Still this is misleading. --version lists build details in addition to tag info. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">+<br>+ .. seeAlso:: For more information on how to edit the version file please refer to `<<a href="https://bitbucket.org/multicoreware/x265_git/wiki/Home" target="_blank">https://bitbucket.org/multicoreware/x265_git/wiki/Home</a>>`_ and Contribute pages for updates specific<br>+ release and version control management.<br>+<br>+ **Example for git repositories:** <h1>x265 [info]: HEVC encoder version 3.4+26-a82c6c7a7<\h1><br> <br> **CLI ONLY**<br> <br>diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt<br>index 67e737512..95218f5dc 100755<br>--- a/source/CMakeLists.txt<br>+++ b/source/CMakeLists.txt<br>@@ -485,7 +485,7 @@ if(POWER)<br> endif()<br> endif()<br> <br>-include(version) # determine X265_VERSION and X265_LATEST_TAG<br>+include(Version) # determine X265_VERSION and X265_LATEST_TAG<br> include_directories(. common encoder "${PROJECT_BINARY_DIR}")<br> <br> option(ENABLE_PPA "Enable PPA profiling instrumentation" OFF)<br>diff --git a/source/cmake/Version.cmake b/source/cmake/Version.cmake<br>new file mode 100644<br>index 000000000..683a6c6fb<br>--- /dev/null<br>+++ b/source/cmake/Version.cmake<br>@@ -0,0 +1,193 @@<br>+ #################################################################################################################<br>+ #<br>+ # Copyright (C) 2013-2020 MulticoreWare, Inc<br>+ #<br>+ # This program is free software; you can redistribute it and/or modify<br>+ # it under the terms of the GNU General Public License as published by<br>+ # the Free Software Foundation; either version 2 of the License, or<br>+ # (at your option) any later version.<br>+ #<br>+ # This program is distributed in the hope that it will be useful,<br>+ # but WITHOUT ANY WARRANTY; without even the implied warranty of<br>+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>+ # GNU General Public License for more details.<br>+ #<br>+ # You should have received a copy of the GNU General Public License<br>+ # along with this program; if not, write to the Free Software<br>+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.<br>+ #<br>+ # This program is also available under a commercial proprietary license.<br>+ # For more information, contact us at license @ <a href="http://x265.com" target="_blank">x265.com</a><br>+ #<br>+ # Authors: Janani T.E <<a href="mailto:janani.te@multicorewareinc.com" target="_blank">janani.te@multicorewareinc.com</a>>, Srikanth Kurapati <<a href="mailto:srikanthkurapati@multicorewareinc.com" target="_blank">srikanthkurapati@multicorewareinc.com</a>><br>+ #<br>+ #################################################################################################################<br>+ # PURPOSE: Identity version control software version display, also read version files to present x265 version.<br>+ #################################################################################################################<br>+ #Default Settings, for user to be vigilant about x265 version being reported during product build.<br>+set(X265_VERSION "unknown")<br>+set(X265_LATEST_TAG "0.0")<br>+set(X265_TAG_DISTANCE "0")<br>+set(HG_ARCHETYPE "0")<br>+set(GIT_ARCHETYPE "0")<br>+<br>+#Find version control software to be used for live and extracted repositories from compressed tarballs<br>+if(CMAKE_VERSION VERSION_LESS "2.8.10")<br>+ find_program(HG_EXECUTABLE hg)<br>+ if(EXISTS "${HG_EXECUTABLE}.bat")<br>+ set(HG_EXECUTABLE "${HG_EXECUTABLE}.bat")<br>+ endif()<br>+ message(STATUS "hg found at ${HG_EXECUTABLE}")<br>+else()<br>+ find_package(Hg QUIET)<br>+endif()<br>+if(HG_EXECUTABLE)<br>+ #Set Version Control binary for source code kind<br>+ if(EXISTS CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt)<br>+ set(HG_ARCHETYPE "1")<br>+ elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg)<br>+ set(HG_ARCHETYPE "2")<br>+ endif()<br>+endif(HG_EXECUTABLE)<br>+find_package(Git QUIET) #No restrictions on Git versions used, any versions from 1.8.x to 2.2.x or later should do.<br>+if(Git_FOUND)<br>+ find_program(GIT_EXECUTABLE git)<br>+ message(STATUS "GIT_EXECUTABLE ${GIT_EXECUTABLE}")<br>+ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)<br>+ set(GIT_ARCHETYPE "2")<br>+ elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt)<br>+ set(GIT_ARCHETYPE "1")<br>+ endif()<br>+endif(Git_FOUND)<br>+if(HG_ARCHETYPE STREQUAL "1")<br>+ #Read the lines of the archive summary file to extract the version<br>+ message(STATUS "SOURCE CODE IS FROM x265 ARCHIVED ZIP OR TAR BALL")<br>+ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt archive)<br>+ STRING(REGEX REPLACE "\n" ";" archive "${archive}")<br>+ foreach(f ${archive})<br>+ string(FIND "${f}" ": " pos)<br>+ string(SUBSTRING "${f}" 0 ${pos} key)<br>+ string(SUBSTRING "${f}" ${pos} -1 value)<br>+ string(SUBSTRING "${value}" 2 -1 value)<br>+ set(hg_${key} ${value})<br>+ endforeach()<br>+ if(DEFINED hg_tag)<br>+ set(X265_LATEST_TAG ${hg_tag})<br>+ elseif(DEFINED hg_node)<br>+ set(X265_LATEST_TAG ${hg_latesttag})<br>+ set(X265_TAG_DISTANCE ${hg_latesttagdistance})<br>+ string(SUBSTRING "${hg_node}" 0 12 X265_REVISION_ID)<br>+ endif()<br>+ message(STATUS "HG ARCHIVAL INFORMATION PROCESSED")<br>+elseif(HG_ARCHETYPE STREQUAL "2")<br>+ execute_process(COMMAND<br>+ ${HG_EXECUTABLE} log -r. --template "{latesttag}"<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_LATEST_TAG<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ execute_process(COMMAND<br>+ ${HG_EXECUTABLE} log -r. --template "{latesttagdistance}"<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_TAG_DISTANCE<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ execute_process(<br>+ COMMAND<br>+ ${HG_EXECUTABLE} log -r. --template "{node}"<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_REVISION_ID<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ string(SUBSTRING "${X265_REVISION_ID}" 0 12 X265_REVISION_ID)<br>+ if(X265_LATEST_TAG MATCHES "^r")<br>+ string(SUBSTRING ${X265_LATEST_TAG} 1 -1 X265_LATEST_TAG)<br>+ endif()<br>+ message(STATUS "HG LIVE REPO STATUS CHECK DONE")<br>+elseif(GIT_ARCHETYPE STREQUAL "2")<br>+ execute_process(<br>+ COMMAND<br>+ ${GIT_EXECUTABLE} describe --abbrev=0 --tags<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_LATEST_TAG<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ execute_process(<br>+ COMMAND<br>+ ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count --first-parent<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_TAG_DISTANCE<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ execute_process(<br>+ COMMAND<br>+ ${GIT_EXECUTABLE} log --pretty=format:%h -n 1<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_REVISION_ID<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+elseif(GIT_ARCHETYPE STREQUAL "1")<br>+ message(STATUS "X265 GIT ARCHIVE EXTRACT VERSION INFORMATION PROCESSING")<br>+ #Read the lines of the archive summary file to extract the version<br>+ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt filebuf)<br>+ STRING(REGEX REPLACE "\n" ";" filebuf "${filebuf}")<br>+ foreach(line ${filebuf})<br>+ string(FIND "${line}" ": " pos)<br>+ string(SUBSTRING "${line}" 0 ${pos} key)<br>+ string(SUBSTRING "${line}" ${pos} -1 value)<br>+ string(SUBSTRING "${value}" 2 -1 value)<br>+ set(git_${key} ${value})<br>+ endforeach()<br>+ if(DEFINED git_releasetag)<br>+ set(X265_LATEST_TAG ${git_releasetag})<br>+ if(DEFINED git_releasetagcommitid)<br>+ string(SUBSTRING "${git_releasetagcommitid}" 0 9 X265_REVISION_ID)<br>+ else()<br>+ message(WARNING "RELEASE CHANGESET INFO NOT PRESENT IN VERSION FILE")<br>+ endif()<br>+ if(DEFINED git_repositorychangeset)<br>+ string(SUBSTRING "${git_repositorychangeset}" 0 9 X265_REPO_ID)<br>+ else()<br>+ message(STATUS "X265 LATEST COMMIT TIP INFORMATION NOT AVAILABLE")<br>+ endif()<br>+ if(DEFINED git_releasetagdistance)<br>+ set(X265_TAG_DISTANCE ${git_releasetagdistance})<br>+ else()<br>+ message(WARNING "COMMIT INFORMATION AFTER LATEST REVISION UNAVAILABLE")<br>+ endif()<br>+ else()<br>+ message(WARNING "X265 RELEASE VERSION LABEL MISSING: ${X265_LATEST_TAG}")<br>+ endif()<br>+endif()<br>+<br>+# formatting based on positive or negative distance from tag<br>+if(X265_TAG_DISTANCE STREQUAL "0")<br>+ if(X265_REVISION_ID STREQUAL X265_REPO_ID)<br>+ set(X265_VERSION "${X265_LATEST_TAG}")<br>+ else()<br>+ message(WARNING "REPO AND RELEASE CHANGESETS NOT MATCHING")<br>+ endif()<br>+elseif(X265_TAG_DISTANCE STRGREATER "0")<br>+ if(X265_REVISION_ID STRLESS X265_REPO_ID)<br>+ set(X265_VERSION "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}")<br>+ else()<br>+ message(WARNING "ARCCHIVE TIP CHANGESET TO BE GREATER THAN REVISION ID") <br>+ endif()<br>+elseif(X265_TAG_DISTANCE STRLESS "0")<br>+ if(X265_REVISION_ID STRGREATER X265_REPO_ID)<br></div></blockquote><div>[AM] What is the significance of this check? Is this with the assumption that the commit hash values are in ascending order??</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">+ set(X265_VERSION "${X265_LATEST_TAG}${X265_TAG_DISTANCE}+${X265_REPO_ID}")<br>+ else()<br>+ message(WARNING "REVISION ID EXPECTED TO BE LARGER THAN ARCHIVE TIP CHANGESET")<br>+ endif()<br>+else()<br>+ message(ERROR "Inappropriate set of version information")<br>+endif()<br>+<br>+#will always be printed in its entirety based on version file configuration to avail revision monitoring by repo owners<br>+message(STATUS "x265 RELEASE VERSION ${X265_VERSION}")<br>diff --git a/source/cmake/version.cmake b/source/cmake/version.cmake<br>deleted file mode 100644<br>index 35302249a..000000000<br>--- a/source/cmake/version.cmake<br>+++ /dev/null<br>@@ -1,97 +0,0 @@<br>-if(CMAKE_VERSION VERSION_LESS "2.8.10")<br>- find_program(HG_EXECUTABLE hg)<br>-else()<br>- find_package(Hg QUIET)<br>-endif()<br>-find_package(Git QUIET) # present in 2.8.8<br>-<br>-# defaults, in case everything below fails<br>-set(X265_VERSION "unknown")<br>-set(X265_LATEST_TAG "0.0")<br>-set(X265_TAG_DISTANCE "0")<br>-<br>-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt)<br>- # read the lines of the archive summary file to extract the version<br>- file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt archive)<br>- STRING(REGEX REPLACE "\n" ";" archive "${archive}")<br>- foreach(f ${archive})<br>- string(FIND "${f}" ": " pos)<br>- string(SUBSTRING "${f}" 0 ${pos} key)<br>- string(SUBSTRING "${f}" ${pos} -1 value)<br>- string(SUBSTRING "${value}" 2 -1 value)<br>- set(hg_${key} ${value})<br>- endforeach()<br>- if(DEFINED hg_tag)<br>- set(X265_LATEST_TAG ${hg_tag})<br>- elseif(DEFINED hg_node)<br>- set(X265_LATEST_TAG ${hg_latesttag})<br>- set(X265_TAG_DISTANCE ${hg_latesttagdistance})<br>- string(SUBSTRING "${hg_node}" 0 12 X265_REVISION_ID)<br>- endif()<br>-elseif(HG_EXECUTABLE AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg)<br>- if(EXISTS "${HG_EXECUTABLE}.bat")<br>- # mercurial source installs on Windows require .bat extension<br>- set(HG_EXECUTABLE "${HG_EXECUTABLE}.bat")<br>- endif()<br>- message(STATUS "hg found at ${HG_EXECUTABLE}")<br>-<br>- execute_process(COMMAND<br>- ${HG_EXECUTABLE} log -r. --template "{latesttag}"<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_LATEST_TAG<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- execute_process(COMMAND<br>- ${HG_EXECUTABLE} log -r. --template "{latesttagdistance}"<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_TAG_DISTANCE<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- execute_process(<br>- COMMAND<br>- ${HG_EXECUTABLE} log -r. --template "{node}"<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_REVISION_ID<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- string(SUBSTRING "${X265_REVISION_ID}" 0 12 X265_REVISION_ID)<br>-<br>- if(X265_LATEST_TAG MATCHES "^r")<br>- string(SUBSTRING ${X265_LATEST_TAG} 1 -1 X265_LATEST_TAG)<br>- endif()<br>-elseif(GIT_EXECUTABLE AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)<br>- execute_process(<br>- COMMAND<br>- ${GIT_EXECUTABLE} describe --abbrev=0 --tags<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_LATEST_TAG<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- execute_process(<br>- COMMAND<br>- ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count --first-parent<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_TAG_DISTANCE<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- execute_process(<br>- COMMAND<br>- ${GIT_EXECUTABLE} log -1 --format=g%h<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_REVISION_ID<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>-endif()<br>-if(X265_TAG_DISTANCE STREQUAL "0")<br>- set(X265_VERSION "${X265_LATEST_TAG}")<br>-else()<br>- set(X265_VERSION "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}")<br>-endif()<br>-<br>-message(STATUS "x265 version ${X265_VERSION}")<br>diff --git a/x265Version.txt b/x265Version.txt<br>new file mode 100644<br>index 000000000..221a7a6d9<br>--- /dev/null<br>+++ b/x265Version.txt<br>@@ -0,0 +1,5 @@<br>+#Attribute: Values<br>+repositorychangeset: a82c6c7a7<br>+releasetagcommitid: 6722fce1f<br>+releasetagdistance: 28<br>+releasetag: Release_3.5<br></div></blockquote><div>[AM] Release_3.5 is not a valid tag.</div><div>Also, as I mentioned already, each branch must have different versions of x265Version.txt. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">-- <br>2.20.1.windows.1<br><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 20, 2020 at 5:19 PM Srikanth Kurapati <<a href="mailto:srikanth.kurapati@multicorewareinc.com" target="_blank">srikanth.kurapati@multicorewareinc.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 19, 2020 at 9:09 PM Aruna Matheswaran <<a href="mailto:aruna@multicorewareinc.com" target="_blank">aruna@multicorewareinc.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 18, 2020 at 5:28 PM Srikanth Kurapati <<a href="mailto:srikanth.kurapati@multicorewareinc.com" target="_blank">srikanth.kurapati@multicorewareinc.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">From 89c497c96918c22aa4dd074e603ec8ce56982415 Mon Sep 17 00:00:00 2001<br>From: Srikanth Kurapati <<a href="mailto:srikanth.kurapati@multicorewareinc.com" target="_blank">srikanth.kurapati@multicorewareinc.com</a>><br>Date: Tue, 13 Oct 2020 20:46:56 +0530<br>Subject: [PATCH] fix enables git repository archival for x265 release versions<br></div></blockquote><div>[AM] Commit message is confusing to me. Needs to be changed to something like "Fix incorrect version display in archived git repositories" </div></div></div></blockquote><div> [KS] simplified. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br>---<br> doc/reST/cli.rst | 8 +-<br> source/CMakeLists.txt | 2 +-<br> source/cmake/Version.cmake | 172 +++++++++++++++++++++++++++++++++++++<br> source/cmake/version.cmake | 97 ---------------------<br> x265Version.txt | 5 ++<br> 5 files changed, 184 insertions(+), 100 deletions(-)<br> create mode 100644 source/cmake/Version.cmake<br> delete mode 100644 source/cmake/version.cmake<br> create mode 100644 x265Version.txt<br><br>diff --git a/doc/reST/cli.rst b/doc/reST/cli.rst<br>index 1a1de9f50..716b51e01 100755<br>--- a/doc/reST/cli.rst<br>+++ b/doc/reST/cli.rst<br>@@ -36,13 +36,17 @@ Executable Options<br> <br> .. option:: --help, -h<br> <br>- Display help text<br>+ Displays help text<br> <br> **CLI ONLY**<br> <br> .. option:: --version, -V<br> <br>- Display version details<br>+ Displays version details in *[Version Name]+[commit count from Release Tag]-[Tag SHA-1 paraphrase formatted string or substring]* format using input from<br>+ version control software *Git or Mercurial*. Product Archives display the same using information from configuration in file *x265Version.txt*<br>+ **Example for git repositories:** <h1>x265 [info]: HEVC encoder version 3.4+26-a82c6c7a7<\h1><br>+<br></div></blockquote><div>[AM] The help statement is misleading. --version is not just restricted to displaying tag details. It does provide other build details.</div></div></div></blockquote><div> [re phrased] </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">+ .. seeAlso:: For more information please refer to `<<a href="https://bitbucket.org/multicoreware/x265_git/wiki/Home" target="_blank">https://bitbucket.org/multicoreware/x265_git/wiki/Home</a>>`_ and Contribute pages for updates.<br> <br> **CLI ONLY**<br> <br>diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt<br>index 67e737512..95218f5dc 100755<br>--- a/source/CMakeLists.txt<br>+++ b/source/CMakeLists.txt<br>@@ -485,7 +485,7 @@ if(POWER)<br> endif()<br> endif()<br> <br>-include(version) # determine X265_VERSION and X265_LATEST_TAG<br>+include(Version) # determine X265_VERSION and X265_LATEST_TAG<br> include_directories(. common encoder "${PROJECT_BINARY_DIR}")<br> <br> option(ENABLE_PPA "Enable PPA profiling instrumentation" OFF)<br>diff --git a/source/cmake/Version.cmake b/source/cmake/Version.cmake<br>new file mode 100644<br>index 000000000..836f482e6<br>--- /dev/null<br>+++ b/source/cmake/Version.cmake<br>@@ -0,0 +1,172 @@<br>+ #################################################################################################################<br>+ #<br>+ # Copyright (C) 2013-2020 MulticoreWare, Inc<br>+ #<br>+ # This program is free software; you can redistribute it and/or modify<br>+ # it under the terms of the GNU General Public License as published by<br>+ # the Free Software Foundation; either version 2 of the License, or<br>+ # (at your option) any later version.<br>+ #<br>+ # This program is distributed in the hope that it will be useful,<br>+ # but WITHOUT ANY WARRANTY; without even the implied warranty of<br>+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>+ # GNU General Public License for more details.<br>+ #<br>+ # You should have received a copy of the GNU General Public License<br>+ # along with this program; if not, write to the Free Software<br>+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.<br>+ #<br>+ # This program is also available under a commercial proprietary license.<br>+ # For more information, contact us at license @ <a href="http://x265.com" target="_blank">x265.com</a><br>+ #<br>+ # Authors: Janani T.E <<a href="mailto:janani.te@multicorewareinc.com" target="_blank">janani.te@multicorewareinc.com</a>>, Srikanth Kurapati <<a href="mailto:srikanthkurapati@multicorewareinc.com" target="_blank">srikanthkurapati@multicorewareinc.com</a>><br>+ #<br>+ #################################################################################################################<br>+ # PURPOSE: Identity version control software version display, also read version files to present x265 version.<br>+ #################################################################################################################<br>+ #Default Settings, for user to be vigilant about x265 version being reported during product build.<br>+set(X265_VERSION "unknown")<br>+set(X265_REPO_ID "unknown")<br>+set(X265_LATEST_TAG "0.0")<br>+set(X265_TAG_DISTANCE "0")<br>+set(IS_HG_ARCHIVE_REPO "0")<br>+set(IS_HG_LIVE_REPO "0")<br></div></blockquote><div>[AM] Why is another flag IS_HG_LIVE_REPO required? Shall be handled with one flag.</div></div></div></blockquote><div> [KS] optimized, had initially added them for keeping the cases distinctly readable</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">+set(IS_GIT_ARCHIVE_REPO "0")<br>+set(IS_GIT_LIVE_REPO "0")<br>+<br>+#Find version control software to be used for live and extracted repositories from compressed tarballs<br>+if(CMAKE_VERSION VERSION_LESS "2.8.10")<br>+ find_program(HG_EXECUTABLE hg)<br>+ if(EXISTS "${HG_EXECUTABLE}.bat")<br>+ set(HG_EXECUTABLE "${HG_EXECUTABLE}.bat")<br>+ endif()<br>+ message(STATUS "hg found at ${HG_EXECUTABLE}")<br>+else()<br>+ find_package(Hg QUIET)<br>+endif()<br>+if(HG_EXECUTABLE)<br>+ #Set Version Control binary for source code kind<br>+ if(EXISTS CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt)<br>+ set(IS_HG_ARCHIVE_REPO "1")<br>+ elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg)<br>+ set(IS_HG_LIVE_REPO "1")<br>+ endif()<br>+endif(HG_EXECUTABLE)<br>+find_package(Git QUIET) #No restrictions on Git versions used, any versions from 1.8.x to 2.2.x or later should do.<br>+if(Git_FOUND)<br>+ find_program(GIT_EXECUTABLE git)<br>+ message(STATUS "GIT_EXECUTABLE ${GIT_EXECUTABLE}")<br>+ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)<br>+ set(IS_GIT_LIVE_REPO "1")<br>+ elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt)<br>+ set(IS_GIT_ARCHIVE_REPO "1")<br>+ endif()<br>+endif(Git_FOUND)<br>+if(IS_HG_ARCHIVE_REPO STREQUAL "1")<br>+ #Read the lines of the archive summary file to extract the version<br>+ message(STATUS "SOURCE CODE IS FROM x265 ARCHIVED ZIP OR TAR BALL")<br>+ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt archive)<br>+ STRING(REGEX REPLACE "\n" ";" archive "${archive}")<br>+ foreach(f ${archive})<br>+ string(FIND "${f}" ": " pos)<br>+ string(SUBSTRING "${f}" 0 ${pos} key)<br>+ string(SUBSTRING "${f}" ${pos} -1 value)<br>+ string(SUBSTRING "${value}" 2 -1 value)<br>+ set(hg_${key} ${value})<br>+ endforeach()<br>+ if(DEFINED hg_tag)<br>+ set(X265_LATEST_TAG ${hg_tag})<br>+ elseif(DEFINED hg_node)<br>+ set(X265_LATEST_TAG ${hg_latesttag})<br>+ set(X265_TAG_DISTANCE ${hg_latesttagdistance})<br>+ string(SUBSTRING "${hg_node}" 0 12 X265_REVISION_ID)<br>+ endif()<br>+ message(STATUS "HG ARCHIVAL INFORMATION PROCESSED")<br>+elseif(IS_HG_LIVE_REPO STREQUAL "1")<br>+ execute_process(COMMAND<br>+ ${HG_EXECUTABLE} log -r. --template "{latesttag}"<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_LATEST_TAG<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ execute_process(COMMAND<br>+ ${HG_EXECUTABLE} log -r. --template "{latesttagdistance}"<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_TAG_DISTANCE<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ execute_process(<br>+ COMMAND<br>+ ${HG_EXECUTABLE} log -r. --template "{node}"<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_REVISION_ID<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ string(SUBSTRING "${X265_REVISION_ID}" 0 12 X265_REVISION_ID)<br>+ if(X265_LATEST_TAG MATCHES "^r")<br>+ string(SUBSTRING ${X265_LATEST_TAG} 1 -1 X265_LATEST_TAG)<br>+ endif()<br>+ message(STATUS "HG LIVE REPO STATUS CHECK DONE")<br>+elseif(IS_GIT_LIVE_REPO STREQUAL "1")<br>+ execute_process(<br>+ COMMAND<br>+ ${GIT_EXECUTABLE} describe --abbrev=0 --tags<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_LATEST_TAG<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ execute_process(<br>+ COMMAND<br>+ ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count --first-parent<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_TAG_DISTANCE<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+ execute_process(<br>+ COMMAND<br>+ ${GIT_EXECUTABLE} log --pretty=format:%h -n 1<br>+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>+ OUTPUT_VARIABLE X265_REVISION_ID<br>+ ERROR_QUIET<br>+ OUTPUT_STRIP_TRAILING_WHITESPACE<br>+ )<br>+elseif(IS_GIT_ARCHIVE_REPO STREQUAL "1")<br>+ message(STATUS "X265 GIT ARCHIVE EXTRACT VERSION INFORMATION PROCESSING")<br>+ #Read the lines of the archive summary file to extract the version<br>+ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt filebuf)<br>+ STRING(REGEX REPLACE "\n" ";" filebuf "${filebuf}")<br>+ foreach(line ${filebuf})<br>+ string(FIND "${line}" ": " pos)<br>+ string(SUBSTRING "${line}" 0 ${pos} key)<br>+ string(SUBSTRING "${line}" ${pos} -1 value)<br>+ string(SUBSTRING "${value}" 2 -1 value)<br>+ set(git_${key} ${value})<br>+ endforeach()<br>+ if(DEFINED git_releasetag)<br>+ set(X265_LATEST_TAG ${git_releasetag})<br>+ if(DEFINED git_releasetagcommitid)<br>+ string(SUBSTRING "${git_releasetagcommitid}" 0 9 X265_REVISION_ID)<br>+ else()<br>+ message(WARNING "RELEASE CHANGESET INFO NOT PRESENT IN VERSION FILE")<br></div></blockquote><div>[AM] Shouldn't it throw an error message? </div></div></div></blockquote><div> [KS] As shared with you offline before the cmake error messages will abort the build whereas warnings will inform the user with stack trace and proceed. Which one do you think is desirable for the functionality. I feel we can inform the user with warning and carry on with the rest of the build. The warning will appear when make-solutions is run and also during cmake configure through gui so by then users might become aware that they might have to re configure the version file correctly before archival of the repository.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">+ endif()<br>+ if(DEFINED git_repositorychangeset)<br>+ string(SUBSTRING "${git_repositorychangeset}" 0 9 X265_REPO_ID)<br></div></blockquote><div>[AM] I don't see
X265_REPO_ID getting used anywhere. Please clarify the need for
X265_REPO_ID.</div></div></div></blockquote><div> [KS] updated code for using the same as the archive can be created at/before or after the latest tag.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">+ else()<br>+ message(STATUS "X265 LATEST COMMIT TIP INFORMATION NOT AVAILABLE")<br>+ endif()<br>+ if(DEFINED git_releasetagdistance)<br>+ set(X265_TAG_DISTANCE ${git_releasetagdistance})<br>+ else()<br>+ message(WARNING "COMMIT INFORMATION AFTER LATEST REVISION UNAVAILABLE")<br>+ endif()<br>+ else()<br>+ message(WARNING "X265 RELEASE VERSION LABEL MISSING: ${X265_LATEST_TAG}")<br>+ endif()<br>+endif()<br>+set(X265_VERSION "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}")<br>+message(STATUS "x265 RELEASE VERSION ${X265_VERSION}")<br>diff --git a/source/cmake/version.cmake b/source/cmake/version.cmake<br>deleted file mode 100644<br>index 35302249a..000000000<br>--- a/source/cmake/version.cmake<br></div></blockquote><div>[AM] Renaming the file makes it tough to review the changes as it replaces the file instead of modifying the code. Any reason behind the renaming? </div></div></div></blockquote><div> [KS] Most of the files in cmake source dir follow Camel case hence updated the same for uniformity also cmake is case sensitive to file names in linux.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">+++ /dev/null<br>@@ -1,97 +0,0 @@<br>-if(CMAKE_VERSION VERSION_LESS "2.8.10")<br>- find_program(HG_EXECUTABLE hg)<br>-else()<br>- find_package(Hg QUIET)<br>-endif()<br>-find_package(Git QUIET) # present in 2.8.8<br>-<br>-# defaults, in case everything below fails<br>-set(X265_VERSION "unknown")<br>-set(X265_LATEST_TAG "0.0")<br>-set(X265_TAG_DISTANCE "0")<br>-<br>-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt)<br>- # read the lines of the archive summary file to extract the version<br>- file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt archive)<br>- STRING(REGEX REPLACE "\n" ";" archive "${archive}")<br>- foreach(f ${archive})<br>- string(FIND "${f}" ": " pos)<br>- string(SUBSTRING "${f}" 0 ${pos} key)<br>- string(SUBSTRING "${f}" ${pos} -1 value)<br>- string(SUBSTRING "${value}" 2 -1 value)<br>- set(hg_${key} ${value})<br>- endforeach()<br>- if(DEFINED hg_tag)<br>- set(X265_LATEST_TAG ${hg_tag})<br>- elseif(DEFINED hg_node)<br>- set(X265_LATEST_TAG ${hg_latesttag})<br>- set(X265_TAG_DISTANCE ${hg_latesttagdistance})<br>- string(SUBSTRING "${hg_node}" 0 12 X265_REVISION_ID)<br>- endif()<br>-elseif(HG_EXECUTABLE AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg)<br>- if(EXISTS "${HG_EXECUTABLE}.bat")<br>- # mercurial source installs on Windows require .bat extension<br>- set(HG_EXECUTABLE "${HG_EXECUTABLE}.bat")<br>- endif()<br>- message(STATUS "hg found at ${HG_EXECUTABLE}")<br>-<br>- execute_process(COMMAND<br>- ${HG_EXECUTABLE} log -r. --template "{latesttag}"<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_LATEST_TAG<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- execute_process(COMMAND<br>- ${HG_EXECUTABLE} log -r. --template "{latesttagdistance}"<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_TAG_DISTANCE<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- execute_process(<br>- COMMAND<br>- ${HG_EXECUTABLE} log -r. --template "{node}"<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_REVISION_ID<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- string(SUBSTRING "${X265_REVISION_ID}" 0 12 X265_REVISION_ID)<br>-<br>- if(X265_LATEST_TAG MATCHES "^r")<br>- string(SUBSTRING ${X265_LATEST_TAG} 1 -1 X265_LATEST_TAG)<br>- endif()<br>-elseif(GIT_EXECUTABLE AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)<br>- execute_process(<br>- COMMAND<br>- ${GIT_EXECUTABLE} describe --abbrev=0 --tags<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_LATEST_TAG<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- execute_process(<br>- COMMAND<br>- ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count --first-parent<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_TAG_DISTANCE<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>- execute_process(<br>- COMMAND<br>- ${GIT_EXECUTABLE} log -1 --format=g%h<br>- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}<br>- OUTPUT_VARIABLE X265_REVISION_ID<br>- ERROR_QUIET<br>- OUTPUT_STRIP_TRAILING_WHITESPACE<br>- )<br>-endif()<br>-if(X265_TAG_DISTANCE STREQUAL "0")<br>- set(X265_VERSION "${X265_LATEST_TAG}")<br></div></blockquote><div>[AM] Since this chunk has been removed in Version.cmake, the version info will look messy if
X265_LATEST_TAG is 0.</div></div></div></blockquote><div> Its printed as Release_3.4+0-abcedf07- simplified for readability in this case but once the user has understood the version format documentation and wiki updates it should not be a problem.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">-else()<br>- set(X265_VERSION "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}")<br>-endif()<br>-<br>-message(STATUS "x265 version ${X265_VERSION}")<br>diff --git a/x265Version.txt b/x265Version.txt<br>new file mode 100644<br>index 000000000..74b23469e<br>--- /dev/null<br>+++ b/x265Version.txt<br>@@ -0,0 +1,5 @@<br>+#Attribute: Values<br>+repositorychangeset: a82c6c7a7<br>+releasetagcommitid: 6722fce1f<br>+releasetagdistance: 28<br>+releasetag: 3.5<br></div></blockquote><div>[AM] 3.5 isn't a valid tag.</div></div></div></blockquote><div> [KS] ok set of Release_3.5 or it can be 3.5_RC1 or 2 and so on as per wiki pages.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>Also, the commit message says the patch is applicable for master and Release_3.x. In that case, one x265Version.txt file per branch is expected.</div></div></div></blockquote><div> [KS] No then we will have to keep adding one file per release. Instead if the same patch is pushed to all branches and with the version file updated for a given branch we don't need multiple copies for maintaining the same information, the file can be appended from release to release as the latest entries are always considered for populating the version string.</div><div><br></div><div>Please get back on my answers so that I can send the patch soon.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">-- <br>2.20.1.windows.1<br><br><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><b style="background-color:rgb(255,255,255)"><font color="#0b5394">With Regards,</font></b><div><b style="background-color:rgb(255,255,255)"><font color="#0b5394">Srikanth Kurapati.</font></b></div></div></div></div>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font face="georgia, serif">Regards,</font><div><b><font face="georgia, serif">Aruna Matheswaran,</font></b></div><div><font face="georgia, serif">Video Codec Engineer,</font></div><div><font face="georgia, serif">Media & AI analytics BU,</font></div><div><span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span style="border:none;display:inline-block;overflow:hidden;width:153px;height:58px"><img src="https://lh5.googleusercontent.com/gjX5cPNIZgwUrhfqkTwQUZWztIKmmo0qs3kbwvkS5H-bDVE2ftte9pMTVnFLSjOcjYWLtfc6_OGpxW4vraLg2r5QAIf1Q3MpldFDgWtzK_gXi8ptw5B3joIbsGL6mxj-JRdjHzT5" width="96" height="36" style="margin-left: 0px; margin-top: 0px;"></span></span></span><font face="georgia, serif"><br></font></div><div><span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span style="border:none;display:inline-block;overflow:hidden;width:153px;height:58px"><img src="https://lh5.googleusercontent.com/gjX5cPNIZgwUrhfqkTwQUZWztIKmmo0qs3kbwvkS5H-bDVE2ftte9pMTVnFLSjOcjYWLtfc6_OGpxW4vraLg2r5QAIf1Q3MpldFDgWtzK_gXi8ptw5B3joIbsGL6mxj-JRdjHzT5" style="margin-left: 0px; margin-top: 0px;"></span></span></span><font face="georgia, serif"><br></font></div><div><font face="georgia, serif"><br></font></div></div></div></div></div></div></div></div></div></div>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><b style="background-color:rgb(255,255,255)"><font color="#0b5394">With Regards,</font></b><div><b style="background-color:rgb(255,255,255)"><font color="#0b5394">Srikanth Kurapati.</font></b></div></div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><b style="background-color:rgb(255,255,255)"><font color="#0b5394">With Regards,</font></b><div><b style="background-color:rgb(255,255,255)"><font color="#0b5394">Srikanth Kurapati.</font></b></div></div></div>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font face="georgia, serif">Regards,</font><div><b><font face="georgia, serif">Aruna Matheswaran,</font></b></div><div><font face="georgia, serif">Video Codec Engineer,</font></div><div><font face="georgia, serif">Media & AI analytics BU,</font></div><div><span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span style="border:none;display:inline-block;overflow:hidden;width:153px;height:58px"><img src="https://lh5.googleusercontent.com/gjX5cPNIZgwUrhfqkTwQUZWztIKmmo0qs3kbwvkS5H-bDVE2ftte9pMTVnFLSjOcjYWLtfc6_OGpxW4vraLg2r5QAIf1Q3MpldFDgWtzK_gXi8ptw5B3joIbsGL6mxj-JRdjHzT5" width="96" height="36" style="margin-left: 0px; margin-top: 0px;"></span></span></span><font face="georgia, serif"><br></font></div><div><span><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><span style="border:none;display:inline-block;overflow:hidden;width:153px;height:58px"><img src="https://lh5.googleusercontent.com/gjX5cPNIZgwUrhfqkTwQUZWztIKmmo0qs3kbwvkS5H-bDVE2ftte9pMTVnFLSjOcjYWLtfc6_OGpxW4vraLg2r5QAIf1Q3MpldFDgWtzK_gXi8ptw5B3joIbsGL6mxj-JRdjHzT5" style="margin-left: 0px; margin-top: 0px;"></span></span></span><font face="georgia, serif"><br></font></div><div><font face="georgia, serif"><br></font></div></div></div></div></div></div></div></div></div></div>