21 #ifndef EXPORTTHREAD_H
22 #define EXPORTTHREAD_H
25 #include <QOffscreenSurface>
27 #include <QWaitCondition>
29 struct AVFormatContext;
30 struct AVCodecContext;
39 #include <libavcodec/avcodec.h>
42 #define COMPRESSION_TYPE_CBR 0
43 #define COMPRESSION_TYPE_CFR 1
44 #define COMPRESSION_TYPE_TARGETSIZE 2
45 #define COMPRESSION_TYPE_TARGETBR 3
76 virtual void run()
override;
88 bool Encode(AVFormatContext* ofmt_ctx, AVCodecContext* codec_ctx, AVFrame* frame, AVPacket* packet, AVStream* stream);
135 #endif // EXPORTTHREAD_H
QString filename
Definition: exportthread.h:51
AVCodecContext * vcodec_ctx
Definition: exportthread.h:105
const QString & GetError()
Definition: exportthread.cpp:678
int pix_fmt
Definition: exportthread.h:68
int video_width
Definition: exportthread.h:54
void Cleanup()
Definition: exportthread.cpp:607
int aframe_bytes
Definition: exportthread.h:121
bool WasInterrupted()
Definition: exportthread.cpp:682
AVFrame * sws_frame
Definition: exportthread.h:107
bool vpkt_alloc
Definition: exportthread.h:118
QString export_error
Definition: exportthread.h:128
AVStream * video_stream
Definition: exportthread.h:103
Definition: exportthread.h:49
double video_frame_rate
Definition: exportthread.h:56
ExportParams params_
Definition: exportthread.h:99
QMutex mutex
Definition: exportthread.h:125
int audio_bitrate
Definition: exportthread.h:62
bool SetupContainer()
Definition: exportthread.cpp:340
int audio_sampling_rate
Definition: exportthread.h:61
Definition: exportthread.h:72
bool SetupAudio()
Definition: exportthread.cpp:219
AVFrame * swr_frame
Definition: exportthread.h:112
int audio_codec
Definition: exportthread.h:60
AVFormatContext * fmt_ctx
Definition: exportthread.h:102
AVCodec * vcodec
Definition: exportthread.h:104
bool interrupt_
Definition: exportthread.h:96
AVFrame * video_frame
Definition: exportthread.h:106
QOffscreenSurface surface
Definition: exportthread.h:95
int video_compression_type
Definition: exportthread.h:57
AVPacket audio_pkt
Definition: exportthread.h:115
bool waiting_for_audio_
Definition: exportthread.h:130
bool Encode(AVFormatContext *ofmt_ctx, AVCodecContext *codec_ctx, AVFrame *frame, AVPacket *packet, AVStream *stream)
Definition: exportthread.cpp:75
void ProgressChanged(int value, qint64 remaining_ms)
long end_frame
Definition: exportthread.h:64
int threads
Definition: exportthread.h:69
double video_bitrate
Definition: exportthread.h:58
SwsContext * sws_ctx
Definition: exportthread.h:108
AVFrame * audio_frame
Definition: exportthread.h:111
AVCodecContext * acodec_ctx
Definition: exportthread.h:113
bool video_enabled
Definition: exportthread.h:52
AVStream * audio_stream
Definition: exportthread.h:109
AVCodec * acodec
Definition: exportthread.h:110
AVPacket video_pkt
Definition: exportthread.h:114
VideoCodecParams vcodec_params_
Definition: exportthread.h:100
virtual void run() override
Definition: exportthread.cpp:659
int video_height
Definition: exportthread.h:55
void wake()
Definition: exportthread.cpp:703
long start_frame
Definition: exportthread.h:63
int ret
Definition: exportthread.h:122
int video_codec
Definition: exportthread.h:53
void Export()
Definition: exportthread.cpp:367
char * c_filename
Definition: exportthread.h:123
Definition: exportthread.h:67
SwrContext * swr_ctx
Definition: exportthread.h:116
ExportThread(const ExportParams ¶ms, const VideoCodecParams &vparams, QObject *parent=nullptr)
Definition: exportthread.cpp:47
QWaitCondition waitCond
Definition: exportthread.h:126
void Interrupt()
Definition: exportthread.cpp:687
bool SetupVideo()
Definition: exportthread.cpp:105
bool apkt_alloc
Definition: exportthread.h:119
void play_wake()
Definition: exportthread.cpp:695
bool audio_enabled
Definition: exportthread.h:59