mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-02-28 20:56:33 +00:00
renamed m2m encoders
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user