Skip to content

Commit 8d7a810

Browse files
author
Louis Fréneau
committed
Quick code cleanup
- Use references instead of pointers - Use shared ptr for Frame - Minor changes in config verification - Update of clang-tidy checks
1 parent 666fb93 commit 8d7a810

29 files changed

+213
-193
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
3535
set(CMAKE_CXX_EXTENSIONS OFF)
3636

3737
if(${USE_CLANG_TIDY})
38-
set(CLANG_TIDY_DEFAULT "clang-tidy;-checks=*,-llvmlibc-*,-llvm-*,-modernize-*,-fuchsia-*,-altera-*,-hicpp-use-auto,-bugprone-easily-swappable-parameters,-performance-avoid-endl,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-readability-identifier-length,-readability-math-missing-parentheses,-readability-function-cognitive-complexity,-boost-use-ranges,-misc-non-private-member-variables-in-classes,-cppcoreguidelines-avoid-non-const-global-variables,-abseil-string-find-str-contains,-cppcoreguidelines-avoid-do-while,-readability-use-std-min-max,-google-build-using-namespace")
38+
set(CLANG_TIDY_DEFAULT "clang-tidy;-checks=*,-llvmlibc-*,-llvm-*,-modernize-*,-fuchsia-*,-altera-*,-hicpp-use-auto,-bugprone-easily-swappable-parameters,-performance-avoid-endl,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-readability-identifier-length,-readability-math-missing-parentheses,-readability-function-cognitive-complexity,-boost-use-ranges,-misc-non-private-member-variables-in-classes,-cppcoreguidelines-avoid-non-const-global-variables,-abseil-string-find-str-contains,-cppcoreguidelines-avoid-do-while,-readability-use-std-min-max,-google-build-using-namespace,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-hicpp-braces-around-statements,-readability-braces-around-statements")
3939
endif()
4040

4141
# Useful for debugging

src/app/uvgVPCCencAppExample.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ std::binary_semaphore filled_input_slots{0};
6565

6666
struct input_handler_args {
6767
// Parameters passed from main thread to input thread.
68-
const cli::opts_t* opts;
68+
const cli::opts_t& opts;
6969

7070
// Picture and thread status passed from input thread to main thread.
7171
std::shared_ptr<uvgvpcc_enc::Frame> frame_in;
7272
int retval;
73-
input_handler_args(const cli::opts_t* opts, std::shared_ptr<uvgvpcc_enc::Frame> frame, int retval)
73+
input_handler_args(const cli::opts_t& opts, std::shared_ptr<uvgvpcc_enc::Frame> frame, int retval)
7474
: opts(opts), frame_in(std::move(frame)), retval(retval) {}
7575
};
7676

@@ -93,7 +93,7 @@ void create_bytes(uint64_t value, char* dst, size_t len) {
9393

9494
/// @brief Simple wrapper for the miniply library for parsing a .ply file.
9595
/// @param frame
96-
void loadFrameFromPlyFile(std::shared_ptr<uvgvpcc_enc::Frame>& frame) {
96+
void loadFrameFromPlyFile(const std::shared_ptr<uvgvpcc_enc::Frame>& frame) {
9797
// uvgVPCCenc currently support only geometry of type unsigned int
9898
uvgvpcc_enc::Logger::log(uvgvpcc_enc::LogLevel::TRACE, "APPLICATION",
9999
"Loading frame " + std::to_string(frame->frameId) + " from " + frame->pointCloudPath + "\n");
@@ -147,7 +147,7 @@ void loadFrameFromPlyFile(std::shared_ptr<uvgvpcc_enc::Frame>& frame) {
147147
/// @param args
148148
void inputReadThread(const std::shared_ptr<input_handler_args>& args) {
149149
double inputReadTimerTotal = uvgvpcc_enc::p_->timerLog ? uvgvpcc_enc::global_timer.elapsed() : 0.0;
150-
const cli::opts_t& appParameters = *args->opts;
150+
const cli::opts_t& appParameters = args->opts;
151151
size_t frameId = 0;
152152
const size_t frameLimit = appParameters.frames * appParameters.loop_input;
153153
bool run = true;
@@ -315,7 +315,7 @@ int main(const int argc, const char* const argv[]) {
315315
}
316316

317317
// Initialize the application input and output threads
318-
const std::shared_ptr<input_handler_args> in_args = std::make_shared<input_handler_args>(&appParameters, nullptr, RETVAL_RUNNING);
318+
const std::shared_ptr<input_handler_args> in_args = std::make_shared<input_handler_args>(appParameters, nullptr, RETVAL_RUNNING);
319319
std::thread inputTh(&inputReadThread, in_args);
320320
size_t frameRead = 0;
321321
std::shared_ptr<uvgvpcc_enc::Frame> currFrame = nullptr;

src/lib/bitstreamGeneration/atlas_context.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ atlas_tile_header atlas_context::create_atlas_tile_header(size_t frameIndex, siz
106106
return ath;
107107
}
108108

109-
atlas_tile_data_unit atlas_context::create_atlas_tile_data_unit(const uvgvpcc_enc::Parameters& paramUVG, const uvgvpcc_enc::Frame& frameUVG,
109+
atlas_tile_data_unit atlas_context::create_atlas_tile_data_unit(const uvgvpcc_enc::Parameters& paramUVG, const std::shared_ptr<uvgvpcc_enc::Frame>& frameUVG,
110110
atlas_tile_header& ath) const {
111111
(void)paramUVG;
112112

@@ -117,9 +117,9 @@ atlas_tile_data_unit atlas_context::create_atlas_tile_data_unit(const uvgvpcc_en
117117
const size_t levelOfDetailX = 1; // lf addition, in TMC2 those are patch parameters. However, they are also global parameters.
118118
const size_t levelOfDetailY = 1; // TODO(lf): check if those are really constant, and do not depends on other parameters
119119

120-
for (size_t patch_index = 0; patch_index < frameUVG.patchList.size(); ++patch_index) {
120+
for (size_t patch_index = 0; patch_index < frameUVG->patchList.size(); ++patch_index) {
121121
// std::cout << "-- DEBUG: Creating atlas patch, index: " << patch_index << std::endl;
122-
const uvgvpcc_enc::Patch& patchUVG = frameUVG.patchList[patch_index];
122+
const uvgvpcc_enc::Patch& patchUVG = frameUVG->patchList[patch_index];
123123
const uint8_t patchMode = static_cast<uint8_t>(ATDU_PATCH_MODE_I_TILE::I_INTRA);
124124
patch_information_data pid;
125125
pid.patchMode = patchMode;
@@ -162,7 +162,7 @@ atlas_tile_data_unit atlas_context::create_atlas_tile_data_unit(const uvgvpcc_en
162162

163163
atlas_tile_layer_rbsp atlas_context::create_atlas_tile_layer_rbsp(size_t frameIndex, size_t tileIndex,
164164
const uvgvpcc_enc::Parameters& paramUVG,
165-
const uvgvpcc_enc::Frame& frameUVG) {
165+
const std::shared_ptr<uvgvpcc_enc::Frame>& frameUVG) {
166166
atlas_tile_layer_rbsp rbsp;
167167

168168
// This should be enough for now
@@ -351,7 +351,7 @@ void atlas_context::initialize_atlas_context(const std::shared_ptr<uvgvpcc_enc::
351351
// Create create_atlas_tile_layer_rbsp for each atlas frame/NAL unit
352352
for (size_t frame_index = 0; frame_index < gofUVG->nbFrames; ++frame_index) {
353353
// std::cout << "DEBUG: Creating atlas RBSP, index: " << frame_index << std::endl;
354-
auto& frameUVG = *(gofUVG->frames[frame_index]);
354+
auto& frameUVG = gofUVG->frames[frame_index];
355355

356356
const size_t tile_index = 0; // Always 0, because we only have one tile per frame
357357
const atlas_tile_layer_rbsp rbsp = create_atlas_tile_layer_rbsp(frame_index, tile_index, paramUVG, frameUVG);

src/lib/bitstreamGeneration/atlas_context.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ class atlas_context {
8282
atlas_frame_parameter_set create_atlas_frame_parameter_set();
8383
atlas_frame_tile_information create_atlas_frame_tile_information() const;
8484
atlas_tile_header create_atlas_tile_header(size_t frameIndex, size_t tileIndex, const uvgvpcc_enc::Parameters& paramUVG) const;
85-
atlas_tile_data_unit create_atlas_tile_data_unit(const uvgvpcc_enc::Parameters& paramUVG, const uvgvpcc_enc::Frame& frameUVG,
85+
atlas_tile_data_unit create_atlas_tile_data_unit(const uvgvpcc_enc::Parameters& paramUVG, const std::shared_ptr<uvgvpcc_enc::Frame>& frameUVG,
8686
atlas_tile_header& ath) const;
8787
atlas_tile_layer_rbsp create_atlas_tile_layer_rbsp(size_t frameIndex, size_t tileIndex, const uvgvpcc_enc::Parameters& paramUVG,
88-
const uvgvpcc_enc::Frame& frameUVG);
88+
const std::shared_ptr<uvgvpcc_enc::Frame>& frameUVG);
8989

9090
// -------------- Functions to write data structures to bitstream --------------
9191
static void write_nal_hdr(bitstream_t* stream, const uint8_t nal_type, const uint8_t nal_layer_id, const uint8_t nal_temporal_id_plus1);

src/lib/bitstreamGeneration/bitstream_util.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
#include <cstring>
4040
#include <new>
4141

42-
// NOLINTBEGIN(cppcoreguidelines-owning-memory,cppcoreguidelines-no-malloc,hicpp-no-malloc,cppcoreguidelines-pro-bounds-pointer-arithmetic) //
42+
// NOLINTBEGIN(cppcoreguidelines-owning-memory,cppcoreguidelines-no-malloc,hicpp-no-malloc) //
4343
// TODO(gg) : lf : Currently we manually handle most of the memory object in the bitstream generation. Consider reducing alloc use to minimum
4444

4545
const std::array<uint32_t, 32> uvg_bit_set_mask = {
@@ -264,4 +264,4 @@ void uvg_bitstream_copy_bytes(bitstream_t *const stream, const uint8_t *bytes, u
264264

265265
uint32_t uvg_bitstream_peek_last_byte(bitstream_t *const stream) { return stream->data; }
266266

267-
// NOLINTEND(cppcoreguidelines-owning-memory,cppcoreguidelines-no-malloc,hicpp-no-malloc,cppcoreguidelines-pro-bounds-pointer-arithmetic)
267+
// NOLINTEND(cppcoreguidelines-owning-memory,cppcoreguidelines-no-malloc,hicpp-no-malloc)

src/lib/bitstreamGeneration/gof.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
#include "video_sub_bitstream.hpp"
4747
#include <cstdint>
4848

49-
// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-owning-memory,cppcoreguidelines-pro-bounds-pointer-arithmetic,cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays)
49+
// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-owning-memory,cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays)
5050

5151
void v3c_gof::write_v3c_chunk(uvgvpcc_enc::API::v3c_unit_stream* out) {
5252
// --------------- Write V3C unit stream -----------------------------------------------------
@@ -322,4 +322,4 @@ void v3c_gof::write_v3c_ld_chunk(const std::vector<nal_info>& ovd_nals, const st
322322
"New V3C LD chunk created, " + std::to_string(out->v3c_chunks.size()) + " chunk(s) in buffer. \n");
323323
}
324324

325-
// NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-owning-memory,cppcoreguidelines-pro-bounds-pointer-arithmetic,cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays)
325+
// NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-owning-memory,cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays)

src/lib/bitstreamGeneration/video_sub_bitstream.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
#include <string>
4242
#include <vector>
4343

44-
// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-owning-memory,cppcoreguidelines-pro-bounds-pointer-arithmetic)
44+
// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-owning-memory)
4545

4646
namespace {
4747

@@ -142,4 +142,4 @@ void find_nals(std::vector<uint8_t> &input_data, std::vector<nal_info> &nals) {
142142
}
143143
}
144144

145-
// NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-owning-memory,cppcoreguidelines-pro-bounds-pointer-arithmetic)
145+
// NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-owning-memory)

src/lib/include/uvgvpcc/threadqueue.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class Job : public std::enable_shared_from_this<Job> {
8181
using JobFunction = std::function<void()>;
8282
// Variadic template constructor
8383
template <typename Func, typename... Args>
84-
Job(std::string name, size_t priority, Func&& func, Args&&... args)
84+
Job(const std::string& name, const size_t& priority, Func&& func, Args&&... args)
8585
: name_(name),
8686
func_(std::bind(std::forward<Func>(func), std::forward<Args>(args)...)),
8787
state_(threadqueue_job_state::THREADQUEUE_JOB_STATE_PAUSED),
@@ -100,7 +100,7 @@ class Job : public std::enable_shared_from_this<Job> {
100100
void complete();
101101
std::string getName() const { return name_; }
102102
threadqueue_job_state getState() const { return state_; }
103-
void setState(threadqueue_job_state state) { state_ = state; }
103+
void setState(const threadqueue_job_state& state) { state_ = state; }
104104

105105
mutable std::mutex mtx_;
106106
std::vector<std::shared_ptr<Job>> reverseDependencies_;

src/lib/include/uvgvpcc/uvgvpcc.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ struct v3c_unit_stream {
289289

290290
void initializeEncoder();
291291
void setParameter(const std::string& parameterName,const std::string& parameterValue);
292-
void encodeFrame(std::shared_ptr<Frame> frame, v3c_unit_stream* output);
292+
void encodeFrame(std::shared_ptr<Frame>& frame, v3c_unit_stream* output);
293293
void emptyFrameQueue();
294294
void stopEncoder();
295295

src/lib/mapEncoding/abstract2DMapEncoder.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class Abstract2DMapEncoder {
4545
Abstract2DMapEncoder(const ENCODER_TYPE& encoderType): encoderType_(encoderType) {};
4646
virtual ~Abstract2DMapEncoder() = default;
4747

48-
virtual void encodeGOFMaps(std::shared_ptr<uvgvpcc_enc::GOF>& gof) = 0;
48+
virtual void encodeGOFMaps(const std::shared_ptr<uvgvpcc_enc::GOF>& gof) = 0;
4949

5050
protected:
5151
const ENCODER_TYPE encoderType_;

0 commit comments

Comments
 (0)