43 #define MAX_MEASURE_SIZE (0x7fffffff) 50 #define GOOD_MAGIC 0xdeadbeef 51 #define BAD_MAGIC 0xfefefefe 52 #define SET_MAGIC(r) do { r->magic = GOOD_MAGIC; } while (0) 53 #define VERIFY_MAGIC(r) assert(r->magic == GOOD_MAGIC) 54 #define CLEAR_MAGIC(r) do { r->magic = BAD_MAGIC; } while (0) 57 #define VERIFY_MAGIC(r) 58 #define CLEAR_MAGIC(r) 143 request->
next = measureRequestList;
144 measureRequestList = request;
146 strcpy(rangeBuffer,
"0-");
149 sprintf(&rangeBuffer[2],
"%d", (
int)maxBytes);
153 maxBytes = 0x7fffffff;
160 (
U8BIT *)rangeBuffer,
165 if (request->
handle != NULL)
189 request = FindRequestById(downloadId);
194 assert(request->
handle != NULL);
210 request = FindRequestById(downloadId);
215 code = request->
code;
231 request = FindRequestById(downloadId);
251 U8BIT *redirectUrl = NULL;
253 request = FindRequestById(downloadId);
275 request = FindRequestById(downloadId);
314 request = FindRequestById(downloadId);
319 assert(request->
handle != NULL);
333 pRequest = &measureRequestList;
334 while (*pRequest != NULL)
341 assert(request->
handle != NULL);
345 *pRequest = request->
next;
352 pRequest = &request->
next;
371 request = measureRequestList;
372 while (request != NULL && request->
downloadId != downloadId)
374 request = request->
next;
420 more = HandleMeasureData(request, response->
data_len);
424 more = HandleMeasureEnd(request, response);
442 if (request->
code == 200 || request->
code == 206)
466 event.data.streamer.requestId = request->
downloadId;
472 DBG((
"HandleMeasureData: Cannot send MHEG5_STREAMER_EVENT_MSP_DOWNLOAD_DONE event\n"));
502 event.data.streamer.requestId = request->
downloadId;
508 DBG((
"HandleMeasureEnd: Cannot send MHEG5_STREAMER_EVENT_MSP_DOWNLOAD_DONE event %d\n", cqu_err));
U32BIT STB_OSGetClockMilliseconds(void)
Get Current Computer Clock Time.
E_MhegErr VQ_PutMsg(S_MhegMessage *pMsg, E_PRIORITY priority)
Post event or section message on queue. Copies data into queue.
void MHEG5StopMeasureRequest(U32BIT downloadId)
Stop HTTP streaming performance measurement request.
#define ULL_IsValid(variable)
Utilitiy functions for IC Streamer.
U32BIT MHEG5GetUniqueId(void)
Return a unique ID. The ID is a non-zero 32-bit value. It is guaranteed to be unique for the first 0x...
void httpStartRequest(HttpRequest_t request)
Start an HTTP request. Everything related to the request is passed through the callback that was regi...
Manages the interface between MHEG5 Engine and the HTTP component.
Common header internal to IC streamer.
struct sMeasureRequest * next
S32BIT MHEG5GetMeasureStatus(U32BIT downloadId)
Return HTTP status of performance measurement request.
void MHEG5StartMeasureRequest(U32BIT downloadId)
Start HTTP streaming performance measurement request.
void(* F_MSG_PROCESS)(void *data)
Function to Process voyager message.
U8BIT * MHEG5GetMeasureRedirect(U32BIT downloadId)
Return the redirection URL for a request that was redirected (HTTP status 3xx).
struct sMeasureRequest MeasureRequest
U8BIT * httpGetRequestRedirect(HttpRequest_t request)
Return the URL that the request is redirected to (valid only for response codes of 3xx)...
This file defines the profile for the MHEG engine.
#define ULL_Mul32(variable, value)
S32BIT MHEG5GetMeasureResponseCode(U32BIT downloadId)
Return response code for performance measurement request.
void MHEG5DestroyMeasureRequest(U32BIT downloadId)
Destroy HTTP streaming performance measurement request.
void httpStopRequest(HttpRequest_t request)
Stop an HTTP request. This function does not destroy the request; this is done using httpDestroyReque...
U32BIT MHEG5CreateMeasureRequest(U32BIT requestId, char *url, S32BIT maxBytes)
Create HTTP streaming performance measurement request.
#define ULL_Compare(first, second)
void httpDestroyRequest(HttpRequest_t request)
Destroy an HTTP request.
IC Streamer performance measurement.
void MHEG5StreamerHandle(MHEG5StreamerEventParams_t *params)
Process an MHEG5StreamerEvent message The event is passed onto the streamer module for processing...
void MHEG5StreamerNotifyStreamingPerformance(U32BIT requestId, U32BIT speed)
Notify measured streaming performance (speed).
#define ULL_Set32(variable, value)
#define ULL_Div32(variable, value)
HttpRequest_t httpCreateStreamRequest(U8BIT *url, U8BIT *range, HttpCallback_t header_callback, HttpCallback_t callback, U32BIT request_id, void *userdata)
Create an HTTP request for stream media.
#define MHEG5_MAX_RANGE_BUFFER
struct HttpRequest_tag * HttpRequest_t
#define ULL_Get32(variable)
void MHEG5ProcessMeasureRequest(U32BIT downloadId)
Process HTTP streaming performance measurement request.
#define ULL_Add32(variable, value)
Header file - Function prototypes for operating system.