小编Ash*_*iya的帖子

QGLWidget和硬件加速?

问候所有,

简单地继承QGLWidget并重新实现paintEvent()是否可以利用OpenGL和硬件加速?我创建了一个QPainter并在这个paintEvent()中绘制QImages.

在QGLWidget的paintEvent()方法中发生了什么?它是否将图像(QImage,QPixmap)转换为OpenGL纹理?

它是否使用硬件加速进行图像缩放?

提前谢谢,umanga

opengl qt qt4 qglwidget hardware-acceleration

9
推荐指数
2
解决办法
7454
查看次数

使用libavcodec解码音频并使用libAO播放?

我使用以下代码片段来解码音频文件(使用MP3,WAV,WMV测试).

但是当它播放音频时,它只是给出静态声音和时间崩溃.我在这里做错了什么提示?

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>


extern "C" {
#include "libavutil/mathematics.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include <ao/ao.h>

}

void die(const char *msg)
{
    fprintf(stderr,"%s\n",msg);
    exit(1);
}

int main(int argc, char **argv)
{

    const char* input_filename=argv[1];

    //avcodec_register_all();
    av_register_all();
    //av_ini

    AVFormatContext* container=avformat_alloc_context();
    if(avformat_open_input(&container,input_filename,NULL,NULL)<0){
        die("Could not open file");
    }

    if(av_find_stream_info(container)<0){
        die("Could not find file info");
    }
    av_dump_format(container,0,input_filename,false);

    int stream_id=-1;
    int i;
    for(i=0;i<container->nb_streams;i++){
        if(container->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO){
            stream_id=i;
            break;
        }
    }
    if(stream_id==-1){
        die("Could not find Audio Stream");
    }

    AVDictionary *metadata=container->metadata;

    AVCodecContext *ctx=container->streams[stream_id]->codec;
    AVCodec …
Run Code Online (Sandbox Code Playgroud)

c++ ffmpeg libavcodec libav libavformat

8
推荐指数
1
解决办法
1万
查看次数

以编程方式扩展ElasticBeanStalk环境

如何在运行的应用程序(Spring Boot)中以编程方式添加更多实例(按比例放大)ElasticBeanStalk环境?

我想过使用AWSElasticBeanstalkClient,但找不到任何使用客户端添加实例的方法.

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/elasticbeanstalk/AWSElasticBeanstalkClient.html

任何提示?

我需要这个,因为我的应用程序的设计是每个App节点需要相互通信才能执行一些图像识别任务.

如果使用EBS无法做到这一点,我正在考虑按照下面的提法以编程方式创建EC2,我的问题是如何将我的应用程序部署到新创建的EC2实例.

http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/run-instance.html

java amazon-ec2 amazon-web-services amazon-elastic-beanstalk aws-sdk

8
推荐指数
2
解决办法
326
查看次数

7
推荐指数
3
解决办法
5751
查看次数

将递归算法重构为迭代算法?

我有以下递归算法需要编译到迭代过程. CvSeq是一个树结构.其中contour-> h_next给出了同一级别的下一个节点. contour-> v_next给出下面级别的下一个轮廓.(子节点)

void helperParseCurves(CvSeq* contour, int level) {

    if(contour->h_next != NULL) {
        helperParseCurves(contour->h_next, level);
    }
    if(contour->v_next != NULL) {
        helperParseCurves(contour->v_next, level+1);
    }

    //Process the nodes in contour
    for(int i=0; i<contour->total; i++){        
        CvPoint* p = CV_GET_SEQ_ELEM(CvPoint, contour, i);
        //Paint the point p
    }

}
Run Code Online (Sandbox Code Playgroud)

我想将这个逻辑重构为迭代算法.关于这个的任何提示?

c algorithm recursion

7
推荐指数
1
解决办法
332
查看次数

java:写大文件?

问候,我从数据库中获取大量记录并写入文件.我想知道编写大文件的最佳方法是什么.(1Gb - 10Gb).

目前我正在使用BufferedWriter

BufferedWriter mbrWriter=new BufferedWriter(new FileWriter(memberCSV));
while(done){
 //do writings
}
mbrWriter.close();
Run Code Online (Sandbox Code Playgroud)

java bufferedwriter java-io

6
推荐指数
2
解决办法
1万
查看次数

在此 SQL 查询中,双“at”(@) 标记意味着什么?

我在 MySQL 文档中找不到任何关于此的信息。

SELECT accesion_id, 
       definition 
  FROM accesion_table 
 WHERE search_word @@ ? OFFSET ? LIMIT Const.MAX_DISP_COUNT;
Run Code Online (Sandbox Code Playgroud)

mysql sql

6
推荐指数
1
解决办法
2067
查看次数

MDI模型还是Dock Windows?

在我们开发的QT应用程序中,我们需要显示几个"查看器窗口"(以在XY平面,YX平面,XZ平面和3D中显示数据).

我们希望使用MDI应用程序模型,但后来客户端要求在多个桌面中拖动和查看"查看器窗口"(使用多个监视器).使用MDI窗口模型无法完成此操作,因为我们无法在主应用程序窗口之外移动MDI窗口.

唯一可能的方法是使用Dock窗口,因为它们可以从主应用程序窗口移除并移动到其他桌面,但Dock窗口主要用于工具调色板或实用程序窗口.

(http://doc.qt.nokia.com/4.6/qdockwidget.html#details)

使用Dock窗口满足我们的要求是一个好习惯吗?

qt mdi docking qt4

6
推荐指数
1
解决办法
5162
查看次数

C++带接口的多重继承?

问候所有,

我来自Java背景,我在多重继承方面遇到困难.

我有一个名为IView的接口,它有init()方法.我想派生一个名为PlaneViewer的新类,实现上面的接口并扩展另一个类.(QWidget的).

我的实现如下:

IViwer.h(只有头文件,没有CPP文件):

#ifndef IVIEWER_H_
#define IVIEWER_H_

class IViewer
{
public:
  //IViewer();
  ///virtual
  //~IViewer();
  virtual void init()=0;
};

#endif /* IVIEWER_H_ */
Run Code Online (Sandbox Code Playgroud)

我的派生类.

PlaneViewer.h

#ifndef PLANEVIEWER_H
#define PLANEVIEWER_H

#include <QtGui/QWidget>
#include "ui_planeviewer.h"
#include "IViewer.h"
class PlaneViewer : public QWidget , public IViewer
{
    Q_OBJECT

public:
    PlaneViewer(QWidget *parent = 0);
    ~PlaneViewer();
    void init(); //do I have to define here also ?

private:
    Ui::PlaneViewerClass ui;
};

#endif // PLANEVIEWER_H
Run Code Online (Sandbox Code Playgroud)

PlaneViewer.cpp

#include "planeviewer.h"

PlaneViewer::PlaneViewer(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);
}

PlaneViewer::~PlaneViewer() …
Run Code Online (Sandbox Code Playgroud)

c++ virtual inheritance multiple-inheritance

6
推荐指数
2
解决办法
1万
查看次数

Delta Lake:更新插入内部如何工作?

在我们的数据管道中,我们从数据源中提取 CDC 事件,并将这些更改以 AVRO 格式写入“增量数据”文件夹中。

然后,我们定期运行 Spark 作业,将这些“增量数据”与我们当前版本的“快照表”(ORC 格式)合并,以获得最新版本的上游快照。

在此合并逻辑期间:

1)我们将“增量数据”加载为DataFrame df1

2)将当前的“快照表”加载为DataFrame df2

3) 合并 df1 和 df2 去重复 ID 并获取最新版本的行(使用 update_timestamp 列)

此逻辑将“增量数据”和当前“快照表”的全部数据加载到 Spark 内存中,该内存可能非常巨大,具体取决于数据库。

我注意到在 Delta Lake 中,使用以下代码完成类似的操作:

import io.delta.tables._
import org.apache.spark.sql.functions._

val updatesDF = ...  // define the updates DataFrame[date, eventId, data]

DeltaTable.forPath(spark, "/data/events/")
  .as("events")
  .merge(
    updatesDF.as("updates"),
    "events.eventId = updates.eventId")
  .whenMatched
  .updateExpr(
    Map("data" -> "updates.data"))
  .whenNotMatched
  .insertExpr(
    Map(
      "date" -> "updates.date",
      "eventId" -> "updates.eventId",
      "data" -> "updates.data"))
  .execute()
Run Code Online (Sandbox Code Playgroud)

在这里,“updatesDF”可以被认为是来自 CDC 源的“增量数据”。

我的问题

1)合并/更新插入内部如何工作?它是否将整个“updatedDF”和“/data/events/”加载到 Spark 内存中? …

apache-spark databricks delta-lake

6
推荐指数
1
解决办法
3351
查看次数