Olive
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Public Slots | Signals | Public Member Functions | Private Slots | Private Member Functions | Private Attributes | List of all members
ExportThread Class Reference

#include <exportthread.h>

Inheritance diagram for ExportThread:

Public Slots

void Interrupt ()
 
void play_wake ()
 

Signals

void ProgressChanged (int value, qint64 remaining_ms)
 

Public Member Functions

 ExportThread (const ExportParams &params, const VideoCodecParams &vparams, QObject *parent=nullptr)
 
virtual void run () override
 
const QString & GetError ()
 
bool WasInterrupted ()
 

Private Slots

void wake ()
 

Private Member Functions

bool Encode (AVFormatContext *ofmt_ctx, AVCodecContext *codec_ctx, AVFrame *frame, AVPacket *packet, AVStream *stream)
 
bool SetupVideo ()
 
bool SetupAudio ()
 
bool SetupContainer ()
 
void Export ()
 
void Cleanup ()
 

Private Attributes

QOffscreenSurface surface
 
bool interrupt_
 
ExportParams params_
 
VideoCodecParams vcodec_params_
 
AVFormatContext * fmt_ctx
 
AVStream * video_stream
 
AVCodec * vcodec
 
AVCodecContext * vcodec_ctx
 
AVFrame * video_frame
 
AVFrame * sws_frame
 
SwsContext * sws_ctx
 
AVStream * audio_stream
 
AVCodec * acodec
 
AVFrame * audio_frame
 
AVFrame * swr_frame
 
AVCodecContext * acodec_ctx
 
AVPacket video_pkt
 
AVPacket audio_pkt
 
SwrContext * swr_ctx
 
bool vpkt_alloc
 
bool apkt_alloc
 
int aframe_bytes
 
int ret
 
char * c_filename
 
QMutex mutex
 
QWaitCondition waitCond
 
QString export_error
 
bool waiting_for_audio_
 

Constructor & Destructor Documentation

ExportThread::ExportThread ( const ExportParams params,
const VideoCodecParams vparams,
QObject *  parent = nullptr 
)

Member Function Documentation

void ExportThread::Cleanup ( )
private
bool ExportThread::Encode ( AVFormatContext *  ofmt_ctx,
AVCodecContext *  codec_ctx,
AVFrame *  frame,
AVPacket *  packet,
AVStream *  stream 
)
private
void ExportThread::Export ( )
private
const QString & ExportThread::GetError ( )
void ExportThread::Interrupt ( )
slot
void ExportThread::play_wake ( )
slot
void ExportThread::ProgressChanged ( int  value,
qint64  remaining_ms 
)
signal
void ExportThread::run ( )
overridevirtual
bool ExportThread::SetupAudio ( )
private
bool ExportThread::SetupContainer ( )
private
bool ExportThread::SetupVideo ( )
private

H.264 specific settings

void ExportThread::wake ( )
privateslot
bool ExportThread::WasInterrupted ( )

Member Data Documentation

AVCodec* ExportThread::acodec
private
AVCodecContext* ExportThread::acodec_ctx
private
int ExportThread::aframe_bytes
private
bool ExportThread::apkt_alloc
private
AVFrame* ExportThread::audio_frame
private
AVPacket ExportThread::audio_pkt
private
AVStream* ExportThread::audio_stream
private
char* ExportThread::c_filename
private
QString ExportThread::export_error
private
AVFormatContext* ExportThread::fmt_ctx
private
bool ExportThread::interrupt_
private
QMutex ExportThread::mutex
private
ExportParams ExportThread::params_
private
int ExportThread::ret
private
QOffscreenSurface ExportThread::surface
private
SwrContext* ExportThread::swr_ctx
private
AVFrame* ExportThread::swr_frame
private
SwsContext* ExportThread::sws_ctx
private
AVFrame* ExportThread::sws_frame
private
AVCodec* ExportThread::vcodec
private
AVCodecContext* ExportThread::vcodec_ctx
private
VideoCodecParams ExportThread::vcodec_params_
private
AVFrame* ExportThread::video_frame
private
AVPacket ExportThread::video_pkt
private
AVStream* ExportThread::video_stream
private
bool ExportThread::vpkt_alloc
private
QWaitCondition ExportThread::waitCond
private
bool ExportThread::waiting_for_audio_
private

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