Apollo 11.0
自动驾驶开放平台
apollo::drivers::camera::CompressComponent类 参考

#include <compress_component.h>

类 apollo::drivers::camera::CompressComponent 继承关系图:
apollo::drivers::camera::CompressComponent 的协作图:

Public 成员函数

bool Init () override
 
bool Proc (const std::shared_ptr< apollo::drivers::Image > &image) override
 
 ~CompressComponent ()
 
- Public 成员函数 继承自 apollo::cyber::Component< apollo::drivers::Image >
 Component ()
 
 ~Component () override
 
bool Initialize (const ComponentConfig &config) override
 init the component by protobuf object.
 
bool Process (const std::shared_ptr< apollo::drivers::Image > &msg0, const std::shared_ptr< NullType > &msg1, const std::shared_ptr< NullType > &msg2, const std::shared_ptr< NullType > &msg3)
 
- Public 成员函数 继承自 apollo::cyber::ComponentBase
virtual ~ComponentBase ()
 
virtual bool Initialize (const TimerComponentConfig &config)
 
virtual void Shutdown ()
 
template<typename T >
bool GetProtoConfig (T *config) const
 

额外继承的成员函数

- Public 类型 继承自 apollo::cyber::ComponentBase
template<typename M >
using Reader = cyber::Reader< M >
 
- Protected 成员函数 继承自 apollo::cyber::ComponentBase
virtual void Clear ()
 
const std::string & ConfigFilePath () const
 
void LoadConfigFiles (const ComponentConfig &config)
 
void LoadConfigFiles (const TimerComponentConfig &config)
 
- Protected 属性 继承自 apollo::cyber::ComponentBase
std::atomic< bool > is_shutdown_ = {false}
 
std::shared_ptr< Node > node_ = nullptr
 
std::string config_file_path_ = ""
 
std::vector< std::shared_ptr< ReaderBase > > readers_
 

详细描述

在文件 compress_component.h 第 38 行定义.

构造及析构函数说明

◆ ~CompressComponent()

apollo::drivers::camera::CompressComponent::~CompressComponent ( )
inline

在文件 compress_component.h 第 45 行定义.

45{}

成员函数说明

◆ Init()

bool apollo::drivers::camera::CompressComponent::Init ( )
overridevirtual

实现了 apollo::cyber::ComponentBase.

在文件 compress_component.cc 第 43 行定义.

43 {
44 if (!GetProtoConfig(&config_)) {
45 AERROR << "Parse config file failed: " << ConfigFilePath();
46 return false;
47 }
48 AINFO << "Camera config: \n" << config_.DebugString();
49 // try {
50 // image_pool_.reset(new CCObjectPool<CompressedImage>(config_.compress_conf().image_pool_size()));
51 // image_pool_->ConstructAll();
52 // } catch (const std::bad_alloc& e) {
53 // AERROR << e.what();
54 // return false;
55 // }
56
57 width_ = config_.compress_conf().width();
58 height_ = config_.compress_conf().height();
59
60 writer_ = node_->CreateWriter<CompressedImage>(config_.compress_conf().output_channel());
61
62#ifdef __aarch64__
63 buffer_size_ = config_.compress_conf().width() * config_.compress_conf().height() * 3 / 2;
64 try {
65 nvbuffer_pool_.reset(new CCObjectPool<NvBuffer>(config_.compress_conf().image_pool_size()));
66 nvbuffer_pool_->ConstructAll(
67 V4L2_PIX_FMT_YUV420M, config_.compress_conf().width(), config_.compress_conf().height(), 0);
68 for (size_t i = 0; i < config_.compress_conf().image_pool_size(); i++) {
69 nvbuffer_pool_->GetObject()->allocateMemory();
70 }
71 } catch (const std::bad_alloc& e) {
72 AERROR << e.what();
73 return false;
74 }
75
76 try {
77 downsampled_image_pool_.reset(new CCObjectPool<std::pair<std::vector<char>, std::vector<unsigned char>>>(
78 config_.compress_conf().image_pool_size()));
79 downsampled_image_pool_->ConstructAll();
80 for (size_t i = 0; i < config_.compress_conf().image_pool_size(); i++) {
81 (downsampled_image_pool_->GetObject()->first).reserve(buffer_size_);
82 (downsampled_image_pool_->GetObject()->second).reserve(buffer_size_);
83 }
84 } catch (const std::bad_alloc& e) {
85 AERROR << e.what();
86 return false;
87 }
88
89 jpegenc_ = NvJPEGEncoder::createJPEGEncoder("jpegenc");
90 jpegenc_->setCropRect(0, 0, 0, 0);
91#endif
92
93 return true;
94}
bool GetProtoConfig(T *config) const
const std::string & ConfigFilePath() const
std::shared_ptr< Node > node_
#define AERROR
Definition log.h:44
#define AINFO
Definition log.h:42
optional CompressConfig compress_conf
Definition config.proto:58

◆ Proc()

bool apollo::drivers::camera::CompressComponent::Proc ( const std::shared_ptr< apollo::drivers::Image > &  image)
override

该类的文档由以下文件生成: