off_t getAccessPoint(pts_t ts, int marg=0);
int getNextAccessPoint(pts_t &ts, const pts_t &start, int direction);
-
- bool empty();
+
+ bool hasAccessPoint() { return !m_access_points.empty(); }
+
+ bool hasStructure() { return !m_structure_read ? false : true; }
typedef unsigned long long structure_data;
/* this is usually:
optionall, return next element. Offset will be returned. this allows you to easily
get previous and next structure elements. */
int getStructureEntry(off_t &offset, unsigned long long &data, int get_next);
+ int getStructureEntry_next(off_t &offset, unsigned long long &data);
+ int getStructureEntry_prev(off_t &offset, unsigned long long &data);
+ int update_structure_cache_entries(off_t offset);
std::string m_filename;
- int m_structure_cache_valid;
+ int m_structure_cache_entries;
unsigned long long m_structure_cache[1024];
FILE *m_structure_read, *m_structure_write;
};
void parseData(off_t offset, const void *data, unsigned int len);
void setPid(int pid, int streamtype);
int getLastPTS(pts_t &last_pts);
+ void enableAccessPoints(bool enable) { m_enable_accesspoints = enable; }
private:
eMPEGStreamInformation &m_streaminfo;
unsigned char m_pkt[188];
int m_skip;
int m_last_pts_valid;
pts_t m_last_pts;
+ bool m_enable_accesspoints;
};
#endif