first commit
This commit is contained in:
178
GB28181Device/android/MediaSetting.cpp
Normal file
178
GB28181Device/android/MediaSetting.cpp
Normal file
@@ -0,0 +1,178 @@
|
||||
/***************************************************************************************
|
||||
*
|
||||
* IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
|
||||
*
|
||||
* By downloading, copying, installing or using the software you agree to this license.
|
||||
* If you do not agree to this license, do not download, install,
|
||||
* copy or use the software.
|
||||
*
|
||||
* Copyright (C) 2014-2022, Happytimesoft Corporation, all rights reserved.
|
||||
*
|
||||
* Redistribution and use in binary forms, with or without modification, are permitted.
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed
|
||||
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
|
||||
* language governing permissions and limitations under the License.
|
||||
*
|
||||
****************************************************************************************/
|
||||
|
||||
#include "MediaSetting.h"
|
||||
#include "utils.h"
|
||||
#include "media_format.h"
|
||||
#include <QCameraInfo>
|
||||
#include <QMessageBox>
|
||||
|
||||
/**************************************************************************************/
|
||||
|
||||
MediaSetting::MediaSetting(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::MediaSetting)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
initDialog();
|
||||
connSignalSlot();
|
||||
|
||||
showMaximized();
|
||||
}
|
||||
|
||||
MediaSetting::~MediaSetting()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MediaSetting::initDialog()
|
||||
{
|
||||
ui->cmbVideoCodec->addItem("H264", VIDEO_CODEC_H264);
|
||||
ui->cmbVideoCodec->addItem("H265", VIDEO_CODEC_H265);
|
||||
|
||||
ui->cmbAudioCodec->addItem("G711A", AUDIO_CODEC_G711A);
|
||||
ui->cmbAudioCodec->addItem("G711U", AUDIO_CODEC_G711U);
|
||||
ui->cmbAudioCodec->addItem("AAC", AUDIO_CODEC_AAC);
|
||||
|
||||
ui->cmbVideoSize->addItem("default", QSize(0, 0));
|
||||
ui->cmbVideoSize->addItem("1920*1080", QSize(1920, 1080));
|
||||
ui->cmbVideoSize->addItem("1280*720", QSize(1280, 720));
|
||||
ui->cmbVideoSize->addItem("640*480", QSize(640, 480));
|
||||
|
||||
ui->cmbVideoFps->addItem("30", 30);
|
||||
ui->cmbVideoFps->addItem("25", 25);
|
||||
ui->cmbVideoFps->addItem("20", 20);
|
||||
ui->cmbVideoFps->addItem("15", 15);
|
||||
ui->cmbVideoFps->addItem("10", 10);
|
||||
|
||||
ui->cmbVideoBps->addItem("default", 0);
|
||||
ui->cmbVideoBps->addItem("4000", 4000);
|
||||
ui->cmbVideoBps->addItem("3000", 3000);
|
||||
ui->cmbVideoBps->addItem("2500", 2500);
|
||||
ui->cmbVideoBps->addItem("2000", 2000);
|
||||
ui->cmbVideoBps->addItem("1500", 1500);
|
||||
ui->cmbVideoBps->addItem("1000", 1000);
|
||||
ui->cmbVideoBps->addItem("800", 800);
|
||||
ui->cmbVideoBps->addItem("500", 500);
|
||||
ui->cmbVideoBps->addItem("300", 300);
|
||||
ui->cmbVideoBps->addItem("100", 100);
|
||||
|
||||
ui->cmbSampleRate->addItem("8000", 8000);
|
||||
ui->cmbSampleRate->addItem("11025", 11025);
|
||||
ui->cmbSampleRate->addItem("12000", 12000);
|
||||
ui->cmbSampleRate->addItem("16000", 16000);
|
||||
ui->cmbSampleRate->addItem("22050", 22050);
|
||||
ui->cmbSampleRate->addItem("24000", 24000);
|
||||
ui->cmbSampleRate->addItem("32000", 32000);
|
||||
ui->cmbSampleRate->addItem("44100", 44100);
|
||||
ui->cmbSampleRate->addItem("48000", 48000);
|
||||
|
||||
ui->cmbChannel->addItem("Mono", 1);
|
||||
ui->cmbChannel->addItem("Stereo", 2);
|
||||
|
||||
ui->cmbAudioBps->addItem("default", 0);
|
||||
ui->cmbAudioBps->addItem("100", 100);
|
||||
ui->cmbAudioBps->addItem("64", 64);
|
||||
ui->cmbAudioBps->addItem("32", 32);
|
||||
ui->cmbAudioBps->addItem("16", 16);
|
||||
|
||||
QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
|
||||
foreach (const QCameraInfo &cameraInfo, cameras)
|
||||
{
|
||||
ui->cmbCamera->addItem(cameraInfo.deviceName(), cameraInfo.position());
|
||||
}
|
||||
|
||||
ui->grpVideo->setChecked(getVideoFlag());
|
||||
ui->grpAudio->setChecked(getAudioFlag());
|
||||
ui->cmbCamera->setCurrentIndex(getCameraIndex());
|
||||
setComboItem(ui->cmbVideoCodec, getVideoCodec());
|
||||
setComboItem(ui->cmbAudioCodec, getAudioCodec());
|
||||
setComboItem(ui->cmbVideoSize, getResolution());
|
||||
setComboItem(ui->cmbVideoFps, getFrameRate());
|
||||
setComboItem(ui->cmbVideoBps, getVideoBitrate());
|
||||
setComboItem(ui->cmbSampleRate, getSampleRate());
|
||||
setComboItem(ui->cmbChannel, getChannel());
|
||||
setComboItem(ui->cmbAudioBps, getAudioBitrate());
|
||||
}
|
||||
|
||||
void MediaSetting::connSignalSlot()
|
||||
{
|
||||
connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close()));
|
||||
connect(ui->btnConfirm, SIGNAL(clicked()), this, SLOT(slotConfirm()));
|
||||
}
|
||||
|
||||
void MediaSetting::setComboItem(QComboBox * item, QVariant data)
|
||||
{
|
||||
for (int i = 0; i < item->count(); i++)
|
||||
{
|
||||
if (item->itemData(i) == data)
|
||||
{
|
||||
item->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MediaSetting::slotConfirm()
|
||||
{
|
||||
int video = ui->grpVideo->isChecked();
|
||||
int audio = ui->grpAudio->isChecked();
|
||||
|
||||
if (!video && !audio)
|
||||
{
|
||||
QMessageBox::information(this, tr("Tips"), tr("Please check video or audio."));
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef DEMO
|
||||
if (VIDEO_CODEC_H265 == ui->cmbVideoCodec->currentData().toInt())
|
||||
{
|
||||
ui->cmbVideoCodec->setFocus();
|
||||
QMessageBox::information(this, tr("Tips"), tr("DEMO version does not support H265."));
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef DEMO
|
||||
if (AUDIO_CODEC_AAC == ui->cmbAudioCodec->currentData().toInt())
|
||||
{
|
||||
ui->cmbAudioCodec->setFocus();
|
||||
QMessageBox::information(this, tr("Tips"), tr("DEMO version does not support AAC."));
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
saveVideoFlag(video);
|
||||
saveVideoCodec(ui->cmbVideoCodec->currentData().toInt());
|
||||
saveCameraIndex(ui->cmbCamera->currentIndex());
|
||||
saveFrameRate(ui->cmbVideoFps->currentData().toInt());
|
||||
saveVideoBitrate(ui->cmbVideoBps->currentData().toInt());
|
||||
saveResolution(ui->cmbVideoSize->currentData().toSize());
|
||||
saveAudioFlag(audio);
|
||||
saveAudioCodec(ui->cmbAudioCodec->currentData().toInt());
|
||||
saveSampleRate(ui->cmbSampleRate->currentData().toInt());
|
||||
saveChannel(ui->cmbChannel->currentData().toInt());
|
||||
saveAudioBitrate(ui->cmbAudioBps->currentData().toInt());
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user