float BoundingBox::MaxDimension() { float fltMax = -1; fltMax = STD_MAX(fabs(Min.x), fabs(Min.y)); fltMax = STD_MAX((double) fltMax, fabs(Min.z)); fltMax = STD_MAX((double) fltMax, fabs(Max.x)); fltMax = STD_MAX((double) fltMax, fabs(Max.y)); fltMax = STD_MAX((double) fltMax, fabs(Max.z)); return fltMax; }
//YUV convert to RGB void YCbCrT_to_RGBA(int Y, int Cb, int Cr, int T, uint8_t *R, uint8_t *G, uint8_t *B, uint8_t *A) { int r, g, b; int Ey, Epb, Epr; Ey = (Y - 16); Epb = (Cb - 128); Epr = (Cr - 128); /* ITU-R 709 */ r = STD_MAX(STD_MIN(((298 * Ey + 460 * Epr) / 256), 255), 0); g = STD_MAX(STD_MIN(((298 * Ey - 55 * Epb - 137 * Epr) / 256), 255), 0); b = STD_MAX(STD_MIN(((298 * Ey + 543 * Epb ) / 256), 255), 0); *R = (uint8_t)r; *G = (uint8_t)g; *B = (uint8_t)b; *A = T; }
/** @brief PLAYLIST_READY state handler. * * @param[in] pDownloadHelper - Reference to * PlaylistDownloadHelper * @return * HTTPDL_WAITING - Data successfully written or no data available to write * and download incomplete * HTTPDL_SUCCESS - Download complete * HTTPDL_ERROR_ABORT - Otherwise */ HTTPDownloadStatus PlaylistDownloadHelper::PlaylistReadyStateHandler::Execute ( PlaylistDownloadHelper* pDownloadHelper ) { QTV_MSG_PRIO( QTVDIAG_HTTP_STREAMING, QTVDIAG_PRIO_LOW, "PlaylistDownloadHelper::PlaylistReadyStateHandler::Execute()" ); HTTPDownloadStatus status = HTTPCommon::HTTPDL_ERROR_ABORT; PlaylistDownloadHelper* pSelf = pDownloadHelper; //Validity check if (pSelf) { char* pRepresentationBuf = pSelf->m_RepresentationBuffer; int numBytesToRead = STD_MAX(0, pSelf->m_nRepresentationLen - pSelf->m_nRepresentationBytesRead); HTTPStackInterface& HTTPStack = *(pSelf->m_pHTTPStack); QTV_MSG_PRIO2( QTVDIAG_HTTP_STREAMING, QTVDIAG_PRIO_MEDIUM, "numBytesToRead %d, (numBytesReceived %d)", numBytesToRead, pSelf->m_nRepresentationBytesRead ); if (pSelf->m_RepresentationBuffer && numBytesToRead > 0) { status = HTTPCommon::HTTPDL_ERROR_ABORT; //Get a data chunk from HTTP stack size_t numBytesRead = 0; HTTPReturnCode result = HTTPStack.GetData(pSelf->m_nRequestID, pRepresentationBuf+pSelf->m_nRepresentationBytesRead, numBytesToRead, &numBytesRead); if (result != HTTP_FAILURE && result != HTTP_BADPARAM) { //Update total number of bytes dowloaded/written so far pSelf->m_nRepresentationBytesRead += (int)numBytesRead; status = HTTPCommon::HTTPDL_WAITING; if(result == HTTP_NOMOREDATA || pSelf->m_nRepresentationBytesRead >= (pSelf->m_nRepresentationLen -1)) { pSelf->m_nRepresentationLen = pSelf->m_nRepresentationBytesRead; status = HTTPCommon::HTTPDL_SUCCESS; } QTV_MSG_PRIO1( QTVDIAG_HTTP_STREAMING, QTVDIAG_PRIO_HIGH, "Total numBytesReceived %d", pSelf->m_nRepresentationBytesRead ); }// result check else { //Data read failure QTV_MSG_PRIO1( QTVDIAG_HTTP_STREAMING, QTVDIAG_PRIO_ERROR, "Error: Data read failure %d from HTTP stack", result ); } }// if (HTTPSUCCEEDED(status)) }// if (pSelf && pSelf->GetState() == DATA_READY) return status; }