Kernel_Lover

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover  发布于  2018-02-02 11:01:24
采纳率 0%
17个问答
2792

关于私有变量 m_videoTrack 自动变0的问题

 
本帖最后由 Kernel_Lover 于 2018-2-2 11:04 编辑

最近在网上下载了使用 mp4v2 将 h264 和 acc 文件封装为 mp4 文件,由于源代码是 windows 下的,做了一些小的修改,在 linux 下运行出现了问题:

FindTrackIndex: Track id 0 doesn't exist (src/mp4file.cpp,2938)

经过打印发现,是因为 track id 为0的问题。对于视频的 track id ,对应的是私有成员 m_videoTrack,m_videoTrack  成员在 class MP4Encoder 中定义。


class MP4Encoder 的声明:

class MP4Encoder

{

public:

        MP4Encoder(void);

        ~MP4Encoder(void);

        MP4EncoderResult MP4CreateFile(const char *sFileName,

                unsigned uRecordTime = DEFAULT_RECORD_TIME);

        MP4EncoderResult MP4AddH264Track(const uint8_t *sData, int nSize,

                int nWidth, int nHeight, int nFrameRate = 25);

        .........................

private:

        .....................

        MP4TrackId m_videoTrack, m_audioTrack;

        ....................
};


设置 m_videoTrack :

/* AddH264Track -> MP4Encoder::MP4AddH264Track */
MP4EncoderResult MP4Encoder::MP4AddH264Track(const uint8_t *sData, int nSize,

        int nWidth, int nHeight, int nFrameRate/* = 25 */)
{
        ....................
        /* 设置 m_videoTrack 为1 */
        m_videoTrack = MP4AddH264VideoTrack(m_hFile, VIDEO_TIME_SCALE,
        ..........................
        /* 打印 m_videoTrack  的大小,大小为1 */
        printf("m_videoTrack = %d in the end of MP4AddH264Track function\n", m_videoTrack);


        return MP4ENCODER_ENONE;

}

而在其它函数中打印 m_videoTrack 的大小,发现  m_videoTrack 的大小为0,但是代码的其它地方也没有对 m_videoTrack 进行重新设置,m_videoTrack 的大小不知道为什么就变成了0。我现在猜可能是 m_videoTrack 是私有变量,作用域可能有问题,请问一下,这可能是那里出现了问题?谢谢!


我来回答
回答1个
时间排序
认可量排序

qn1516784304

0个粉丝

5

问答

0

专栏

0

资料

qn1516784304 2018-06-20 16:19:07
认可0
遇到同样的问题了,请问楼主解决了吗?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区