Skip to content

Commit

Permalink
优化代码;
Browse files Browse the repository at this point in the history
  • Loading branch information
RealChuan committed Dec 5, 2023
1 parent 7189803 commit c8a85f8
Show file tree
Hide file tree
Showing 50 changed files with 338 additions and 298 deletions.
2 changes: 1 addition & 1 deletion examples/player/colorspacedialog.cc
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ class ColorSpaceDialog::ColorSpaceDialogPrivate
resetButton->setText("Reset");
}

void setupUI()
void setupUI() const
{
auto *layout = new QGridLayout(q_ptr);
layout->addWidget(new QLabel(QObject::tr("Contrast:"), q_ptr), 0, 0);
Expand Down
6 changes: 3 additions & 3 deletions examples/player/controlwidget.cc
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class ControlWidget::ControlWidgetPrivate
modelButton = new QPushButton(q_ptr);
}

void setupUI()
void setupUI() const
{
auto *processLayout = new QHBoxLayout;
processLayout->setSpacing(10);
Expand Down Expand Up @@ -101,13 +101,13 @@ class ControlWidget::ControlWidgetPrivate
l->addWidget(widget);
}

void setPlayButtonIcon()
void setPlayButtonIcon() const
{
playButton->setIcon(playButton->style()->standardIcon(
playButton->isChecked() ? QStyle::SP_MediaPause : QStyle::SP_MediaPlay));
}

void initModelButton()
void initModelButton() const
{
modelButton->setProperty("model", QMediaPlaylist::Sequential);
QMetaObject::invokeMethod(q_ptr, &ControlWidget::onModelChanged, Qt::QueuedConnection);
Expand Down
8 changes: 4 additions & 4 deletions examples/player/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,15 +134,15 @@ class MainWindow::MainWindowPrivate
new QShortcut(Qt::Key_Space, q_ptr, q_ptr, [this] { controlWidget->clickPlayButton(); });
}

void setControlWidgetVisible(bool visible)
void setControlWidgetVisible(bool visible) const
{
if (videoRender.isNull()) {
return;
}
controlWidget->setVisible(visible);
}

auto setTitleWidgetVisible(bool visible) -> bool
auto setTitleWidgetVisible(bool visible) const -> bool
{
if (videoRender.isNull()) {
return false;
Expand All @@ -160,7 +160,7 @@ class MainWindow::MainWindowPrivate
titleWidget->setAutoHide(3000);
}

void started()
void started() const
{
controlWidget->setSourceFPS(playerPtr->fps());

Expand All @@ -173,7 +173,7 @@ class MainWindow::MainWindowPrivate
fpsTimer->start(1000);
}

void finished()
void finished() const
{
fpsTimer->stop();
controlWidget->setDuration(0);
Expand Down
37 changes: 19 additions & 18 deletions examples/player/qmediaplaylist_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,11 @@
#include <QtCore/qdebug.h>

#ifdef Q_MOC_RUN
# pragma Q_MOC_EXPAND_MACROS
#pragma Q_MOC_EXPAND_MACROS
#endif

QT_BEGIN_NAMESPACE


class QMediaPlaylistControl;

class QMediaPlaylistPrivate
Expand All @@ -35,8 +34,7 @@ class QMediaPlaylistPrivate
public:
QMediaPlaylistPrivate()
: error(QMediaPlaylist::NoError)
{
}
{}

virtual ~QMediaPlaylistPrivate()
{
Expand All @@ -52,23 +50,24 @@ class QMediaPlaylistPrivate
emit q_ptr->loadFailed();
}

void loadFinished()
void loadFinished() const
{
q_ptr->addMedia(parser->playlist);

emit q_ptr->loaded();
}

bool checkFormat(const char *format) const
auto checkFormat(const char *format) const -> bool
{
QLatin1String f(format);
QPlaylistFileParser::FileType type = format ? QPlaylistFileParser::UNKNOWN : QPlaylistFileParser::M3U8;
if (format) {
if (f == QLatin1String("m3u") || f == QLatin1String("text/uri-list") ||
f == QLatin1String("audio/x-mpegurl") || f == QLatin1String("audio/mpegurl"))
QPlaylistFileParser::FileType type = format != nullptr ? QPlaylistFileParser::UNKNOWN
: QPlaylistFileParser::M3U8;
if (format != nullptr) {
if (f == QLatin1String("m3u") || f == QLatin1String("text/uri-list")
|| f == QLatin1String("audio/x-mpegurl") || f == QLatin1String("audio/mpegurl"))
type = QPlaylistFileParser::M3U;
else if (f == QLatin1String("m3u8") || f == QLatin1String("application/x-mpegURL") ||
f == QLatin1String("application/vnd.apple.mpegurl"))
else if (f == QLatin1String("m3u8") || f == QLatin1String("application/x-mpegURL")
|| f == QLatin1String("application/vnd.apple.mpegurl"))
type = QPlaylistFileParser::M3U8;
}

Expand All @@ -82,17 +81,20 @@ class QMediaPlaylistPrivate

void ensureParser()
{
if (parser)
if (parser != nullptr)
return;

parser = new QPlaylistFileParser(q_ptr);
QObject::connect(parser, &QPlaylistFileParser::finished, [this]() { loadFinished(); });
QObject::connect(parser, &QPlaylistFileParser::error,
[this](QMediaPlaylist::Error err, const QString& errorMsg) { loadFailed(err, errorMsg); });
QObject::connect(parser,
&QPlaylistFileParser::error,
[this](QMediaPlaylist::Error err, const QString &errorMsg) {
loadFailed(err, errorMsg);
});
}

int nextPosition(int steps) const;
int prevPosition(int steps) const;
auto nextPosition(int steps) const -> int;
auto prevPosition(int steps) const -> int;

QList<QUrl> playlist;

Expand All @@ -108,5 +110,4 @@ class QMediaPlaylistPrivate

QT_END_NAMESPACE


#endif // QMEDIAPLAYLIST_P_H
29 changes: 13 additions & 16 deletions examples/player/qplaylistfileparser_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,10 @@ class QPlaylistFileParser : public QObject
{
Q_OBJECT
public:
QPlaylistFileParser(QObject *parent = nullptr);
~QPlaylistFileParser();
explicit QPlaylistFileParser(QObject *parent = nullptr);
~QPlaylistFileParser() override;

enum FileType
{
enum FileType {
UNKNOWN,
M3U,
M3U8, // UTF-8 version of M3U
Expand All @@ -49,25 +48,23 @@ class QPlaylistFileParser : public QObject
QList<QUrl> playlist;

Q_SIGNALS:
void newItem(const QVariant& content);
void newItem(const QVariant &content);
void finished();
void error(QMediaPlaylist::Error err, const QString& errorMsg);
void error(QMediaPlaylist::Error err, const QString &errorMsg);

private Q_SLOTS:
void handleData();
void handleError();

private:

static FileType findByMimeType(const QString &mime);
static FileType findBySuffixType(const QString &suffix);
static FileType findByDataHeader(const char *data, quint32 size);
static FileType findPlaylistType(QIODevice *device,
const QString& mime);
static FileType findPlaylistType(const QString &suffix,
const QString& mime,
const char *data = nullptr,
quint32 size = 0);
static auto findByMimeType(const QString &mime) -> FileType;
static auto findBySuffixType(const QString &suffix) -> FileType;
static auto findByDataHeader(const char *data, quint32 size) -> FileType;
static auto findPlaylistType(QIODevice *device, const QString &mime) -> FileType;
static auto findPlaylistType(const QString &suffix,
const QString &mime,
const char *data = nullptr,
quint32 size = 0) -> FileType;

Q_DISABLE_COPY(QPlaylistFileParser)
Q_DECLARE_PRIVATE(QPlaylistFileParser)
Expand Down
2 changes: 1 addition & 1 deletion examples/player/slider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ void Slider::initStyleOption_Qt430(QStyleOptionSlider *option) const
option->orientation = orientation();
option->maximum = maximum();
option->minimum = minimum();
option->tickPosition = (QSlider::TickPosition) tickPosition();
option->tickPosition = tickPosition();
option->tickInterval = tickInterval();
option->upsideDown = (orientation() == Qt::Horizontal)
? (invertedAppearance() != (option->direction == Qt::RightToLeft))
Expand Down
6 changes: 3 additions & 3 deletions examples/transcoder/mainwindow.cc
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class MainWindow::MainWindowPrivate
fpsTimer = new QTimer(q_ptr);
}

QGroupBox *initVideoSetting()
QGroupBox *initVideoSetting() const
{
auto layout1 = new QHBoxLayout;
layout1->addWidget(new QLabel(tr("Width:"), q_ptr));
Expand All @@ -96,7 +96,7 @@ class MainWindow::MainWindowPrivate
return groupBox;
}

QGroupBox *invalidSetting()
QGroupBox *invalidSetting() const
{
auto groupBox = new QGroupBox(tr("Invalid setting"), q_ptr);
auto layout = new QHBoxLayout(groupBox);
Expand Down Expand Up @@ -155,7 +155,7 @@ class MainWindow::MainWindowPrivate
}
}

void calBitrate()
void calBitrate() const
{
auto w = widthLineEdit->text().toInt();
auto h = heightLineEdit->text().toInt();
Expand Down
2 changes: 1 addition & 1 deletion ffmpeg/audiodecoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class AudioDecoder::AudioDecoderPrivate
decoderAudioFrame = new AudioDisplay(q_ptr);
}

void processEvent()
void processEvent() const
{
while (q_ptr->m_runing.load() && !q_ptr->m_eventQueue.empty()) {
auto eventPtr = q_ptr->m_eventQueue.take();
Expand Down
2 changes: 1 addition & 1 deletion ffmpeg/audiodisplay.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class AudioDisplay::AudioDisplayPrivate

~AudioDisplayPrivate() = default;

void processEvent(bool &firstFrame)
void processEvent(bool &firstFrame) const
{
while (q_ptr->m_runing.load() && !q_ptr->m_eventQueue.empty()) {
qDebug() << "AudioFramePrivate::processEvent";
Expand Down
2 changes: 1 addition & 1 deletion ffmpeg/audiodisplay.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class AudioDisplay : public Decoder<FramePtr>
Q_OBJECT
public:
explicit AudioDisplay(QObject *parent = nullptr);
~AudioDisplay();
~AudioDisplay() override;

void setVolume(qreal volume);

Expand Down
16 changes: 8 additions & 8 deletions ffmpeg/audiofifo.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ namespace Ffmpeg {
class AudioFifo::AudioFifoPrivtate
{
public:
AudioFifoPrivtate(AudioFifo *q)
explicit AudioFifoPrivtate(AudioFifo *q)
: q_ptr(q)
{}

~AudioFifoPrivtate()
{
if (audioFifo) {
if (audioFifo != nullptr) {
av_audio_fifo_free(audioFifo);
}
}
Expand All @@ -34,20 +34,20 @@ AudioFifo::AudioFifo(CodecContext *ctx, QObject *parent)
: QObject{parent}
, d_ptr(new AudioFifoPrivtate(this))
{
auto avCodecCtx = ctx->avCodecCtx();
auto *avCodecCtx = ctx->avCodecCtx();
d_ptr->audioFifo = av_audio_fifo_alloc(avCodecCtx->sample_fmt, ctx->chLayout().nb_channels, 1);
Q_ASSERT(nullptr != d_ptr->audioFifo);
}

AudioFifo::~AudioFifo() {}
AudioFifo::~AudioFifo() = default;

bool AudioFifo::realloc(int nb_samples)
auto AudioFifo::realloc(int nb_samples) -> bool
{
auto ret = av_audio_fifo_realloc(d_ptr->audioFifo, nb_samples);
ERROR_RETURN(ret)
}

bool AudioFifo::write(void **data, int nb_samples)
auto AudioFifo::write(void **data, int nb_samples) -> bool
{
auto ret = av_audio_fifo_write(d_ptr->audioFifo, data, nb_samples);
if (ret < nb_samples) {
Expand All @@ -57,7 +57,7 @@ bool AudioFifo::write(void **data, int nb_samples)
return true;
}

bool AudioFifo::read(void **data, int nb_samples)
auto AudioFifo::read(void **data, int nb_samples) -> bool
{
auto ret = av_audio_fifo_read(d_ptr->audioFifo, data, nb_samples);
if (ret < nb_samples) {
Expand All @@ -67,7 +67,7 @@ bool AudioFifo::read(void **data, int nb_samples)
return true;
}

int AudioFifo::size() const
auto AudioFifo::size() const -> int
{
return av_audio_fifo_size(d_ptr->audioFifo);
}
Expand Down
2 changes: 1 addition & 1 deletion ffmpeg/audiofifo.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class AudioFifo : public QObject
auto write(void **data, int nb_samples) -> bool;
auto read(void **data, int nb_samples) -> bool;

auto size() const -> int;
[[nodiscard]] auto size() const -> int;

private:
class AudioFifoPrivtate;
Expand Down
7 changes: 7 additions & 0 deletions ffmpeg/audioframeconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -233,4 +233,11 @@ auto getAudioFormatFromCodecCtx(CodecContext *codecCtx, int &sampleSize) -> QAud
return autioFormat;
}

auto getAVChannelLayoutDescribe(const AVChannelLayout &chLayout) -> QString
{
char buf[64] = {0};
av_channel_layout_describe(&chLayout, buf, sizeof(buf));
return QString::fromUtf8(buf);
}

} // namespace Ffmpeg
6 changes: 6 additions & 0 deletions ffmpeg/audioframeconverter.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

#include <QAudioFormat>

extern "C" {
#include <libavutil/channel_layout.h>
}

namespace Ffmpeg {

class CodecContext;
Expand All @@ -23,4 +27,6 @@ class AudioFrameConverter : public QObject

auto getAudioFormatFromCodecCtx(CodecContext *codecCtx, int &sampleSize) -> QAudioFormat;

auto getAVChannelLayoutDescribe(const AVChannelLayout &chLayout) -> QString;

} // namespace Ffmpeg
6 changes: 3 additions & 3 deletions ffmpeg/audiorender/audiooutput.cc
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ AudioOutput::~AudioOutput() = default;

void AudioOutput::onConvertData(const QSharedPointer<Ffmpeg::Frame> &framePtr)
{
if (!d_ptr->ioDevice) {
if (d_ptr->ioDevice == nullptr) {
return;
}

Expand All @@ -89,11 +89,11 @@ void AudioOutput::onConvertData(const QSharedPointer<Ffmpeg::Frame> &framePtr)

void AudioOutput::onWrite()
{
if (!d_ptr->ioDevice) {
if (d_ptr->ioDevice == nullptr) {
return;
}
while (d_ptr->audioBuf.size() > 0) {
int byteFree = d_ptr->audioSinkPtr->bytesFree();
auto byteFree = d_ptr->audioSinkPtr->bytesFree();
if (byteFree > 0 && byteFree < d_ptr->audioBuf.size()) {
d_ptr->ioDevice->write(d_ptr->audioBuf.data(), byteFree);
d_ptr->audioBuf = d_ptr->audioBuf.sliced(byteFree);
Expand Down
Loading

0 comments on commit c8a85f8

Please sign in to comment.