sample_con.c
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:5k
源码类别:

Windows CE

开发平台:

C/C++

  1. /*****************************************************************************
  2.  *
  3.  * This program is free software ; you can redistribute it and/or modify
  4.  * it under the terms of the GNU General Public License as published by
  5.  * the Free Software Foundation; either version 2 of the License, or
  6.  * (at your option) any later version.
  7.  *
  8.  * This program is distributed in the hope that it will be useful,
  9.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11.  * GNU General Public License for more details.
  12.  *
  13.  * You should have received a copy of the GNU General Public License
  14.  * along with this program; if not, write to the Free Software
  15.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  16.  *
  17.  * $Id: sample_con.c 271 2005-08-09 08:31:35Z picard $
  18.  *
  19.  * The Core Pocket Media Player
  20.  * Copyright (c) 2004-2005 Gabor Kovacs
  21.  *
  22.  ****************************************************************************/
  23. #include "../common/common.h"
  24. #include "../aac/faad.h"
  25. #include "../ffmpeg/ffmpeg.h"
  26. #include "../splitter/mov.h"
  27. #include "../common/zlib/zlib.h"
  28. #ifndef STRICT
  29. #define STRICT
  30. #endif
  31. #define WIN32_LEAN_AND_MEAN
  32. #include <windows.h>
  33. void GetModulePath(tchar_t* Path,const tchar_t* Module);
  34. void SoftIDCT_Init() {}
  35. void SoftIDCT_Done() {}
  36. void OverlayXScale_Init() {}
  37. void OverlayXScale_Done() {}
  38. void OverlayGDI_Init() {}
  39. void OverlayGDI_Done() {}
  40. void OverlayFlyTV_Init() {}
  41. void OverlayFlyTV_Done() {}
  42. void OverlayDDraw_Init() {}
  43. void OverlayDDraw_Done() {}
  44. void ASX_Init() {}
  45. void ASX_Done() {}
  46. void PLS_Init() {}
  47. void PLS_Done() {}
  48. void M3U_Init() {}
  49. void M3U_Done() {}
  50. void* NodeLoadModule(const tchar_t* Path,int* Id,void** AnyFunc,void** Db) { return NULL; }
  51. void NodeFreeModule(void* Module,void* Db) {}
  52. bool_t NodeRegLoadValue(int Class, int Id, void* Data, int Size, int Type) { return 0; }
  53. void NodeRegSaveValue(int Class, int Id, const void* Data, int Size, int Type) {}
  54. void NodeRegLoad(node* p) {}
  55. void NodeRegSave(node* p) {}
  56. int uncompress OF((Bytef *dest,uLongf *destLen, const Bytef *source, uLong sourceLen)) { return -1; }
  57. const uint8_t ff_h263_loop_filter_strength[32] = {0};
  58. int ff_mpeg4_find_frame_end(void *pc, const uint8_t *buf, int buf_size) { return -100; }
  59. int ff_mpeg4_decode_picture_header(void * s, void *gb) { return 0; }
  60. void ff_wmv2_add_mb(void *s, void* i, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr) {}
  61. void ff_mspel_motion(void *s,  uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
  62.  uint8_t **ref_picture, void* f, int motion_x, int motion_y, int h) {}
  63. void Static_Init() 
  64. {
  65. MP4_Init();
  66. FAAD_Init();
  67. FFMPEG_Init();
  68. }
  69. void Static_Done() 
  70. {
  71. MP4_Done();
  72. FAAD_Done();
  73. FFMPEG_Done();
  74. }
  75. void Main()
  76. {
  77. int Int;
  78. bool_t Bool;
  79. node* Player = Context()->Player;
  80. node* Color = NodeEnumObject(NULL,COLOR_ID);
  81. tchar_t Path[MAXPATH];
  82. StringAdd(1,MP4_ID,NODE_PROBE,T("scan(4096,or(eq(le32(4),'moov'),eq(le32(4),'wide'),eq(le32(4),'free'),eq(le32(4),'mdat'),eq(le32(4),'pnot'),eq(le32(4),'prfl'),eq(le32(4),'udta')),!or(eq(le32(4),'ftyp'),eq(le32(4),'skip')),fwd(be32))"));
  83. StringAdd(1,FAAD_ID,NODE_CONTENTTYPE,T("acodec/0xAAC0,acodec/0x00FF"));
  84. StringAdd(1,FILE_ID,NODE_CONTENTTYPE,T("file"));
  85. GetModulePath(Path,NULL);
  86. tcscat_s(Path,MAXPATH,T("sample.mp4"));
  87. Int = CONSOLE_ID;
  88. Player->Set(Player,PLAYER_VOUTPUTID,&Int,sizeof(Int));
  89. Int = 8;
  90. Color->Set(Color,COLOR_BRIGHTNESS,&Int,sizeof(Int));
  91. Int = 32;
  92. Color->Set(Color,COLOR_CONTRAST,&Int,sizeof(Int));
  93. Int = 24;
  94. Color->Set(Color,COLOR_SATURATION,&Int,sizeof(Int));
  95. Context_Wnd((void*)1); //fake window handle
  96. Bool = 1;
  97. Player->Set(Player,PLAYER_FULLSCREEN,&Bool,sizeof(Bool));
  98. Player->Set(Player,PLAYER_LIST_URL+0,Path,sizeof(Path));
  99. ((player*)Player)->Paint(Player,NULL,0,0);
  100. Bool = 1;
  101. Player->Set(Player,PLAYER_PLAY,&Bool,sizeof(Bool));
  102. while (!GetAsyncKeyState(27))
  103. {
  104. #ifndef MULTITHREAD
  105. if (((player*)Player)->Process(Player) == ERR_BUFFER_FULL)
  106. ThreadSleep(GetTimeFreq()/250);
  107. #else
  108. ThreadSleep(GetTimeFreq()/10);
  109. #endif
  110. }
  111. Context_Wnd(NULL);
  112. }
  113. #include <windows.h>
  114. int main(int paramn,const char** param)
  115. {
  116. if (Context_Init("sample","sample",3,T(""),NULL))
  117. {
  118. Main();
  119. Context_Done();
  120. }
  121. }
  122. #undef malloc
  123. #undef realloc
  124. #undef free
  125. #include "../ffmpeg/libavcodec/avcodec.h"
  126. AVCodec wmv1_decoder = { NULL };
  127. AVCodec wmv2_decoder = { NULL };
  128. AVCodec msmpeg4v1_decoder = { NULL };
  129. AVCodec msmpeg4v2_decoder = { NULL };
  130. AVCodec msmpeg4v3_decoder = { NULL };
  131. AVCodec mpeg4_decoder = { NULL };
  132. AVCodec h263_decoder = { NULL };