Skip to content

Commit

Permalink
add missing bracket in process block and reformat
Browse files Browse the repository at this point in the history
  • Loading branch information
kushaljain-apra authored Jul 25, 2024
1 parent 4d746e1 commit 2a46577
Showing 1 changed file with 106 additions and 67 deletions.
173 changes: 106 additions & 67 deletions base/src/NvTransform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,16 @@
* @brief The Detail class for NvTransform Module, contains internal
* implementation details.
*/
class NvTransform::Detail {
class NvTransform::Detail
{
public:
/**
* @brief Constructor to initialize the Detail object with given properties.
* @param _props The NvTransformProps object containing transformation
* properties.
*/
Detail(NvTransformProps &_props) : props(_props) {
Detail(NvTransformProps &_props) : props(_props)
{
memset(&transParams, 0, sizeof(transParams));
setSourceRect(_props, transParams);
setDestinationRect(_props, transParams);
Expand All @@ -38,7 +40,8 @@ class NvTransform::Detail {
* @param outFD The file descriptor of the output frame.
* @return True if computation is successful, false otherwise.
*/
bool compute(frame_sp &frame, int outFD) {
bool compute(frame_sp &frame, int outFD)
{
DMAFDWrapper *dmaFDWrapper = static_cast<DMAFDWrapper *>(frame->data());
NvBufferTransform(dmaFDWrapper->getFd(), outFD, &transParams);
return true;
Expand All @@ -48,7 +51,8 @@ class NvTransform::Detail {
* @brief Sets the transformation properties.
* @param _props The new transformation properties.
*/
void setProps(NvTransformProps &_props) {
void setProps(NvTransformProps &_props)
{
props = _props;
updateTransformationParams(props);
}
Expand All @@ -57,7 +61,8 @@ class NvTransform::Detail {
* @brief Updates the transformation parameters based on new properties.
* @param _props The new transformation properties.
*/
void updateTransformationParams(NvTransformProps &_props) {
void updateTransformationParams(NvTransformProps &_props)
{
memset(&transParams, 0, sizeof(transParams));
setSourceRect(_props, transParams);
setDestinationRect(_props, transParams);
Expand All @@ -71,14 +76,16 @@ class NvTransform::Detail {
* @param transParams The transformation parameters.
*/
void setSourceRect(NvTransformProps &_props,
NvBufferTransformParams &transParams) {
NvBufferTransformParams &transParams)
{
srcRect.top = _props.srcRect.top;
srcRect.left = _props.srcRect.left;
srcRect.width = _props.srcRect.width;
srcRect.height = _props.srcRect.height;

// Set source rectangle if width is non-zero
if (srcRect.width != 0) {
if (srcRect.width != 0)
{
transParams.src_rect = srcRect;
transParams.transform_flag |= NVBUFFER_TRANSFORM_CROP_SRC;
}
Expand All @@ -90,14 +97,16 @@ class NvTransform::Detail {
* @param transParams The transformation parameters.
*/
void setDestinationRect(NvTransformProps &_props,
NvBufferTransformParams &transParams) {
NvBufferTransformParams &transParams)
{
dstRect.top = _props.dstRect.top;
dstRect.left = _props.dstRect.left;
dstRect.width = _props.dstRect.width;
dstRect.height = _props.dstRect.height;

// Set destination rectangle if width is non-zero
if (dstRect.width != 0) {
if (dstRect.width != 0)
{
transParams.dst_rect = dstRect;
transParams.transform_flag |= NVBUFFER_TRANSFORM_CROP_DST;
}
Expand All @@ -109,8 +118,10 @@ class NvTransform::Detail {
* @param transParams The transformation parameters.
*/
void setFilterType(NvTransformProps &_props,
NvBufferTransformParams &transParams) {
switch (_props.filterType) {
NvBufferTransformParams &transParams)
{
switch (_props.filterType)
{
case NvTransformProps::NvTransformFilter::NEAREST:
transParams.transform_filter = NvBufferTransform_Filter_Nearest;
break;
Expand Down Expand Up @@ -142,8 +153,10 @@ class NvTransform::Detail {
* @param transParams The transformation parameters.
*/
void setRotateType(NvTransformProps &_props,
NvBufferTransformParams &transParams) {
switch (_props.rotateType) {
NvBufferTransformParams &transParams)
{
switch (_props.rotateType)
{
case NvTransformProps::NvTransformRotate::ROTATE_0:
transParams.transform_flip = NvBufferTransform_None;
break;
Expand Down Expand Up @@ -192,14 +205,17 @@ class NvTransform::Detail {
* properties.
*/
NvTransform::NvTransform(NvTransformProps props)
: Module(TRANSFORM, "NvTransform", props) {
: Module(TRANSFORM, "NvTransform", props)
{
mDetail.reset(new Detail(props));
}

NvTransform::~NvTransform() {}

bool NvTransform::validateInputPins() {
if (getNumberOfInputPins() != 1) {
bool NvTransform::validateInputPins()
{
if (getNumberOfInputPins() != 1)
{
LOG_ERROR << "<" << getId()
<< ">::validateInputPins size is expected to be 1. Actual<"
<< getNumberOfInputPins() << ">";
Expand All @@ -209,7 +225,8 @@ bool NvTransform::validateInputPins() {
framemetadata_sp metadata = getFirstInputMetadata();
FrameMetadata::FrameType frameType = metadata->getFrameType();
if (frameType != FrameMetadata::RAW_IMAGE &&
frameType != FrameMetadata::RAW_IMAGE_PLANAR) {
frameType != FrameMetadata::RAW_IMAGE_PLANAR)
{
LOG_ERROR << "<" << getId()
<< ">::validateInputPins input frameType is expected to be "
"RAW_IMAGE or RAW_IMAGE_PLANAR. Actual<"
Expand All @@ -218,7 +235,8 @@ bool NvTransform::validateInputPins() {
}

FrameMetadata::MemType memType = metadata->getMemType();
if (memType != FrameMetadata::MemType::DMABUF) {
if (memType != FrameMetadata::MemType::DMABUF)
{
LOG_ERROR << "<" << getId()
<< ">::validateInputPins input memType is expected to be DMABUF. "
"Actual<"
Expand All @@ -229,8 +247,10 @@ bool NvTransform::validateInputPins() {
return true;
}

bool NvTransform::validateOutputPins() {
if (getNumberOfOutputPins() != 1) {
bool NvTransform::validateOutputPins()
{
if (getNumberOfOutputPins() != 1)
{
LOG_ERROR << "<" << getId()
<< ">::validateOutputPins size is expected to be 1. Actual<"
<< getNumberOfOutputPins() << ">";
Expand All @@ -240,7 +260,8 @@ bool NvTransform::validateOutputPins() {
framemetadata_sp metadata = getFirstOutputMetadata();
FrameMetadata::FrameType frameType = metadata->getFrameType();
if (frameType != FrameMetadata::RAW_IMAGE &&
frameType != FrameMetadata::RAW_IMAGE_PLANAR) {
frameType != FrameMetadata::RAW_IMAGE_PLANAR)
{
LOG_ERROR << "<" << getId()
<< ">::validateOutputPins input frameType is expected to be "
"RAW_IMAGE or RAW_IMAGE_PLANAR. Actual<"
Expand All @@ -249,7 +270,8 @@ bool NvTransform::validateOutputPins() {
}

FrameMetadata::MemType memType = metadata->getMemType();
if (memType != FrameMetadata::MemType::DMABUF) {
if (memType != FrameMetadata::MemType::DMABUF)
{
LOG_ERROR << "<" << getId()
<< ">::validateOutputPins input memType is expected to be "
"DMABUF. Actual<"
Expand All @@ -260,9 +282,11 @@ bool NvTransform::validateOutputPins() {
return true;
}

void NvTransform::addInputPin(framemetadata_sp &metadata, string &pinId) {
void NvTransform::addInputPin(framemetadata_sp &metadata, string &pinId)
{
Module::addInputPin(metadata, pinId);
switch (mDetail->props.imageType) {
switch (mDetail->props.imageType)
{
case ImageMetadata::BGRA:
case ImageMetadata::RGBA:
mDetail->outputMetadata =
Expand All @@ -283,8 +307,10 @@ void NvTransform::addInputPin(framemetadata_sp &metadata, string &pinId) {
mDetail->outputPinId = addOutputPin(mDetail->outputMetadata);
}

bool NvTransform::init() {
if (!Module::init()) {
bool NvTransform::init()
{
if (!Module::init())
{
return false;
}

Expand All @@ -293,72 +319,82 @@ bool NvTransform::init() {

bool NvTransform::term() { return Module::term(); }

bool NvTransform::processSOS(frame_sp &frame) {
bool NvTransform::processSOS(frame_sp &frame)
{
framemetadata_sp metadata = frame->getMetadata();
setMetadata(metadata);
return true;
}

bool NvTransform::process(frame_container &frames)
{
auto frame = frames.cbegin()->second;
try
{
auto outFrame = makeFrame(mDetail->outputMetadata->getDataSize(), mDetail->outputPinId);

if (!outFrame.get())
{
LOG_ERROR << "FAILED TO GET BUFFER";
return false;
}

auto dmaFdWrapper = static_cast<DMAFDWrapper *>(outFrame->data());
dmaFdWrapper->tempFD = dmaFdWrapper->getFd();

mDetail->compute(frame, dmaFdWrapper->tempFD);

frames.insert(make_pair(mDetail->outputPinId, outFrame));
send(frames);
}
catch(std::exception & e)
{
LOG_ERROR<<"NvTransform seg fault";
}

void NvTransform::setMetadata(framemetadata_sp &metadata) {
auto frame = frames.cbegin()->second;
try
{
auto outFrame = makeFrame(mDetail->outputMetadata->getDataSize(), mDetail->outputPinId);

if (!outFrame.get())
{
LOG_ERROR << "FAILED TO GET BUFFER";
return false;
}

auto dmaFdWrapper = static_cast<DMAFDWrapper *>(outFrame->data());
dmaFdWrapper->tempFD = dmaFdWrapper->getFd();

mDetail->compute(frame, dmaFdWrapper->tempFD);

frames.insert(make_pair(mDetail->outputPinId, outFrame));
send(frames);
}
catch (std::exception &e)
{
LOG_ERROR << "NvTransform seg fault";
}
}

void NvTransform::setMetadata(framemetadata_sp &metadata)
{
FrameMetadata::FrameType frameType = metadata->getFrameType();
int width = 0;
int height = 0;
int depth = CV_8U;
ImageMetadata::ImageType inputImageType = ImageMetadata::ImageType::MONO;

switch (frameType) {
case FrameMetadata::FrameType::RAW_IMAGE: {
switch (frameType)
{
case FrameMetadata::FrameType::RAW_IMAGE:
{
auto rawMetadata =
FrameMetadataFactory::downcast<RawImageMetadata>(metadata);
width = rawMetadata->getWidth();
height = rawMetadata->getHeight();
depth = rawMetadata->getDepth();
inputImageType = rawMetadata->getImageType();
} break;
case FrameMetadata::FrameType::RAW_IMAGE_PLANAR: {
}
break;
case FrameMetadata::FrameType::RAW_IMAGE_PLANAR:
{
auto rawMetadata =
FrameMetadataFactory::downcast<RawImagePlanarMetadata>(metadata);
width = rawMetadata->getWidth(0);
height = rawMetadata->getHeight(0);
depth = rawMetadata->getDepth();
inputImageType = rawMetadata->getImageType();
} break;
}
break;
default:
throw AIPException(AIP_NOTIMPLEMENTED, "Unsupported FrameType<" +
std::to_string(frameType) + ">");
}

if (mDetail->props.outputWidth != 0) {
if (mDetail->props.outputWidth != 0)
{
width = mDetail->props.outputWidth;
height = mDetail->props.outputHeight;
}
if (mDetail->props.scaleHeight != 0 && mDetail->props.scaleWidth != 0) {
if (mDetail->props.scaleHeight != 0 && mDetail->props.scaleWidth != 0)
{
width = width * mDetail->props.scaleWidth;
height = height * mDetail->props.scaleHeight;
}
Expand All @@ -367,25 +403,28 @@ void NvTransform::setMetadata(framemetadata_sp &metadata) {
mDetail->props.imageType);
}

void NvTransform::setProps(NvTransformProps &props) {
void NvTransform::setProps(NvTransformProps &props)
{
Module::addPropsToQueue(props);
}

NvTransformProps NvTransform::getProps() {
NvTransformProps NvTransform::getProps()
{
fillProps(mDetail->props);
return mDetail->props;
}

bool NvTransform::handlePropsChange(frame_sp &frame) {
bool NvTransform::handlePropsChange(frame_sp &frame)
{
NvTransformProps props(mDetail->props.imageType);
bool ret = Module::handlePropsChange(frame, props);
mDetail->setProps(props);
return ret;
}

bool NvTransform::processEOS(string &pinId)
{
//THE FOLLOWING LINE IS COMMENTED FOR SPECIFIC USE IN NVR - MP4READER PASSING EOS WAS COMING HERE AND CAUSING EOS WHICH IS NOT REQUIRED FOR NVR
// mDetail->outputMetadata.reset();
return true;
}
// THE FOLLOWING LINE IS COMMENTED FOR SPECIFIC USE IN NVR - MP4READER PASSING EOS WAS COMING HERE AND CAUSING EOS WHICH IS NOT REQUIRED FOR NVR
// mDetail->outputMetadata.reset();
return true;
}

0 comments on commit 2a46577

Please sign in to comment.