我正在从我的网络中的其他 PC 接收 2 个带有时间戳的流(一个音频和一个视频)。我可以毫无问题地将视频和音频录制到单独的文件(mp4 和 aac)中。现在我试图将 2 个流放在一个 mp4 文件中,我创建了 2 个队列,一个用于音频数据包,另一个用于视频数据包,并尝试像这样同步它们:
void * muxer(void * param) {
QPair<AVPacket, unsigned long long int> completePacketAudio;
QPair<AVPacket, unsigned long long int> completePacketVideo;
AVPacket pkt;
int vts = 0;
int ats = 0;
while(threadMuxRun) {
contextMutex.lock();
if(audioPacketQueue.isEmpty() && videoPacketQueue.isEmpty()) {
contextMutex.unlock();
Sleep(0);
continue;
} else if(audioPacketQueue.isEmpty()) {
completePacketVideo = videoPacketQueue.head();
pkt = videoPacketQueue.dequeue().first;
pkt.pts = vts;
vts++;
std::cout << "video ts:" << pkt.pts << std::endl;
av_packet_rescale_ts(&pkt, video_st.st->time_base, video_st.enc->time_base);
} else if(videoPacketQueue.isEmpty()) { …Run Code Online (Sandbox Code Playgroud) 我需要在QTreeView上更改所选项目的背景颜色.我已经尝试过使用此示例和此 Stack Overflow问题.
应用于:: branch子控件的样式工作正常,但:: item子控件中的所有命令都不起作用.
QSS应用于QTreeView:
QTreeView {
show-decoration-selected: 1;
}
QTreeView::item {
border: 1px solid #d9d9d9;
border-top-color: transparent;
border-bottom-color: transparent;
background: rgb(255, 0,0);
}
QTreeView::item:hover {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1);
border: 1px solid #bfcde4;
}
QTreeView::item:selected {
border: 1px solid #567dbc;
}
QTreeView::item:selected:active{
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6ea1f1, stop: 1 #567dbc);
}
QTreeView::item:selected:!active {
background: …Run Code Online (Sandbox Code Playgroud)