Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable MJPEG #4622

Merged
merged 1 commit into from
Aug 20, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions include/librealsense2/h/rs_frame.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,14 @@ rs2_sensor* rs2_get_frame_sensor(const rs2_frame* frame, rs2_error** error);
*/
unsigned long long rs2_get_frame_number(const rs2_frame* frame, rs2_error** error);

/**
* retrieve data size from frame handle
* \param[in] frame handle returned from a callback
* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored
* \return the size of the frame data
*/
int rs2_get_frame_data_size(const rs2_frame* frame, rs2_error** error);

/**
* retrieve data from frame handle
* \param[in] frame handle returned from a callback
Expand Down
1 change: 1 addition & 0 deletions include/librealsense2/h/rs_sensor.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ typedef enum rs2_format
RS2_FORMAT_DISPARITY32 , /**< 32-bit float-point disparity values. Depth->Disparity conversion : Disparity = Baseline*FocalLength/Depth */
RS2_FORMAT_Y10BPACK , /**< 16-bit per-pixel grayscale image unpacked from 10 bits per pixel packed ([8:8:8:8:2222]) grey-scale image. The data is unpacked to LSB and padded with 6 zero bits */
RS2_FORMAT_DISTANCE , /**< 32-bit float-point depth distance value. */
RS2_FORMAT_MJPEG , /**< Bitstream encoding for video in which an image of each frame is encoded as JPEG-DIB */
RS2_FORMAT_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */
} rs2_format;
const char* rs2_format_to_string(rs2_format format);
Expand Down
12 changes: 12 additions & 0 deletions include/librealsense2/hpp/rs_frame.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,18 @@ namespace rs2
return r;
}

/**
* retrieve data size from frame handle
* \return the pointer to the start of the frame data
*/
const int get_data_size() const
{
rs2_error* e = nullptr;
auto r = rs2_get_frame_data_size(frame_ref, &e);
error::handle(e);
return r;
}

/**
* retrieve data from frame handle
* \return the pointer to the start of the frame data
Expand Down
10 changes: 10 additions & 0 deletions src/android/jni/frame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,16 @@ Java_com_intel_realsense_librealsense_Frame_nGetStreamProfile(JNIEnv *env, jclas
return (jlong) rv;
}

extern "C"
JNIEXPORT jint JNICALL
Java_com_intel_realsense_librealsense_Frame_nGetDataSize(JNIEnv *env, jclass type, jlong handle) {

rs2_error *e = NULL;
auto rv = rs2_get_frame_data_size(reinterpret_cast<const rs2_frame *>(handle), &e);
handle_error(env, e);
return (jint)rv;
}

extern "C" JNIEXPORT void JNICALL
Java_com_intel_realsense_librealsense_Frame_nGetData(JNIEnv *env, jclass type, jlong handle,
jbyteArray data_) {
Expand Down
5 changes: 5 additions & 0 deletions src/archive.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,11 @@ namespace librealsense
return it->second->supports(*this);
}

int frame::get_frame_data_size() const
{
return data.size();
}

const byte* frame::get_frame_data() const
{
const byte* frame_data = data.data();
Expand Down
5 changes: 5 additions & 0 deletions src/archive.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ namespace librealsense
virtual ~frame() { on_release.reset(); }
rs2_metadata_type get_frame_metadata(const rs2_frame_metadata_value& frame_metadata) const override;
bool supports_frame_metadata(const rs2_frame_metadata_value& frame_metadata) const override;
int get_frame_data_size() const override;
const byte* get_frame_data() const override;
rs2_time_t get_frame_timestamp() const override;
rs2_timestamp_domain get_frame_timestamp_domain() const override;
Expand Down Expand Up @@ -229,6 +230,10 @@ namespace librealsense
{
return first()->supports_frame_metadata(frame_metadata);
}
int get_frame_data_size() const override
{
return first()->get_frame_data_size();
}
const byte* get_frame_data() const override
{
return first()->get_frame_data();
Expand Down
1 change: 1 addition & 0 deletions src/core/streaming.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ namespace librealsense
public:
virtual rs2_metadata_type get_frame_metadata(const rs2_frame_metadata_value& frame_metadata) const = 0;
virtual bool supports_frame_metadata(const rs2_frame_metadata_value& frame_metadata) const = 0;
virtual int get_frame_data_size() const = 0;
virtual const byte* get_frame_data() const = 0;
//TODO: add virtual uint64_t get_frame_data_size() const = 0;
virtual rs2_time_t get_frame_timestamp() const = 0;
Expand Down
3 changes: 3 additions & 0 deletions src/ds5/ds5-color.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ namespace librealsense
color_ep->register_pu(RS2_OPTION_AUTO_EXPOSURE_PRIORITY);
}

if (color_devices_info.front().pid == ds::RS465_PID)
color_ep->register_pixel_format(pf_mjpg);

auto white_balance_option = std::make_shared<uvc_pu_option>(*color_ep, RS2_OPTION_WHITE_BALANCE);
auto auto_white_balance_option = std::make_shared<uvc_pu_option>(*color_ep, RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE);
color_ep->register_option(RS2_OPTION_WHITE_BALANCE, white_balance_option);
Expand Down
Loading