Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

49 строки
1.5KB

  1. #ifndef _rtsp_header_range_h_
  2. #define _rtsp_header_range_h_
  3. #include <stdint.h>
  4. enum ERTSP_RANGE_TIME {
  5. RTSP_RANGE_SMPTE = 1, // relative to the start of the clip
  6. RTSP_RANGE_SMPTE_30=RTSP_RANGE_SMPTE,
  7. RTSP_RANGE_SMPTE_25,
  8. RTSP_RANGE_NPT, // relative to the beginning of the presentation
  9. RTSP_RANGE_CLOCK, // absolute time, ISO 8601 timestamps, UTC(GMT)
  10. };
  11. enum ERTSP_RANGE_TIME_VALUE {
  12. RTSP_RANGE_TIME_NORMAL = 1,
  13. RTSP_RANGE_TIME_NOW, // npt now
  14. RTSP_RANGE_TIME_NOVALUE, // npt don't set from value: -[npt-time]
  15. };
  16. struct rtsp_header_range_t
  17. {
  18. enum ERTSP_RANGE_TIME type;
  19. enum ERTSP_RANGE_TIME_VALUE from_value;
  20. enum ERTSP_RANGE_TIME_VALUE to_value;
  21. uint64_t from; // ms
  22. uint64_t to; // ms
  23. uint64_t time; // range time parameter(in ms), 0 if no value
  24. };
  25. /// parse RTSP Range header
  26. /// @return 0-ok, other-error
  27. /// usage 1:
  28. /// struct rtsp_header_range_t range;
  29. /// const char* header = "Range: clock=19960213T143205Z-;time=19970123T143720Z";
  30. /// r = rtsp_header_range("clock=19960213T143205Z-;time=19970123T143720Z", &range);
  31. /// check(r)
  32. ///
  33. /// usage 2:
  34. /// const char* header = "Range: smpte-25=10:07:00-10:07:33:05.01,smpte-25=11:07:00-11:07:33:05.01";
  35. /// split(header, ',');
  36. /// r1 = rtsp_header_range("smpte-25=10:07:00-10:07:33:05.01", &range);
  37. /// r2 = rtsp_header_range("smpte-25=11:07:00-11:07:33:05.01", &range);
  38. /// check(r1, r2)
  39. int rtsp_header_range(const char* field, struct rtsp_header_range_t* range);
  40. #endif /* !_rtsp_header_range_h_ */