citra_qt/dumping: Add dumping dialog

This is the main dialog of video dumping. This dialog allows the user to set output format, output path, video/audio encoder and video/audio bitrate.

When a format is selected, the list of video and audio encoders are updated. Only encoders of codecs that can be contained in the format is shown.
This commit is contained in:
zhupengfei 2020-02-01 12:38:13 +08:00
parent e769d90aa8
commit f82ba41fe0
No known key found for this signature in database
GPG key ID: DD129E108BD09378
3 changed files with 434 additions and 0 deletions

View file

@ -0,0 +1,41 @@
// Copyright 2020 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include <memory>
#include <QDialog>
#include "core/dumping/ffmpeg_backend.h"
namespace Ui {
class DumpingDialog;
}
class DumpingDialog : public QDialog {
Q_OBJECT
public:
explicit DumpingDialog(QWidget* parent);
~DumpingDialog() override;
QString GetFilePath() const;
void ApplyConfiguration();
private:
void Populate();
void PopulateEncoders();
void SetConfiguration();
void OnToolButtonClicked();
void OpenOptionsDialog(const std::vector<VideoDumper::OptionInfo>& options,
std::string& current_value);
std::unique_ptr<Ui::DumpingDialog> ui;
std::string format_options;
std::string video_encoder_options;
std::string audio_encoder_options;
QString last_path;
std::vector<VideoDumper::FormatInfo> formats;
std::vector<VideoDumper::EncoderInfo> video_encoders;
std::vector<VideoDumper::EncoderInfo> audio_encoders;
};