mirror of
https://github.com/pikvm/ustreamer.git
synced 2025-12-24 03:00:01 +00:00
renamed v4l2 encoder to m2m
This commit is contained in:
parent
630ad66cc8
commit
e6584da7c8
@ -68,7 +68,7 @@ The recommended way of running µStreamer with [Auvidea B101](https://www.raspbe
|
||||
$ export LD_LIBRARY_PATH=/opt/vc/lib/ # on bullseye
|
||||
$ ./ustreamer \
|
||||
--format=uyvy \ # Device input format
|
||||
--encoder=v4l2 \ # Hardware encoding on V4L2 M2M driver
|
||||
--encoder=m2m \ # Hardware encoding on V4L2 M2M driver
|
||||
--workers=3 \ # Workers number
|
||||
--persistent \ # Don't re-initialize device on timeout (for example when HDMI cable was disconnected)
|
||||
--dv-timings \ # Use DV-timings
|
||||
|
||||
@ -67,7 +67,7 @@ $ ./ustreamer --help
|
||||
```bash
|
||||
$ ./ustreamer \
|
||||
--format=uyvy \ # Настройка входного формата устройства
|
||||
--encoder=v4l2 \ # Аппаратное кодирование с помощью драйвер V4L2 M2M
|
||||
--encoder=m2m \ # Аппаратное кодирование с помощью драйвер V4L2 M2M
|
||||
--workers=3 \ # Максимум воркеров
|
||||
--persistent \ # Не переинициализировать устройство при таймауте (например, когда был отключен HDMI-кабель)
|
||||
--dv-timings \ # Включение DV-таймингов
|
||||
|
||||
@ -29,7 +29,7 @@ static const struct {
|
||||
} _ENCODER_TYPES[] = {
|
||||
{"CPU", ENCODER_TYPE_CPU},
|
||||
{"HW", ENCODER_TYPE_HW},
|
||||
{"V4L2", ENCODER_TYPE_V4L2},
|
||||
{"M2M", ENCODER_TYPE_M2M},
|
||||
{"NOOP", ENCODER_TYPE_NOOP},
|
||||
};
|
||||
|
||||
@ -73,7 +73,7 @@ void encoder_destroy(encoder_s *enc) {
|
||||
|
||||
encoder_type_e encoder_parse_type(const char *str) {
|
||||
if (!strcasecmp(str, "OMX")) {
|
||||
return ENCODER_TYPE_V4L2; // Just for compatibility
|
||||
return ENCODER_TYPE_M2M; // Just for compatibility
|
||||
}
|
||||
for (unsigned index = 0; index < ARRAY_LEN(_ENCODER_TYPES); ++index) {
|
||||
if (!strcasecmp(str, _ENCODER_TYPES[index].name)) {
|
||||
@ -113,8 +113,8 @@ 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_V4L2) {
|
||||
LOG_DEBUG("Preparing V4L2 encoder ...");
|
||||
} else if (type == ENCODER_TYPE_M2M) {
|
||||
LOG_DEBUG("Preparing M2M encoder ...");
|
||||
if (ER(m2ms) == NULL) {
|
||||
A_CALLOC(ER(m2ms), n_workers);
|
||||
}
|
||||
@ -220,8 +220,8 @@ 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_V4L2) {
|
||||
LOG_VERBOSE("Compressing buffer using V4L2");
|
||||
} else if (ER(type) == ENCODER_TYPE_M2M) {
|
||||
LOG_VERBOSE("Compressing buffer using M2M");
|
||||
if (m2m_encoder_ensure_ready(ER(m2ms[wr->number]), src) < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
@ -43,13 +43,13 @@
|
||||
#include "encoders/hw/encoder.h"
|
||||
|
||||
|
||||
#define ENCODER_TYPES_STR "CPU, HW, V4L2, NOOP"
|
||||
#define ENCODER_TYPES_STR "CPU, HW, M2M, NOOP"
|
||||
|
||||
typedef enum {
|
||||
ENCODER_TYPE_UNKNOWN, // Only for encoder_parse_type() and main()
|
||||
ENCODER_TYPE_CPU,
|
||||
ENCODER_TYPE_HW,
|
||||
ENCODER_TYPE_V4L2,
|
||||
ENCODER_TYPE_M2M,
|
||||
ENCODER_TYPE_NOOP,
|
||||
} encoder_type_e;
|
||||
|
||||
|
||||
@ -606,7 +606,7 @@ static void _help(FILE *fp, device_s *dev, encoder_s *enc, stream_s *stream, ser
|
||||
SAY(" Available:");
|
||||
SAY(" * CPU ── Software MJPG encoding (default);");
|
||||
SAY(" * HW ─── Use pre-encoded MJPG frames directly from camera hardware;");
|
||||
SAY(" * V4L2 ─ GPU-accelerated MJPG encoding using V4L2 M2M interface;");
|
||||
SAY(" * M2M ── GPU-accelerated MJPG encoding using V4L2 M2M interface;");
|
||||
SAY(" * NOOP ─ Don't compress MJPG stream (do nothing).\n");
|
||||
SAY(" -g|--glitched-resolutions <WxH,...> ─ It doesn't do anything. Still here for compatibility.\n");
|
||||
SAY(" -k|--blank <path> ─────────────────── Path to JPEG file that will be shown when the device is disconnected");
|
||||
|
||||
@ -277,7 +277,7 @@ static workers_pool_s *_stream_init_one(stream_s *stream) {
|
||||
if (device_open(stream->dev) < 0) {
|
||||
goto error;
|
||||
}
|
||||
if (stream->enc->type == ENCODER_TYPE_V4L2 || (RUN(h264) && !is_jpeg(stream->dev->run->format))) {
|
||||
if (stream->enc->type == ENCODER_TYPE_M2M || (RUN(h264) && !is_jpeg(stream->dev->run->format))) {
|
||||
device_export_to_dma(stream->dev);
|
||||
}
|
||||
if (device_switch_capturing(stream->dev, true) < 0) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user