mirror of https://github.com/mgba-emu/mgba.git
Merge branch 'master' (early part) into medusa
This commit is contained in:
commit
c645924178
4
CHANGES
4
CHANGES
|
@ -62,7 +62,9 @@ Emulation fixes:
|
|||
- ARM: Fix long and accumulate multiply timing
|
||||
- GB: Partially fix timing for skipped BIOS
|
||||
- GB: Downgrade DMG-only ROMs from CGB mode even without boot ROM
|
||||
- GB: Fix marking BIOS as unmapped when skipping BIOS (fixes mgba.io/i/2061)
|
||||
- GB Audio: Fix serializing sweep time
|
||||
- GB Audio: Fix some channel 4 timing edge cases
|
||||
- GB MBC: Fix MBC1 mode changing behavior
|
||||
- GB MBC: Fix some MBC3 bit masking
|
||||
- GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716)
|
||||
|
@ -128,6 +130,7 @@ Other fixes:
|
|||
- Qt: Fix crashing when no OpenGL context can be obtained
|
||||
- Qt: Fix issues with I/O viewer not properly synchronizing state
|
||||
- Qt: Fix loading a new game crashing on Wayland (fixes mgba.io/i/1992)
|
||||
- Qt: Fix inability to clear hat bindings
|
||||
- SM83: Simplify register pair access on big endian
|
||||
- SM83: Disassemble STOP as one byte
|
||||
- Wii: Fix crash on unloading irregularly sized GBA ROMs
|
||||
|
@ -153,6 +156,7 @@ Misc:
|
|||
- GBA Video: Avoid integer division using reciprocal tricks
|
||||
- Debugger: Keep track of global cycle count
|
||||
- FFmpeg: Add looping option for GIF/APNG
|
||||
- FFmpeg: Add CRF support for applicable codecs
|
||||
- mGUI: Show battery percentage
|
||||
- mGUI: Skip second scan loop when possible
|
||||
- mGUI: Improve loading speed (fixes mgba.io/i/1957)
|
||||
|
|
|
@ -541,7 +541,6 @@ void mInputBindHat(struct mInputMap* map, uint32_t type, int id, const struct mI
|
|||
*mInputHatListGetPointer(&impl->hats, id) = *bindings;
|
||||
}
|
||||
|
||||
|
||||
bool mInputQueryHat(const struct mInputMap* map, uint32_t type, int id, struct mInputHatBindings* bindings) {
|
||||
const struct mInputMapImpl* impl = _lookupMapConst(map, type);
|
||||
if (!impl) {
|
||||
|
@ -559,18 +558,23 @@ void mInputUnbindHat(struct mInputMap* map, uint32_t type, int id) {
|
|||
if (!impl) {
|
||||
return;
|
||||
}
|
||||
if (mInputHatListSize(&impl->hats) && id + 1 == (ssize_t) mInputHatListSize(&impl->hats)) {
|
||||
mInputHatListResize(&impl->hats, -1);
|
||||
} else {
|
||||
struct mInputHatBindings* description = mInputHatListGetPointer(&impl->hats, id);
|
||||
memset(description, -1, sizeof(*description));
|
||||
if (id >= (ssize_t) mInputHatListSize(&impl->hats)) {
|
||||
return;
|
||||
}
|
||||
struct mInputHatBindings* description = mInputHatListGetPointer(&impl->hats, id);
|
||||
memset(description, -1, sizeof(*description));
|
||||
}
|
||||
|
||||
void mInputUnbindAllHats(struct mInputMap* map, uint32_t type) {
|
||||
struct mInputMapImpl* impl = _lookupMap(map, type);
|
||||
if (impl) {
|
||||
mInputHatListClear(&impl->hats);
|
||||
if (!impl) {
|
||||
return;
|
||||
}
|
||||
|
||||
size_t id;
|
||||
for (id = 0; id < mInputHatListSize(&impl->hats); ++id) {
|
||||
struct mInputHatBindings* description = mInputHatListGetPointer(&impl->hats, id);
|
||||
memset(description, -1, sizeof(*description));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -168,7 +168,7 @@ bool FFmpegEncoderSetAudio(struct FFmpegEncoder* encoder, const char* acodec, un
|
|||
return true;
|
||||
}
|
||||
|
||||
bool FFmpegEncoderSetVideo(struct FFmpegEncoder* encoder, const char* vcodec, unsigned vbr, int frameskip) {
|
||||
bool FFmpegEncoderSetVideo(struct FFmpegEncoder* encoder, const char* vcodec, int vbr, int frameskip) {
|
||||
static const struct {
|
||||
enum AVPixelFormat format;
|
||||
int priority;
|
||||
|
@ -218,6 +218,9 @@ bool FFmpegEncoderSetVideo(struct FFmpegEncoder* encoder, const char* vcodec, un
|
|||
if (encoder->pixFormat == AV_PIX_FMT_NONE) {
|
||||
return false;
|
||||
}
|
||||
if (vbr < 0 && !av_opt_find(&codec->priv_class, "crf", NULL, 0, 0)) {
|
||||
return false;
|
||||
}
|
||||
encoder->videoCodec = vcodec;
|
||||
encoder->videoBitrate = vbr;
|
||||
encoder->frameskip = frameskip + 1;
|
||||
|
@ -412,7 +415,7 @@ bool FFmpegEncoderOpen(struct FFmpegEncoder* encoder, const char* outfile) {
|
|||
encoder->video->pix_fmt = AV_PIX_FMT_BGR0;
|
||||
}
|
||||
#endif
|
||||
if (strcmp(vcodec->name, "libx264") == 0) {
|
||||
if (strcmp(vcodec->name, "libx264") == 0 || strcmp(vcodec->name, "libx264rgb") == 0) {
|
||||
// Try to adaptively figure out when you can use a slower encoder
|
||||
if (encoder->width * encoder->height > 1000000) {
|
||||
av_opt_set(encoder->video->priv_data, "preset", "superfast", 0);
|
||||
|
@ -421,10 +424,26 @@ bool FFmpegEncoderOpen(struct FFmpegEncoder* encoder, const char* outfile) {
|
|||
} else {
|
||||
av_opt_set(encoder->video->priv_data, "preset", "faster", 0);
|
||||
}
|
||||
av_opt_set(encoder->video->priv_data, "tune", "zerolatency", 0);
|
||||
if (encoder->videoBitrate == 0) {
|
||||
av_opt_set(encoder->video->priv_data, "qp", "0", 0);
|
||||
encoder->video->pix_fmt = AV_PIX_FMT_YUV444P;
|
||||
if (strcmp(vcodec->name, "libx264") == 0) {
|
||||
encoder->video->pix_fmt = AV_PIX_FMT_YUV444P;
|
||||
}
|
||||
} else if (encoder->videoBitrate < 0) {
|
||||
av_opt_set_int(encoder->video->priv_data, "crf", -encoder->videoBitrate, 0);
|
||||
}
|
||||
} else if (encoder->videoBitrate < 0) {
|
||||
if (strcmp(vcodec->name, "libvpx") == 0 || strcmp(vcodec->name, "libvpx-vp9") == 0 || strcmp(vcodec->name, "libx265") == 0) {
|
||||
av_opt_set_int(encoder->video->priv_data, "crf", -encoder->videoBitrate, 0);
|
||||
} else {
|
||||
FFmpegEncoderClose(encoder);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (strncmp(vcodec->name, "libvpx", 6) == 0) {
|
||||
av_opt_set_int(encoder->video->priv_data, "cpu-used", 2, 0);
|
||||
av_opt_set(encoder->video->priv_data, "deadline", "realtime", 0);
|
||||
}
|
||||
if (strcmp(vcodec->name, "libvpx-vp9") == 0 && encoder->videoBitrate == 0) {
|
||||
av_opt_set_int(encoder->video->priv_data, "lossless", 1, 0);
|
||||
|
|
|
@ -23,7 +23,7 @@ struct FFmpegEncoder {
|
|||
unsigned audioBitrate;
|
||||
const char* audioCodec;
|
||||
|
||||
unsigned videoBitrate;
|
||||
int videoBitrate;
|
||||
const char* videoCodec;
|
||||
|
||||
const char* containerFormat;
|
||||
|
@ -76,7 +76,7 @@ struct FFmpegEncoder {
|
|||
|
||||
void FFmpegEncoderInit(struct FFmpegEncoder*);
|
||||
bool FFmpegEncoderSetAudio(struct FFmpegEncoder*, const char* acodec, unsigned abr);
|
||||
bool FFmpegEncoderSetVideo(struct FFmpegEncoder*, const char* vcodec, unsigned vbr, int frameskip);
|
||||
bool FFmpegEncoderSetVideo(struct FFmpegEncoder*, const char* vcodec, int vbr, int frameskip);
|
||||
bool FFmpegEncoderSetContainer(struct FFmpegEncoder*, const char* container);
|
||||
void FFmpegEncoderSetDimensions(struct FFmpegEncoder*, int width, int height);
|
||||
void FFmpegEncoderSetInputFrameRate(struct FFmpegEncoder*, int numerator, int denominator);
|
||||
|
|
|
@ -390,6 +390,7 @@ void GBAudioWriteNR44(struct GBAudio* audio, uint8_t value) {
|
|||
}
|
||||
}
|
||||
if (audio->playingCh4 && audio->ch4.envelope.dead != 2) {
|
||||
audio->ch4.lastEvent = mTimingCurrentTime(audio->timing);
|
||||
mTimingDeschedule(audio->timing, &audio->ch4Event);
|
||||
mTimingSchedule(audio->timing, &audio->ch4Event, 0);
|
||||
}
|
||||
|
@ -581,14 +582,16 @@ void GBAudioUpdateFrame(struct GBAudio* audio, struct mTiming* timing) {
|
|||
if (audio->playingCh4 && !audio->ch4.envelope.dead) {
|
||||
--audio->ch4.envelope.nextStep;
|
||||
if (audio->ch4.envelope.nextStep == 0) {
|
||||
int8_t sample = audio->ch4.sample > 0;
|
||||
audio->ch4.samples -= audio->ch4.sample;
|
||||
int8_t sample = audio->ch4.sample;
|
||||
_updateEnvelope(&audio->ch4.envelope);
|
||||
if (audio->ch4.envelope.dead == 2) {
|
||||
mTimingDeschedule(timing, &audio->ch4Event);
|
||||
}
|
||||
audio->ch4.sample = sample * audio->ch4.envelope.currentVolume;
|
||||
audio->ch4.samples += audio->ch4.sample;
|
||||
audio->ch4.sample = (sample > 0) * audio->ch4.envelope.currentVolume;
|
||||
if (audio->ch4.nSamples) {
|
||||
audio->ch4.samples -= sample;
|
||||
audio->ch4.samples += audio->ch4.sample;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -577,6 +577,7 @@ void GBSkipBIOS(struct GB* gb) {
|
|||
mTimingSchedule(&gb->timing, &gb->timer.event, gb->timer.nextDiv);
|
||||
|
||||
GBIOWrite(gb, GB_REG_LCDC, 0x91);
|
||||
gb->memory.io[GB_REG_BANK] = 0x1;
|
||||
GBVideoSkipBIOS(&gb->video);
|
||||
|
||||
if (gb->biosVf) {
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "CoreController.h"
|
||||
|
||||
#include <QMutexLocker>
|
||||
#include <QThread>
|
||||
|
||||
#include <mgba/internal/debugger/cli-debugger.h>
|
||||
|
||||
|
@ -30,6 +31,7 @@ DebuggerConsoleController::DebuggerConsoleController(QObject* parent)
|
|||
}
|
||||
|
||||
void DebuggerConsoleController::enterLine(const QString& line) {
|
||||
CoreController::Interrupter interrupter(m_gameController);
|
||||
QMutexLocker lock(&m_mutex);
|
||||
m_lines.append(line);
|
||||
if (m_cliDebugger.d.state == DEBUGGER_RUNNING) {
|
||||
|
@ -39,14 +41,20 @@ void DebuggerConsoleController::enterLine(const QString& line) {
|
|||
}
|
||||
|
||||
void DebuggerConsoleController::detach() {
|
||||
if (m_cliDebugger.d.state != DEBUGGER_SHUTDOWN) {
|
||||
m_lines.append(QString());
|
||||
m_cond.wakeOne();
|
||||
{
|
||||
CoreController::Interrupter interrupter(m_gameController);
|
||||
QMutexLocker lock(&m_mutex);
|
||||
if (m_cliDebugger.d.state != DEBUGGER_SHUTDOWN) {
|
||||
m_lines.append(QString());
|
||||
m_cond.wakeOne();
|
||||
}
|
||||
}
|
||||
DebuggerController::detach();
|
||||
}
|
||||
|
||||
void DebuggerConsoleController::attachInternal() {
|
||||
CoreController::Interrupter interrupter(m_gameController);
|
||||
QMutexLocker lock(&m_mutex);
|
||||
m_history.clear();
|
||||
mCore* core = m_gameController->thread()->core;
|
||||
CLIDebuggerAttachBackend(&m_cliDebugger, &m_backend.d);
|
||||
|
@ -65,12 +73,13 @@ void DebuggerConsoleController::printf(struct CLIDebuggerBackend* be, const char
|
|||
void DebuggerConsoleController::init(struct CLIDebuggerBackend* be) {
|
||||
Backend* consoleBe = reinterpret_cast<Backend*>(be);
|
||||
DebuggerConsoleController* self = consoleBe->self;
|
||||
UNUSED(self);
|
||||
}
|
||||
|
||||
void DebuggerConsoleController::deinit(struct CLIDebuggerBackend* be) {
|
||||
Backend* consoleBe = reinterpret_cast<Backend*>(be);
|
||||
DebuggerConsoleController* self = consoleBe->self;
|
||||
if (be->p->d.state != DEBUGGER_SHUTDOWN) {
|
||||
if (QThread::currentThread() == self->thread() && be->p->d.state != DEBUGGER_SHUTDOWN) {
|
||||
self->m_lines.append(QString());
|
||||
self->m_cond.wakeOne();
|
||||
}
|
||||
|
@ -109,6 +118,7 @@ const char* DebuggerConsoleController::historyLast(struct CLIDebuggerBackend* be
|
|||
return "i";
|
||||
}
|
||||
self->m_last = self->m_history.last().toUtf8();
|
||||
*len = self->m_last.size();
|
||||
return self->m_last.constData();
|
||||
}
|
||||
|
||||
|
|
|
@ -215,6 +215,7 @@ void GBAKeyEditor::setNext() {
|
|||
void GBAKeyEditor::save() {
|
||||
#ifdef BUILD_SDL
|
||||
m_controller->unbindAllAxes(m_type);
|
||||
m_controller->unbindAllHats(m_type);
|
||||
#endif
|
||||
|
||||
bindKey(m_keyDU, GBA_KEY_UP);
|
||||
|
|
|
@ -209,18 +209,22 @@ bool KeyEditor::event(QEvent* event) {
|
|||
void KeyEditor::updateButtonText() {
|
||||
QStringList text;
|
||||
if (m_hat >= 0) {
|
||||
QString hatId("%0");
|
||||
if (m_hat) {
|
||||
hatId += QString::number(m_hat);
|
||||
}
|
||||
switch (m_hatDirection) {
|
||||
case GamepadHatEvent::UP:
|
||||
text.append(QString("↑%0").arg(m_hat));
|
||||
text.append(hatId.arg("↑"));
|
||||
break;
|
||||
case GamepadHatEvent::RIGHT:
|
||||
text.append(QString("→%0").arg(m_hat));
|
||||
text.append(hatId.arg("→"));
|
||||
break;
|
||||
case GamepadHatEvent::DOWN:
|
||||
text.append(QString("↓%0").arg(m_hat));
|
||||
text.append(hatId.arg("↓"));
|
||||
break;
|
||||
case GamepadHatEvent::LEFT:
|
||||
text.append(QString("←%0").arg(m_hat));
|
||||
text.append(hatId.arg("←"));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -86,14 +86,25 @@ VideoView::VideoView(QWidget* parent)
|
|||
connect(m_ui.video, SIGNAL(editTextChanged(const QString&)), this, SLOT(setVideoCodec(const QString&)));
|
||||
connect(m_ui.container, SIGNAL(editTextChanged(const QString&)), this, SLOT(setContainer(const QString&)));
|
||||
|
||||
connect(m_ui.abr, SIGNAL(valueChanged(int)), this, SLOT(setAudioBitrate(int)));
|
||||
connect(m_ui.vbr, SIGNAL(valueChanged(int)), this, SLOT(setVideoBitrate(int)));
|
||||
connect(m_ui.abr, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &VideoView::setAudioBitrate);
|
||||
connect(m_ui.crf, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &VideoView::setVideoRateFactor);
|
||||
connect(m_ui.vbr, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &VideoView::setVideoBitrate);
|
||||
connect(m_ui.doVbr, &QAbstractButton::toggled, this, [this](bool set) {
|
||||
if (set) {
|
||||
setVideoBitrate(m_ui.vbr->value());
|
||||
}
|
||||
});
|
||||
connect(m_ui.doCrf, &QAbstractButton::toggled, this, [this](bool set) {
|
||||
if (set) {
|
||||
setVideoRateFactor(m_ui.crf->value());
|
||||
}
|
||||
});
|
||||
|
||||
connect(m_ui.width, SIGNAL(valueChanged(int)), this, SLOT(setWidth(int)));
|
||||
connect(m_ui.height, SIGNAL(valueChanged(int)), this, SLOT(setHeight(int)));
|
||||
connect(m_ui.width, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &VideoView::setWidth);
|
||||
connect(m_ui.height, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &VideoView::setHeight);
|
||||
|
||||
connect(m_ui.wratio, SIGNAL(valueChanged(int)), this, SLOT(setAspectWidth(int)));
|
||||
connect(m_ui.hratio, SIGNAL(valueChanged(int)), this, SLOT(setAspectHeight(int)));
|
||||
connect(m_ui.wratio, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &VideoView::setAspectWidth);
|
||||
connect(m_ui.hratio, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &VideoView::setAspectHeight);
|
||||
|
||||
connect(m_ui.showAdvanced, &QAbstractButton::clicked, this, &VideoView::showAdvanced);
|
||||
|
||||
|
@ -101,13 +112,7 @@ VideoView::VideoView(QWidget* parent)
|
|||
|
||||
updatePresets();
|
||||
|
||||
setPreset({
|
||||
"MKV",
|
||||
"h.264",
|
||||
"FLAC",
|
||||
-1,
|
||||
0,
|
||||
});
|
||||
m_ui.presetYoutube->setChecked(true); // Use the Youtube preset by default
|
||||
showAdvanced(false);
|
||||
}
|
||||
|
||||
|
@ -126,18 +131,18 @@ void VideoView::updatePresets() {
|
|||
|
||||
addPreset(m_ui.presetHQ, {
|
||||
"MP4",
|
||||
"h.264",
|
||||
"H.264",
|
||||
"AAC",
|
||||
8000,
|
||||
-18,
|
||||
384,
|
||||
maintainAspect({ 1920, 1080 })
|
||||
});
|
||||
|
||||
addPreset(m_ui.presetYoutube, {
|
||||
"MP4",
|
||||
"h.264",
|
||||
"H.264",
|
||||
"AAC",
|
||||
5000,
|
||||
-20,
|
||||
256,
|
||||
maintainAspect({ 1280, 720 })
|
||||
});
|
||||
|
@ -152,16 +157,16 @@ void VideoView::updatePresets() {
|
|||
|
||||
addPreset(m_ui.presetMP4, {
|
||||
"MP4",
|
||||
"h.264",
|
||||
"H.264",
|
||||
"AAC",
|
||||
800,
|
||||
-22,
|
||||
128
|
||||
});
|
||||
|
||||
if (m_nativeWidth && m_nativeHeight) {
|
||||
addPreset(m_ui.presetLossless, {
|
||||
"MKV",
|
||||
"h.264",
|
||||
"libx264rgb",
|
||||
"FLAC",
|
||||
-1,
|
||||
0,
|
||||
|
@ -245,7 +250,7 @@ void VideoView::setFilename(const QString& fname) {
|
|||
validateSettings();
|
||||
}
|
||||
|
||||
void VideoView::setAudioCodec(const QString& codec, bool manual) {
|
||||
void VideoView::setAudioCodec(const QString& codec) {
|
||||
free(m_audioCodecCstr);
|
||||
m_audioCodec = sanitizeCodec(codec, s_acodecMap);
|
||||
if (m_audioCodec == "none") {
|
||||
|
@ -253,18 +258,16 @@ void VideoView::setAudioCodec(const QString& codec, bool manual) {
|
|||
} else {
|
||||
m_audioCodecCstr = strdup(m_audioCodec.toUtf8().constData());
|
||||
}
|
||||
if (!FFmpegEncoderSetAudio(&m_encoder, m_audioCodecCstr, m_abr)) {
|
||||
if (!FFmpegEncoderSetAudio(&m_encoder, m_audioCodecCstr, 128 * 1024)) {
|
||||
free(m_audioCodecCstr);
|
||||
m_audioCodecCstr = nullptr;
|
||||
m_audioCodec = QString();
|
||||
}
|
||||
validateSettings();
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::setVideoCodec(const QString& codec, bool manual) {
|
||||
void VideoView::setVideoCodec(const QString& codec) {
|
||||
free(m_videoCodecCstr);
|
||||
m_videoCodec = sanitizeCodec(codec, s_vcodecMap);
|
||||
if (m_videoCodec == "none") {
|
||||
|
@ -272,18 +275,16 @@ void VideoView::setVideoCodec(const QString& codec, bool manual) {
|
|||
} else {
|
||||
m_videoCodecCstr = strdup(m_videoCodec.toUtf8().constData());
|
||||
}
|
||||
if (!FFmpegEncoderSetVideo(&m_encoder, m_videoCodecCstr, m_vbr, 0)) {
|
||||
if (!FFmpegEncoderSetVideo(&m_encoder, m_videoCodecCstr, 1024 * 1024, 0)) {
|
||||
free(m_videoCodecCstr);
|
||||
m_videoCodecCstr = nullptr;
|
||||
m_videoCodec = QString();
|
||||
}
|
||||
validateSettings();
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::setContainer(const QString& container, bool manual) {
|
||||
void VideoView::setContainer(const QString& container) {
|
||||
free(m_containerCstr);
|
||||
m_container = sanitizeCodec(container, s_containerMap);
|
||||
m_containerCstr = strdup(m_container.toUtf8().constData());
|
||||
|
@ -293,61 +294,51 @@ void VideoView::setContainer(const QString& container, bool manual) {
|
|||
m_container = QString();
|
||||
}
|
||||
validateSettings();
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::setAudioBitrate(int br, bool manual) {
|
||||
void VideoView::setAudioBitrate(int br) {
|
||||
m_abr = br * 1000;
|
||||
FFmpegEncoderSetAudio(&m_encoder, m_audioCodecCstr, m_abr);
|
||||
validateSettings();
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::setVideoBitrate(int br, bool manual) {
|
||||
m_vbr = br >= 0 ? br * 1000 : 0;
|
||||
void VideoView::setVideoBitrate(int br) {
|
||||
m_vbr = br > 0 ? br * 1000 : br;
|
||||
FFmpegEncoderSetVideo(&m_encoder, m_videoCodecCstr, m_vbr, 0);
|
||||
validateSettings();
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::setWidth(int width, bool manual) {
|
||||
void VideoView::setVideoRateFactor(int rf) {
|
||||
setVideoBitrate(-rf);
|
||||
}
|
||||
|
||||
void VideoView::setWidth(int width) {
|
||||
m_width = width;
|
||||
updateAspectRatio(width, 0, false);
|
||||
FFmpegEncoderSetDimensions(&m_encoder, m_width, m_height);
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::setHeight(int height, bool manual) {
|
||||
void VideoView::setHeight(int height) {
|
||||
m_height = height;
|
||||
updateAspectRatio(0, height, false);
|
||||
FFmpegEncoderSetDimensions(&m_encoder, m_width, m_height);
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::setAspectWidth(int, bool manual) {
|
||||
void VideoView::setAspectWidth(int) {
|
||||
updateAspectRatio(0, m_height, true);
|
||||
FFmpegEncoderSetDimensions(&m_encoder, m_width, m_height);
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::setAspectHeight(int, bool manual) {
|
||||
void VideoView::setAspectHeight(int) {
|
||||
updateAspectRatio(m_width, 0, true);
|
||||
FFmpegEncoderSetDimensions(&m_encoder, m_width, m_height);
|
||||
if (manual) {
|
||||
uncheckIncompatible();
|
||||
}
|
||||
uncheckIncompatible();
|
||||
}
|
||||
|
||||
void VideoView::showAdvanced(bool show) {
|
||||
|
@ -361,6 +352,11 @@ bool VideoView::validateSettings() {
|
|||
m_ui.audio->setStyleSheet("QComboBox { color: red; }");
|
||||
} else {
|
||||
m_ui.audio->setStyleSheet("");
|
||||
if (!FFmpegEncoderSetAudio(&m_encoder, m_audioCodecCstr, m_abr)) {
|
||||
m_ui.abr->setStyleSheet("QSpinBox { color: red; }");
|
||||
} else {
|
||||
m_ui.abr->setStyleSheet("");
|
||||
}
|
||||
}
|
||||
|
||||
if (m_videoCodec.isNull()) {
|
||||
|
@ -368,6 +364,21 @@ bool VideoView::validateSettings() {
|
|||
m_ui.video->setStyleSheet("QComboBox { color: red; }");
|
||||
} else {
|
||||
m_ui.video->setStyleSheet("");
|
||||
if (!FFmpegEncoderSetVideo(&m_encoder, m_videoCodecCstr, m_vbr, 0)) {
|
||||
if (m_ui.doVbr->isChecked()) {
|
||||
m_ui.vbr->setStyleSheet("QSpinBox { color: red; }");
|
||||
} else {
|
||||
m_ui.vbr->setStyleSheet("");
|
||||
}
|
||||
if (m_ui.doCrf->isChecked()) {
|
||||
m_ui.crf->setStyleSheet("QSpinBox { color: red; }");
|
||||
} else {
|
||||
m_ui.crf->setStyleSheet("");
|
||||
}
|
||||
} else {
|
||||
m_ui.vbr->setStyleSheet("");
|
||||
m_ui.crf->setStyleSheet("");
|
||||
}
|
||||
}
|
||||
|
||||
if (m_container.isNull()) {
|
||||
|
@ -410,11 +421,15 @@ void VideoView::updateAspectRatio(int width, int height, bool force) {
|
|||
}
|
||||
|
||||
void VideoView::uncheckIncompatible() {
|
||||
if (m_updatesBlocked) {
|
||||
return;
|
||||
}
|
||||
|
||||
Preset current = {
|
||||
m_container,
|
||||
m_videoCodec,
|
||||
m_audioCodec,
|
||||
m_vbr / 1000,
|
||||
m_vbr > 0 ? m_vbr / 1000 : m_vbr,
|
||||
m_abr / 1000,
|
||||
{ m_width, m_height }
|
||||
};
|
||||
|
@ -459,24 +474,21 @@ QString VideoView::sanitizeCodec(const QString& codec, const QMap<QString, QStri
|
|||
}
|
||||
|
||||
void VideoView::safelyCheck(QAbstractButton* button, bool set) {
|
||||
bool signalsBlocked = button->blockSignals(true);
|
||||
QSignalBlocker blocker(button);
|
||||
bool autoExclusive = button->autoExclusive();
|
||||
button->setAutoExclusive(false);
|
||||
button->setChecked(set);
|
||||
button->setAutoExclusive(autoExclusive);
|
||||
button->blockSignals(signalsBlocked);
|
||||
}
|
||||
|
||||
void VideoView::safelySet(QSpinBox* box, int value) {
|
||||
bool signalsBlocked = box->blockSignals(true);
|
||||
QSignalBlocker blocker(box);
|
||||
box->setValue(value);
|
||||
box->blockSignals(signalsBlocked);
|
||||
}
|
||||
|
||||
void VideoView::safelySet(QComboBox* box, const QString& value) {
|
||||
bool signalsBlocked = box->blockSignals(true);
|
||||
QSignalBlocker blocker(box);
|
||||
box->lineEdit()->setText(value);
|
||||
box->blockSignals(signalsBlocked);
|
||||
}
|
||||
|
||||
void VideoView::addPreset(QAbstractButton* button, const Preset& preset) {
|
||||
|
@ -488,34 +500,46 @@ void VideoView::addPreset(QAbstractButton* button, const Preset& preset) {
|
|||
}
|
||||
|
||||
void VideoView::setPreset(const Preset& preset) {
|
||||
m_updatesBlocked = true;
|
||||
if (!preset.container.isNull()) {
|
||||
setContainer(preset.container, false);
|
||||
setContainer(preset.container);
|
||||
safelySet(m_ui.container, preset.container);
|
||||
}
|
||||
if (!preset.acodec.isNull()) {
|
||||
setAudioCodec(preset.acodec, false);
|
||||
setAudioCodec(preset.acodec);
|
||||
safelySet(m_ui.audio, preset.acodec);
|
||||
}
|
||||
if (!preset.vcodec.isNull()) {
|
||||
setVideoCodec(preset.vcodec, false);
|
||||
setVideoCodec(preset.vcodec);
|
||||
safelySet(m_ui.video, preset.vcodec);
|
||||
}
|
||||
if (preset.abr) {
|
||||
setAudioBitrate(preset.abr, false);
|
||||
setAudioBitrate(preset.abr);
|
||||
safelySet(m_ui.abr, preset.abr);
|
||||
}
|
||||
if (preset.vbr) {
|
||||
setVideoBitrate(preset.vbr, false);
|
||||
safelySet(m_ui.vbr, preset.vbr);
|
||||
int vbr = preset.vbr;
|
||||
if (vbr == -1) {
|
||||
vbr = 0;
|
||||
}
|
||||
setVideoBitrate(vbr);
|
||||
if (vbr > 0) {
|
||||
safelySet(m_ui.vbr, vbr);
|
||||
m_ui.doVbr->setChecked(true);
|
||||
} else {
|
||||
safelySet(m_ui.crf, -vbr);
|
||||
m_ui.doCrf->setChecked(true);
|
||||
}
|
||||
}
|
||||
if (preset.dims.width() > 0) {
|
||||
setWidth(preset.dims.width(), false);
|
||||
setWidth(preset.dims.width());
|
||||
safelySet(m_ui.width, preset.dims.width());
|
||||
}
|
||||
if (preset.dims.height() > 0) {
|
||||
setHeight(preset.dims.height(), false);
|
||||
setHeight(preset.dims.height());
|
||||
safelySet(m_ui.height, preset.dims.height());
|
||||
}
|
||||
m_updatesBlocked = false;
|
||||
|
||||
uncheckIncompatible();
|
||||
validateSettings();
|
||||
|
|
|
@ -45,17 +45,18 @@ signals:
|
|||
private slots:
|
||||
void selectFile();
|
||||
void setFilename(const QString&);
|
||||
void setAudioCodec(const QString&, bool manual = true);
|
||||
void setVideoCodec(const QString&, bool manual = true);
|
||||
void setContainer(const QString&, bool manual = true);
|
||||
void setAudioCodec(const QString&);
|
||||
void setVideoCodec(const QString&);
|
||||
void setContainer(const QString&);
|
||||
|
||||
void setAudioBitrate(int, bool manual = true);
|
||||
void setVideoBitrate(int, bool manual = true);
|
||||
void setAudioBitrate(int);
|
||||
void setVideoBitrate(int);
|
||||
void setVideoRateFactor(int);
|
||||
|
||||
void setWidth(int, bool manual = true);
|
||||
void setHeight(int, bool manual = true);
|
||||
void setAspectWidth(int, bool manual = true);
|
||||
void setAspectHeight(int, bool manual = true);
|
||||
void setWidth(int);
|
||||
void setHeight(int);
|
||||
void setAspectWidth(int);
|
||||
void setAspectHeight(int);
|
||||
|
||||
void showAdvanced(bool);
|
||||
|
||||
|
@ -67,8 +68,8 @@ private:
|
|||
QString container;
|
||||
QString vcodec;
|
||||
QString acodec;
|
||||
int vbr;
|
||||
int abr;
|
||||
int vbr = 0;
|
||||
int abr = 0;
|
||||
QSize dims;
|
||||
|
||||
Preset() {}
|
||||
|
@ -107,6 +108,8 @@ private:
|
|||
char* m_videoCodecCstr = nullptr;
|
||||
char* m_containerCstr = nullptr;
|
||||
|
||||
bool m_updatesBlocked = false;
|
||||
|
||||
int m_abr;
|
||||
int m_vbr;
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>351</width>
|
||||
<height>584</height>
|
||||
<width>324</width>
|
||||
<height>593</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
|
@ -145,9 +145,6 @@
|
|||
<property name="text">
|
||||
<string>&Lossless</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">presets</string>
|
||||
</attribute>
|
||||
|
@ -155,6 +152,13 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
|
@ -270,12 +274,12 @@
|
|||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>h.264</string>
|
||||
<string>H.264</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>h.264 (NVENC)</string>
|
||||
<string>H.264 (NVENC)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
|
@ -361,36 +365,20 @@
|
|||
<string> Bitrate (kbps)</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="doVbr">
|
||||
<property name="text">
|
||||
<string>VBR </string>
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>vbr</cstring>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">ratefactor</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="vbr">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>400</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<item row="3" column="2">
|
||||
<widget class="QSpinBox" name="abr">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
|
@ -406,7 +394,17 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="doCrf">
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">ratefactor</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>ABR</string>
|
||||
|
@ -419,6 +417,64 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QSpinBox" name="crf">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>18</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QSpinBox" name="vbr">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>VBR</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>vbr</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>CRF</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>crf</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -529,14 +585,20 @@
|
|||
<tabstop>presetHQ</tabstop>
|
||||
<tabstop>presetYoutube</tabstop>
|
||||
<tabstop>presetWebM</tabstop>
|
||||
<tabstop>presetMP4</tabstop>
|
||||
<tabstop>presetLossless</tabstop>
|
||||
<tabstop>preset4K</tabstop>
|
||||
<tabstop>preset1080</tabstop>
|
||||
<tabstop>preset720</tabstop>
|
||||
<tabstop>preset480</tabstop>
|
||||
<tabstop>presetNative</tabstop>
|
||||
<tabstop>showAdvanced</tabstop>
|
||||
<tabstop>container</tabstop>
|
||||
<tabstop>video</tabstop>
|
||||
<tabstop>audio</tabstop>
|
||||
<tabstop>doCrf</tabstop>
|
||||
<tabstop>doVbr</tabstop>
|
||||
<tabstop>crf</tabstop>
|
||||
<tabstop>vbr</tabstop>
|
||||
<tabstop>abr</tabstop>
|
||||
<tabstop>width</tabstop>
|
||||
|
@ -544,12 +606,45 @@
|
|||
<tabstop>wratio</tabstop>
|
||||
<tabstop>hratio</tabstop>
|
||||
<tabstop>lockRatio</tabstop>
|
||||
<tabstop>showAdvanced</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>doCrf</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>crf</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>200</x>
|
||||
<y>324</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>301</x>
|
||||
<y>314</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>doVbr</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>vbr</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>200</x>
|
||||
<y>364</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>301</x>
|
||||
<y>354</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
<buttongroups>
|
||||
<buttongroup name="resolutions"/>
|
||||
<buttongroup name="presets"/>
|
||||
<buttongroup name="resolutions"/>
|
||||
<buttongroup name="ratefactor"/>
|
||||
</buttongroups>
|
||||
</ui>
|
||||
|
|
|
@ -704,6 +704,10 @@ void InputController::bindHat(uint32_t type, int hat, GamepadHatEvent::Direction
|
|||
mInputBindHat(&m_inputMap, type, hat, &bindings);
|
||||
}
|
||||
|
||||
void InputController::unbindAllHats(uint32_t type) {
|
||||
mInputUnbindAllHats(&m_inputMap, type);
|
||||
}
|
||||
|
||||
void InputController::testGamepad(int type) {
|
||||
QWriteLocker l(&m_eventsLock);
|
||||
auto activeAxes = activeGamepadAxes(type);
|
||||
|
|
|
@ -94,8 +94,12 @@ public:
|
|||
void recalibrateAxes();
|
||||
|
||||
void bindKey(uint32_t type, int key, const QString&);
|
||||
|
||||
void bindAxis(uint32_t type, int axis, GamepadAxisEvent::Direction, const QString&);
|
||||
void unbindAllAxes(uint32_t type);
|
||||
|
||||
void bindHat(uint32_t type, int hat, GamepadHatEvent::Direction, const QString&);
|
||||
void unbindAllHats(uint32_t type);
|
||||
|
||||
QStringList connectedGamepads(uint32_t type) const;
|
||||
int gamepad(uint32_t type) const;
|
||||
|
|
|
@ -3301,7 +3301,7 @@ Game Boy Advance ist eine eingetragene Marke von Nintendo Co., Ltd.</translation
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation>---</translation>
|
||||
</message>
|
||||
|
@ -3981,17 +3981,17 @@ Game Boy Advance ist eine eingetragene Marke von Nintendo Co., Ltd.</translation
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>Fehler beim Öffnen der Ausgabe-Videodatei: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation>Nativ (%0x%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>Ausgabedatei auswählen</translation>
|
||||
</message>
|
||||
|
@ -5836,28 +5836,28 @@ wenn vorhanden</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation>WebM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>Format</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation>MKV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation>AVI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation>MP4</translation>
|
||||
</message>
|
||||
|
@ -5877,128 +5877,133 @@ wenn vorhanden</translation>
|
|||
<translation>Ver&lustfrei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation>4K</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation>&1080p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation>&720p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation>&480p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation>&Nativ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation>h.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation>h.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation>HEVC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation>HEVC (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation>VP8</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation>VP9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation>FFV1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation>Leer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation>Opus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation>Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation>MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation>AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>Unkomprimiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation> Bitrate (kbps)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation>VBR </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation>ABR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished">H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished">H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Abmessungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>Seitenverhältnis sperren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>Erweiterte Optionen anzeigen</translation>
|
||||
</message>
|
||||
|
|
|
@ -3255,7 +3255,7 @@ Game Boy Advance es una marca registrada de Nintendo Co., Ltd.</translation>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation>---</translation>
|
||||
</message>
|
||||
|
@ -3935,17 +3935,17 @@ Game Boy Advance es una marca registrada de Nintendo Co., Ltd.</translation>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>Error al abrir el archivo de video de salida: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation>Native (%0x%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>Seleccionar archivo de salida</translation>
|
||||
</message>
|
||||
|
@ -5740,28 +5740,28 @@ Game Boy Advance es una marca registrada de Nintendo Co., Ltd.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation>WebM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>Formato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation>MKV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation>AVI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation>MP4</translation>
|
||||
</message>
|
||||
|
@ -5781,128 +5781,133 @@ Game Boy Advance es una marca registrada de Nintendo Co., Ltd.</translation>
|
|||
<translation>Sin pér&didas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation type="unfinished">480p {4K?}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation>&1080p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation>&720p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation>&480p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation>&NAtivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation>h.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation>h.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation>HEVC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation>HEVC (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation>VP8</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation>VP9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation>FFV1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished">Ninguno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation>Opus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation>Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation>MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation>AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>Sin comprimir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation> Tasa de bits (kbps)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation>VBR </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation>ABR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished">H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished">H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Dimensiones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>Bloquear proporción de aspecto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>Mostrar ajustes avanzados</translation>
|
||||
</message>
|
||||
|
|
|
@ -3255,7 +3255,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd.</translation>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation>---</translation>
|
||||
</message>
|
||||
|
@ -3935,17 +3935,17 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd.</translation>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>Errore durante l'archiviazione del video: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation>Nativo (%0x%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>Seleziona file di uscita</translation>
|
||||
</message>
|
||||
|
@ -5740,48 +5740,38 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation>WebM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>Formato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation>MKV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation>AVI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation>MP4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation>h.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation>h.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation>HEVC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation>VP8</translation>
|
||||
</message>
|
||||
|
@ -5801,108 +5791,123 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd.</translation>
|
|||
<translation>&Lossless</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation>4K</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation>&1080p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation>&720p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation>&480p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation>&Nativa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished">H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished">H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation>HEVC (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation>VP9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation>FFV1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation>Nessuno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation>Opus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation>Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation>MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation>AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>Senza compressione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation> Bitrate (kbps)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation>VBR </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation>ABR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Dimensioni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>Blocca rapporti aspetto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>Mostra avanzate</translation>
|
||||
</message>
|
||||
|
|
|
@ -3254,7 +3254,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -3934,17 +3934,17 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5747,13 +5747,13 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5763,143 +5763,148 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished">H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished">H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -3267,7 +3267,7 @@ Game Boy Advance est une marque de fabrique enregistré par Nintendo Co., Ltd.</
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation>---</translation>
|
||||
</message>
|
||||
|
@ -3954,17 +3954,17 @@ Game Boy Advance est une marque de fabrique enregistré par Nintendo Co., Ltd.</
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>Impossible d'ouvrir le fichier vidéo de sortie : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation>Natif (%0x%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>Choisir le fichier de sortie</translation>
|
||||
</message>
|
||||
|
@ -5760,28 +5760,28 @@ Game Boy Advance est une marque de fabrique enregistré par Nintendo Co., Ltd.</
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation>WebM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>Format</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation>MKV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation>AVI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation>MP4</translation>
|
||||
</message>
|
||||
|
@ -5801,128 +5801,133 @@ Game Boy Advance est une marque de fabrique enregistré par Nintendo Co., Ltd.</
|
|||
<translation>&Lossless</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation>4K</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation>&1080p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation>&720p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation>&480p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation>&Natif</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation>H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation>H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation>HEVC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation>HEVC (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation>VP8</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation>VP9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation>FFV1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation>Aucun</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation>Opus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation>Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation>MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation>AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>Non compressé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation> Bitrate (kbps)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation>VBR </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation>ABR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation>H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation>H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Dimensions</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>Bloquer les proportions</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>Paramètres avancés</translation>
|
||||
</message>
|
||||
|
|
|
@ -3255,7 +3255,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation>---</translation>
|
||||
</message>
|
||||
|
@ -3935,17 +3935,17 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>出力ビデオファイルを開けませんでした: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation>ネイティブ(%0x%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>出力ファイルを選択</translation>
|
||||
</message>
|
||||
|
@ -5740,28 +5740,28 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation>WebM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>フォーマット</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation>MKV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation>AVI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation>MP4</translation>
|
||||
</message>
|
||||
|
@ -5781,128 +5781,133 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<translation>ロスレス (&L)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation>4K</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation>1080p (&1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation>720p (&7)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation>480p (&4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation>ネイティブ (&N)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation>h.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation>h.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation>HEVC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation>HEVC(NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation>VP8</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation>VP9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation>FFV1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation>なし</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation>Opus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation>Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation>MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation>AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>圧縮なし</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation> ビットレート(kbps)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation>VBR </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation>ABR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished">H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished">H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>サイズ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>縦横比を固定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>詳細表示</translation>
|
||||
</message>
|
||||
|
|
|
@ -3255,7 +3255,7 @@ Game Boy Advance는 Nintendo Co., Ltd.의 등록 상표입니다.</translation>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation>---</translation>
|
||||
</message>
|
||||
|
@ -3935,17 +3935,17 @@ Game Boy Advance는 Nintendo Co., Ltd.의 등록 상표입니다.</translation>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>출력 비디오 파일을 열지 못했습니다: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation>기본 (%0x%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>출력 파일 선택</translation>
|
||||
</message>
|
||||
|
@ -5740,48 +5740,38 @@ Game Boy Advance는 Nintendo Co., Ltd.의 등록 상표입니다.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation>WebM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>형식</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation>MKV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation>AVI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation>MP4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation>h.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation>h.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation>HEVC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation>VP8</translation>
|
||||
</message>
|
||||
|
@ -5801,108 +5791,123 @@ Game Boy Advance는 Nintendo Co., Ltd.의 등록 상표입니다.</translation>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation type="unfinished">480p {4K?}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished">H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished">H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation type="unfinished">VP9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation>FFV1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished">없음</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation>오푸스</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation>보비스</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation>MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation>AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>미압축</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation> 전송률 (kbps)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation>VBR </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation>ABR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>크기</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>화면비 잠금</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>고급 보기</translation>
|
||||
</message>
|
||||
|
|
|
@ -3254,7 +3254,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -3934,17 +3934,17 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5747,7 +5747,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5757,149 +5757,154 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -3255,7 +3255,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd.</translation>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation>---</translation>
|
||||
</message>
|
||||
|
@ -3935,17 +3935,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd.</translation>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>Falha ao abrir arquivo de vídeo de saída: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation>Nativo (%0x%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>Selecione o arquivo de saída</translation>
|
||||
</message>
|
||||
|
@ -5740,28 +5740,28 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation>WebM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>Formato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation>MKV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation>AVI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation>MP4</translation>
|
||||
</message>
|
||||
|
@ -5781,128 +5781,133 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd.</translation>
|
|||
<translation>&Sem perdas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation>4K</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation>&1080p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation>&720p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation>&480p</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation>&Nativo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation>h.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation>h.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation>HEVC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation>HEVC (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation>VP8</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation>VP9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation>FFV1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation>Nenhum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation>Opus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation>Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation>MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation>AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>Sem compressão</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation> Bitrate (kbps)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation>VBR </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation>ABR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished">H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished">H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Dimensões</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>Fixar proporção</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>Mostrar opções avançadas</translation>
|
||||
</message>
|
||||
|
|
|
@ -3254,7 +3254,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -3934,17 +3934,17 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5747,7 +5747,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5757,149 +5757,154 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -3254,7 +3254,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -3934,17 +3934,17 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5747,13 +5747,13 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -5763,143 +5763,148 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -3255,7 +3255,7 @@ Game Boy Advance, Nintendo Co., Ltd.'nin tescilli ticari markasıdır.</tra
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
|
@ -3935,17 +3935,17 @@ Game Boy Advance, Nintendo Co., Ltd.'nin tescilli ticari markasıdır.</tra
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>Çıkış video dosyası açılamadı:%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>Çıkış dosyasını seç</translation>
|
||||
</message>
|
||||
|
@ -5750,7 +5750,7 @@ Game Boy Advance, Nintendo Co., Ltd.'nin tescilli ticari markasıdır.</tra
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
|
@ -5760,149 +5760,154 @@ Game Boy Advance, Nintendo Co., Ltd.'nin tescilli ticari markasıdır.</tra
|
|||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>Format</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished">Hiçbiri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>Sıkıştırılmamış</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>Boyutlar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>En boy oranını kilitle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>Gelişmişi göster</translation>
|
||||
</message>
|
||||
|
|
|
@ -3255,7 +3255,7 @@ Game Boy Advance 是任天堂有限公司(Nintendo Co., Ltd.)的注册商标
|
|||
<name>QGBA::KeyEditor</name>
|
||||
<message>
|
||||
<location filename="../KeyEditor.cpp" line="34"/>
|
||||
<location filename="../KeyEditor.cpp" line="236"/>
|
||||
<location filename="../KeyEditor.cpp" line="240"/>
|
||||
<source>---</source>
|
||||
<translation>---</translation>
|
||||
</message>
|
||||
|
@ -3935,17 +3935,17 @@ Game Boy Advance 是任天堂有限公司(Nintendo Co., Ltd.)的注册商标
|
|||
<context>
|
||||
<name>QGBA::VideoView</name>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="197"/>
|
||||
<location filename="../VideoView.cpp" line="202"/>
|
||||
<source>Failed to open output video file: %1</source>
|
||||
<translation>打开输出视频文件失败: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="218"/>
|
||||
<location filename="../VideoView.cpp" line="223"/>
|
||||
<source>Native (%0x%1)</source>
|
||||
<translation>原生 (%0x%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.cpp" line="233"/>
|
||||
<location filename="../VideoView.cpp" line="238"/>
|
||||
<source>Select output file</source>
|
||||
<translation>选择输出文件</translation>
|
||||
</message>
|
||||
|
@ -5750,13 +5750,13 @@ Game Boy Advance 是任天堂有限公司(Nintendo Co., Ltd.)的注册商标
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="129"/>
|
||||
<location filename="../VideoView.ui" line="251"/>
|
||||
<location filename="../VideoView.ui" line="255"/>
|
||||
<source>WebM</source>
|
||||
<translation>WebM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="139"/>
|
||||
<location filename="../VideoView.ui" line="261"/>
|
||||
<location filename="../VideoView.ui" line="265"/>
|
||||
<source>MP4</source>
|
||||
<translation>MP4</translation>
|
||||
</message>
|
||||
|
@ -5766,143 +5766,148 @@ Game Boy Advance 是任天堂有限公司(Nintendo Co., Ltd.)的注册商标
|
|||
<translation>无损(&L)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="163"/>
|
||||
<location filename="../VideoView.ui" line="167"/>
|
||||
<source>4K</source>
|
||||
<translation>4K</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="170"/>
|
||||
<location filename="../VideoView.ui" line="174"/>
|
||||
<source>&1080p</source>
|
||||
<translation>1080p(&1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="180"/>
|
||||
<location filename="../VideoView.ui" line="184"/>
|
||||
<source>&720p</source>
|
||||
<translation>720p(&7)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="190"/>
|
||||
<location filename="../VideoView.ui" line="194"/>
|
||||
<source>&480p</source>
|
||||
<translation>480p(&4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="203"/>
|
||||
<location filename="../VideoView.ui" line="207"/>
|
||||
<source>&Native</source>
|
||||
<translation>原生(&N)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="236"/>
|
||||
<location filename="../VideoView.ui" line="240"/>
|
||||
<source>Format</source>
|
||||
<translation>格式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="246"/>
|
||||
<location filename="../VideoView.ui" line="250"/>
|
||||
<source>MKV</source>
|
||||
<translation>MKV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="256"/>
|
||||
<location filename="../VideoView.ui" line="260"/>
|
||||
<source>AVI</source>
|
||||
<translation>AVI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="273"/>
|
||||
<source>h.264</source>
|
||||
<translation>h.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="278"/>
|
||||
<source>h.264 (NVENC)</source>
|
||||
<translation>h.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="283"/>
|
||||
<location filename="../VideoView.ui" line="287"/>
|
||||
<source>HEVC</source>
|
||||
<translation>HEVC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="288"/>
|
||||
<location filename="../VideoView.ui" line="292"/>
|
||||
<source>HEVC (NVENC)</source>
|
||||
<translation>HEVC (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="293"/>
|
||||
<location filename="../VideoView.ui" line="297"/>
|
||||
<source>VP8</source>
|
||||
<translation>VP8</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="298"/>
|
||||
<location filename="../VideoView.ui" line="302"/>
|
||||
<source>VP9</source>
|
||||
<translation>VP9</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="303"/>
|
||||
<location filename="../VideoView.ui" line="307"/>
|
||||
<source>FFV1</source>
|
||||
<translation>FFV1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="308"/>
|
||||
<location filename="../VideoView.ui" line="350"/>
|
||||
<location filename="../VideoView.ui" line="312"/>
|
||||
<location filename="../VideoView.ui" line="354"/>
|
||||
<source>None</source>
|
||||
<translation>无</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="320"/>
|
||||
<location filename="../VideoView.ui" line="324"/>
|
||||
<source>FLAC</source>
|
||||
<translation>FLAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="325"/>
|
||||
<location filename="../VideoView.ui" line="329"/>
|
||||
<source>Opus</source>
|
||||
<translation>Opus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="330"/>
|
||||
<location filename="../VideoView.ui" line="334"/>
|
||||
<source>Vorbis</source>
|
||||
<translation>Vorbis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="335"/>
|
||||
<location filename="../VideoView.ui" line="339"/>
|
||||
<source>MP3</source>
|
||||
<translation>MP3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="340"/>
|
||||
<location filename="../VideoView.ui" line="344"/>
|
||||
<source>AAC</source>
|
||||
<translation>AAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="345"/>
|
||||
<location filename="../VideoView.ui" line="349"/>
|
||||
<source>Uncompressed</source>
|
||||
<translation>未压缩</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="361"/>
|
||||
<location filename="../VideoView.ui" line="365"/>
|
||||
<source> Bitrate (kbps)</source>
|
||||
<translation> 比特率 (kbps)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="367"/>
|
||||
<source>VBR </source>
|
||||
<translation>VBR </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="412"/>
|
||||
<location filename="../VideoView.ui" line="410"/>
|
||||
<source>ABR</source>
|
||||
<translation>ABR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="428"/>
|
||||
<location filename="../VideoView.ui" line="277"/>
|
||||
<source>H.264</source>
|
||||
<translation type="unfinished">H.264</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="282"/>
|
||||
<source>H.264 (NVENC)</source>
|
||||
<translation type="unfinished">H.264 (NVENC)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="455"/>
|
||||
<source>VBR</source>
|
||||
<translation>VBR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="468"/>
|
||||
<source>CRF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="484"/>
|
||||
<source>Dimensions</source>
|
||||
<translation>维度</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="494"/>
|
||||
<location filename="../VideoView.ui" line="550"/>
|
||||
<source>Lock aspect ratio</source>
|
||||
<translation>锁定纵横比</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../VideoView.ui" line="509"/>
|
||||
<location filename="../VideoView.ui" line="565"/>
|
||||
<source>Show advanced</source>
|
||||
<translation>显示高级选项</translation>
|
||||
</message>
|
||||
|
|
|
@ -94,7 +94,9 @@ static int enqueuedBuffers;
|
|||
static bool frameLimiter = true;
|
||||
static unsigned framecount = 0;
|
||||
static unsigned framecap = 10;
|
||||
static u32 vibrationDeviceHandles[4];
|
||||
static PadState pad;
|
||||
static HidSixAxisSensorHandle sixaxisHandles[4];
|
||||
static HidVibrationDeviceHandle vibrationDeviceHandles[4];
|
||||
static HidVibrationValue vibrationStop = { .freq_low = 160.f, .freq_high = 320.f };
|
||||
static bool usePbo = true;
|
||||
static u8 vmode;
|
||||
|
@ -104,6 +106,9 @@ static bool interframeBlending = false;
|
|||
static bool sgbCrop = false;
|
||||
static bool useLightSensor = true;
|
||||
static struct mGUIRunnerLux lightSensor;
|
||||
static float gyroZ = 0;
|
||||
static float tiltX = 0;
|
||||
static float tiltY = 0;
|
||||
|
||||
static enum ScreenMode {
|
||||
SM_PA,
|
||||
|
@ -192,12 +197,11 @@ static void _drawEnd(void) {
|
|||
|
||||
static uint32_t _pollInput(const struct mInputMap* map) {
|
||||
int keys = 0;
|
||||
hidScanInput();
|
||||
u32 padkeys = hidKeysHeld(CONTROLLER_P1_AUTO);
|
||||
padUpdate(&pad);
|
||||
u32 padkeys = padGetButtons(&pad);
|
||||
keys |= mInputMapKeyBits(map, AUTO_INPUT, padkeys, 0);
|
||||
|
||||
JoystickPosition jspos;
|
||||
hidJoystickRead(&jspos, CONTROLLER_P1_AUTO, JOYSTICK_LEFT);
|
||||
HidAnalogStickState jspos = padGetStickPos(&pad, 0);
|
||||
|
||||
int l = mInputMapKey(map, AUTO_INPUT, __builtin_ctz(KEY_LSTICK_LEFT));
|
||||
int r = mInputMapKey(map, AUTO_INPUT, __builtin_ctz(KEY_LSTICK_RIGHT));
|
||||
|
@ -217,45 +221,43 @@ static uint32_t _pollInput(const struct mInputMap* map) {
|
|||
d = mInputMapKey(map, AUTO_INPUT, __builtin_ctz(KEY_DDOWN));
|
||||
}
|
||||
|
||||
if (jspos.dx < -ANALOG_DEADZONE && l != -1) {
|
||||
if (jspos.x < -ANALOG_DEADZONE && l != -1) {
|
||||
keys |= 1 << l;
|
||||
}
|
||||
if (jspos.dx > ANALOG_DEADZONE && r != -1) {
|
||||
if (jspos.x > ANALOG_DEADZONE && r != -1) {
|
||||
keys |= 1 << r;
|
||||
}
|
||||
if (jspos.dy < -ANALOG_DEADZONE && d != -1) {
|
||||
if (jspos.y < -ANALOG_DEADZONE && d != -1) {
|
||||
keys |= 1 << d;
|
||||
}
|
||||
if (jspos.dy > ANALOG_DEADZONE && u != -1) {
|
||||
if (jspos.y > ANALOG_DEADZONE && u != -1) {
|
||||
keys |= 1 << u;
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
|
||||
static enum GUICursorState _pollCursor(unsigned* x, unsigned* y) {
|
||||
hidScanInput();
|
||||
if (hidTouchCount() < 1) {
|
||||
HidTouchScreenState state = {0};
|
||||
hidGetTouchScreenStates(&state, 1);
|
||||
if (state.count < 1) {
|
||||
return GUI_CURSOR_NOT_PRESENT;
|
||||
}
|
||||
touchPosition touch;
|
||||
hidTouchRead(&touch, 0);
|
||||
*x = touch.px;
|
||||
*y = touch.py;
|
||||
*x = state.touches[0].x;
|
||||
*y = state.touches[0].y;
|
||||
return GUI_CURSOR_DOWN;
|
||||
}
|
||||
|
||||
|
||||
static void _setup(struct mGUIRunner* runner) {
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_A, GBA_KEY_A);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_B, GBA_KEY_B);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_PLUS, GBA_KEY_START);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_MINUS, GBA_KEY_SELECT);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_DUP, GBA_KEY_UP);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_DDOWN, GBA_KEY_DOWN);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_DLEFT, GBA_KEY_LEFT);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_DRIGHT, GBA_KEY_RIGHT);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_L, GBA_KEY_L);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, KEY_R, GBA_KEY_R);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_A, GBA_KEY_A);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_B, GBA_KEY_B);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_Plus, GBA_KEY_START);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_Minus, GBA_KEY_SELECT);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_Up, GBA_KEY_UP);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_Down, GBA_KEY_DOWN);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_Left, GBA_KEY_LEFT);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_Right, GBA_KEY_RIGHT);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_L, GBA_KEY_L);
|
||||
_mapKey(&runner->core->inputMap, AUTO_INPUT, HidNpadButton_R, GBA_KEY_R);
|
||||
|
||||
int fakeBool;
|
||||
if (mCoreConfigGetIntValue(&runner->config, "hwaccelVideo", &fakeBool) && fakeBool && runner->core->supportsFeature(runner->core, mCORE_FEATURE_OPENGL)) {
|
||||
|
@ -518,7 +520,7 @@ static bool _running(struct mGUIRunner* runner) {
|
|||
UNUSED(runner);
|
||||
u8 newMode = appletGetOperationMode();
|
||||
if (newMode != vmode) {
|
||||
if (newMode == AppletOperationMode_Docked) {
|
||||
if (newMode == AppletOperationMode_Console) {
|
||||
vwidth = 1920;
|
||||
vheight = 1080;
|
||||
} else {
|
||||
|
@ -570,25 +572,41 @@ void _setRumble(struct mRumble* rumble, int enable) {
|
|||
}
|
||||
}
|
||||
|
||||
void _sampleRotation(struct mRotationSource* source) {
|
||||
HidSixAxisSensorState sixaxis = {0};
|
||||
u64 styles = padGetStyleSet(&pad);
|
||||
if (styles & HidNpadStyleTag_NpadHandheld) {
|
||||
hidGetSixAxisSensorStates(sixaxisHandles[3], &sixaxis, 1);
|
||||
} else if (styles & HidNpadStyleTag_NpadFullKey) {
|
||||
hidGetSixAxisSensorStates(sixaxisHandles[2], &sixaxis, 1);
|
||||
} else if (styles & HidNpadStyleTag_NpadJoyDual) {
|
||||
u64 attrib = padGetAttributes(&pad);
|
||||
if (attrib & HidNpadAttribute_IsLeftConnected) {
|
||||
hidGetSixAxisSensorStates(sixaxisHandles[0], &sixaxis, 1);
|
||||
} else if (attrib & HidNpadAttribute_IsRightConnected) {
|
||||
hidGetSixAxisSensorStates(sixaxisHandles[1], &sixaxis, 1);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
tiltX = sixaxis.acceleration.x * 3e8f;
|
||||
tiltY = sixaxis.acceleration.y * -3e8f;
|
||||
gyroZ = sixaxis.angular_velocity.z * -1.1e9f;
|
||||
}
|
||||
|
||||
int32_t _readTiltX(struct mRotationSource* source) {
|
||||
UNUSED(source);
|
||||
SixAxisSensorValues sixaxis;
|
||||
hidSixAxisSensorValuesRead(&sixaxis, CONTROLLER_P1_AUTO, 1);
|
||||
return sixaxis.accelerometer.x * 3e8f;
|
||||
return tiltX;
|
||||
}
|
||||
|
||||
int32_t _readTiltY(struct mRotationSource* source) {
|
||||
UNUSED(source);
|
||||
SixAxisSensorValues sixaxis;
|
||||
hidSixAxisSensorValuesRead(&sixaxis, CONTROLLER_P1_AUTO, 1);
|
||||
return sixaxis.accelerometer.y * -3e8f;
|
||||
return tiltY;
|
||||
}
|
||||
|
||||
int32_t _readGyroZ(struct mRotationSource* source) {
|
||||
UNUSED(source);
|
||||
SixAxisSensorValues sixaxis;
|
||||
hidSixAxisSensorValuesRead(&sixaxis, CONTROLLER_P1_AUTO, 1);
|
||||
return sixaxis.gyroscope.z * -1.1e9f;
|
||||
return gyroZ;
|
||||
}
|
||||
|
||||
static void _lightSensorSample(struct GBALuminanceSource* lux) {
|
||||
|
@ -636,7 +654,7 @@ int main(int argc, char* argv[]) {
|
|||
struct GUIFont* font = GUIFontCreate();
|
||||
|
||||
vmode = appletGetOperationMode();
|
||||
if (vmode == AppletOperationMode_Docked) {
|
||||
if (vmode == AppletOperationMode_Console) {
|
||||
vwidth = 1920;
|
||||
vheight = 1080;
|
||||
} else {
|
||||
|
@ -732,23 +750,27 @@ int main(int argc, char* argv[]) {
|
|||
glEnableVertexAttribArray(offsetLocation);
|
||||
glBindVertexArray(0);
|
||||
|
||||
hidInitializeTouchScreen();
|
||||
padConfigureInput(1, HidNpadStyleSet_NpadStandard);
|
||||
padInitializeDefault(&pad);
|
||||
|
||||
rumble.d.setRumble = _setRumble;
|
||||
rumble.value.freq_low = 120.0;
|
||||
rumble.value.freq_high = 180.0;
|
||||
hidInitializeVibrationDevices(&vibrationDeviceHandles[0], 2, CONTROLLER_HANDHELD, TYPE_HANDHELD | TYPE_JOYCON_PAIR);
|
||||
hidInitializeVibrationDevices(&vibrationDeviceHandles[2], 2, CONTROLLER_PLAYER_1, TYPE_HANDHELD | TYPE_JOYCON_PAIR);
|
||||
hidInitializeVibrationDevices(&vibrationDeviceHandles[0], 2, HidNpadIdType_Handheld, HidNpadStyleTag_NpadHandheld);
|
||||
hidInitializeVibrationDevices(&vibrationDeviceHandles[2], 2, HidNpadIdType_No1, HidNpadStyleTag_NpadJoyDual);
|
||||
|
||||
u32 handles[4];
|
||||
hidGetSixAxisSensorHandles(&handles[0], 2, CONTROLLER_PLAYER_1, TYPE_JOYCON_PAIR);
|
||||
hidGetSixAxisSensorHandles(&handles[2], 1, CONTROLLER_PLAYER_1, TYPE_PROCONTROLLER);
|
||||
hidGetSixAxisSensorHandles(&handles[3], 1, CONTROLLER_HANDHELD, TYPE_HANDHELD);
|
||||
hidStartSixAxisSensor(handles[0]);
|
||||
hidStartSixAxisSensor(handles[1]);
|
||||
hidStartSixAxisSensor(handles[2]);
|
||||
hidStartSixAxisSensor(handles[3]);
|
||||
hidGetSixAxisSensorHandles(&sixaxisHandles[0], 2, HidNpadIdType_No1, HidNpadStyleTag_NpadJoyDual);
|
||||
hidGetSixAxisSensorHandles(&sixaxisHandles[2], 1, HidNpadIdType_No1, HidNpadStyleTag_NpadFullKey);
|
||||
hidGetSixAxisSensorHandles(&sixaxisHandles[3], 1, HidNpadIdType_Handheld, HidNpadStyleTag_NpadHandheld);
|
||||
hidStartSixAxisSensor(sixaxisHandles[0]);
|
||||
hidStartSixAxisSensor(sixaxisHandles[1]);
|
||||
hidStartSixAxisSensor(sixaxisHandles[2]);
|
||||
hidStartSixAxisSensor(sixaxisHandles[3]);
|
||||
rotation.readTiltX = _readTiltX;
|
||||
rotation.readTiltY = _readTiltY;
|
||||
rotation.readGyroZ = _readGyroZ;
|
||||
rotation.sample = _sampleRotation;
|
||||
|
||||
lightSensor.d.readLuminance = _lightSensorRead;
|
||||
lightSensor.d.sample = _lightSensorSample;
|
||||
|
@ -984,10 +1006,10 @@ int main(int argc, char* argv[]) {
|
|||
glDeleteProgram(program);
|
||||
glDeleteVertexArrays(1, &vao);
|
||||
|
||||
hidStopSixAxisSensor(handles[0]);
|
||||
hidStopSixAxisSensor(handles[1]);
|
||||
hidStopSixAxisSensor(handles[2]);
|
||||
hidStopSixAxisSensor(handles[3]);
|
||||
hidStopSixAxisSensor(sixaxisHandles[0]);
|
||||
hidStopSixAxisSensor(sixaxisHandles[1]);
|
||||
hidStopSixAxisSensor(sixaxisHandles[2]);
|
||||
hidStopSixAxisSensor(sixaxisHandles[3]);
|
||||
|
||||
psmExit();
|
||||
audoutExit();
|
||||
|
|
|
@ -71,6 +71,7 @@ class GameClockTest(PerfTest):
|
|||
|
||||
class PerfServer(object):
|
||||
ITERATIONS_PER_INSTANCE = 50
|
||||
RETRIES = 5
|
||||
|
||||
def __init__(self, address, root='/', command=None):
|
||||
s = address.rsplit(':', 1)
|
||||
|
@ -100,8 +101,17 @@ class PerfServer(object):
|
|||
elif test.renderer == 'threaded-software':
|
||||
server_command.append('-T')
|
||||
subprocess.check_call(server_command)
|
||||
time.sleep(4)
|
||||
self.socket = socket.create_connection(self.address, timeout=1000)
|
||||
time.sleep(3)
|
||||
for backoff in range(self.RETRIES):
|
||||
try:
|
||||
self.socket = socket.create_connection(self.address, timeout=1000)
|
||||
break
|
||||
except OSError as e:
|
||||
print("Failed to connect:", e, file=sys.stderr)
|
||||
if backoff < self.RETRIES - 1:
|
||||
time.sleep(2 ** backoff)
|
||||
else:
|
||||
raise
|
||||
kwargs = {}
|
||||
if sys.version_info[0] >= 3:
|
||||
kwargs["encoding"] = "utf-8"
|
||||
|
@ -156,8 +166,10 @@ class Suite(object):
|
|||
sock = None
|
||||
for test in self.tests:
|
||||
print('Running test {}'.format(test.name), file=sys.stderr)
|
||||
last_result = None
|
||||
if self.server:
|
||||
self.server.run(test)
|
||||
last_result = self.server.results[-1]
|
||||
else:
|
||||
try:
|
||||
test.run(self.cwd)
|
||||
|
@ -166,6 +178,9 @@ class Suite(object):
|
|||
return results
|
||||
if test.results:
|
||||
results.append(test.results)
|
||||
last_result = results[-1]
|
||||
if last_result:
|
||||
print('{:.2f} fps'.format(int(last_result['frames']) * 1000000 / float(last_result['duration'])), file=sys.stderr)
|
||||
if self.server:
|
||||
self.server.finish()
|
||||
results.extend(self.server.results)
|
||||
|
|
Loading…
Reference in New Issue