小编Luc*_*cas的帖子

mmap物理上连续的内存

我可能在这里有一些误解,所以请耐心等待.

我写了一个从相机中捕捉图像的程序.mmap正如我在V4L2文档中找到的那样,我在相机和我的应用程序之间共享内存.这非常有效.现在我的处理器(它是TI的DM3730)也有一个DSP.我想使用DSP,但它需要物理连续的内存.TI提供分配内存的驱动程序.我的问题是,现在我失去了很多时间将mmap的内存复制到物理连续的内存中.有没有办法告诉mmap它本身不应该分配内存,但我告诉mmap使用我分配的内存.

让你知道我在做什么(当然有很多代码缺失,但我非常接近V4L2文档.我希望这足以理解我的问题):

//reserve physical contiguous memory
dsp_buffer      = Memory_alloc(buffer_length, &myParams); 

...
//reserve memory for buffer, but not contiguous
buffers[n_buffers].start =
     mmap (NULL ,                    /* start anywhere */
     buf.length,
     PROT_READ | PROT_WRITE ,  /* required */                               
     MAP_SHARED ,              /* recommended */
     fd, buf.m.offset);
Run Code Online (Sandbox Code Playgroud)

之后,每当帧准备就绪时,我将内存从非连续内存复制到连续内存中.

...
//wait until frame is ready in memory
r = select (fd + 1, &fds, NULL, NULL, &tv); 
...
//copy the memory over to the physically contiguous memory
memcpy(dsp_buffer,buffers[buf.index].start,size); 
... …
Run Code Online (Sandbox Code Playgroud)

c linux memory shared-memory v4l2

10
推荐指数
1
解决办法
3150
查看次数

ffmpeg 输出管道到命名的 Windows 管道

这个问题与我之前的问题有关:Converting raw frames into webm live stream

我想通过管道将视频传输到 ffmpeg 并通过另一个管道将其读回,但我无法将 的输出通过管道ffmpeg.exe传输到 Windows 上的命名管道。

我在 C# 中对管道的定义:

NamedPipeServerStream p_to_ffmpeg;
NamedPipeServerStream p_from_ffmpeg;
p_to_ffmpeg = new NamedPipeServerStream("to_ffmpeg", PipeDirection.Out, 1, PipeTransmissionMode.Byte);
p_from_ffmpeg = new NamedPipeServerStream("from_ffmpeg", PipeDirection.In, 1, PipeTransmissionMode.Byte);
Run Code Online (Sandbox Code Playgroud)

然后我ffmpeg.exe在一个单独的过程中开始使用以下选项:-f rawvideo -vcodec rawvideo -video_size 656x492 -r 10 -pix_fmt rgb24 -i \\.\pipe\to_ffmpeg -c:v libvpx -pass 1 -f webm \\.\pipe\from_ffmpeg

ffmpeg.exe 拒绝写入管道并出现以下错误: File '\\.\pipe\from_ffmpeg' already exists. Overwrite ? [y/N]

当我用文件名替换“输出管道”时,它的作用就像魅力: -f rawvideo -vcodec rawvideo -video_size 656x492 -r 10 -pix_fmt rgb24 -i …

c# windows ffmpeg pipe named-pipes

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

C++和C中括号的含义

我刚刚在C++中遇到了一个令人讨厌的错误.所以我有一个寄存器和值列表,它们包含在一个结构中,然后这些结构在一个数组中初始化.但后来我不小心输了()而不是{}.这是一些测试代码:

#include <stdio.h>

struct reg_val {
        unsigned reg;
        unsigned val;
};

struct reg_val faulty_array[] = { 
        {0x5001, 0xff},
        {0x5580, 0x01},
        (0x5580, 0x02), //<- THIS LINE IS THE PROBLEM
        (0x5589, 0x00), //<- AND THIS LINE
};

struct reg_val good_array[] = { 
        {0x5001, 0xff}, 
        {0x5580, 0x01}, 
        {0x5580, 0x02},
        {0x5589, 0x00},
};

int main()
{
        unsigned i;
        unsigned faulty_size = sizeof(faulty_array) / sizeof(struct reg_val);
        printf("Size of faulty array: %d\n", faulty_size);

        for (i = 0; i < faulty_size; ++i) { …
Run Code Online (Sandbox Code Playgroud)

c c++

5
推荐指数
1
解决办法
258
查看次数

如何在c中插入sqlite3中的任何字符串

我必须在sqlite数据库中插入一个字符串我的命令..

Err=sqlite_exec(DB, "create table tbl5(TEXT varchar(100));", xCallback, (void*)"First Test", &ErrMsg);

Err=sqlite_exec(DB, "insert into tbl5 values  ('some string');", xCallback, (void*)"First Test", &ErrMsg); 
Run Code Online (Sandbox Code Playgroud)

工作正常,但当我想把s="some string"ie

Err=sqlite_exec(DB, "insert into tbl5 values  (s);", xCallback, (void*)"First Test", &ErrMsg); 
Run Code Online (Sandbox Code Playgroud)

那么这是不行的所以如何添加变量然后它是不工作所以如何在sqlite数据库中插入变量谢谢你

c sqlite

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

坚持官方Django教程

我刚刚开始学习Python,并开始研究Django.所以我从教程中复制了这段代码:

    # Create your models here.
class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __unicode__(self):
        return self.question
    def was_published_today(self):
        return self.pub_date.date() == datetime.date.today()

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()
    def ___unicode__(self):
        return self.choice   #shouldn't this return the choice
Run Code Online (Sandbox Code Playgroud)

当我在shell中玩它时,我只是得到了Poll对象的"问题",但由于某种原因它不会返回Choice对象的"选择".我没有看到差异.我在shell上的输出如下所示:

>>> Poll.objects.all()
[<Poll: What is up?>]
>>> Choice.objects.all()
[<Choice: Choice object>, <Choice: Choice object>, <Choice: Choice object>]
>>>
Run Code Online (Sandbox Code Playgroud)

我期待Choice对象返回"Choice object"之外的其他内容.有没有人知道我失败的地方和我应该注意什么?

编辑:让我觉得自己像个白痴的方式.是的,三个下划线是问题所在.我现在看了大约一个小时.

python django

3
推荐指数
1
解决办法
512
查看次数

如何将数据保存为给定格式的文本文件?

我想将矩阵保存到文本文件中,所以我可以通过其他程序读取它.现在我使用:

save('output.txt', 'A','-ascii');
Run Code Online (Sandbox Code Playgroud)

但这会将我的文件保存为

6.7206983e+000  2.5896414e-001
6.5710723e+000  4.9800797e-00
6.3466334e+000  6.9721116e-001
5.9975062e+000  1.3346614e+000
6.0224439e+000  1.8127490e+000
6.3466334e+000  2.0517928e+000
6.3965087e+000  1.9721116e+000
Run Code Online (Sandbox Code Playgroud)

但我想让他们在没有"电子记谱法"的情况下保存,而不是所有的数字.是否有捷径可寻?

编辑:谢谢!这很好用.抱歉,我认为我使用回滚搞砸了你的编辑.

file-io matlab text-files number-formatting

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

为什么我不能在Latex中显示重音?

只要我在文本中使用重音符号,它就不再起作用了.它报告错误:

! Undefined control sequence.
<argument> R\UTF 
                 {00E9}seau Ethernet
l.88 \section{R\UTF{00E9}seau Ethernet}

? 
Run Code Online (Sandbox Code Playgroud)

为了解释输出,我试图\section{Réseau Ethernet}在那一行编译.

我认为这与编码有关.有人可以告诉我应该在哪里解决这个问题吗?我使用TeXShop和MacOs X.我应该提供任何其他信息吗?

编辑:我认为实际问题似乎与此警告有关:

Package frenchb.ldf Warning: The definition of \@makecaption has been changed,
(frenchb.ldf)                frenchb will NOT customize it;
(frenchb.ldf)                reported on input line 83.
Run Code Online (Sandbox Code Playgroud)

因为我已经用过了

\usepackage[french]{babel}
\usepackage[T1]{fontenc}
Run Code Online (Sandbox Code Playgroud)

latex utf-8

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

如何从Perl bignum中获取数字?

我在Perl中有一个非常大的数字.我用"bignum".如何从这个大数字中提取单个数字.例如,如果我有一个这样的数字以及从最后得到第三个数字的内容:

1029384710985234058763045203948520945862986209845729034856

- > 8

perl bignum

3
推荐指数
2
解决办法
476
查看次数

如何在MATLAB gui中将I复选框设置为true?

我需要在创建gui时默认选中一个复选框.如何在MATLAB中完成?我没有运气地看着uicontrol检查员.

matlab user-interface

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

如何推出一个供其他人使用的Matlab应用程序?

我用gui编写了一个MATLAB脚本,我也想让我的同事使用它.现在,我总是启动gui-builder并运行程序.如何将它打包在一起以便于使用,最好只有一个文件左右.还有一个perl脚本被称为程序外.它只需要适用于Windows,如果这是相关的.

编辑:他们并不都有MATLAB.但除此之外,我认为我做错了什么.如果我双击脚本,gui将无法启动.如果我双击.fig文件,它将显示gui,但是当我想使用它时会给我一个错误.它只有当我打开GUI构建器对我的作品,则GUI构建器中打开.FIG文件,然后从那里运行该脚本.

matlab

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