问题列表 - 第3152页

在不考虑标题的情况下计算音频文件的校验和

我想以编程方式创建音频文件的SHA1校验和(MP3,Ogg Vorbis,Flac).要求是即使标题(例如ID3)改变,校验和也应该是稳定的.
注意:音频文件没有CRC

这是我现在尝试的:

1)使用Perl和MPEG :: Audio :: Frame读取+散列所有MPEG帧

my $sha1 = Digest::SHA1->new;
while (my $frame = MPEG::Audio::Frame->read(\*FH)) {
    $sha1->add($frame->content());
}
Run Code Online (Sandbox Code Playgroud)

2)使用Python和libmad(pymad)解码+散列所有MPEG帧

mf = mad.MadFile(path)
sha1 = hashlib.sha1()

while 1:
    buf = mf.read()
    if (buf is None):
        break
    sha1.update(buf)
Run Code Online (Sandbox Code Playgroud)

3)使用mp3cat

> mp3cat - - < file.mp3 | sha1sum
Run Code Online (Sandbox Code Playgroud)

但是,这些方法都没有提供稳定的校验和.也就是说,在某些情况下,在使用picard重新归档文件后,校验和发生了变化.

是否有任何图书馆已经提供了我想要的东西?
我不关心编程语言......

更新: 我进一步调试了案例.libmad校验和不一致似乎发生在libmad获得一些解码错误的情况下,例如"Huffman数据溢出(0x0238)".因为这确实发生在许多mp3文件上,我不确定它是否真的表明文件损坏...

audio checksum file

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

坚持迭代器的迭代器实现

我必须实现一个自制的Trie,我被困在Iterator部分.我似乎无法弄清楚trie的增量方法.

我希望有人能帮助我解决问题.

这是Iterator的代码:

template <typename T> class Trie<T>::IteratorPrefixe{
friend class Trie<T>;
public:
    IteratorPrefixe() : tree(NULL), currentNode(NULL), currentKey("") {};
    pair<string, T*> operator*() {return make_pair(currentKey, currentNode -> element);} ;
    IteratorPrefixe operator++()throw(runtime_error);
    void operator=(IteratorPrefixe iter) {tree = iter.tree; currentNode = iter.currentNode; currentKey = iter.currentKey;};
    bool operator==(IteratorPrefixe iter) {return tree == iter.tree && currentNode == iter.currentNode;};
    bool operator!=(IteratorPrefixe iter) {return tree != iter.tree || currentNode != iter.currentNode;};
private:
    Trie<T> * tree;
    Trie<T> * currentNode;
    string currentKey;
};
Run Code Online (Sandbox Code Playgroud)

这是我的特里:

template <typename T> class Trie { …
Run Code Online (Sandbox Code Playgroud)

c++ iterator trie

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

关注/阅读大型邮件列表的最佳做法?

你可能很多地成为各种邮件列表的订阅者,有些人比其他人更新.

  • 遵循这些列表的所有信息的最佳做法是什么?
  • 您曾经用过的最好的客户是什么?

我敢肯定,我不是唯一一个试图通过这种嘈杂的通信方式获得最佳信号的人:)

mailing-list mailing

12
推荐指数
1
解决办法
3773
查看次数

Web服务与WCF服务

他们之间有什么区别?

我什么时候选择一个而不是另一个?

wcf web-services

109
推荐指数
5
解决办法
13万
查看次数

记录梳理算法

我们得到这些包含16字节代码的~50GB数据文件,我想找到任何时间的1/2%或更多的代码.有什么方法可以一次性通过数据吗?

编辑:有大量代码 - 每个代码都可能不同.

EPILOGUE:我选择了Darius Bacon作为最佳答案,因为我认为最好的算法是对他所关联的多数元素的修改.大多数算法应该是可修改的,只能使用少量的内存 - 比如201代码,我认为会得到1/2%.基本上你只需要在流中计算最多201个不同的代码.一旦找到201个不同的代码,就会丢弃每个代码中的一个(从计数器中扣除1,忘记任何变为0的代码).最后,你最多下降了N/201次,因此任何出现次数超过的代码仍然存在.

但这是一个两遍算法,而不是一个.你需要第二次通过计算候选人的数量.实际上很容易看出,这个问题的任何解决方案都必须使用至少2次传递(你加载的第一批元素可能都不同,其中一个代码最终可能只有1/2%)

谢谢您的帮助!

algorithm

14
推荐指数
1
解决办法
5170
查看次数

什么是连接可能包含空值的人名的最短TSQL

3个字段:FirstName,MiddleName,LastName

任何字段都可以为null,但我不想要额外的空格.格式应为"First Middle Last","First Last","Last"等.

sql t-sql sql-server

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

jQuery:创建一个圆形滑块

你可能以前看过JavaScript滑块:

http://dev.jquery.com/view/tags/ui/1.5b2/demos/ui.slider.html

我想象的是一个圆形滑块.它将包含圆圈上一个点上的可拖动按钮 - 该按钮可以沿着环的任何位置拖动.该值取决于按钮的位置(想想时钟).

javascript jquery jquery-ui slider draggable

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

数据库索引:只选择!

美好的一天,

我有大约4GB的数据,在大约10个不同的表中分开.每个表都有很多列,每列可以是查询中的搜索条件.我根本不是DBA,我对索引知之甚少,但我想尽可能加快搜索速度.重要的是,任何时候都不会有任何更新,插入或删除(表格每4个月填充一次).是否适合在每一列上创建索引?记住:没有插入,更新或删除,只选择!另外,如果我可以将所有这些列整数而不是varchar,我会在速度上有所不同吗?

非常感谢你!

database sql-server indexing sql-server-2000

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

创建Eclipse"分发"?

在为开发团队创建自定义Eclipse分发的上下文中.

我如何构建包含一组特定插件的自定义Eclipse发行版?难道还需要添加一种更新站点来放置自定义eclipse会更新的插件的特定版本吗?

eclipse distribution

11
推荐指数
2
解决办法
8098
查看次数

使用Content提交页面有什么问题:application/xhtml + xml

从最近开始,我的一些新网页(XHTML 1.1)被设置为执行请求标头的正则表达式,Accept并在用户代理接受XML(Firefox和Safari do)时发送正确的HTTP响应标头.

IE(或任何其他不接受它的浏览器)只会获得普通text/html内容类型.

谷歌机器人(或任何其他搜索机器人)会有这个问题吗?我看过的方法有什么负面影响吗?你认为这个标头嗅探器会对性能有多大影响吗?

xhtml http-headers

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