Krita Source Code Documentation
Loading...
Searching...
No Matches
KisLibavMediaEncoderRunnable Class Reference

#include <KisLibavMediaEncoderRunnable.h>

+ Inheritance diagram for KisLibavMediaEncoderRunnable:

Classes

class  Context
 
class  Format
 

Static Public Member Functions

static KisLibavMediaEncoderRunnablecreate (const KisMediaEncoderWrapperSettings &settings, QObject *parent=nullptr)
 
static void getSupportedFormats (QVector< KisMediaEncoderFormat * > &outSupportedFormats)
 

Protected Member Functions

EncodeResult encode (QString &outErrorMessage) override
 
 KisLibavMediaEncoderRunnable (const KisMediaEncoderWrapperSettings &settings, QObject *parent)
 
- Protected Member Functions inherited from KisMediaEncoderRunnable
bool isCancelled () const
 
 KisMediaEncoderRunnable (const KisMediaEncoderWrapperSettings &settings, QObject *parent)
 
bool nextFrame (Frame &outFrame)
 
void rewindFrames ()
 
void setOutputFrameNoMultiplier (double outputFrameNoMultiplier)
 
const KisMediaEncoderWrapperSettings settings ()
 

Static Private Attributes

static constexpr int FORMAT_APNG = 3
 
static constexpr int FORMAT_GIF = 1
 
static constexpr int FORMAT_GIF_PALETTE = 0
 
static constexpr int FORMAT_WEBP = 2
 

Additional Inherited Members

- Public Slots inherited from KisMediaEncoderRunnable
void slotHandleCancelRequested ()
 
- Signals inherited from KisMediaEncoderRunnable
void sigCancelled ()
 
void sigCompleted ()
 
void sigFailed (const QString &errorMessage)
 
void sigProgressUpdated (int frameNo)
 
void sigStarted ()
 
- Public Member Functions inherited from KisMediaEncoderRunnable
void run () override
 
- Protected Types inherited from KisMediaEncoderRunnable
enum class  EncodeResult { Completed , Cancelled , Failed }
 

Detailed Description

Definition at line 10 of file KisLibavMediaEncoderRunnable.h.

Constructor & Destructor Documentation

◆ KisLibavMediaEncoderRunnable()

KisLibavMediaEncoderRunnable::KisLibavMediaEncoderRunnable ( const KisMediaEncoderWrapperSettings & settings,
QObject * parent )
protected

Definition at line 932 of file KisLibavMediaEncoderRunnable.cpp.

935{
936}
KisMediaEncoderRunnable(const KisMediaEncoderWrapperSettings &settings, QObject *parent)
const KisMediaEncoderWrapperSettings settings()

Member Function Documentation

◆ create()

KisLibavMediaEncoderRunnable * KisLibavMediaEncoderRunnable::create ( const KisMediaEncoderWrapperSettings & settings,
QObject * parent = nullptr )
static

◆ encode()

KisMediaEncoderRunnable::EncodeResult KisLibavMediaEncoderRunnable::encode ( QString & outErrorMessage)
overrideprotectedvirtual

Implements KisMediaEncoderRunnable.

Definition at line 938 of file KisLibavMediaEncoderRunnable.cpp.

939{
940 Format *format = static_cast<Format *>(settings().format);
941 QByteArray paletteData;
942
943 if (format->formatId() == FORMAT_GIF) {
944 // GIF needs to generate a palette, so we must do two rendering runs.
945 // Setting the multiplier here halves the speed of the progress bar.
947
948 Format paletteFormat(FORMAT_GIF_PALETTE);
949 EncodeResult paletteResult =
950 Context(this, outErrorMessage).encode(settings(), paletteFormat, paletteData, true);
951 if (paletteResult != EncodeResult::Completed) {
952 return paletteResult;
953 }
954
956 rewindFrames(); // Ready the frame iterator for another round.
957 }
958
959 return Context(this, outErrorMessage).encode(settings(), *format, paletteData, false);
960}
void setOutputFrameNoMultiplier(double outputFrameNoMultiplier)
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)
Definition kis_assert.h:129

References KisMediaEncoderRunnable::Completed, KisLibavMediaEncoderRunnable::Context::encode(), KisMediaEncoderRunnable::Failed, KisMediaEncoderWrapperSettings::format, FORMAT_GIF, FORMAT_GIF_PALETTE, KisLibavMediaEncoderRunnable::Format::formatId(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, KisMediaEncoderRunnable::rewindFrames(), KisMediaEncoderRunnable::setOutputFrameNoMultiplier(), and KisMediaEncoderRunnable::settings().

◆ getSupportedFormats()

void KisLibavMediaEncoderRunnable::getSupportedFormats ( QVector< KisMediaEncoderFormat * > & outSupportedFormats)
static

Definition at line 924 of file KisLibavMediaEncoderRunnable.cpp.

925{
926 if (avcodec_find_encoder(Format::codecIdForFormatId(FORMAT_GIF_PALETTE))
927 && avcodec_find_encoder(Format::codecIdForFormatId(FORMAT_GIF))) {
928 outSupportedFormats.append(new Format(FORMAT_GIF));
929 }
930}

References KisLibavMediaEncoderRunnable::Format::codecIdForFormatId(), FORMAT_GIF, and FORMAT_GIF_PALETTE.

Member Data Documentation

◆ FORMAT_APNG

constexpr int KisLibavMediaEncoderRunnable::FORMAT_APNG = 3
staticconstexprprivate

Definition at line 27 of file KisLibavMediaEncoderRunnable.h.

◆ FORMAT_GIF

constexpr int KisLibavMediaEncoderRunnable::FORMAT_GIF = 1
staticconstexprprivate

Definition at line 25 of file KisLibavMediaEncoderRunnable.h.

◆ FORMAT_GIF_PALETTE

constexpr int KisLibavMediaEncoderRunnable::FORMAT_GIF_PALETTE = 0
staticconstexprprivate

Definition at line 24 of file KisLibavMediaEncoderRunnable.h.

◆ FORMAT_WEBP

constexpr int KisLibavMediaEncoderRunnable::FORMAT_WEBP = 2
staticconstexprprivate

Definition at line 26 of file KisLibavMediaEncoderRunnable.h.


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