Krita Source Code Documentation
Loading...
Searching...
No Matches
KisLibavMediaEncoderRunnable::Format Class Reference
+ Inheritance diagram for KisLibavMediaEncoderRunnable::Format:

Public Member Functions

AVCodecID codecId () const
 
QWidget * createPreferencesWidget (const QVariantMap &preferences) const override
 
QString extension () const override
 
QByteArray filterDesc () const
 
QVector< AVPixelFormat > filterPixelFormats () const
 
 Format (int formatId)
 
int formatId () const
 
QString formatName () const
 
QVariantMap getPreferencesFromWidget (QWidget *widget) const override
 
QString key () const override
 
AVPixelFormat pixelFormat (bool frame) const
 
void resetPreferencesWidget (QWidget *widget) const override
 
void setCodecParams (AVCodecContext *codecContext) const
 
void setOutputParams (AVFormatContext *formatContext) const
 
bool supportsAudio () const override
 
QString title () const override
 
Type type () const override
 
- Public Member Functions inherited from KisMediaEncoderFormat
virtual ~KisMediaEncoderFormat ()=default
 

Static Public Member Functions

static AVCodecID codecIdForFormatId (int formatId)
 

Static Private Member Functions

static QString extensionForFormatId (int formatId)
 
static QString keyForFormatId (int formatId)
 
static void setOption (void *obj, const char *name, const char *value)
 
static QString titleForFormatId (int formatId)
 

Private Attributes

int m_formatId
 

Additional Inherited Members

- Public Types inherited from KisMediaEncoderFormat
enum class  Type { AndroidMediaEncoder , LibavMediaEncoder }
 
- Protected Member Functions inherited from KisMediaEncoderFormat
 KisMediaEncoderFormat ()=default
 

Detailed Description

Definition at line 50 of file KisLibavMediaEncoderRunnable.cpp.

Constructor & Destructor Documentation

◆ Format()

KisLibavMediaEncoderRunnable::Format::Format ( int formatId)
inline

Member Function Documentation

◆ codecId()

AVCodecID KisLibavMediaEncoderRunnable::Format::codecId ( ) const
inline

Definition at line 104 of file KisLibavMediaEncoderRunnable.cpp.

105 {
107 }

References codecIdForFormatId(), and m_formatId.

◆ codecIdForFormatId()

static AVCodecID KisLibavMediaEncoderRunnable::Format::codecIdForFormatId ( int formatId)
inlinestatic

Definition at line 109 of file KisLibavMediaEncoderRunnable.cpp.

110 {
111 switch (formatId) {
113 return AV_CODEC_ID_RAWVIDEO;
114 case FORMAT_GIF:
115 return AV_CODEC_ID_GIF;
116 case FORMAT_WEBP:
117 return AV_CODEC_ID_WEBP;
118 case FORMAT_APNG:
119 return AV_CODEC_ID_APNG;
120 }
121 return AV_CODEC_ID_NONE;
122 }

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_GIF_PALETTE, KisLibavMediaEncoderRunnable::FORMAT_WEBP, and formatId().

◆ createPreferencesWidget()

QWidget * KisLibavMediaEncoderRunnable::Format::createPreferencesWidget ( const QVariantMap & preferences) const
inlineoverridevirtual

Implements KisMediaEncoderFormat.

Definition at line 192 of file KisLibavMediaEncoderRunnable.cpp.

193 {
194 Q_UNUSED(preferences);
195 return nullptr;
196 }

◆ extension()

QString KisLibavMediaEncoderRunnable::Format::extension ( ) const
inlineoverridevirtual

Implements KisMediaEncoderFormat.

Definition at line 79 of file KisLibavMediaEncoderRunnable.cpp.

80 {
82 }

References extensionForFormatId(), and m_formatId.

◆ extensionForFormatId()

static QString KisLibavMediaEncoderRunnable::Format::extensionForFormatId ( int formatId)
inlinestaticprivate

Definition at line 236 of file KisLibavMediaEncoderRunnable.cpp.

237 {
238 switch (formatId) {
239 case FORMAT_GIF:
240 return QStringLiteral("gif");
241 case FORMAT_WEBP:
242 return QStringLiteral("webp");
243 case FORMAT_APNG:
244 return QStringLiteral("apng");
245 }
246 return QString();
247 }

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_WEBP, and formatId().

◆ filterDesc()

QByteArray KisLibavMediaEncoderRunnable::Format::filterDesc ( ) const
inline

Definition at line 168 of file KisLibavMediaEncoderRunnable.cpp.

169 {
170 switch (m_formatId) {
171 case FORMAT_WEBP:
172 case FORMAT_APNG:
173 break;
175 return QByteArrayLiteral("palettegen=stats_mode=full");
176 case FORMAT_GIF:
177 return QByteArrayLiteral("[in][palette]paletteuse[out]");
178 }
179 return QByteArray();
180 }

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_GIF_PALETTE, KisLibavMediaEncoderRunnable::FORMAT_WEBP, and m_formatId.

◆ filterPixelFormats()

QVector< AVPixelFormat > KisLibavMediaEncoderRunnable::Format::filterPixelFormats ( ) const
inline

Definition at line 182 of file KisLibavMediaEncoderRunnable.cpp.

183 {
184 switch (m_formatId) {
185 case FORMAT_GIF:
186 return {AV_PIX_FMT_PAL8, AV_PIX_FMT_NONE};
187 default:
188 return {AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE};
189 }
190 }

References KisLibavMediaEncoderRunnable::FORMAT_GIF, and m_formatId.

◆ formatId()

int KisLibavMediaEncoderRunnable::Format::formatId ( ) const
inline

Definition at line 59 of file KisLibavMediaEncoderRunnable.cpp.

60 {
61 return m_formatId;
62 }

References m_formatId.

◆ formatName()

QString KisLibavMediaEncoderRunnable::Format::formatName ( ) const
inline

Definition at line 89 of file KisLibavMediaEncoderRunnable.cpp.

90 {
91 switch (m_formatId) {
93 return QStringLiteral("rawvideo");
94 case FORMAT_GIF:
95 return QStringLiteral("gif");
96 case FORMAT_WEBP:
97 return QStringLiteral("webp");
98 case FORMAT_APNG:
99 return QStringLiteral("apng");
100 }
101 return QString();
102 }

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_GIF_PALETTE, KisLibavMediaEncoderRunnable::FORMAT_WEBP, and m_formatId.

◆ getPreferencesFromWidget()

QVariantMap KisLibavMediaEncoderRunnable::Format::getPreferencesFromWidget ( QWidget * widget) const
inlineoverridevirtual

Implements KisMediaEncoderFormat.

Definition at line 203 of file KisLibavMediaEncoderRunnable.cpp.

204 {
205 Q_UNUSED(widget);
206 return QVariantMap();
207 }

◆ key()

QString KisLibavMediaEncoderRunnable::Format::key ( ) const
inlineoverridevirtual

Implements KisMediaEncoderFormat.

Definition at line 69 of file KisLibavMediaEncoderRunnable.cpp.

70 {
72 }

References keyForFormatId(), and m_formatId.

◆ keyForFormatId()

static QString KisLibavMediaEncoderRunnable::Format::keyForFormatId ( int formatId)
inlinestaticprivate

Definition at line 210 of file KisLibavMediaEncoderRunnable.cpp.

211 {
212 switch (formatId) {
213 case FORMAT_GIF:
214 return QStringLiteral("libav:gif");
215 case FORMAT_WEBP:
216 return QStringLiteral("libav:webp");
217 case FORMAT_APNG:
218 return QStringLiteral("libav:apng");
219 }
220 return QString();
221 }

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_WEBP, and formatId().

◆ pixelFormat()

AVPixelFormat KisLibavMediaEncoderRunnable::Format::pixelFormat ( bool frame) const
inline

Definition at line 124 of file KisLibavMediaEncoderRunnable.cpp.

125 {
126 switch (m_formatId) {
128 case FORMAT_WEBP:
129 return AV_PIX_FMT_BGRA;
130 case FORMAT_GIF:
131 return frame ? AV_PIX_FMT_BGRA : AV_PIX_FMT_PAL8;
132 case FORMAT_APNG:
133 return AV_PIX_FMT_RGBA;
134 }
135 return AV_PIX_FMT_NONE;
136 }

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_GIF_PALETTE, KisLibavMediaEncoderRunnable::FORMAT_WEBP, and m_formatId.

◆ resetPreferencesWidget()

void KisLibavMediaEncoderRunnable::Format::resetPreferencesWidget ( QWidget * widget) const
inlineoverridevirtual

Implements KisMediaEncoderFormat.

Definition at line 198 of file KisLibavMediaEncoderRunnable.cpp.

199 {
200 Q_UNUSED(widget);
201 }

◆ setCodecParams()

void KisLibavMediaEncoderRunnable::Format::setCodecParams ( AVCodecContext * codecContext) const
inline

Definition at line 138 of file KisLibavMediaEncoderRunnable.cpp.

139 {
140 switch (m_formatId) {
142 case FORMAT_GIF:
143 case FORMAT_APNG:
144 break;
145 case FORMAT_WEBP:
146 setOption(codecContext->priv_data, "lossless", "1");
147 setOption(codecContext->priv_data, "preset", "drawing");
148 setOption(codecContext->priv_data, "quality", "100");
149 break;
150 }
151 }
static void setOption(void *obj, const char *name, const char *value)

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_GIF_PALETTE, KisLibavMediaEncoderRunnable::FORMAT_WEBP, m_formatId, and setOption().

◆ setOption()

static void KisLibavMediaEncoderRunnable::Format::setOption ( void * obj,
const char * name,
const char * value )
inlinestaticprivate

Definition at line 249 of file KisLibavMediaEncoderRunnable.cpp.

250 {
251 int result = av_opt_set(obj, name, value, AV_OPT_SEARCH_CHILDREN);
252 if (result != 0) {
253 warnFile.nospace() << "Error setting option " << name << " to " << value << ": " << av_err2str(result)
254 << " (" << result << ")";
255 }
256 }
float value(const T *src, size_t ch)
#define warnFile
Definition kis_debug.h:99
const char * name(StandardAction id)

References value(), and warnFile.

◆ setOutputParams()

void KisLibavMediaEncoderRunnable::Format::setOutputParams ( AVFormatContext * formatContext) const
inline

Definition at line 153 of file KisLibavMediaEncoderRunnable.cpp.

154 {
155 switch (m_formatId) {
157 case FORMAT_GIF:
158 break;
159 case FORMAT_WEBP:
160 setOption(formatContext->priv_data, "loop", "0");
161 break;
162 case FORMAT_APNG:
163 setOption(formatContext->priv_data, "plays", "0");
164 break;
165 }
166 }

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_GIF_PALETTE, KisLibavMediaEncoderRunnable::FORMAT_WEBP, m_formatId, and setOption().

◆ supportsAudio()

bool KisLibavMediaEncoderRunnable::Format::supportsAudio ( ) const
inlineoverridevirtual

Implements KisMediaEncoderFormat.

Definition at line 84 of file KisLibavMediaEncoderRunnable.cpp.

85 {
86 return false;
87 }

◆ title()

QString KisLibavMediaEncoderRunnable::Format::title ( ) const
inlineoverridevirtual

Implements KisMediaEncoderFormat.

Definition at line 74 of file KisLibavMediaEncoderRunnable.cpp.

75 {
76 return i18n("LibAV: %1", titleForFormatId(m_formatId));
77 }

References m_formatId, and titleForFormatId().

◆ titleForFormatId()

static QString KisLibavMediaEncoderRunnable::Format::titleForFormatId ( int formatId)
inlinestaticprivate

Definition at line 223 of file KisLibavMediaEncoderRunnable.cpp.

224 {
225 switch (formatId) {
226 case FORMAT_GIF:
227 return QStringLiteral("GIF");
228 case FORMAT_WEBP:
229 return QStringLiteral("WEBP");
230 case FORMAT_APNG:
231 return QStringLiteral("APNG");
232 }
233 return QString();
234 }

References KisLibavMediaEncoderRunnable::FORMAT_APNG, KisLibavMediaEncoderRunnable::FORMAT_GIF, KisLibavMediaEncoderRunnable::FORMAT_WEBP, and formatId().

◆ type()

Type KisLibavMediaEncoderRunnable::Format::type ( ) const
inlineoverridevirtual

Member Data Documentation

◆ m_formatId

int KisLibavMediaEncoderRunnable::Format::m_formatId
private

Definition at line 258 of file KisLibavMediaEncoderRunnable.cpp.


The documentation for this class was generated from the following file: