美文网首页
ffmpeg ---- avformat_seek_file;m

ffmpeg ---- avformat_seek_file;m

作者: wolfaherd | 来源:发表于2020-10-09 14:45 被阅读0次

当avformat_seek_file的min_ts传入的是INT64_MIN时,该函数执行结果返回-1。
int64_t target_ts = 0;
avformat_seek_file(is->ic, -1, INT64_MIN, target_ts, INT64_MAX, 0);

解决方案

INT64_MIN -> INT32_MIN。
在我的理解里seek_target应该是一个非负数,所以min_ts完全没有必要设置成一个负数。

avformat_seek_file的头文件说明如下

/**
 * Seek to timestamp ts.
 * Seeking will be done so that the point from which all active streams
 * can be presented successfully will be closest to ts and within min/max_ts.
 * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
 *
 * If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and
 * are the file position (this may not be supported by all demuxers).
 * If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames
 * in the stream with stream_index (this may not be supported by all demuxers).
 * Otherwise all timestamps are in units of the stream selected by stream_index
 * or if stream_index is -1, in AV_TIME_BASE units.
 * If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as
 * keyframes (this may not be supported by all demuxers).
 * If flags contain AVSEEK_FLAG_BACKWARD, it is ignored.
 *
 * @param s media file handle
 * @param stream_index index of the stream which is used as time base reference
 * @param min_ts smallest acceptable timestamp
 * @param ts target timestamp
 * @param max_ts largest acceptable timestamp
 * @param flags flags
 * @return >=0 on success, error code otherwise
 *
 * @note This is part of the new seek API which is still under construction.
 *       Thus do not use this yet. It may change at any time, do not expect
 *       ABI compatibility yet!
 */
int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);

相关文章

网友评论

      本文标题:ffmpeg ---- avformat_seek_file;m

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