renamed m2m encoders

This commit is contained in:
Maxim Devaev
2021-12-11 00:19:16 +03:00
parent e68e6b6fae
commit 55e0a096e7
4 changed files with 16 additions and 16 deletions

View File

@@ -23,7 +23,7 @@ For example, the recommended way of running µStreamer with Auvidea B101 on a Ra
.RS
\fB\-\-format=uyvy \e\fR # Device input format
.nf
\fB\-\-encoder=m2m-jpeg \e\fR # Hardware encoding with V4L2 M2M intraface
\fB\-\-encoder=m2m-image \e\fR # Hardware encoding with V4L2 M2M intraface
.nf
\fB\-\-workers=3 \e\fR # Maximum workers for V4L2 encoder
.nf
@@ -93,9 +93,9 @@ CPU ─ Software MJPEG encoding (default).
HW ─ Use pre-encoded MJPEG frames directly from camera hardware.
M2M-MJPEG ─ GPU-accelerated MJPEG encoding.
M2M-VIDEO ─ GPU-accelerated MJPEG encoding.
M2M-JPEG ─ GPU-accelerated JPEG encoding.
M2M-IMAGE ─ GPU-accelerated JPEG encoding.
NOOP ─ Don't compress MJPEG stream (do nothing).
.TP

View File

@@ -29,8 +29,11 @@ static const struct {
} _ENCODER_TYPES[] = {
{"CPU", ENCODER_TYPE_CPU},
{"HW", ENCODER_TYPE_HW},
{"M2M-MJPEG", ENCODER_TYPE_M2M_MJPEG},
{"M2M-JPEG", ENCODER_TYPE_M2M_JPEG},
{"M2M-VIDEO", ENCODER_TYPE_M2M_VIDEO},
{"M2M-IMAGE", ENCODER_TYPE_M2M_IMAGE},
{"M2M-MJPEG", ENCODER_TYPE_M2M_VIDEO},
{"M2M-JPEG", ENCODER_TYPE_M2M_IMAGE},
{"OMX", ENCODER_TYPE_M2M_IMAGE},
{"NOOP", ENCODER_TYPE_NOOP},
};
@@ -73,9 +76,6 @@ void encoder_destroy(encoder_s *enc) {
}
encoder_type_e encoder_parse_type(const char *str) {
if (!strcasecmp(str, "OMX")) {
return ENCODER_TYPE_M2M_JPEG; // Just for compatibility
}
for (unsigned index = 0; index < ARRAY_LEN(_ENCODER_TYPES); ++index) {
if (!strcasecmp(str, _ENCODER_TYPES[index].name)) {
return _ENCODER_TYPES[index].type;
@@ -114,7 +114,7 @@ workers_pool_s *encoder_workers_pool_init(encoder_s *enc, device_s *dev) {
quality = DR(jpeg_quality);
n_workers = 1;
} else if (type == ENCODER_TYPE_M2M_MJPEG || type == ENCODER_TYPE_M2M_JPEG) {
} else if (type == ENCODER_TYPE_M2M_VIDEO || type == ENCODER_TYPE_M2M_IMAGE) {
LOG_DEBUG("Preparing M2M encoder ...");
if (ER(m2ms) == NULL) {
A_CALLOC(ER(m2ms), n_workers);
@@ -122,7 +122,7 @@ workers_pool_s *encoder_workers_pool_init(encoder_s *enc, device_s *dev) {
// Начинаем с нуля и доинициализируем на следующих заходах при необходимости
if (ER(n_m2ms) < n_workers) {
if (type == ENCODER_TYPE_M2M_MJPEG) {
if (type == ENCODER_TYPE_M2M_VIDEO) {
double b_min = ENCODER_M2M_BITRATE_MIN;
double b_max = ENCODER_M2M_BITRATE_MAX;
double step = ENCODER_M2M_BITRATE_STEP;
@@ -237,7 +237,7 @@ static bool _worker_run_job(worker_s *wr) {
LOG_VERBOSE("Compressing buffer using HW (just copying)");
hw_encoder_compress(src, dest);
} else if (ER(type) == ENCODER_TYPE_M2M_MJPEG || ER(type) == ENCODER_TYPE_M2M_JPEG) {
} else if (ER(type) == ENCODER_TYPE_M2M_VIDEO || ER(type) == ENCODER_TYPE_M2M_IMAGE) {
LOG_VERBOSE("Compressing buffer using M2M");
if (m2m_encoder_ensure_ready(ER(m2ms[wr->number]), src) < 0) {
goto error;

View File

@@ -60,14 +60,14 @@
#define ENCODER_M2M_BITRATE_STEP ((unsigned)CFG_ENCODER_M2M_BITRATE_STEP)
#define ENCODER_TYPES_STR "CPU, HW, M2M-MJPEG, M2M-JPEG, NOOP"
#define ENCODER_TYPES_STR "CPU, HW, M2M-VIDEO, M2M-IMAGE, NOOP"
typedef enum {
ENCODER_TYPE_UNKNOWN, // Only for encoder_parse_type() and main()
ENCODER_TYPE_CPU,
ENCODER_TYPE_HW,
ENCODER_TYPE_M2M_MJPEG,
ENCODER_TYPE_M2M_JPEG,
ENCODER_TYPE_M2M_VIDEO,
ENCODER_TYPE_M2M_IMAGE,
ENCODER_TYPE_NOOP,
} encoder_type_e;

View File

@@ -277,8 +277,8 @@ static workers_pool_s *_stream_init_one(stream_s *stream) {
goto error;
}
if (
stream->enc->type == ENCODER_TYPE_M2M_MJPEG
|| stream->enc->type == ENCODER_TYPE_M2M_JPEG
stream->enc->type == ENCODER_TYPE_M2M_VIDEO
|| stream->enc->type == ENCODER_TYPE_M2M_IMAGE
|| (RUN(h264) && !is_jpeg(stream->dev->run->format))
) {
device_export_to_dma(stream->dev);