develop/projects/rocdecode/utils/video_demuxer.h File Reference

develop/projects/rocdecode/utils/video_demuxer.h File Reference#

rocDecode: 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)