no message
parent
7eb86f31bd
commit
95cd1c24da
|
@ -115,22 +115,17 @@ void MyCapturer::OnCaptureResult(webrtc::DesktopCapturer::Result result,
|
||||||
std::unique_ptr<webrtc::DesktopFrame> frame) {
|
std::unique_ptr<webrtc::DesktopFrame> frame) {
|
||||||
if (result != webrtc::DesktopCapturer::Result::SUCCESS)
|
if (result != webrtc::DesktopCapturer::Result::SUCCESS)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int width = frame->size().width();
|
int width = frame->size().width();
|
||||||
int height = frame->size().height();
|
int height = frame->size().height();
|
||||||
|
|
||||||
if (!i420_buffer_.get() ||
|
if (!i420_buffer_.get() ||
|
||||||
i420_buffer_->width() * i420_buffer_->height() < width * height) {
|
i420_buffer_->width() * i420_buffer_->height() < width * height) {
|
||||||
i420_buffer_ = webrtc::I420Buffer::Create(width, height);
|
i420_buffer_ = webrtc::I420Buffer::Create(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
libyuv::ConvertToI420(frame->data(), 0, i420_buffer_->MutableDataY(),
|
libyuv::ConvertToI420(frame->data(), 0, i420_buffer_->MutableDataY(),
|
||||||
i420_buffer_->StrideY(), i420_buffer_->MutableDataU(),
|
i420_buffer_->StrideY(), i420_buffer_->MutableDataU(),
|
||||||
i420_buffer_->StrideU(), i420_buffer_->MutableDataV(),
|
i420_buffer_->StrideU(), i420_buffer_->MutableDataV(),
|
||||||
i420_buffer_->StrideV(), 0, 0, width, height, width,
|
i420_buffer_->StrideV(), 0, 0, width, height, width,
|
||||||
height, libyuv::kRotate0, libyuv::FOURCC_ARGB);
|
height, libyuv::kRotate0, libyuv::FOURCC_ARGB);
|
||||||
// RawToBmp(frame->data(),height,width,32,"d://sss.bmp");
|
|
||||||
|
|
||||||
OnFrame(webrtc::VideoFrame(i420_buffer_, 0, 0, webrtc::kVideoRotation_0));
|
OnFrame(webrtc::VideoFrame(i420_buffer_, 0, 0, webrtc::kVideoRotation_0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -150,13 +150,16 @@ int CPlayWidget::SetImgSize(uint32_t width, uint32_t height)
|
||||||
m_nVideoH = height;
|
m_nVideoH = height;
|
||||||
m_nVideoW = width;
|
m_nVideoW = width;
|
||||||
if(mType == TYPE_RGB32){
|
if(mType == TYPE_RGB32){
|
||||||
m_pBufRgb32 = new uint8_t[width * height *8];
|
m_pBufRgb32 = new uint8_t[width * height *4];
|
||||||
}
|
}
|
||||||
if(mType == TYPE_YUV420P){
|
if(mType == TYPE_YUV420P){
|
||||||
m_pBufYuv420p = new uint8_t[width * height *3/2];
|
m_pBufYuv420p = new uint8_t[width * height *3/2];
|
||||||
}
|
}
|
||||||
if(mType == TYPE_I420){
|
if(mType == TYPE_I420){
|
||||||
m_pBufYuv420p = new uint8_t[width * height *3/2];
|
m_pBufYuv420p = new uint8_t[width * height *3/2];
|
||||||
|
memset(m_pBufYuv420p,0x00,width * height );
|
||||||
|
memset(m_pBufYuv420p + width * height ,0xff,width * height/2 );
|
||||||
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,24 +104,6 @@ void InitCustomMetaType(){
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
InitCustomMetaType();
|
InitCustomMetaType();
|
||||||
// const size_t kWidth = 1280;
|
|
||||||
// const size_t kHeight = 720;
|
|
||||||
// const size_t kFps = 30;
|
|
||||||
|
|
||||||
// std::unique_ptr<VcmCapturerTest> capturer;
|
|
||||||
// std::unique_ptr<webrtc::VideoCaptureModule::DeviceInfo> info(
|
|
||||||
// webrtc::VideoCaptureFactory::CreateDeviceInfo());
|
|
||||||
// if (!info) {
|
|
||||||
// RTC_LOG(LERROR) << "CreateDeviceInfo failed";
|
|
||||||
// return -1;
|
|
||||||
// }
|
|
||||||
// int num_devices = info->NumberOfDevices();
|
|
||||||
// for (int i = 0; i < num_devices; ++i) {
|
|
||||||
// capturer.reset(VcmCapturerTest::Create(kWidth, kHeight, kFps, i));
|
|
||||||
// if (capturer) {
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
rtc::WinsockInitializer winsock_init;
|
rtc::WinsockInitializer winsock_init;
|
||||||
rtc::Win32SocketServer w32_ss;
|
rtc::Win32SocketServer w32_ss;
|
||||||
|
|
|
@ -45,6 +45,25 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
connect((WebrtcHanlder*)(mHandler.get()),SIGNAL(OnLocalTrack(webrtc::VideoTrackInterface* )),
|
connect((WebrtcHanlder*)(mHandler.get()),SIGNAL(OnLocalTrack(webrtc::VideoTrackInterface* )),
|
||||||
this,SLOT(on_local_track_add(webrtc::VideoTrackInterface* )));
|
this,SLOT(on_local_track_add(webrtc::VideoTrackInterface* )));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
std::unique_ptr<webrtc::VideoCaptureModule::DeviceInfo> info(
|
||||||
|
webrtc::VideoCaptureFactory::CreateDeviceInfo());
|
||||||
|
if (!info) {
|
||||||
|
RTC_LOG(LERROR) << "CreateDeviceInfo failed";
|
||||||
|
}
|
||||||
|
int num_devices = info->NumberOfDevices();
|
||||||
|
for (int i = 0; i < num_devices; ++i) {
|
||||||
|
char devicename[200];
|
||||||
|
char device_unique[200];
|
||||||
|
char product_unique[200];
|
||||||
|
info->GetDeviceName(i,devicename,200,device_unique,200,product_unique,200);
|
||||||
|
qDebug()<< "device name : "<< devicename<<"unique device: "<<device_unique<<"produce unique: "<<product_unique;
|
||||||
|
webrtc::VideoCaptureCapability p;
|
||||||
|
info->GetCapability(device_unique,0,p);
|
||||||
|
qDebug()<<devicename<<" capability: width"<<p.width << p.height<<int(p.videoType);
|
||||||
|
ui->comboBox->addItem(QString(devicename),device_unique);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
|
@ -319,6 +338,9 @@ void WebrtcHanlder::OnSuccess(webrtc::SessionDescriptionInterface *desc)
|
||||||
if(QString(desc->type().c_str()) == "offer"){
|
if(QString(desc->type().c_str()) == "offer"){
|
||||||
OnOfferSdp(QJsonDocument(addr).toJson());
|
OnOfferSdp(QJsonDocument(addr).toJson());
|
||||||
}
|
}
|
||||||
|
if(QString(desc->type().c_str()) == "answer"){
|
||||||
|
OnOfferSdp(QJsonDocument(addr).toJson());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebrtcHanlder::OnFailure(webrtc::RTCError error)
|
void WebrtcHanlder::OnFailure(webrtc::RTCError error)
|
||||||
|
@ -342,6 +364,7 @@ void MainWindow::signal_conneted()
|
||||||
ui->label_5->setText("信令服务器已连接");
|
ui->label_5->setText("信令服务器已连接");
|
||||||
this->mSignalClient->SendLogin();
|
this->mSignalClient->SendLogin();
|
||||||
ui->label_6->setText(QString("本节点名称: " + mSignalClient->PeerName()));
|
ui->label_6->setText(QString("本节点名称: " + mSignalClient->PeerName()));
|
||||||
|
this->mPeerName = mSignalClient->PeerName();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_pushButton_2_clicked()
|
void MainWindow::on_pushButton_2_clicked()
|
||||||
|
@ -396,7 +419,6 @@ void MainWindow::signal_response(int type,QJsonObject data)
|
||||||
this->mHandler.get()->SetRemoteCandidate(candidate);
|
this->mHandler.get()->SetRemoteCandidate(candidate);
|
||||||
mRemoteName = remote_names;
|
mRemoteName = remote_names;
|
||||||
qDebug()<<"recv candidate"<<candidate;
|
qDebug()<<"recv candidate"<<candidate;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -408,11 +430,17 @@ void MainWindow::itemClicked(QModelIndex index)
|
||||||
qDebug()<<"请先连接信令服务";
|
qDebug()<<"请先连接信令服务";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mHandler->CreateOffer();
|
|
||||||
qDebug()<<mModel->item(index.row())->text();
|
qDebug()<<mModel->item(index.row())->text();
|
||||||
mRemoteName = mModel->item(index.row())->text();
|
mRemoteName = mModel->item(index.row())->text();
|
||||||
|
if(mRemoteName == mPeerName){
|
||||||
|
auto x = new QMessageBox(nullptr);
|
||||||
|
x->setText("无法与自己通信");
|
||||||
|
x->show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
mHandler->SetRemotePeerName(mRemoteName);
|
mHandler->SetRemotePeerName(mRemoteName);
|
||||||
mCalling = true;
|
mCalling = true;
|
||||||
|
mHandler->CreateOffer();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,11 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="lineEdit"/>
|
<widget class="QLineEdit" name="lineEdit">
|
||||||
|
<property name="text">
|
||||||
|
<string>123</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="pushButton_2">
|
<widget class="QPushButton" name="pushButton_2">
|
||||||
|
|
Loading…
Reference in New Issue