Krita Source Code Documentation
Loading...
Searching...
No Matches
KisAndroidMediaEncoderRunnable.h
Go to the documentation of this file.
1
/*
2
* SPDX-License-Identifier: GPL-3.0-or-later
3
*/
4
#ifndef KISANDROIDMEDIAENCODERRUNNABLE
5
#define KISANDROIDMEDIAENCODERRUNNABLE
6
7
#include "
KisMediaEncoderWrapper.h
"
8
#include <QWidget>
9
10
class
QComboBox;
11
class
QSpinBox;
12
13
class
KisAndroidMediaEncoderRunnable
:
public
KisMediaEncoderRunnable
14
{
15
public
:
16
static
KisAndroidMediaEncoderRunnable
*
create
(
const
KisMediaEncoderWrapperSettings
&
settings
,
17
QObject *parent =
nullptr
);
18
19
static
void
getSupportedFormats
(
QVector<KisMediaEncoderFormat *>
&outSupportedFormats);
20
21
protected
:
22
KisAndroidMediaEncoderRunnable
(
const
KisMediaEncoderWrapperSettings
&
settings
, QObject *parent);
23
24
EncodeResult
encode
(QString &outErrorMessage)
override
;
25
26
private
:
27
static
constexpr
int
DRAIN_END_OF_STREAM
= -1;
28
static
constexpr
int
DRAIN_ERROR
= -2;
29
static
constexpr
int
DRAIN_CANCELLED
= -3;
30
// Keep these formats in sync with VideoEncoder.java!
31
static
constexpr
int
FORMAT_MP4_H264
= 0;
32
static
constexpr
int
FORMAT_WEBM_VP8
= 1;
33
static
constexpr
int
FORMAT_MP4_AV1
= 2;
34
// These statuses too!
35
static
constexpr
int
STATUS_OK
= 0;
36
static
constexpr
int
STATUS_TIMEOUT
= 1;
37
static
constexpr
int
STATUS_END_OF_STREAM
= 2;
38
static
constexpr
int
STATUS_NEEDS_COPY
= 3;
39
static
constexpr
int
STATUS_ERROR_START_VIDEO_ENCODER
= 104;
40
static
constexpr
int
STATUS_ERROR_START_AUDIO_FORMAT
= 107;
41
static
constexpr
int
STATUS_ERROR_START_AUDIO_ENCODER
= 108;
42
static
constexpr
int
STATUS_ERROR_DRAIN_VIDEO_MUXER_ADD_TRACK
= 404;
43
static
constexpr
int
STATUS_ERROR_DRAIN_AUDIO_MUXER_ADD_TRACK
= 704;
44
45
struct
EncoderImage
;
46
class
Format
;
47
class
Context
;
48
class
Audio
;
49
50
EncodeResult
prepareVideo
(
Context
&ctx);
51
EncodeResult
prepareAudio
(
Context
&ctx);
52
EncodeResult
prepare
(
Context
&ctx,
bool
audio);
53
54
// Returns number of frames drained or one of the DRAIN_* values above.
55
int
drainVideo
(
Context
&ctx,
long
long
initialTimeout);
56
int
drainAudio
(
Context
&ctx,
long
long
initialTimeout);
57
int
drain
(
Context
&ctx,
long
long
initialTimeout,
bool
audio);
58
59
static
bool
readEncoderImage
(
Context
&ctx,
EncoderImage
&outImage);
60
static
bool
readPlaneBuffer
(
Context
&ctx,
int
index, uint8_t *&outBuffer);
61
static
bool
readPlaneRowStride
(
Context
&ctx,
int
index,
int
&outRowStride);
62
static
bool
readPlanePixelStride
(
Context
&ctx,
int
index,
int
&outPixelStride);
63
static
bool
readAudioInputBuffer
(
Context
&ctx,
void
*&outBuffer,
int
&outSize);
64
65
static
void
checkFormatSupport
(
Context
&ctx,
int
formatId,
QVector<KisMediaEncoderFormat *>
&outSupportedFormats);
66
};
67
68
class
KisAndroidMediaEncoderPreferencesWidget
:
public
QWidget
69
{
70
Q_OBJECT
71
public
:
72
explicit
KisAndroidMediaEncoderPreferencesWidget
(
const
KisMediaEncoderFormat
*format, QWidget *parent =
nullptr
);
73
74
void
addVideoEncoderOption
(
const
QString &title,
const
QString &key);
75
void
addAudioEncoderOption
(
const
QString &title,
const
QString &key);
76
77
QString
videoEncoder
()
const
;
78
void
setVideoEncoder
(
const
QString &key);
79
80
int
videoBitrate
()
const
;
81
void
setVideoBitrate
(
int
videoBitrate
);
82
83
QString
audioEncoder
()
const
;
84
void
setAudioEncoder
(
const
QString &key);
85
86
int
audioBitrate
()
const
;
87
void
setAudioBitrate
(
int
audioBitrate
);
88
89
private
:
90
QComboBox *
m_cmbVideoEncoder
;
91
QSpinBox *
m_intVideoBitrate
;
92
QComboBox *
m_cmbAudioEncoder
;
93
QSpinBox *
m_intAudioBitrate
;
94
};
95
96
#endif
KisMediaEncoderWrapper.h
KisAndroidMediaEncoderPreferencesWidget
Definition
KisAndroidMediaEncoderRunnable.h:69
KisAndroidMediaEncoderPreferencesWidget::audioBitrate
int audioBitrate() const
Definition
KisAndroidMediaEncoderRunnable.cpp:1336
KisAndroidMediaEncoderPreferencesWidget::m_intVideoBitrate
QSpinBox * m_intVideoBitrate
Definition
KisAndroidMediaEncoderRunnable.h:91
KisAndroidMediaEncoderPreferencesWidget::addAudioEncoderOption
void addAudioEncoderOption(const QString &title, const QString &key)
Definition
KisAndroidMediaEncoderRunnable.cpp:1285
KisAndroidMediaEncoderPreferencesWidget::setVideoBitrate
void setVideoBitrate(int videoBitrate)
Definition
KisAndroidMediaEncoderRunnable.cpp:1313
KisAndroidMediaEncoderPreferencesWidget::setAudioBitrate
void setAudioBitrate(int audioBitrate)
Definition
KisAndroidMediaEncoderRunnable.cpp:1341
KisAndroidMediaEncoderPreferencesWidget::videoBitrate
int videoBitrate() const
Definition
KisAndroidMediaEncoderRunnable.cpp:1308
KisAndroidMediaEncoderPreferencesWidget::setAudioEncoder
void setAudioEncoder(const QString &key)
Definition
KisAndroidMediaEncoderRunnable.cpp:1323
KisAndroidMediaEncoderPreferencesWidget::m_cmbAudioEncoder
QComboBox * m_cmbAudioEncoder
Definition
KisAndroidMediaEncoderRunnable.h:92
KisAndroidMediaEncoderPreferencesWidget::addVideoEncoderOption
void addVideoEncoderOption(const QString &title, const QString &key)
Definition
KisAndroidMediaEncoderRunnable.cpp:1280
KisAndroidMediaEncoderPreferencesWidget::KisAndroidMediaEncoderPreferencesWidget
KisAndroidMediaEncoderPreferencesWidget(const KisMediaEncoderFormat *format, QWidget *parent=nullptr)
Definition
KisAndroidMediaEncoderRunnable.cpp:1254
KisAndroidMediaEncoderPreferencesWidget::m_cmbVideoEncoder
QComboBox * m_cmbVideoEncoder
Definition
KisAndroidMediaEncoderRunnable.h:90
KisAndroidMediaEncoderPreferencesWidget::setVideoEncoder
void setVideoEncoder(const QString &key)
Definition
KisAndroidMediaEncoderRunnable.cpp:1295
KisAndroidMediaEncoderPreferencesWidget::videoEncoder
QString videoEncoder() const
Definition
KisAndroidMediaEncoderRunnable.cpp:1290
KisAndroidMediaEncoderPreferencesWidget::m_intAudioBitrate
QSpinBox * m_intAudioBitrate
Definition
KisAndroidMediaEncoderRunnable.h:93
KisAndroidMediaEncoderPreferencesWidget::audioEncoder
QString audioEncoder() const
Definition
KisAndroidMediaEncoderRunnable.cpp:1318
KisAndroidMediaEncoderRunnable::Audio
Definition
KisAndroidMediaEncoderRunnable.cpp:434
KisAndroidMediaEncoderRunnable::Context
Definition
KisAndroidMediaEncoderRunnable.cpp:295
KisAndroidMediaEncoderRunnable::Format
Definition
KisAndroidMediaEncoderRunnable.cpp:52
KisAndroidMediaEncoderRunnable
Definition
KisAndroidMediaEncoderRunnable.h:14
KisAndroidMediaEncoderRunnable::DRAIN_ERROR
static constexpr int DRAIN_ERROR
Definition
KisAndroidMediaEncoderRunnable.h:28
KisAndroidMediaEncoderRunnable::checkFormatSupport
static void checkFormatSupport(Context &ctx, int formatId, QVector< KisMediaEncoderFormat * > &outSupportedFormats)
Definition
KisAndroidMediaEncoderRunnable.cpp:1198
KisAndroidMediaEncoderRunnable::STATUS_ERROR_START_AUDIO_FORMAT
static constexpr int STATUS_ERROR_START_AUDIO_FORMAT
Definition
KisAndroidMediaEncoderRunnable.h:40
KisAndroidMediaEncoderRunnable::drain
int drain(Context &ctx, long long initialTimeout, bool audio)
Definition
KisAndroidMediaEncoderRunnable.cpp:1085
KisAndroidMediaEncoderRunnable::STATUS_ERROR_DRAIN_VIDEO_MUXER_ADD_TRACK
static constexpr int STATUS_ERROR_DRAIN_VIDEO_MUXER_ADD_TRACK
Definition
KisAndroidMediaEncoderRunnable.h:42
KisAndroidMediaEncoderRunnable::prepare
EncodeResult prepare(Context &ctx, bool audio)
Definition
KisAndroidMediaEncoderRunnable.cpp:1039
KisAndroidMediaEncoderRunnable::STATUS_ERROR_DRAIN_AUDIO_MUXER_ADD_TRACK
static constexpr int STATUS_ERROR_DRAIN_AUDIO_MUXER_ADD_TRACK
Definition
KisAndroidMediaEncoderRunnable.h:43
KisAndroidMediaEncoderRunnable::readEncoderImage
static bool readEncoderImage(Context &ctx, EncoderImage &outImage)
Definition
KisAndroidMediaEncoderRunnable.cpp:1116
KisAndroidMediaEncoderRunnable::readAudioInputBuffer
static bool readAudioInputBuffer(Context &ctx, void *&outBuffer, int &outSize)
Definition
KisAndroidMediaEncoderRunnable.cpp:1170
KisAndroidMediaEncoderRunnable::getSupportedFormats
static void getSupportedFormats(QVector< KisMediaEncoderFormat * > &outSupportedFormats)
Definition
KisAndroidMediaEncoderRunnable.cpp:631
KisAndroidMediaEncoderRunnable::STATUS_TIMEOUT
static constexpr int STATUS_TIMEOUT
Definition
KisAndroidMediaEncoderRunnable.h:36
KisAndroidMediaEncoderRunnable::readPlaneBuffer
static bool readPlaneBuffer(Context &ctx, int index, uint8_t *&outBuffer)
Definition
KisAndroidMediaEncoderRunnable.cpp:1124
KisAndroidMediaEncoderRunnable::FORMAT_MP4_H264
static constexpr int FORMAT_MP4_H264
Definition
KisAndroidMediaEncoderRunnable.h:31
KisAndroidMediaEncoderRunnable::KisAndroidMediaEncoderRunnable
KisAndroidMediaEncoderRunnable(const KisMediaEncoderWrapperSettings &settings, QObject *parent)
Definition
KisAndroidMediaEncoderRunnable.cpp:640
KisAndroidMediaEncoderRunnable::DRAIN_CANCELLED
static constexpr int DRAIN_CANCELLED
Definition
KisAndroidMediaEncoderRunnable.h:29
KisAndroidMediaEncoderRunnable::readPlaneRowStride
static bool readPlaneRowStride(Context &ctx, int index, int &outRowStride)
Definition
KisAndroidMediaEncoderRunnable.cpp:1142
KisAndroidMediaEncoderRunnable::FORMAT_WEBM_VP8
static constexpr int FORMAT_WEBM_VP8
Definition
KisAndroidMediaEncoderRunnable.h:32
KisAndroidMediaEncoderRunnable::prepareVideo
EncodeResult prepareVideo(Context &ctx)
Definition
KisAndroidMediaEncoderRunnable.cpp:1029
KisAndroidMediaEncoderRunnable::STATUS_END_OF_STREAM
static constexpr int STATUS_END_OF_STREAM
Definition
KisAndroidMediaEncoderRunnable.h:37
KisAndroidMediaEncoderRunnable::drainAudio
int drainAudio(Context &ctx, long long initialTimeout)
Definition
KisAndroidMediaEncoderRunnable.cpp:1080
KisAndroidMediaEncoderRunnable::DRAIN_END_OF_STREAM
static constexpr int DRAIN_END_OF_STREAM
Definition
KisAndroidMediaEncoderRunnable.h:27
KisAndroidMediaEncoderRunnable::STATUS_OK
static constexpr int STATUS_OK
Definition
KisAndroidMediaEncoderRunnable.h:35
KisAndroidMediaEncoderRunnable::STATUS_NEEDS_COPY
static constexpr int STATUS_NEEDS_COPY
Definition
KisAndroidMediaEncoderRunnable.h:38
KisAndroidMediaEncoderRunnable::drainVideo
int drainVideo(Context &ctx, long long initialTimeout)
Definition
KisAndroidMediaEncoderRunnable.cpp:1075
KisAndroidMediaEncoderRunnable::STATUS_ERROR_START_AUDIO_ENCODER
static constexpr int STATUS_ERROR_START_AUDIO_ENCODER
Definition
KisAndroidMediaEncoderRunnable.h:41
KisAndroidMediaEncoderRunnable::FORMAT_MP4_AV1
static constexpr int FORMAT_MP4_AV1
Definition
KisAndroidMediaEncoderRunnable.h:33
KisAndroidMediaEncoderRunnable::create
static KisAndroidMediaEncoderRunnable * create(const KisMediaEncoderWrapperSettings &settings, QObject *parent=nullptr)
Definition
KisAndroidMediaEncoderRunnable.cpp:621
KisAndroidMediaEncoderRunnable::prepareAudio
EncodeResult prepareAudio(Context &ctx)
Definition
KisAndroidMediaEncoderRunnable.cpp:1034
KisAndroidMediaEncoderRunnable::readPlanePixelStride
static bool readPlanePixelStride(Context &ctx, int index, int &outPixelStride)
Definition
KisAndroidMediaEncoderRunnable.cpp:1156
KisAndroidMediaEncoderRunnable::STATUS_ERROR_START_VIDEO_ENCODER
static constexpr int STATUS_ERROR_START_VIDEO_ENCODER
Definition
KisAndroidMediaEncoderRunnable.h:39
KisAndroidMediaEncoderRunnable::encode
EncodeResult encode(QString &outErrorMessage) override
Definition
KisAndroidMediaEncoderRunnable.cpp:646
KisMediaEncoderFormat
Definition
KisMediaEncoderWrapper.h:23
KisMediaEncoderRunnable
Definition
KisMediaEncoderWrapper.h:63
KisMediaEncoderRunnable::EncodeResult
EncodeResult
Definition
KisMediaEncoderWrapper.h:80
KisMediaEncoderRunnable::settings
const KisMediaEncoderWrapperSettings settings()
Definition
KisMediaEncoderWrapper.h:116
QList
Definition
KisQStringListFwd.h:16
KisAndroidMediaEncoderRunnable::EncoderImage
Definition
KisAndroidMediaEncoderRunnable.cpp:40
KisMediaEncoderWrapperSettings
Definition
KisMediaEncoderWrapper.h:46
libs
ui
animation
KisAndroidMediaEncoderRunnable.h
Generated at
2026-08-31 02:30:03+02:00
from
Krita
branch
master
, commit
7d4746aba9610501232b573fd3f032030ed26498