美文网首页
ffmpeg # flags &= ~AVSEEK_FL

ffmpeg # flags &= ~AVSEEK_FL

作者: FlyingPenguin | 来源:发表于2018-08-23 17:50 被阅读37次
int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts,
                       int64_t ts, int64_t max_ts, int flags)
{
    if (min_ts > ts || max_ts < ts)
        return -1;
    if (stream_index < -1 || stream_index >= (int)s->nb_streams)
        return AVERROR(EINVAL);

    if (s->seek2any>0)
        flags |= AVSEEK_FLAG_ANY;
    flags &= ~AVSEEK_FLAG_BACKWARD;

...
}

其中有一句,

flags &= ~AVSEEK_FLAG_BACKWARD;

这句是啥意思? 字面分析应该是去掉了AVSEEK_FLAG_BACKWARD属性。

写个小程序验证一下:

#include "stdafx.h"
#include <iostream>
using namespace std;

#define AVSEEK_FLAG_BACKWARD 1 ///< seek backward
#define AVSEEK_FLAG_BYTE     2 ///< seeking based on position in bytes
#define AVSEEK_FLAG_ANY      4 ///< seek to any frame, even non-keyframes
#define AVSEEK_FLAG_FRAME    8 ///< seeking based on frame number


int _tmain(int argc, _TCHAR* argv[])
{
    int flags = AVSEEK_FLAG_BYTE|AVSEEK_FLAG_BACKWARD;
    cout<<"#1 flags:"<<flags<<endl;

    flags &= ~AVSEEK_FLAG_BACKWARD; // remove AVSEEK_FLAG_BACKWARD

    cout<<"#2 flags:"<<flags<<endl;

    getchar();

    return 0;
}

运行结果:


运行结果

可见flags &= ~AVSEEK_FLAG_BACKWARD;确实实现了将flags中的AVSEEK_FLAG_BACKWARD属性去掉的功能

相关文章

网友评论

      本文标题:ffmpeg # flags &= ~AVSEEK_FL

      本文链接:https://www.haomeiwen.com/subject/izpmiftx.html