urltrack.cpp
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:2k
源码类别:

流媒体/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. 2001.  All Rights Reserved.
  17.  * 
  18.  * Contributor(s): 
  19.  * Dave Mackie dmackie@cisco.com
  20.  */
  21. #include "mp4.h"
  22. main(int argc, char** argv)
  23. {
  24. if (argc < 2) {
  25. fprintf(stderr, "Usage: %s <file>n", argv[0]);
  26. exit(1);
  27. }
  28. u_int32_t verbosity = 0 /* MP4_DETAILS_ALL */;
  29. MP4FileHandle mp4File = MP4Create(argv[1], verbosity);
  30. if (!mp4File) {
  31. exit(1);
  32. }
  33. MP4TrackId urlTrackId = 
  34. MP4AddTrack(mp4File, "URLF");
  35. printf("urlTrackId %dn", urlTrackId);
  36. u_int8_t i;
  37. char url[128];
  38. for (i = 1; i <= 5; i++) {
  39. sprintf(url, "http://server.com/foo/bar%u.html", i);
  40. MP4WriteSample(mp4File, urlTrackId, 
  41. (u_int8_t*)url, strlen(url) + 1, (MP4Duration)i);
  42. }
  43. MP4Close(mp4File);
  44. mp4File = MP4Read(argv[1], verbosity);
  45. // check that we can find the track again
  46. urlTrackId = MP4FindTrackId(mp4File, 0, "URLF");
  47. printf("urlTrackId %dn", urlTrackId);
  48. for (i = 1; i <= 5; i++) {
  49. u_int8_t* pSample = NULL;
  50. u_int32_t sampleSize = 0;
  51. MP4Duration duration;
  52. bool rc;
  53. rc = MP4ReadSample(mp4File, urlTrackId, i,
  54. &pSample, &sampleSize, NULL, &duration);
  55. if (rc) {
  56. printf("Sample %i duration %lld: %sn", 
  57. i, duration, pSample);
  58. free(pSample);
  59. } else {
  60. printf("Couldn't read sample %in", i);
  61. }
  62. }
  63. MP4Close(mp4File);
  64. exit(0);
  65. }