static gchar * get_m3u8playlist (RequestData *request_data, EncoderOutput *encoder_output) { gchar *m3u8playlist = NULL; /* live */ if (g_str_has_prefix (request_data->uri, "/live/")) { m3u8playlist = m3u8playlist_live_get_playlist (encoder_output->m3u8_playlist); } else if (g_str_has_prefix (request_data->uri, "/dvr/")) { /* time shift */ if (g_strrstr (request_data->parameters, "offset") != NULL) { gint64 offset; offset = get_gint64_parameter (request_data->parameters, "offset"); m3u8playlist = m3u8playlist_timeshift_get_playlist (encoder_output->record_path, offset); /* dvr */ } else if (g_strrstr (request_data->parameters, "start") && g_strrstr (request_data->parameters, "duration")) { gint64 start, duration; start = get_gint64_parameter (request_data->parameters, "start"); duration = get_gint64_parameter (request_data->parameters, "duration"); m3u8playlist = m3u8playlist_dvr_get_playlist (encoder_output->record_path, start, duration); } } return m3u8playlist; }
static gchar * get_m3u8playlist (RequestData *request_data, EncoderOutput *encoder_output) { gchar *m3u8playlist = NULL; gchar *start, *end; if (!is_channel_playlist_url_valid (request_data)) { GST_WARNING ("bad request url: %s", request_data->uri); return NULL; } /* time shift */ if (g_strrstr (request_data->parameters, "timeshift") != NULL) { gint64 offset; offset = get_gint64_parameter (request_data->parameters, "timeshift"); m3u8playlist = m3u8playlist_timeshift_get_playlist (encoder_output->record_path, offset); /* callback */ } else if (g_strrstr (request_data->parameters, "start") && g_strrstr (request_data->parameters, "end")) { start = get_str_parameter (request_data->parameters, "start"); end = get_str_parameter (request_data->parameters, "end"); if ((start != NULL) && (end != NULL)) { m3u8playlist = m3u8playlist_callback_get_playlist (encoder_output->record_path, encoder_output->dvr_duration, start, end); } if (start != NULL) { g_free (start); } if (end != NULL) { g_free (end); } /* live */ } else if (encoder_output->m3u8_playlist != NULL) { m3u8playlist = m3u8playlist_live_get_playlist (encoder_output->m3u8_playlist); } return m3u8playlist; }