From 0ea50ce9cb4b65eee6afa1d041fe8beb5abda667 Mon Sep 17 00:00:00 2001 From: John Koleszar Date: Tue, 18 May 2010 11:58:33 -0400 Subject: Initial WebM release --- vp8/common/duck_io.h | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 vp8/common/duck_io.h (limited to 'vp8/common/duck_io.h') diff --git a/vp8/common/duck_io.h b/vp8/common/duck_io.h new file mode 100644 index 000000000..f63a5cdc1 --- /dev/null +++ b/vp8/common/duck_io.h @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2010 The VP8 project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license and patent + * grant that can be found in the LICENSE file in the root of the source + * tree. All contributing project authors may be found in the AUTHORS + * file in the root of the source tree. + */ + + +#ifndef _duck_io_h +#define _duck_io_h + +#if defined(__cplusplus) +extern "C" { +#endif + +#if defined (_WIN32) + typedef __int64 int64_t; +#elif defined(__MWERKS__) + typedef long long int64_t; +#elif defined(__APPLE__) || defined(__POWERPC) +#include +#else + typedef long long int64_t; +#endif + + typedef struct + { + int64_t offset; // offset to start from + int blocking; // non-zero for blocking + } re_open_t; + + + typedef enum + { + SAL_ERR_MAX = -10, + SAL_ERROR = -11, // Default error + SAL_ERR_WSASTARTUP = -12, + SAL_ERR_SOCKET_CREATE = -13, + SAL_ERR_RESOLVING_HOSTNAME = -14, + SAL_ERR_SERVER_CONNECTION = -15, + SAL_ERR_SENDING_DATA = -16, + SAL_ERR_RECEIVING_DATA = -17, + SAL_ERR_404_FILE_NOT_FOUND = -18, + SAL_ERR_PARSING_HTTP_HEADER = -19, + SAL_ERR_PARSING_CONTENT_LEN = -20, + SAL_ERR_CONNECTION_TIMEOUT = -21, + SAL_ERR_FILE_OPEN_FAILED = -22, + SAL_ERR_MIN = -23 + } SAL_ERR; /* EMH 1-15-03 */ + + + typedef struct sal_err_map_temp + { + SAL_ERR code; + const char *decode; + + } sal_err_map_t; + + + static char *sal_err_text(SAL_ERR e) + { + int t; + const sal_err_map_t g_sal_err_map[] = + { + { SAL_ERR_WSASTARTUP, "Error with WSAStartup" }, + { SAL_ERR_SOCKET_CREATE, "Error creating socket" }, + { SAL_ERR_RESOLVING_HOSTNAME, "Error resolving hostname" }, + { SAL_ERR_SERVER_CONNECTION, "Error connecting to server" }, + { SAL_ERR_SENDING_DATA, "Error sending data" }, + { SAL_ERR_RECEIVING_DATA, "Error receiving data" }, + { SAL_ERR_404_FILE_NOT_FOUND, "Error file not found " }, + { SAL_ERR_PARSING_HTTP_HEADER, "Error parsing http header" }, + { SAL_ERR_PARSING_CONTENT_LEN, "Error parsing content length" }, + { SAL_ERR_CONNECTION_TIMEOUT, "Error Connection timed out" }, + { SAL_ERR_FILE_OPEN_FAILED, "Error opening file" } + }; + + for (t = 0; t < sizeof(g_sal_err_map) / sizeof(sal_err_map_t); t++) + { + if (e == g_sal_err_map[t].code) + return (char *) g_sal_err_map[t].decode; + } + + return 0; + } + + + + + + + + int duck_open(const char *fname, unsigned long user_data); + + void duck_close(int ghndl); + + int duck_read(int ghndl, unsigned char *buf, int nbytes); + + int64_t duck_seek(int g_hndl, int64_t offs, int origin); + + int duck_read_finished(int han, int flag); /* FWG 7-9-99 */ + + int duck_name(int handle, char name[], size_t max_len); /* EMH 9-23-03 */ + + int duck_read_blocking(int handle, unsigned char *buffer, int bytes); /* EMH 9-23-03 */ + + int64_t duck_available_data(int handle); /* EMH 10-23-03 */ + +#if defined(__cplusplus) +} +#endif + +#endif -- cgit v1.2.3