PonyPlayer
VirtualVideoDecoder类 参考

虚拟视频播放, 用于视频纯音频文件. 更多...

#include <virtual.hpp>

类 VirtualVideoDecoder 继承关系图:
IDemuxDecoder

Public 成员函数

 VirtualVideoDecoder (qreal audioDuration)
 
PONY_THREAD_SAFE bool accept (AVPacket *pkt, std::atomic< bool > &interrupt) override
 
PONY_THREAD_SAFE void flushFFmpegBuffers () override
 
PONY_THREAD_SAFE VideoFrameRef getPicture () override
 
PONY_THREAD_SAFE AudioFrame getSample () override
 
PONY_THREAD_SAFE double duration () override
 
PONY_THREAD_SAFE qreal viewFront () override
 
PONY_THREAD_SAFE int skip (const std::function< bool(qreal)> &predicate) override
 
PONY_THREAD_SAFE void setEnable (bool b) override
 
PONY_THREAD_SAFE PonyAudioFormat getInputFormat () override
 
PONY_THREAD_SAFE void setOutputFormat (const PonyAudioFormat &format) override
 
- Public 成员函数 继承自 IDemuxDecoder
virtual ~IDemuxDecoder ()=default
 
virtual void setFollower (IDemuxDecoder *follower)
 
virtual void pushFrameStack ()
 
virtual qreal getLastPts ()
 
virtual void clearFrameStack ()
 
virtual void setStart (qreal secs)
 
virtual qreal nextSegment ()
 

额外继承的成员函数

- Public 类型 继承自 IDemuxDecoder
enum class  DecoderType { Audio , Video , Common }
 

详细描述

虚拟视频播放, 用于视频纯音频文件.

构造及析构函数说明

◆ VirtualVideoDecoder()

VirtualVideoDecoder::VirtualVideoDecoder ( qreal  audioDuration)
inline

成员函数说明

◆ accept()

PONY_THREAD_SAFE bool VirtualVideoDecoder::accept ( AVPacket *  pkt,
std::atomic< bool > &  interrupt 
)
inlineoverridevirtual

接收一个包

参数
pkt
返回
如果还需要接收下一个 packet 返回 true, 否则返回 false

实现了 IDemuxDecoder.

◆ duration()

PONY_THREAD_SAFE double VirtualVideoDecoder::duration ( )
inlineoverridevirtual

获取流的长度

返回

实现了 IDemuxDecoder.

◆ flushFFmpegBuffers()

PONY_THREAD_SAFE void VirtualVideoDecoder::flushFFmpegBuffers ( )
inlineoverridevirtual

清空 FFmpeg 内部缓冲区

实现了 IDemuxDecoder.

◆ getInputFormat()

PONY_THREAD_SAFE PonyAudioFormat VirtualVideoDecoder::getInputFormat ( )
inlineoverridevirtual

实现了 IDemuxDecoder.

◆ getPicture()

PONY_THREAD_SAFE VideoFrameRef VirtualVideoDecoder::getPicture ( )
inlineoverridevirtual

获取视频帧并从队列中删除, 仅当当前解码器是视频解码器时有效

参数
b是否阻塞
返回
视频帧, 请用 isValid 判断是否有效

实现了 IDemuxDecoder.

◆ getSample()

PONY_THREAD_SAFE AudioFrame VirtualVideoDecoder::getSample ( )
inlineoverridevirtual

获取音频帧并从队列中删除, 仅当当前解码器是音频解码器时有效

参数
b是否阻塞
返回
音频帧, 请用 isValid 判断是否有效

实现了 IDemuxDecoder.

◆ setEnable()

PONY_THREAD_SAFE void VirtualVideoDecoder::setEnable ( bool  b)
inlineoverridevirtual

实现了 IDemuxDecoder.

◆ setOutputFormat()

PONY_THREAD_SAFE void VirtualVideoDecoder::setOutputFormat ( const PonyAudioFormat format)
inlineoverridevirtual

实现了 IDemuxDecoder.

◆ skip()

PONY_THREAD_SAFE int VirtualVideoDecoder::skip ( const std::function< bool(qreal)> &  predicate)
inlineoverridevirtual

线性扫描移除满足条件的帧, 当发现帧不满足条件时, 结束扫描

参数
predicate条件
返回
移除帧的个数

实现了 IDemuxDecoder.

◆ viewFront()

PONY_THREAD_SAFE qreal VirtualVideoDecoder::viewFront ( )
inlineoverridevirtual

获取队首帧的PTS, 若不存在, 返回NaN

返回
队首帧的PTS

实现了 IDemuxDecoder.


该类的文档由以下文件生成: