android4.2 WifiDisplay远程显示修改为保存文件

media\libstagefright\wifi-display\source\

编码那一块

\pizza\frameworks\av\media\libstagefright\wifi-display\source\Converter.h

// Utility class that receives media access units and converts them into
// media access unit of a different format.
// Right now this‘ll convert raw video into H.264 and raw audio into AAC.
struct Converter : public AHandler {
    Converter(
            const sp<AMessage> &notify,
            const sp<ALooper> &codecLooper,
            const sp<AMessage> &format,
            bool usePCMAudio,
            bool isRecordingScreen);

bool mIsRecordingScreen;

pizza\frameworks\av\media\libstagefright\wifi-display\source\Converter.cpp

Converter::Converter(
        const sp<AMessage> &notify,
        const sp<ALooper> &codecLooper,
        const sp<AMessage> &format,
        bool usePCMAudio,
        bool isRecordingScreen)
    : mInitCheck(NO_INIT),
      mNotify(notify),
      mCodecLooper(codecLooper),
      mInputFormat(format),
      mIsVideo(false),
      mIsPCMAudio(usePCMAudio),
      mNeedToManuallyPrependSPSPPS(false),
      mDoMoreWorkPending(false)
#if ENABLE_SILENCE_DETECTION
      ,mFirstSilentFrameUs(-1ll)
      ,mInSilentMode(false)
#endif
    {
    AString mime;
    CHECK(mInputFormat->findString("mime", &mime));
    mIsRecordingScreen = isRecordingScreen;
    if (!strncasecmp("video/", mime.c_str(), 6)) {
        mIsVideo = true;
    }

CHECK(!usePCMAudio || !mIsVideo);

mInitCheck = initEncoder();

if (mInitCheck != OK) {
        if (mEncoder != NULL) {
            mEncoder->release();
            mEncoder.clear();
        }
    }
}

void Converter::shutdownAsync() {
    ALOGV("shutdown");
    if(!mIsRecordingScreen)
    {
         (new AMessage(kWhatShutdown, id()))->post();
         return;
    }

#if 1 //{     
    if (mEncoder != NULL) {
          mEncoder->release();
          mEncoder.clear();
    }
#endif //}       
}

pizza\frameworks\av\media\libstagefright\wifi-display\source\MediaPuller.cpp

void MediaPuller::onMessageReceived(const sp<AMessage> &msg) {
    switch (msg->what()) {
        case kWhatStart:
        {
            status_t err;
            if (mIsAudio) {
                // This atrocity causes AudioSource to deliver absolute
                // systemTime() based timestamps (off by 1 us).
                sp<MetaData> params = new MetaData;
                params->setInt64(kKeyTime, 1ll);
                err = mSource->start(params.get());
            } else {
                sp<MetaData> params = new MetaData;

// 是不是将关键帧设置了只有三个
                 params->setInt32(kKeyNumBuffers,3 );
                err = mSource->start(params.get());
            }

pizza\frameworks\av\media\libstagefright\wifi-display\source\PlaybackSession.h

时间: 2024-10-06 20:48:42

android4.2 WifiDisplay远程显示修改为保存文件的相关文章

Linux下文件重命名、创建、删除、修改及保存文件

一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户. 格式mv [options] 源文件或目录 目标文件或目录.主要参数[options]-i:交互方式操作.如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件. -f:禁止交互操作.mv操作要覆盖某个已有的目标文件时不给任何指示,指定

内存映射文件 修改以及保存文件

/**************************************************************** // Function : 内存映射文件进行文件同步操作的例子,转载请注明出处 // Author : Lthis // Create : 2015-2-1 11:07:50 // Checked : Lthis 2015-2-1 ****************************************************************/ #i

phpstorm取消自动保存,修改未保存的文件显示*星号

phpstorm会自动保存用户修改的代码,而且对应修改过的文件没有*号显示,这对于用习惯了手动保存的用户来说很不习惯,如何通过设置把它改回来呢?1.取消自动保存进入 File -> Settings ->Appearance->System Settings,取消下面两选项的勾选:Save files on frame deactivationSave files automatically if application is idle for xx sec. 2.星星标记进入 File

以流方式读写文件:文件菜单打开一个文件,文件内容显示在RichTexBox中,执行复制、剪切、粘贴后,通过文件菜单可以保存修改后的文件。

MainWindow.xaml文件 1 <Window 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:

远程桌面修改当前登陆密码

有时候我们需要远程桌面去修改登陆密码.但是在远程桌面的时候无法通过Ctrl+Alt+Del来显示修改密码页面.那我们怎么修改密码哪?其实我们很简单的就能把改页面调出.如图: 我们把远程桌面全屏,输入Ctrl+Alt+End即可!

[moka同学摘录]iptables防火墙规则的添加、删除、修改、保存

文章来源:http://www.splaybow.com/post/iptables-rule-add-delete-modify-save.html 本文介绍iptables这个Linux下最强大的防火墙工具,包括配置iptables三个链条的默认规则.添加iptables规则.修改规则.删除规则等. 一.查看规则集 iptables --list -n // 加一个-n以数字形式显示IP和端口,看起来更舒服 二.配置默认规则 iptables -P INPUT DROP  // 不允许进  

关于discuz上传图片显示附件无法保存问题。

搭建bbs和blog两个虚拟主机,blog上传图片正常,但是bbs上方传图片显示"附件无法保存". 处理方法: 1. 查看图片保存目录的所属用户及权限,如果有必要可以改为777. 2. 如果第一步无法解决,那么可以进入bbs后台,选择工具,更新缓存,然后刷新页面. 以上方法一般可以解决,但是具体情况具体分析.

win8不通过新打开窗口进行打开和保存文件,点击即显示文本内容,点击即保存文件

前面的一篇博客讲到通过打开新窗口进行打开和保存文件,这一篇则重点介绍怎样一步到位来进行打开和保存文件(这里还以.txt文本文件为例). 我们要打开.txt文本文件,无非是想要里面的文本内容,并且把其显示到页面里罢了,那我们能不能直接点击按钮就让文件的内容自动显示到页面上............ 而不需要经过打开新窗口这一步骤呢 同样,我们点击保存按钮,能不能就直接给文件命名为自己想要的名称,而且直接保存到自己想要的位置或者文件里........ 而不经过打开新窗口定位某一个具体的文件夹下这一步骤

android4.4 webview chromium显示网页的chromium内核结构

android4.4 webview chromium是单进程的,图中所有组件都运行在Browser进程中. 按从上而下的顺序介绍这张图中与显示网页相关的chromium内核结构. 1.AwContents->WebContentsImpl AwContnents的创建过程如下图: AwContents是WebView接口的主要实现类. native层的AwContents包含chromium内核browser组件中的类WebContents. WebContents是chromium内核bro