/* * * $Id: utils.h 391 2006-09-27 13:43:01Z shawill $ * * This file is part of Fenice * * Fenice -- Open Media Server * * Copyright (C) 2004 by * * - Giampaolo Mancini * - Francesco Varano * - Marco Penno * - Federico Ridolfo * - Eugenio Menegatti * - Stefano Cau * - Giuliano Emma * - Stefano Oldrini * * Fenice is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Fenice is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Fenice; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * */ #ifndef _UTILSH #define _UTILSH #include "mediainfo.h" #include "types.h" #define ERR_NOERROR 0 #define ERR_GENERIC -1 #define ERR_NOT_FOUND -2 #define ERR_PARSE -3 #define ERR_ALLOC -4 #define ERR_INPUT_PARAM -5 #define ERR_NOT_SD -6 #define ERR_UNSUPPORTED_PT -7 #define ERR_EOF -8 #define ERR_FATAL -9 #define ERR_CONNECTION_CLOSE -10 /* message header keywords */ #define HDR_CONTENTLENGTH "Content-Length" #define HDR_ACCEPT "Accept" #define HDR_ALLOW "Allow" #define HDR_BLOCKSIZE "Blocksize" #define HDR_CONTENTTYPE "Content-Type" #define HDR_DATE "Date" #define HDR_REQUIRE "Require" #define HDR_TRANSPORTREQUIRE "Transport-Require" #define HDR_SEQUENCENO "SequenceNo" #define HDR_CSEQ "CSeq" #define HDR_STREAM "Stream" #define HDR_SESSION "Session" #define HDR_TRANSPORT "Transport" #define HDR_RANGE "Range" #define HDR_USER_AGENT "User-Agent" /* rtsp methods */ #define RTSP_METHOD_MAXLEN 15 #define RTSP_METHOD_DESCRIBE "DESCRIBE" #define RTSP_METHOD_ANNOUNCE "ANNOUNCE" #define RTSP_METHOD_GET_PARAMETERS "GET_PARAMETERS" #define RTSP_METHOD_OPTIONS "OPTIONS" #define RTSP_METHOD_PAUSE "PAUSE" #define RTSP_METHOD_PLAY "PLAY" #define RTSP_METHOD_RECORD "RECORD" #define RTSP_METHOD_REDIRECT "REDIRECT" #define RTSP_METHOD_SETUP "SETUP" #define RTSP_METHOD_SET_PARAMETER "SET_PARAMETER" #define RTSP_METHOD_TEARDOWN "TEARDOWN" /*rtsp method tokens */ #define RTSP_ID_DESCRIBE 0 #define RTSP_ID_ANNOUNCE 1 #define RTSP_ID_GET_PARAMETERS 2 #define RTSP_ID_OPTIONS 3 #define RTSP_ID_PAUSE 4 #define RTSP_ID_PLAY 5 #define RTSP_ID_RECORD 6 #define RTSP_ID_REDIRECT 7 #define RTSP_ID_SETUP 8 #define RTSP_ID_SET_PARAMETER 9 #define RTSP_ID_TEARDOWN 10 /* SD keywords */ #define SD_STREAM "STREAM" #define SD_STREAM_END "STREAM_END" #define SD_FILE_EXT_NAME "FILE_EXT_NAME" #define SD_CLOCK_RATE "CLOCK_RATE" #define SD_PAYLOAD_TYPE "PAYLOAD_TYPE" #define SD_AUDIO_CHANNELS "AUDIO_CHANNELS" #define SD_ENCODING_NAME "ENCODING_NAME" #define SD_AGGREGATE "AGGREGATE" #define SD_BIT_PER_SAMPLE "BIT_PER_SAMPLE" #define SD_SAMPLE_RATE "SAMPLE_RATE" #define SD_CODING_TYPE "CODING_TYPE" #define SD_FRAME_LEN "FRAME_LEN" #define SD_PKT_LEN "PKT_LEN" #define SD_PRIORITY "PRIORITY" #define SD_BITRATE "BITRATE" #define SD_FRAME_RATE "FRAME_RATE" #define SD_FORCE_FRAME_RATE "FORCE_FRAME_RATE" #define SD_BYTE_PER_PCKT "BYTE_PER_PCKT" #define SD_MEDIA_SOURCE "MEDIA_SOURCE" #define SD_TWIN "TWIN" #define SD_MULTICAST "MULTICAST" #define SD_MULTICAST_PORT "MULTICAST_PORT" #define SCREEN_WIDE "SCREEN_WIDTH" #define SCREEN_HIGH "SCREEN_HIGHT" /*start CC */ #define SD_LICENSE "LICENSE" #define SD_RDF "VERIFY" #define SD_TITLE "TITLE" #define SD_CREATOR "CREATOR" /*end CC */ /* COMMAND KEYWORDS AND PORT */ //#define COMMAND_PORT 3000 uint32 random32(int); // static uint32 md_32(char *string, int length); // shawill: what? int parse_url(const char *url, char *server, size_t, unsigned short *port, char *file_name, size_t); char *alloc_path_name(char *base_path, char *file_path); //uint32 NTP_time(time_t t); float NTP_time(time_t t); int get_UTC_time(struct tm *t, char *b); int is_supported_url(char *p); #ifndef min #define min(x,y) ((x) < (y) ? (x) : (y)) #endif #ifndef max #define max(x,y) ((x) > (y) ? (x) : (y)) #endif #define lround(x) (x)//(x - floor(x) < 0.5) ? floor(x): ceil(x) #endif