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

流媒体/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.  * test.c - test utility for sdp library
  23.  */
  24. #include "systems.h"
  25. #include <time.h>
  26. #include "sdp.h"
  27. #define ADV_SPACE(a) {while (isspace(*(a)) && (*(a) != ''))(a)++;}
  28. static void local_error_msg (int loglevel,
  29.      const char *lib,
  30.      const char *fmt,
  31.      va_list ap)
  32. {
  33. #if _WIN32 && _DEBUG
  34.   char msg[512];
  35.   if (initialized) init_local_mutex();
  36.   lock_mutex();
  37.   sprintf(msg, "%s:", lib);
  38.   OutputDebugString(msg);
  39.   va_start(ap, fmt);
  40.   _vsnprintf(msg, 512, fmt, ap);
  41.   va_end(ap);
  42.   OutputDebugString(msg);
  43.   OutputDebugString("n");
  44.   unlock_mutex();
  45. #else
  46.   struct timeval thistime;
  47.   char buffer[80];
  48.   gettimeofday(&thistime, NULL);
  49.   strftime(buffer, sizeof(buffer), "%X", localtime(&thistime.tv_sec));
  50.   printf("%s.%03ld-%s-%d: ",
  51.  buffer,
  52.  thistime.tv_usec / 1000,
  53.  lib,
  54.  loglevel);
  55.   vprintf(fmt, ap);
  56.   printf("n");
  57. #endif
  58. }
  59. int main (int argc, char **argv)
  60. {
  61.   sdp_decode_info_t *sdpd;
  62.   session_desc_t *session;
  63.   int err;
  64.   int num_translated;
  65.   char *formatted;
  66.   
  67.   argc--;
  68.   argv++;
  69.   if (argc == 0) {
  70.     printf("No arguments specifiedn");
  71.     exit(1);
  72.   }
  73.   sdp_set_loglevel(LOG_DEBUG);
  74.   sdp_set_error_func(local_error_msg);
  75.   sdpd = set_sdp_decode_from_filename(*argv);
  76.   if (sdpd == NULL) {
  77.     printf("Didn't find file %sn", *argv);
  78.     exit(1);
  79.   }
  80.   err = sdp_decode(sdpd, &session, &num_translated);
  81.   if (err != 0) {
  82.     printf("couldn't decode it - error code is %d - number %dn", err,
  83.    num_translated + 1);
  84.   }
  85.   if (num_translated != 0) {
  86.     session_dump_list(session);
  87.     err = sdp_encode_list_to_memory(session, &formatted, NULL);
  88.     if (err == 0) {
  89.       printf(formatted);
  90.     } else {
  91.       printf("Error formating session %dn", err);
  92.     }
  93.     free(formatted);
  94.     sdp_free_session_desc(session);
  95.   }
  96.   sdp_decode_info_free(sdpd);
  97.   return (0);
  98. }