develop/projects/rocdecode/utils/video_demuxer.h File Reference#
video_demuxer.h File Reference
The AMD Video Demuxer for rocDecode Library. More...
#include <iostream>#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <cstring>#include <ctime>#include <time.h>#include <unistd.h>#include <sys/syscall.h>#include <thread>#include <sstream>#include <iomanip>#include "rocdecode/rocdecode.h"Go to the source code of this file.
Data Structures | |
| struct | PacketData |
| class | VideoSeekContext |
| class | VideoDemuxer |
| class | VideoDemuxer::StreamProvider |
Macros | |
| #define | DemuxCriticalLog(msg) |
Typedefs | |
| typedef enum SeekModeEnum | SeekMode |
| Enum for Seek mode. | |
| typedef enum SeekCriteriaEnum | SeekCriteria |
| Enum for Seek Criteria. | |
Enumerations | |
| enum | SeekModeEnum { SEEK_MODE_EXACT_FRAME = 0 , SEEK_MODE_PREV_KEY_FRAME = 1 , SEEK_MODE_NUM } |
| Enum for Seek mode. | |
| enum | SeekCriteriaEnum { SEEK_CRITERIA_FRAME_NUM = 0 , SEEK_CRITERIA_TIME_STAMP = 1 , SEEK_CRITERIA_NUM } |
| Enum for Seek Criteria. | |
Detailed Description
The AMD Video Demuxer for rocDecode Library.
Macro Definition Documentation
◆ DemuxCriticalLog
| #define DemuxCriticalLog | ( | msg | ) |
Value:
do { \
struct timespec _ts_; \
clock_gettime(CLOCK_MONOTONIC, &_ts_); \
uint64_t _us_ = static_cast<uint64_t>(_ts_.tv_sec) * 1000000ULL + _ts_.tv_nsec / 1000ULL; \
const char *_f_ = strrchr(__FILE__, '/'); \
pid_t _tid_ = static_cast<pid_t>(syscall(SYS_gettid)); \
std::ostringstream _htid_oss_; \
_htid_oss_ << "0x" << std::hex << std::setw(5) << std::setfill('0') \
<< (std::hash<std::thread::id>{}(std::this_thread::get_id()) & 0xFFFFF); \
std::cerr << "[0, Critical] " << (_f_ ? _f_ + 1 : __FILE__) \
<< ":" << __LINE__ << ": " << _us_ << " us: [pid:" \
<< getpid() << " tid:" << _tid_ << " hashid:" << _htid_oss_.str() << "] " \
<< __func__ << "(): " << (msg) << std::endl; \
} while (0)