小编Gan*_*esh的帖子

wchar_t valgrind issue - 大小为8的读取无效

我无法弄清楚Valgrind Invalid read of size 8在使用时打印的原因wchar_t.我正在使用valgrind-3.7.0和gcc 4.7.2运行64位Ubuntu(3.5.0-25)系统.

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

int main()
{
    // const wchar_t *text = L"This is a t"; // no Valgrind error
    // const wchar_t *text = L"This is a teeeeeeee"; // no Valgrind error
    const wchar_t *text = L"This is a test"; // Valgrind ERRROR

    wchar_t *new_text = NULL;

    new_text = (wchar_t*) malloc( (wcslen(text) + 1) * sizeof(wchar_t));
    wcsncpy(new_text, text, wcslen(text));
    new_text[wcslen(text)] = L'\0';

    printf("new_text: %ls\n", new_text); …
Run Code Online (Sandbox Code Playgroud)

c valgrind wchar-t

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

什么时候变量放在`.rdata`部分而不是`.text`部分?

我试图理解.rdatasection vs .textsection 的含义.我正在尝试一个简单的程序,如下所示

int main()
{
    const int a = 10;
    printf("%d\n", a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我构建并转储map文件gcc -o a.out sample.c -Wl,Map,test.map并搜索时sample.o,我发现以下分配

.text          0x0040138c       0x34 sample.o
.data          0x00402000        0x0 sample.o
.rdata         0x00403064        0x8 sample.o
.eh_frame      0x00404060       0x38 sample.o
.bss           0x00405020        0x0 sample.o
Run Code Online (Sandbox Code Playgroud)

现在,如果我稍微修改我的程序以使a全局变量为

const int a = 10;
int main()
{
     printf("%d\n", a);
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

通过重复上述相同的步骤,我发现分配如下

.text          0x0040138c       0x2c sample.o
.data          0x00402000        0x0 sample.o
.rdata         0x00403064        0xc sample.o …
Run Code Online (Sandbox Code Playgroud)

c linker gcc

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

从Mediacodec同步解码的音频和视频数据

我想用MediaExtractorMediaCodecAPI 编写一个简单的音频/视频播放器.

我能够解码和渲染audiovideo.但是,我错过了audio - video同步.

我找不到任何API来控制audio和之间的同步video.有人可以告诉我,如何同步解码audiovideo数据?

android android-mediaplayer

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

为什么tinyALSA优于libasound?

在最新的Android版本中,该AOSP版本通常附带tinyALSAtinyCompress.在这个问题中,Simon提到所有Nexus设备都应该支持tinyALSA.

我的问题是为什么android没有集成libasound哪个具有音频子系统所需的所有功能tinyALSA?是否主要是由于source.android.com网站中指出的许可问题?

audio android alsa

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

访问StageFright.so直接从Android中的JNIlayer解码H.264流

有没有办法libstagefright.so直接H.264JNIAndroid 2.3或更高版本的层上解码流?

h.264 stagefright

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

Phonegap插件活动导入布局

我正在开发一个具有Activity的Cordova插件,我需要从此活动访问应用程序R.layout,以便我可以调用setContentView.

我目前正在做这个import com.example.hello.R,然后在onCreate method I callsetContentView(R.layout.mysurfaceview)`:

问题是我的插件只有在应用程序名称有效时才能工作com.example.hello,但我需要在不同的应用程序上安装我的插件而无需手动进行导入.

有没有办法进行通用导入,类似import <appName>.R或其他任何方式?

android phonegap-plugins cordova

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

MediaPlayer.getCurrentPosition()返回2048的倍数而不是当前位置

我的应用程序使用MediaPlayer该类播放一些声音样本,我有一个Seekbar来跟踪播放的进度.在我的所有测试手机上,只有1,一切正常.但是,在索尼Xperia上,我遇到了一个跟踪进度的奇怪错误.音频播放效果很好,但是当我尝试时MediaPlayer.getCurrentPosition(),我只能获得2048的增量.

例如,在LG G2(运行Android 4.4.2)上,我看到如下值:

0, 213, 279, 348, 416, ... 
Run Code Online (Sandbox Code Playgroud)

这允许我相应地更新SeekBar.但是,在索尼Xperia(也运行Android 4.4.2)上,我总是得到这些值:

0, 0, 0, ... , 2048, 2048, 2048, ... , 4096, 4096, ... , 6144, 6144, ...
Run Code Online (Sandbox Code Playgroud)

音频播放工作正常,但我的进度条以2秒的增量跳跃.我宁愿不必实现另一个计时系统,因为现有的架构适用于除Xperia之外的所有架构.由于G2在4.4.2上运行良好,我想我可以排除Android版本的问题.

有人在Sony Xperia或其他设备上看到过这个问题吗?这个问题很容易解决吗?

android android-mediaplayer

5
推荐指数
0
解决办法
359
查看次数

从Python调用PARI/GP

我想从Python 调用PARI/GP来计算我定义的nextprime(n)不同ns 的函数.不幸的是我无法安装pari-python所以我想我只是os.system在Python中使用命令行来调用它.但是,我在手册页中看不到如何让PARI/GP以非交互模式运行.有没有办法实现这个目标?

python linux pari-gp

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

如何创建stagefright插件

我的任务涉及将视频解码器集成到Stagefright(Android的多媒体框架)中.我搜索并发现以下有关为以下内容创建新插件的信息Stagefright:

要添加对新格式的支持,您需要:

  • 如果尚不支持容器,请开发一个新的Extractor类.

  • 开发一个新的Decoder类,它实现了StageFright核心读取数据所需的接口.

  • 关联的MIME类型的文件阅读到您的新解码器OMXCodec.cpp文件时,在kDecoderInfo数组中.

    static const CodecInfo kDecoderInfo[] = {  
        {MEDIA_MIMETYPE_AUDIO_AAC, "OMX.TI.AAC.decode"},
        {MEDIA_MIMETYPE_AUDIO_AAC, "AACDecoder"},
    };
Run Code Online (Sandbox Code Playgroud)

以上数据是我在网上可以找到的.现在我有一个简单的应用程序,它将文件作为输入并使用Android中的本机API在屏幕上呈现它.任何人都可以告诉我如何进一步.从这里OMXCodec.cpp和其他人的所在地和我的项目目录应该从哪里开始.请提供相同的解决方案.提前致谢.

android android-ndk android-framework stagefright android-mediaplayer

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

Android媒体播放器:如何收听媒体播放器事件?

大家好,我正在按照http://developer.android.com/guide/topics/media/mediaplayer.html的说明进行操作MediaPlayer,我想知道如何才能收听播放器中的事件,例如播放,暂停,停止等等...

该页面显示了如何仅监听onPreparedListener,因此我想知道是否存在播放器其他状态的事件,或者我将如何处理播放器的不同状态?

谢谢!

mp3 android android-mediaplayer android-activity

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

使用Android MediaPlayer进行无缝播放

我正在尝试连续播放音频,没有任何差距.我试过了,

mediaplayer.setLooping(true);
Run Code Online (Sandbox Code Playgroud)

但它在重复时间之间产生了差距.试过这个,

mediaplayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()  {
    @Override
    public void onCompletion(MediaPlayer mp)
    {
        mediaplayer.start();
    }
});
Run Code Online (Sandbox Code Playgroud)

它也给出了一个差距.我试过不同的音频格式.但这两种方式都不适合我.在android中还有其他方法吗?

android media-player

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

Android总是使用"tinyALSA"吗?

今天我发现,我可以写一个libaudio.so并把它放在我的Android文件夹/ system/lib /中进行自定义音频处理.

我的设备,Android 4.2的Galaxy Nexus正在使用tinyAlsa并拥有libtinyalsa.so.所以,我想我可以使用这个项目(从父亲tinyAlsa),以建立一个自定义libaudio.so:https://github.com/broonie/tinyhardware

但是:有没有人知道,如果它tinyAlsa是一个三星或omap特殊的东西,或有任何更新的Android版本的那种类型的音频处理?那么,我的定制是否libaudio.so可以在其他手机上移植?

如果没有,有没有人知道我在哪里可以找到libaudio.so默认工作ALSA?我知道来自Android市场的"AlsaMixer"使用它,但我会自己编译它.

亲切的问候和感谢提前.

audio android

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