private async Task <DashManifest> GetDashManifestAsync( string dashManifestUrl, IReadOnlyList <ICipherOperation> cipherOperations) { var signature = DashManifest.TryGetSignatureFromUrl(dashManifestUrl); if (!string.IsNullOrWhiteSpace(signature)) { signature = cipherOperations.Decipher(signature); dashManifestUrl = Url.SetRouteParameter(dashManifestUrl, "signature", signature); } return(await DashManifest.GetAsync(_httpClient, dashManifestUrl)); }
/// <summary> /// <para> /// Starts the DASH manifest creation and periodically polls its status until it reaches a final state /// </para> /// <para>API endpoints: /// https://bitmovin.com/docs/encoding/api-reference/sections/manifests#/Encoding/PostEncodingManifestsDashStartByManifestId /// <br /> /// https://bitmovin.com/docs/encoding/api-reference/sections/manifests#/Encoding/GetEncodingManifestsDashStatusByManifestId /// </para> /// </summary> /// <param name="dashManifest">The DASH manifest to be created</param> /// <exception cref="SystemException"></exception> private async Task ExecuteDashManifestCreation(DashManifest dashManifest) { await _bitmovinApi.Encoding.Manifests.Dash.StartAsync(dashManifest.Id); ServiceTaskStatus serviceTaskStatus; do { await Task.Delay(1000); serviceTaskStatus = await _bitmovinApi.Encoding.Manifests.Dash.StatusAsync(dashManifest.Id); } while (serviceTaskStatus.Status != Status.FINISHED && serviceTaskStatus.Status != Status.ERROR); if (serviceTaskStatus.Status == Status.ERROR) { LogTaskErrors(serviceTaskStatus); throw new SystemException("DASH manifest creation failed"); } Console.WriteLine("DASH manifest creation finished successfully"); }