player_util.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:5k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * The contents of this file are subject to the Mozilla Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/MPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is MPEG4IP.
  13.  * 
  14.  * The Initial Developer of the Original Code is Cisco Systems Inc.
  15.  * Portions created by Cisco Systems Inc. are
  16.  * Copyright (C) Cisco Systems Inc. 2000, 2001.  All Rights Reserved.
  17.  * 
  18.  * Contributor(s): 
  19.  *              Bill May        wmay@cisco.com
  20.  */
  21. /*
  22.  * player_util.c - utility routines for output
  23.  */
  24. #include "systems.h"
  25. #ifndef _WINDOWS
  26. #include <time.h>
  27. #include <sys/time.h>
  28. #include <unistd.h>
  29. #include <stdarg.h>
  30. #endif
  31. #include "player_util.h"
  32. #if _WIN32
  33. #include "SDL.h"
  34. #include "SDL_thread.h"
  35. SDL_mutex *outex;
  36. static int initialized = 0;
  37. static void init_local_mutex (void)
  38. {
  39. outex = SDL_CreateMutex();
  40. initialized = 1;
  41. }
  42. static void lock_mutex(void)
  43. {
  44. SDL_mutexP(outex);
  45. static void unlock_mutex(void)
  46. {
  47. SDL_mutexV(outex);
  48. }
  49. #endif
  50. void player_error_message (const char *fmt, ...)
  51. {
  52.   va_list ap;
  53.   struct timeval thistime;
  54.   time_t secs;
  55.   char buffer[80];
  56. #if defined(_WIN32) && defined(_DEBUG) && !defined(WINDOWS_IS_A_PIECE_OF_CRAP)
  57.   if (IsDebuggerPresent()) {
  58.         char msg[512];
  59. if (initialized == 0) init_local_mutex();
  60. lock_mutex();
  61.         va_start(ap, fmt);
  62. _vsnprintf(msg, 512, fmt, ap);
  63.         va_end(ap);
  64.         OutputDebugString(msg);
  65. OutputDebugString("n");
  66. unlock_mutex();
  67. return;
  68. }
  69. #endif
  70.   gettimeofday(&thistime, NULL);
  71.   // To add date, add %a %b %d to strftime
  72.   secs = thistime.tv_sec;
  73.   strftime(buffer, sizeof(buffer), "%X", localtime(&secs));
  74.   printf("%s.%03lu-my_player-%d: ", buffer,
  75.  (unsigned long)thistime.tv_usec / 1000, LOG_ERR);
  76.   va_start(ap, fmt);
  77.   vprintf(fmt, ap);
  78.   va_end(ap);
  79.   printf("n");
  80. }
  81. void player_debug_message (const char *fmt, ...)
  82. {
  83.   va_list ap;
  84.   struct timeval thistime;
  85.   time_t secs;
  86.   char buffer[80];
  87. #if defined(_WIN32) && defined(_DEBUG)&& !defined(WINDOWS_IS_A_PIECE_OF_CRAP)
  88.   if (IsDebuggerPresent()) {
  89.        char msg[512];
  90.    if (initialized== 0) init_local_mutex();
  91. lock_mutex();
  92.         va_start(ap, fmt);
  93. _vsnprintf(msg, 512, fmt, ap);
  94.         va_end(ap);
  95.         OutputDebugString(msg);
  96. OutputDebugString("n");
  97. unlock_mutex();
  98. return;
  99. }
  100. #endif
  101.   gettimeofday(&thistime, NULL);
  102.   secs = thistime.tv_sec;
  103.   // To add date, add %a %b %d to strftime
  104.   strftime(buffer, sizeof(buffer), "%X", localtime(&secs));
  105.   printf("%s.%03lu-my_player-%d: ",
  106.  buffer, (unsigned long)thistime.tv_usec / 1000, LOG_DEBUG);
  107.   va_start(ap, fmt);
  108.   vprintf(fmt, ap);
  109.   va_end(ap);
  110.   printf("n");
  111. }
  112. void message (int loglevel, const char *lib, const char *fmt, ...)
  113. {
  114.   va_list ap;
  115.   struct timeval thistime;
  116.   time_t secs;
  117.   char buffer[80];
  118. #if defined(_WIN32) && defined(_DEBUG)&& !defined(WINDOWS_IS_A_PIECE_OF_CRAP)
  119.   if (IsDebuggerPresent()) {
  120.        char msg[512];
  121.    if (initialized == 0) init_local_mutex();
  122. lock_mutex();
  123.         va_start(ap, fmt);
  124. _vsnprintf(msg, 512, fmt, ap);
  125.         va_end(ap);
  126.         OutputDebugString(msg);
  127. OutputDebugString("n");
  128. unlock_mutex();
  129. return;
  130.   }
  131. #endif
  132.   gettimeofday(&thistime, NULL);
  133.   secs = thistime.tv_sec;
  134.   // To add date, add %a %b %d to strftime
  135.   strftime(buffer, sizeof(buffer), "%X", localtime(&secs));
  136.   printf("%s.%03lu-%s-%d: ",
  137.  buffer, (unsigned long)thistime.tv_usec / 1000, lib, loglevel);
  138.   va_start(ap, fmt);
  139.   vprintf(fmt, ap);
  140.   va_end(ap);
  141.   printf("n");
  142. }
  143. void player_library_message (int loglevel,
  144.      const char *lib,
  145.      const char *fmt,
  146.      va_list ap)
  147. {
  148.   struct timeval thistime;
  149.   time_t secs;
  150.   char buffer[80];
  151. #if defined(_WIN32) && defined(_DEBUG)&& !defined(WINDOWS_IS_A_PIECE_OF_CRAP)
  152. if (IsDebuggerPresent()) {
  153.   char msg[512];
  154.   if (initialized == 0) init_local_mutex();
  155.   lock_mutex();
  156.   sprintf(msg, "%s:", lib);
  157.   OutputDebugString(msg);
  158.   //va_start(ap, fmt);
  159.   _vsnprintf(msg, 512, fmt, ap);
  160.   //va_end(ap);
  161.   OutputDebugString(msg);
  162.   OutputDebugString("n");
  163.   unlock_mutex();
  164.   return;
  165. }
  166. #endif
  167.   gettimeofday(&thistime, NULL);
  168.   secs = thistime.tv_sec;
  169.   strftime(buffer, sizeof(buffer), "%X", localtime(&secs));
  170.   printf("%s.%03lu-%s-%d: ",
  171.  buffer,
  172.  (unsigned long)thistime.tv_usec / 1000,
  173.  lib,
  174.  loglevel);
  175.   vprintf(fmt, ap);
  176.   printf("n");
  177. }
  178. /* end file player_util.c */