amazon-ivs.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "service-ingest.h"
  2. #include "amazon-ivs.h"
  3. static struct service_ingests amazon_ivs = {.update_info = NULL,
  4. .mutex = PTHREAD_MUTEX_INITIALIZER,
  5. .ingests_refreshed = false,
  6. .ingests_refreshing = false,
  7. .ingests_loaded = false,
  8. .cur_ingests = {0},
  9. .cache_old_filename = "amazon_ivs_ingests.json",
  10. .cache_new_filename = "amazon_ivs_ingests.new.json"};
  11. void init_amazon_ivs_data(void)
  12. {
  13. init_service_data(&amazon_ivs);
  14. }
  15. void load_amazon_ivs_data(void)
  16. {
  17. struct ingest def = {.name = bstrdup("Default"),
  18. .url = bstrdup("rtmps://ingest.global-contribute.live-video.net:443/app/")};
  19. load_service_data(&amazon_ivs, "amazon_ivs_ingests.json", &def);
  20. }
  21. void unload_amazon_ivs_data(void)
  22. {
  23. unload_service_data(&amazon_ivs);
  24. }
  25. void amazon_ivs_ingests_refresh(int seconds)
  26. {
  27. service_ingests_refresh(&amazon_ivs, seconds, "[amazon ivs ingest update] ",
  28. "https://ingest.contribute.live-video.net/ingests");
  29. }
  30. void amazon_ivs_ingests_lock(void)
  31. {
  32. pthread_mutex_lock(&amazon_ivs.mutex);
  33. }
  34. void amazon_ivs_ingests_unlock(void)
  35. {
  36. pthread_mutex_unlock(&amazon_ivs.mutex);
  37. }
  38. size_t amazon_ivs_ingest_count(void)
  39. {
  40. return amazon_ivs.cur_ingests.num;
  41. }
  42. struct ingest amazon_ivs_ingest(size_t idx)
  43. {
  44. return get_ingest(&amazon_ivs, idx);
  45. }