Browse Source

修改RT-Thread版本为4.1.0

Rbb666 3 năm trước cách đây
mục cha
commit
dffedae8d0
100 tập tin đã thay đổi với 19499 bổ sung352 xóa
  1. 1 0
      .github/workflows/action.yml
  2. 44 19
      RealThread_STMH750-ART-Pi.yaml
  3. 2 2
      libraries/touchgfx_lib/readme.md
  4. 11 3
      projects/art_pi_blink_led/.config
  5. 1 1
      projects/art_pi_blink_led/.cproject
  6. BIN
      projects/art_pi_blink_led/.settings/.rtmenus
  7. 6 7
      projects/art_pi_blink_led/.settings/projcfg.ini
  8. 1 1
      projects/art_pi_blink_led/rtconfig.h
  9. 11 3
      projects/art_pi_bootloader/.config
  10. 1 1
      projects/art_pi_bootloader/.cproject
  11. BIN
      projects/art_pi_bootloader/.settings/.rtmenus
  12. 6 7
      projects/art_pi_bootloader/.settings/projcfg.ini
  13. 1 1
      projects/art_pi_bootloader/rtconfig.h
  14. 11 3
      projects/art_pi_fibocom_l610/.config
  15. 305 132
      projects/art_pi_fibocom_l610/.config.old
  16. 1 1
      projects/art_pi_fibocom_l610/.cproject
  17. BIN
      projects/art_pi_fibocom_l610/.settings/.rtmenus
  18. 3 0
      projects/art_pi_fibocom_l610/packages/cJSON-v1.0.2/README.md
  19. 0 2
      projects/art_pi_fibocom_l610/packages/cJSON-v1.0.2/cJSON_util.c
  20. BIN
      projects/art_pi_fibocom_l610/packages/packages.dbsqlite
  21. 5 5
      projects/art_pi_fibocom_l610/packages/pkgs.json
  22. 1 1
      projects/art_pi_fibocom_l610/rtconfig.h
  23. 1 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/LICENSE
  24. 76 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/README.md
  25. 24 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/SConscript
  26. 417 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/mp3dec.c
  27. 181 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/mp3tabs.c
  28. 30 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/LICENSE.txt
  29. 948 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/RCSL.txt
  30. 518 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/RPSL.txt
  31. 123 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/mp3common.h
  32. 137 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/mp3dec.h
  33. 108 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/mpadecobjfixpt.h
  34. 88 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/statname.h
  35. 30 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/LICENSE.txt
  36. 948 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/RCSL.txt
  37. 518 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/RPSL.txt
  38. 30 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/LICENSE.txt
  39. 948 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/RCSL.txt
  40. 518 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/RPSL.txt
  41. 64 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmmisc_gcc.s
  42. 59 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmmisc_iar.s
  43. 69 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmmisc_rvds.s
  44. 382 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmpoly_thumb2_gcc.s
  45. 377 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmpoly_thumb2_iar.s
  46. 384 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmpoly_thumb2_rvds.s
  47. 282 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/assembly.h
  48. 389 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/bitstream.c
  49. 220 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/buffers.c
  50. 306 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/coder.h
  51. 278 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/dct32.c
  52. 158 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/dequant.c
  53. 375 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/dqchan.c
  54. 458 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/huffman.c
  55. 755 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/hufftabs.c
  56. 779 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/imdct.c
  57. 295 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/polyphase.c
  58. 30 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/LICENSE.txt
  59. 948 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/RCSL.txt
  60. 518 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/RPSL.txt
  61. BIN
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/mp3dec.mcp
  62. BIN
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/testwrap.mcp
  63. 30 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/LICENSE.txt
  64. 948 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/RCSL.txt
  65. 518 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/RPSL.txt
  66. 335 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/mp3dec.vcp
  67. 44 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/mp3dec.vcw
  68. 146 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/testwrap.vcp
  69. 30 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/LICENSE.txt
  70. 948 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/RCSL.txt
  71. 518 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/RPSL.txt
  72. 158 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/mp3dec.dsp
  73. 44 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/mp3dec.dsw
  74. 174 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/testwrap.dsp
  75. 391 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/scalfact.c
  76. 296 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/stproc.c
  77. 96 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/subband.c
  78. 311 0
      projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/trigtabs.c
  79. 1 1
      projects/art_pi_mcuboot/.cproject
  80. 6 7
      projects/art_pi_mcuboot/.settings/projcfg.ini
  81. 76 10
      projects/art_pi_nes/.config
  82. 1 1
      projects/art_pi_nes/.cproject
  83. BIN
      projects/art_pi_nes/.settings/.rtmenus
  84. 6 7
      projects/art_pi_nes/.settings/projcfg.ini
  85. 50 3
      projects/art_pi_nes/rtconfig.h
  86. 9 2
      projects/art_pi_net_player/.config
  87. 1 1
      projects/art_pi_net_player/.cproject
  88. BIN
      projects/art_pi_net_player/.settings/.rtmenus
  89. 6 7
      projects/art_pi_net_player/.settings/projcfg.ini
  90. 115 115
      projects/art_pi_net_player/packages/mbedtls-v2.7.10.1/ports/src/tls_certificate.c
  91. 1 1
      projects/art_pi_net_player/rtconfig.h
  92. 791 0
      projects/art_pi_rust/.config
  93. 210 0
      projects/art_pi_rust/.cproject
  94. 1 0
      projects/art_pi_rust/.gitignore
  95. 28 0
      projects/art_pi_rust/.project
  96. 0 0
      projects/art_pi_rust/.sconsign.dblite
  97. BIN
      projects/art_pi_rust/.settings/.rtmenus
  98. 3 0
      projects/art_pi_rust/.settings/org.eclipse.core.runtime.prefs
  99. 19 0
      projects/art_pi_rust/.settings/projcfg.ini
  100. 8 8
      projects/art_pi_rust/board/CubeMX_Config/.mxproject

+ 1 - 0
.github/workflows/action.yml

@@ -53,6 +53,7 @@ jobs:
          - {RTT_BSP: "art_pi_blink_led"}
          - {RTT_BSP: "art_pi_bootloader"}
         #  - {RTT_BSP: "art_pi_lvgl"}
+         - {RTT_BSP: "art_pi_rust"}
          - {RTT_BSP: "art_pi_gc0328c_camera"}
          - {RTT_BSP: "art_pi_net_player"}
          - {RTT_BSP: "art_pi_sensor485_app"}

+ 44 - 19
RealThread_STMH750-ART-Pi.yaml

@@ -72,7 +72,7 @@ features_zh:
 template_projects:
 - project_name: art_pi_blink_led
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_blink_led
     target_path_offset: ''
@@ -98,7 +98,7 @@ template_projects:
 example_projects: 
 - project_name: art_pi_blink_led
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_blink_led
     target_path_offset: ''
@@ -121,9 +121,34 @@ example_projects:
     source_path_offset: ''
     target_path_offset: ''
     files_and_folders: []
+- project_name: art_pi_rust
+  project_description: creat this peoject if user choose rt-thread project
+  project_type: rt-thread|@full|@4.1.0
+  builtin_files:
+  - source_path_offset: projects/art_pi_rust
+    target_path_offset: ''
+    files_and_folders:
+    - "*"
+  - source_path_offset: ''
+    target_path_offset: ''
+    files_and_folders:
+    - libraries
+    - rt-thread
+  - source_path_offset: 'debug/stldr'
+    target_path_offset: 'board/stldr'
+    files_and_folders:
+    - ART-Pi_W25Q64.stldr
+  external_files:
+  - package_type: Chip_Support_Packages
+    package_vendor: RealThread
+    package_name: STM32H7
+    package_version: 0.1.9
+    source_path_offset: ''
+    target_path_offset: ''
+    files_and_folders: []    
 - project_name: art_pi_bootloader
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_bootloader
     target_path_offset: ''
@@ -144,7 +169,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_mcuboot
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_mcuboot
     target_path_offset: ''
@@ -165,7 +190,7 @@ example_projects:
     files_and_folders: []    
 - project_name: art_pi_wifi
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_wifi
     target_path_offset: ''
@@ -190,7 +215,7 @@ example_projects:
     files_and_folders: []
 - project_name: industry_io_gateway
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/industry_io_gateway
     target_path_offset: ''
@@ -215,7 +240,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_net_player
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_net_player
     target_path_offset: ''
@@ -240,7 +265,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_gc0328c_camera
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_gc0328c_camera
     target_path_offset: ''
@@ -261,7 +286,7 @@ example_projects:
     files_and_folders: []
 - project_name: lrs007_lora_radio
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/lrs007_lora_radio
     target_path_offset: ''
@@ -282,7 +307,7 @@ example_projects:
     files_and_folders: []
 - project_name: lrs007_lorawan_end_device
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/lrs007_lorawan_end_device
     target_path_offset: ''
@@ -303,7 +328,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_sensor485_app
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_sensor485_app
     target_path_offset: ''
@@ -324,7 +349,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_qboot
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_qboot
     target_path_offset: ''
@@ -370,7 +395,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_nes
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_nes
     target_path_offset: ''
@@ -391,7 +416,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_kboot
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_kboot
     target_path_offset: ''
@@ -412,7 +437,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_fibocom_l610
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_fibocom_l610
     target_path_offset: ''
@@ -433,7 +458,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_lrs007_lora_gw_driver
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_lrs007_lora_gw_driver
     target_path_offset: ''
@@ -454,7 +479,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_lrs007_lora_loopback
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_lrs007_lora_loopback
     target_path_offset: ''
@@ -475,7 +500,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_lrs007_lora_pkt_sniffer
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_lrs007_lora_pkt_sniffer
     target_path_offset: ''
@@ -496,7 +521,7 @@ example_projects:
     files_and_folders: []
 - project_name: art_pi_lrs007_lorawan_gateway
   project_description: creat this peoject if user choose rt-thread project
-  project_type: rt-thread|@full|@4.1.1
+  project_type: rt-thread|@full|@4.1.0
   builtin_files:
   - source_path_offset: projects/art_pi_lrs007_lorawan_gateway
     target_path_offset: ''

+ 2 - 2
libraries/touchgfx_lib/readme.md

@@ -57,10 +57,10 @@
 
 ### 使用 MDK 开发
 1. 在 [ART-Pi SDK仓库](https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi) 下载 SDK
-2. 进入工程目录。如:sdk-bsp-stm32h750-realthread-artpi\projects\art_pi_blink_led
+2. 进入工程目录。如:sdk-bsp-stm32h750-realthread-artpi\projects\art_pi_rust
 3. 以管理员权限打开 windows 命令行 ,执行 mklink 命令,分别为 `rt-thread` 及 `libraries` 文件创建符号链接
 ```c
-E:\project\sdk-bsp-stm32h750-realthread-artpi\projects\art_pi_blink_led>mklink /D rt-thread ..\..\rt-thread
+E:\project\sdk-bsp-stm32h750-realthread-artpi\projects\art_pi_rust>mklink /D rt-thread ..\..\rt-thread
 为 rt-thread <<===>> ..\..\rt-thread 创建的符号链接
 
 E:\project\sdk-bsp-stm32h750-realthread-artpi\projects>mklink /D libraries ..\..\libraries

+ 11 - 3
projects/art_pi_blink_led/.config

@@ -26,10 +26,11 @@ CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
 # kservice optimization
 #
 CONFIG_RT_KSERVICE_USING_STDLIB=y
-# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMCPY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMSET is not set
 # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
 # CONFIG_RT_USING_TINY_FFS is not set
-# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+# CONFIG_RT_PRINTF_LONGLONG is not set
 # end of kservice optimization
 
 CONFIG_RT_DEBUG=y
@@ -87,7 +88,7 @@ CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart4"
 # end of Kernel Device Object
 
-CONFIG_RT_VER_NUM=0x40101
+CONFIG_RT_VER_NUM=0x40100
 # end of RT-Thread Kernel
 
 CONFIG_ARCH_ARM=y
@@ -336,6 +337,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_HM is not set
 # CONFIG_PKG_USING_SMALL_MODBUS is not set
 # CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
 # end of IoT - internet of things
 
 #
@@ -376,6 +378,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
 # end of language packages
 
 #
@@ -471,6 +474,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_CBOX is not set
 # CONFIG_PKG_USING_SNOWFLAKE is not set
 # CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
 # end of tools packages
 
 #
@@ -492,6 +496,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_POSIX_WCWIDTH is not set
 # CONFIG_PKG_USING_POSIX_ITOA is not set
 # CONFIG_PKG_USING_POSIX_STRINGS is not set
+# CONFIG_PKG_USING_POSIX_CTYPES is not set
 # end of POSIX extension functions
 
 #
@@ -525,6 +530,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_PERF_COUNTER is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -553,6 +559,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_CHERRYUSB is not set
 # CONFIG_PKG_USING_KMULTI_RTIMER is not set
 # CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
 # end of system packages
 
 #
@@ -715,6 +722,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
 # CONFIG_PKG_USING_MFBD is not set
 # CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
 # end of miscellaneous packages
 # end of RT-Thread online packages
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
projects/art_pi_blink_led/.cproject


BIN
projects/art_pi_blink_led/.settings/.rtmenus


+ 6 - 7
projects/art_pi_blink_led/.settings/projcfg.ini

@@ -1,5 +1,5 @@
 #RT-Thread Studio Project Configuration
-#Sun Sep 27 20:00:00 CST 2020
+#Mon Jun 13 15:35:21 CST 2022
 cfg_version=v3.0
 board_name=STM32H750-RT-ART-PI
 example_name=art_pi_blink_led
@@ -7,14 +7,13 @@ hardware_adapter=ST-LINK
 board_base_nano_proj=False
 project_type=rt-thread
 chip_name=STM32H750XBHx
-bsp_version=0.3.0
 selected_rtt_version=4.0.2
+bsp_version=0.3.0
 os_branch=full
-project_base_bsp=true
-is_use_scons_build=True
+output_project_path=E\:\\software\\Git\\GitRepository\\ART-PI\\sdk-bsp-stm32h750-realthread-artpi\\projects\\art_pi_blink_led
 is_base_example_project=True
-output_project_path=D\:/RT-ThreadStudio/workspace
+is_use_scons_build=True
+project_base_bsp=true
 project_name=art_pi_blink_led
-bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master
 os_version=4.0.2
-
+bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master

+ 1 - 1
projects/art_pi_blink_led/rtconfig.h

@@ -52,7 +52,7 @@
 #define RT_CONSOLEBUF_SIZE 128
 #define RT_CONSOLE_DEVICE_NAME "uart4"
 /* end of Kernel Device Object */
-#define RT_VER_NUM 0x40101
+#define RT_VER_NUM 0x40100
 /* end of RT-Thread Kernel */
 #define ARCH_ARM
 #define RT_USING_CPU_FFS

+ 11 - 3
projects/art_pi_bootloader/.config

@@ -24,10 +24,11 @@ CONFIG_IDLE_THREAD_STACK_SIZE=256
 # kservice optimization
 #
 CONFIG_RT_KSERVICE_USING_STDLIB=y
-# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMCPY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMSET is not set
 # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
 # CONFIG_RT_USING_TINY_FFS is not set
-# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+# CONFIG_RT_PRINTF_LONGLONG is not set
 # end of kservice optimization
 
 # CONFIG_RT_DEBUG is not set
@@ -74,7 +75,7 @@ CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart4"
 # end of Kernel Device Object
 
-CONFIG_RT_VER_NUM=0x40101
+CONFIG_RT_VER_NUM=0x40100
 # end of RT-Thread Kernel
 
 CONFIG_ARCH_ARM=y
@@ -305,6 +306,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_HM is not set
 # CONFIG_PKG_USING_SMALL_MODBUS is not set
 # CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
 # end of IoT - internet of things
 
 #
@@ -345,6 +347,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
 # end of language packages
 
 #
@@ -440,6 +443,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_CBOX is not set
 # CONFIG_PKG_USING_SNOWFLAKE is not set
 # CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
 # end of tools packages
 
 #
@@ -461,6 +465,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_POSIX_WCWIDTH is not set
 # CONFIG_PKG_USING_POSIX_ITOA is not set
 # CONFIG_PKG_USING_POSIX_STRINGS is not set
+# CONFIG_PKG_USING_POSIX_CTYPES is not set
 # end of POSIX extension functions
 
 #
@@ -494,6 +499,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_PERF_COUNTER is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -522,6 +528,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_CHERRYUSB is not set
 # CONFIG_PKG_USING_KMULTI_RTIMER is not set
 # CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
 # end of system packages
 
 #
@@ -684,6 +691,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
 # CONFIG_PKG_USING_MFBD is not set
 # CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
 # end of miscellaneous packages
 # end of RT-Thread online packages
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
projects/art_pi_bootloader/.cproject


BIN
projects/art_pi_bootloader/.settings/.rtmenus


+ 6 - 7
projects/art_pi_bootloader/.settings/projcfg.ini

@@ -1,5 +1,5 @@
 #RT-Thread Studio Project Configuration
-#Sun Sep 27 20:00:00 CST 2020
+#Mon Jun 13 15:41:28 CST 2022
 cfg_version=v3.0
 board_name=STM32H750-RT-ART-PI
 example_name=art_pi_blink_led
@@ -7,14 +7,13 @@ hardware_adapter=ST-LINK
 board_base_nano_proj=False
 project_type=rt-thread
 chip_name=STM32H750XBHx
-bsp_version=0.3.0
 selected_rtt_version=4.0.2
+bsp_version=0.3.0
 os_branch=full
-project_base_bsp=true
-is_use_scons_build=True
+output_project_path=E\:\\software\\Git\\GitRepository\\ART-PI\\sdk-bsp-stm32h750-realthread-artpi\\projects\\art_pi_bootloader
 is_base_example_project=True
-output_project_path=D\:/RT-ThreadStudio/workspace
+is_use_scons_build=True
+project_base_bsp=true
 project_name=art_pi_blink_led
-bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master
 os_version=4.0.2
-
+bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master

+ 1 - 1
projects/art_pi_bootloader/rtconfig.h

@@ -45,7 +45,7 @@
 #define RT_CONSOLEBUF_SIZE 128
 #define RT_CONSOLE_DEVICE_NAME "uart4"
 /* end of Kernel Device Object */
-#define RT_VER_NUM 0x40101
+#define RT_VER_NUM 0x40100
 /* end of RT-Thread Kernel */
 #define ARCH_ARM
 #define RT_USING_CPU_FFS

+ 11 - 3
projects/art_pi_fibocom_l610/.config

@@ -26,10 +26,11 @@ CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
 # kservice optimization
 #
 CONFIG_RT_KSERVICE_USING_STDLIB=y
-# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMCPY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMSET is not set
 # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
 # CONFIG_RT_USING_TINY_FFS is not set
-# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+# CONFIG_RT_PRINTF_LONGLONG is not set
 # end of kservice optimization
 
 CONFIG_RT_DEBUG=y
@@ -87,7 +88,7 @@ CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart4"
 # end of Kernel Device Object
 
-CONFIG_RT_VER_NUM=0x40101
+CONFIG_RT_VER_NUM=0x40100
 # end of RT-Thread Kernel
 
 CONFIG_ARCH_ARM=y
@@ -500,6 +501,7 @@ CONFIG_PKG_ALI_IOTKIT_VER_NUM=0x30001
 # CONFIG_PKG_USING_HM is not set
 # CONFIG_PKG_USING_SMALL_MODBUS is not set
 # CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
 # end of IoT - internet of things
 
 #
@@ -578,6 +580,7 @@ CONFIG_PKG_CJSON_VER="v1.0.2"
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
 # end of language packages
 
 #
@@ -674,6 +677,7 @@ CONFIG_PKG_CJSON_VER="v1.0.2"
 # CONFIG_PKG_USING_CBOX is not set
 # CONFIG_PKG_USING_SNOWFLAKE is not set
 # CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
 # end of tools packages
 
 #
@@ -695,6 +699,7 @@ CONFIG_PKG_CJSON_VER="v1.0.2"
 # CONFIG_PKG_USING_POSIX_WCWIDTH is not set
 # CONFIG_PKG_USING_POSIX_ITOA is not set
 # CONFIG_PKG_USING_POSIX_STRINGS is not set
+# CONFIG_PKG_USING_POSIX_CTYPES is not set
 # end of POSIX extension functions
 
 #
@@ -728,6 +733,7 @@ CONFIG_PKG_CJSON_VER="v1.0.2"
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_PERF_COUNTER is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -756,6 +762,7 @@ CONFIG_PKG_CJSON_VER="v1.0.2"
 # CONFIG_PKG_USING_CHERRYUSB is not set
 # CONFIG_PKG_USING_KMULTI_RTIMER is not set
 # CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
 # end of system packages
 
 #
@@ -918,6 +925,7 @@ CONFIG_PKG_CJSON_VER="v1.0.2"
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
 # CONFIG_PKG_USING_MFBD is not set
 # CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
 # end of miscellaneous packages
 # end of RT-Thread online packages
 

+ 305 - 132
projects/art_pi_fibocom_l610/.config.old

@@ -1,7 +1,4 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# RT-Thread Configuration
-#
+# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
 
 #
 # RT-Thread Kernel
@@ -17,12 +14,24 @@ CONFIG_RT_THREAD_PRIORITY_MAX=32
 CONFIG_RT_TICK_PER_SECOND=1000
 CONFIG_RT_USING_OVERFLOW_CHECK=y
 CONFIG_RT_USING_HOOK=y
+CONFIG_RT_HOOK_USING_FUNC_PTR=y
 CONFIG_RT_USING_IDLE_HOOK=y
 CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
 CONFIG_IDLE_THREAD_STACK_SIZE=256
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
+
+#
+# kservice optimization
+#
+CONFIG_RT_KSERVICE_USING_STDLIB=y
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_TINY_FFS is not set
+# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+# end of kservice optimization
+
 CONFIG_RT_DEBUG=y
 # CONFIG_RT_DEBUG_COLOR is not set
 # CONFIG_RT_DEBUG_INIT_CONFIG is not set
@@ -45,17 +54,27 @@ CONFIG_RT_USING_EVENT=y
 CONFIG_RT_USING_MAILBOX=y
 CONFIG_RT_USING_MESSAGEQUEUE=y
 # CONFIG_RT_USING_SIGNALS is not set
+# end of Inter-Thread communication
 
 #
 # Memory Management
 #
 CONFIG_RT_USING_MEMPOOL=y
-CONFIG_RT_USING_MEMHEAP=y
-# CONFIG_RT_USING_NOHEAP is not set
 # CONFIG_RT_USING_SMALL_MEM is not set
 # CONFIG_RT_USING_SLAB is not set
+CONFIG_RT_USING_MEMHEAP=y
+CONFIG_RT_MEMHEAP_FAST_MODE=y
+# CONFIG_RT_MEMHEAP_BSET_MODE is not set
+# CONFIG_RT_USING_SMALL_MEM_AS_HEAP is not set
 CONFIG_RT_USING_MEMHEAP_AS_HEAP=y
+CONFIG_RT_USING_MEMHEAP_AUTO_BINDING=y
+# CONFIG_RT_USING_SLAB_AS_HEAP is not set
+# CONFIG_RT_USING_USERHEAP is not set
+# CONFIG_RT_USING_NOHEAP is not set
+# CONFIG_RT_USING_MEMTRACE is not set
+# CONFIG_RT_USING_HEAP_ISR is not set
 CONFIG_RT_USING_HEAP=y
+# end of Memory Management
 
 #
 # Kernel Device Object
@@ -66,12 +85,15 @@ CONFIG_RT_USING_DEVICE=y
 CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart4"
-CONFIG_RT_VER_NUM=0x40003
+# end of Kernel Device Object
+
+CONFIG_RT_VER_NUM=0x40101
+# end of RT-Thread Kernel
+
 CONFIG_ARCH_ARM=y
 CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_ARM_CORTEX_M=y
 CONFIG_ARCH_ARM_CORTEX_M7=y
-# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
 
 #
 # RT-Thread Components
@@ -80,35 +102,24 @@ CONFIG_RT_USING_COMPONENTS_INIT=y
 CONFIG_RT_USING_USER_MAIN=y
 CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
 CONFIG_RT_MAIN_THREAD_PRIORITY=10
-
-#
-# C++ features
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Command shell
-#
+# CONFIG_RT_USING_LEGACY is not set
+CONFIG_RT_USING_MSH=y
 CONFIG_RT_USING_FINSH=y
+CONFIG_FINSH_USING_MSH=y
 CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
 CONFIG_FINSH_USING_HISTORY=y
 CONFIG_FINSH_HISTORY_LINES=5
 CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
 CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
-CONFIG_FINSH_THREAD_PRIORITY=20
-CONFIG_FINSH_THREAD_STACK_SIZE=4096
-CONFIG_FINSH_CMD_SIZE=80
 # CONFIG_FINSH_USING_AUTH is not set
-CONFIG_FINSH_USING_MSH=y
-CONFIG_FINSH_USING_MSH_DEFAULT=y
-# CONFIG_FINSH_USING_MSH_ONLY is not set
 CONFIG_FINSH_ARG_MAX=10
-
-#
-# Device virtual file system
-#
 CONFIG_RT_USING_DFS=y
+CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
 CONFIG_DFS_FILESYSTEMS_MAX=2
 CONFIG_DFS_FILESYSTEM_TYPES_MAX=2
@@ -118,24 +129,26 @@ CONFIG_DFS_FD_MAX=16
 CONFIG_RT_USING_DFS_DEVFS=y
 # CONFIG_RT_USING_DFS_ROMFS is not set
 # CONFIG_RT_USING_DFS_RAMFS is not set
-# CONFIG_RT_USING_DFS_UFFS is not set
-# CONFIG_RT_USING_DFS_JFFS2 is not set
+# CONFIG_RT_USING_FAL is not set
+# CONFIG_RT_USING_LWP is not set
 
 #
 # Device Drivers
 #
 CONFIG_RT_USING_DEVICE_IPC=y
-CONFIG_RT_PIPE_BUFSZ=512
 CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
 CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
 CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
 CONFIG_RT_USING_SERIAL=y
-# CONFIG_RT_SERIAL_USING_DMA is not set
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
+CONFIG_RT_SERIAL_USING_DMA=y
 CONFIG_RT_SERIAL_RB_BUFSZ=4096
 # CONFIG_RT_USING_CAN is not set
 # CONFIG_RT_USING_HWTIMER is not set
 # CONFIG_RT_USING_CPUTIME is not set
 # CONFIG_RT_USING_I2C is not set
+# CONFIG_RT_USING_PHY is not set
 CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
@@ -148,6 +161,7 @@ CONFIG_RT_USING_RTC=y
 # CONFIG_RT_USING_SOFT_RTC is not set
 # CONFIG_RT_USING_SDIO is not set
 CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
 # CONFIG_RT_USING_QSPI is not set
 # CONFIG_RT_USING_SPI_MSD is not set
 # CONFIG_RT_USING_SFUD is not set
@@ -167,37 +181,62 @@ CONFIG_RT_USING_SPI=y
 #
 # CONFIG_RT_USING_USB_HOST is not set
 # CONFIG_RT_USING_USB_DEVICE is not set
+# end of Using USB
+# end of Device Drivers
 
 #
-# POSIX layer and C standard library
+# C/C++ and POSIX layer
 #
-CONFIG_RT_USING_LIBC=y
-# CONFIG_RT_USING_PTHREADS is not set
-CONFIG_RT_USING_POSIX=y
-# CONFIG_RT_USING_POSIX_MMAP is not set
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
+
+#
+# POSIX (Portable Operating System Interface) layer
+#
+CONFIG_RT_USING_POSIX_FS=y
+# CONFIG_RT_USING_POSIX_DEVIO is not set
+# CONFIG_RT_USING_POSIX_STDIO is not set
+CONFIG_RT_USING_POSIX_POLL=y
+CONFIG_RT_USING_POSIX_SELECT=y
+CONFIG_RT_USING_POSIX_SOCKET=y
 # CONFIG_RT_USING_POSIX_TERMIOS is not set
 # CONFIG_RT_USING_POSIX_AIO is not set
+# CONFIG_RT_USING_POSIX_MMAN is not set
+# CONFIG_RT_USING_POSIX_DELAY is not set
+# CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
+# CONFIG_RT_USING_PTHREADS is not set
 # CONFIG_RT_USING_MODULE is not set
 
 #
-# Network
+# Interprocess Communication (IPC)
 #
+# CONFIG_RT_USING_POSIX_PIPE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
 
 #
-# Socket abstraction layer
+# Socket is in the 'Network' category
+#
+# end of Interprocess Communication (IPC)
+# end of POSIX (Portable Operating System Interface) layer
+
+# CONFIG_RT_USING_CPLUSPLUS is not set
+# end of C/C++ and POSIX layer
+
+#
+# Network
 #
 CONFIG_RT_USING_SAL=y
+CONFIG_SAL_INTERNET_CHECK=y
 
 #
 # protocol stack implement
 #
 CONFIG_SAL_USING_AT=y
 CONFIG_SAL_USING_TLS=y
-CONFIG_SAL_USING_POSIX=y
+# end of protocol stack implement
 
-#
-# Network interface device
-#
+CONFIG_SAL_USING_POSIX=y
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
@@ -206,16 +245,7 @@ CONFIG_NETDEV_USING_AUTO_DEFAULT=y
 # CONFIG_NETDEV_USING_IPV6 is not set
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
-# CONFIG_NETDEV_IPV6_SCOPES is not set
-
-#
-# light weight TCP/IP stack
-#
 # CONFIG_RT_USING_LWIP is not set
-
-#
-# AT commands
-#
 CONFIG_RT_USING_AT=y
 CONFIG_AT_DEBUG=y
 # CONFIG_AT_USING_SERVER is not set
@@ -225,12 +255,8 @@ CONFIG_AT_USING_SOCKET=y
 CONFIG_AT_USING_CLI=y
 CONFIG_AT_PRINT_RAW_CMD=y
 CONFIG_AT_CMD_MAX_LEN=4096
-CONFIG_AT_SW_VERSION_NUM=0x10300
-
-#
-# VBUS(Virtual Software BUS)
-#
-# CONFIG_RT_USING_VBUS is not set
+CONFIG_AT_SW_VERSION_NUM=0x10301
+# end of Network
 
 #
 # Utilities
@@ -238,7 +264,12 @@ CONFIG_AT_SW_VERSION_NUM=0x10300
 # CONFIG_RT_USING_RYM is not set
 # CONFIG_RT_USING_ULOG is not set
 # CONFIG_RT_USING_UTEST is not set
-# CONFIG_RT_USING_LWP is not set
+# CONFIG_RT_USING_VAR_EXPORT is not set
+# CONFIG_RT_USING_RT_LINK is not set
+# end of Utilities
+
+# CONFIG_RT_USING_VBUS is not set
+# end of RT-Thread Components
 
 #
 # RT-Thread online packages
@@ -258,6 +289,7 @@ CONFIG_WEBCLIENT_USING_SAMPLES=y
 CONFIG_WEBCLIENT_NOT_USE_TLS=y
 # CONFIG_WEBCLIENT_USING_SAL_TLS is not set
 # CONFIG_WEBCLIENT_USING_MBED_TLS is not set
+# CONFIG_PKG_USING_WEBCLIENT_V220 is not set
 CONFIG_PKG_USING_WEBCLIENT_V212=y
 # CONFIG_PKG_USING_WEBCLIENT_V211 is not set
 # CONFIG_PKG_USING_WEBCLIENT_V210 is not set
@@ -273,18 +305,8 @@ CONFIG_PKG_WEBCLIENT_VER_NUM=0x20102
 # CONFIG_PKG_USING_KAWAII_MQTT is not set
 # CONFIG_PKG_USING_BC28_MQTT is not set
 # CONFIG_PKG_USING_WEBTERMINAL is not set
-CONFIG_PKG_USING_CJSON=y
-CONFIG_PKG_CJSON_PATH="/packages/iot/cJSON"
-# CONFIG_PKG_USING_CJSON_V1714 is not set
-# CONFIG_PKG_USING_CJSON_V159 is not set
-CONFIG_PKG_USING_CJSON_V102=y
-# CONFIG_PKG_USING_CJSON_LATEST_VERSION is not set
-CONFIG_PKG_CJSON_VER="v1.0.2"
-# CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_LIBMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_EZXML is not set
 # CONFIG_PKG_USING_NANOPB is not set
 
 #
@@ -295,12 +317,17 @@ CONFIG_PKG_CJSON_VER="v1.0.2"
 # Marvell WiFi
 #
 # CONFIG_PKG_USING_WLANMARVELL is not set
+# end of Marvell WiFi
 
 #
 # Wiced WiFi
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
+# end of Wiced WiFi
+
 # CONFIG_PKG_USING_RW007 is not set
+# end of Wi-Fi
+
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -329,21 +356,24 @@ CONFIG_PKG_AT_DEVICE_PATH="/packages/iot/at_device"
 # CONFIG_AT_DEVICE_USING_M5311 is not set
 CONFIG_AT_DEVICE_USING_L610=y
 CONFIG_AT_DEVICE_L610_INIT_ASYN=y
+CONFIG_AT_DEVICE_L610_SOCKET=y
 CONFIG_AT_DEVICE_L610_SAMPLE=y
 CONFIG_L610_SAMPLE_POWER_PIN=133
 CONFIG_L610_SAMPLE_STATUS_PIN=-1
 CONFIG_L610_SAMPLE_CLIENT_NAME="uart1"
 CONFIG_L610_SAMPLE_RECV_BUFF_LEN=4096
 # CONFIG_AT_DEVICE_USING_N720 is not set
+CONFIG_PKG_USING_AT_DEVICE_V204=y
 # CONFIG_PKG_USING_AT_DEVICE_V203 is not set
 # CONFIG_PKG_USING_AT_DEVICE_V202 is not set
 # CONFIG_PKG_USING_AT_DEVICE_V201 is not set
 # CONFIG_PKG_USING_AT_DEVICE_V200 is not set
-CONFIG_PKG_USING_AT_DEVICE_LATEST_VERSION=y
-CONFIG_PKG_AT_DEVICE_VER="latest"
-CONFIG_PKG_AT_DEVICE_VER_NUM=0x99999
+# CONFIG_PKG_USING_AT_DEVICE_LATEST_VERSION is not set
+CONFIG_PKG_AT_DEVICE_VER="v2.0.4"
+CONFIG_PKG_AT_DEVICE_VER_NUM=0x20004
 # CONFIG_PKG_USING_ATSRV_SOCKET is not set
 # CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
 
 #
 # IoT Cloud
@@ -369,27 +399,20 @@ CONFIG_INFRA_LOG=y
 #
 # Log Configurations
 #
-# CONFIG_INFRA_LOG_ALL_MUTED is not set
 CONFIG_INFRA_LOG_MUTE_FLW=y
 CONFIG_INFRA_LOG_MUTE_DBG=y
 CONFIG_INFRA_LOG_MUTE_INF=y
 CONFIG_INFRA_LOG_MUTE_WRN=y
 # CONFIG_INFRA_LOG_MUTE_ERR is not set
 CONFIG_INFRA_LOG_MUTE_CRT=y
-# CONFIG_INFRA_MEM_STATS is not set
+# end of Log Configurations
+
 CONFIG_INFRA_TIMER=y
-# CONFIG_INFRA_RANDOM is not set
-# CONFIG_INFRA_JSON_PARSER is not set
 CONFIG_INFRA_CJSON=y
-# CONFIG_INFRA_MD5 is not set
-# CONFIG_INFRA_SHA1 is not set
 CONFIG_INFRA_SHA256=y
 CONFIG_INFRA_REPORT=y
-# CONFIG_INFRA_HTTPC is not set
 CONFIG_INFRA_COMPAT=y
 CONFIG_INFRA_CLASSIC=y
-# CONFIG_INFRA_PREAUTH is not set
-# CONFIG_INFRA_AES is not set
 CONFIG_DEV_SIGN=y
 CONFIG_MQTT_COMM_ENABLED=y
 
@@ -397,9 +420,10 @@ CONFIG_MQTT_COMM_ENABLED=y
 # MQTT Configurations
 #
 CONFIG_MQTT_DEFAULT_IMPL=y
-# CONFIG_MQTT_PRE_AUTH is not set
 CONFIG_MQTT_DIRECT=y
 # CONFIG_ASYNC_PROTOCOL_STACK is not set
+# end of MQTT Configurations
+
 # CONFIG_DYNAMIC_REGISTER is not set
 CONFIG_DEVICE_MODEL_CLASSIC=y
 CONFIG_LOG_REPORT_TO_CLOUD=y
@@ -414,28 +438,16 @@ CONFIG_DEVICE_MODEL_ENABLED=y
 # CONFIG_ALCS_ENABLED is not set
 # CONFIG_SUB_PERSISTENCE_ENABLED is not set
 # CONFIG_DEVICE_MODEL_SHADOW is not set
-# CONFIG_HAL_KV is not set
+# end of Device Model Configurations
+
 CONFIG_SUPPORT_TLS=y
-# CONFIG_HAL_CRYPTO is not set
-# CONFIG_HAL_UDP is not set
-# CONFIG_COAP_DTLS_SUPPORT is not set
 # CONFIG_ATM_ENABLED is not set
 # CONFIG_OTA_ENABLED is not set
 # CONFIG_COAP_COMM_ENABLED is not set
-# CONFIG_COAP_PACKET is not set
-# CONFIG_COAP_CLIENT is not set
-# CONFIG_COAP_SERVER is not set
 # CONFIG_DEV_RESET is not set
 # CONFIG_HTTP_COMM_ENABLED is not set
 # CONFIG_HTTP2_COMM_ENABLED is not set
-# CONFIG_FS_ENABLED is not set
-# CONFIG_AWSS_SUPPORT_APLIST is not set
-# CONFIG_AWSS_DISABLE_ENROLLEE is not set
-# CONFIG_AWSS_DISABLE_REGISTRAR is not set
-# CONFIG_AWSS_SUPPORT_ADHA is not set
-# CONFIG_AWSS_FRAMEWORKS is not set
 # CONFIG_WIFI_PROVISION_ENABLED is not set
-# CONFIG_AWSS_SUPPORT_SMARTCONFIG_WPS is not set
 # CONFIG_DEV_BIND_ENABLED is not set
 CONFIG_PKG_USING_ALI_IOTKIT_SAMPLES=y
 CONFIG_PKG_USING_ALI_IOTKIT_MQTT_SAMPLE=y
@@ -451,7 +463,12 @@ CONFIG_PKG_ALI_IOTKIT_VER_NUM=0x30001
 # CONFIG_PKG_USING_JIOT-C-SDK is not set
 # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
 # CONFIG_PKG_USING_JOYLINK is not set
+# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# end of IoT Cloud
+
 # CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
 # CONFIG_PKG_USING_LSSDP is not set
@@ -465,20 +482,25 @@ CONFIG_PKG_ALI_IOTKIT_VER_NUM=0x30001
 # CONFIG_PKG_USING_ABUP_FOTA is not set
 # CONFIG_PKG_USING_LIBCURL2RTT is not set
 # CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
 # CONFIG_PKG_USING_AGILE_TELNET is not set
 # CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
-# CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_BSAL is not set
 # CONFIG_PKG_USING_AGILE_MODBUS is not set
 # CONFIG_PKG_USING_AGILE_FTP is not set
 # CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
+# CONFIG_PKG_USING_NET_SERVER is not set
+# end of IoT - internet of things
 
 #
 # security packages
@@ -501,32 +523,83 @@ CONFIG_PKG_USING_MBEDTLS=y
 # CONFIG_PKG_USING_MBEDTLS_CLOBALSIGN_ROOT_CA is not set
 # CONFIG_PKG_USING_MBEDTLS_ENTRUST_ROOT_CA is not set
 # CONFIG_PKG_USING_MBEDTLS_AMAZON_ROOT_CA is not set
+# end of Select Root Certificate
+
 CONFIG_MBEDTLS_AES_ROM_TABLES=y
 CONFIG_MBEDTLS_ECP_WINDOW_SIZE=2
 CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=8192
 # CONFIG_PKG_USING_MBEDTLS_EXAMPLE is not set
 # CONFIG_PKG_USING_MBEDTLS_DEBUG is not set
 CONFIG_PKG_MBEDTLS_PATH="/packages/security/mbedtls"
+CONFIG_PKG_USING_MBEDTLS_V27101=y
 # CONFIG_PKG_USING_MBEDTLS_V2710 is not set
 # CONFIG_PKG_USING_MBEDTLS_V261 is not set
 # CONFIG_PKG_USING_MBEDTLS_V260 is not set
-CONFIG_PKG_USING_MBEDTLS_LATEST_VERSION=y
-CONFIG_PKG_MBEDTLS_VER="latest"
-# CONFIG_PKG_USING_libsodium is not set
+# CONFIG_PKG_USING_MBEDTLS_LATEST_VERSION is not set
+CONFIG_PKG_MBEDTLS_VER="v2.7.10.1"
+# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
 # CONFIG_PKG_USING_TINYCRYPT is not set
 # CONFIG_PKG_USING_TFM is not set
 # CONFIG_PKG_USING_YD_CRYPTO is not set
+# end of security packages
 
 #
 # language packages
 #
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+CONFIG_PKG_USING_CJSON=y
+CONFIG_PKG_CJSON_PATH="/packages/language/JSON/cJSON"
+# CONFIG_PKG_USING_CJSON_V1715 is not set
+# CONFIG_PKG_USING_CJSON_V1714 is not set
+# CONFIG_PKG_USING_CJSON_V159 is not set
+CONFIG_PKG_USING_CJSON_V102=y
+# CONFIG_PKG_USING_CJSON_LATEST_VERSION is not set
+CONFIG_PKG_CJSON_VER="v1.0.2"
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
+# end of XML: Extensible Markup Language
+
+# CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
+# end of language packages
 
 #
 # multimedia packages
 #
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+# end of LVGL: powerful and easy-to-use embedded GUI library
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
+# end of u8g2: a monochrome graphic library
+
 # CONFIG_PKG_USING_OPENMV is not set
 # CONFIG_PKG_USING_MUPDF is not set
 # CONFIG_PKG_USING_STEMWIN is not set
@@ -539,6 +612,22 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_NUEMWIN is not set
 # CONFIG_PKG_USING_MP3PLAYER is not set
 # CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
+# end of PainterEngine: A cross-platform graphics application framework written in C language
+
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_TERMBOX is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_PERSIMMON is not set
+# end of multimedia packages
 
 #
 # tools packages
@@ -549,7 +638,6 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_SYSTEMVIEW is not set
 # CONFIG_PKG_USING_SEGGER_RTT is not set
 # CONFIG_PKG_USING_RDB is not set
-# CONFIG_PKG_USING_QRCODE is not set
 # CONFIG_PKG_USING_ULOG_EASYFLASH is not set
 # CONFIG_PKG_USING_ULOG_FILE is not set
 # CONFIG_PKG_USING_LOGMGR is not set
@@ -582,18 +670,48 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_MEM_SANDBOX is not set
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
+# end of tools packages
 
 #
 # system packages
 #
 
 #
-# acceleration: Assembly language or algorithmic acceleration packages
+# enhanced kernel services
 #
 # CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+# end of enhanced kernel services
+
+#
+# POSIX extension functions
+#
+# CONFIG_PKG_USING_POSIX_GETLINE is not set
+# CONFIG_PKG_USING_POSIX_WCWIDTH is not set
+# CONFIG_PKG_USING_POSIX_ITOA is not set
+# CONFIG_PKG_USING_POSIX_STRINGS is not set
+# end of POSIX extension functions
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
 # CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
 # CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
 # CONFIG_PKG_USING_QFPLIB_M3 is not set
+# end of acceleration: Assembly language or algorithmic acceleration packages
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 
 #
 # Micrium: Micrium software products porting for RT-Thread
@@ -604,17 +722,15 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_PKG_USING_GUIENGINE is not set
-# CONFIG_PKG_USING_PERSIMMON is not set
+# end of Micrium: Micrium software products porting for RT-Thread
+
+# CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_FAL is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
-# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
-# CONFIG_PKG_USING_CMSIS is not set
 # CONFIG_PKG_USING_DFS_YAFFS is not set
 # CONFIG_PKG_USING_LITTLEFS is not set
 # CONFIG_PKG_USING_DFS_JFFS2 is not set
@@ -631,10 +747,16 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_QBOOT is not set
 # CONFIG_PKG_USING_PPOOL is not set
 # CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
 # CONFIG_PKG_USING_LPM is not set
 # CONFIG_PKG_USING_TLSF is not set
 # CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_MCUBOOT is not set
+# CONFIG_PKG_USING_TINYUSB is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
+# end of system packages
 
 #
 # peripheral libraries and drivers
@@ -646,7 +768,6 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_AS7341 is not set
 # CONFIG_PKG_USING_STM32_SDIO is not set
 # CONFIG_PKG_USING_ICM20608 is not set
-# CONFIG_PKG_USING_U8G2 is not set
 # CONFIG_PKG_USING_BUTTON is not set
 # CONFIG_PKG_USING_PCF8574 is not set
 # CONFIG_PKG_USING_SX12XX is not set
@@ -659,6 +780,7 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_WM_LIBRARIES is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
 # CONFIG_PKG_USING_AGILE_LED is not set
 # CONFIG_PKG_USING_AT24CXX is not set
@@ -692,6 +814,7 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_SSD1306 is not set
 # CONFIG_PKG_USING_QKEY is not set
 # CONFIG_PKG_USING_RS485 is not set
+# CONFIG_PKG_USING_RS232 is not set
 # CONFIG_PKG_USING_NES is not set
 # CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
 # CONFIG_PKG_USING_VDEVICE is not set
@@ -705,6 +828,17 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_KOBUKI is not set
 # CONFIG_PKG_USING_ROSSERIAL is not set
 # CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+# CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
+# end of peripheral libraries and drivers
 
 #
 # AI packages
@@ -718,10 +852,41 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_ULAPACK is not set
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
+# end of AI packages
 
 #
 # miscellaneous packages
 #
+
+#
+# project laboratory
+#
+# end of project laboratory
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+# end of samples: kernel and components samples
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# end of entertainment: terminal games and other interesting software packages
+
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -733,41 +898,28 @@ CONFIG_PKG_MBEDTLS_VER="latest"
 # CONFIG_PKG_USING_CANFESTIVAL is not set
 # CONFIG_PKG_USING_ZLIB is not set
 # CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
 # CONFIG_PKG_USING_DSTR is not set
 # CONFIG_PKG_USING_TINYFRAME is not set
 # CONFIG_PKG_USING_KENDRYTE_DEMO is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_UPACKER is not set
 # CONFIG_PKG_USING_UPARAM is not set
-
-#
-# samples: kernel and components samples
-#
-# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
-# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
-# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
-# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
 # CONFIG_PKG_USING_HELLO is not set
 # CONFIG_PKG_USING_VI is not set
 # CONFIG_PKG_USING_KI is not set
 # CONFIG_PKG_USING_ARMv7M_DWT is not set
-# CONFIG_PKG_USING_VT100 is not set
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_CRCLIB is not set
-
-#
-# entertainment: terminal games and other interesting software packages
-#
-# CONFIG_PKG_USING_THREES is not set
-# CONFIG_PKG_USING_2048 is not set
-# CONFIG_PKG_USING_SNAKE is not set
-# CONFIG_PKG_USING_TETRIS is not set
-# CONFIG_PKG_USING_DONUT is not set
-# CONFIG_PKG_USING_ACLOCK is not set
 # CONFIG_PKG_USING_LWGPS is not set
 # CONFIG_PKG_USING_STATE_MACHINE is not set
-# CONFIG_PKG_USING_MCURSES is not set
-# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_DESIGN_PATTERN is not set
+# CONFIG_PKG_USING_CONTROLLER is not set
+# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# end of miscellaneous packages
+# end of RT-Thread online packages
 
 #
 # Hardware Drivers Config
@@ -780,15 +932,19 @@ CONFIG_SOC_SERIES_STM32H7=y
 #
 # CONFIG_ART_PI_USING_MEDIA_IO is not set
 # CONFIG_ART_PI_USING_INDUSTRY_IO is not set
-# CONFIG_ART_PI_USING_LORA_SHIELD_LRS007 is not set
+# end of Board extended module
 
 #
 # Onboard Peripheral
 #
 CONFIG_BSP_USING_USB_TO_USART=y
+# CONFIG_BSP_USING_SPI_FLASH is not set
+# CONFIG_BSP_USING_QSPI_FLASH is not set
 # CONFIG_BSP_USING_WIFI is not set
 # CONFIG_BSP_USING_OV2640 is not set
+# CONFIG_BSP_USING_GC0328C is not set
 # CONFIG_BSP_USING_FS is not set
+# end of Onboard Peripheral
 
 #
 # On-chip Peripheral
@@ -796,20 +952,37 @@ CONFIG_BSP_USING_USB_TO_USART=y
 CONFIG_BSP_USING_GPIO=y
 CONFIG_BSP_USING_UART=y
 CONFIG_BSP_USING_UART1=y
+# CONFIG_BSP_UART1_RX_USING_DMA is not set
+# CONFIG_BSP_UART1_TX_USING_DMA is not set
 # CONFIG_BSP_USING_UART3 is not set
 CONFIG_BSP_USING_UART4=y
 # CONFIG_BSP_USING_UART6 is not set
 # CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_QSPI is not set
+# CONFIG_BSP_USING_I2C is not set
 # CONFIG_BSP_USING_SDIO is not set
 # CONFIG_BSP_USING_SDRAM is not set
 # CONFIG_BSP_USING_ETH is not set
 # CONFIG_BSP_USING_LCD is not set
 # CONFIG_BSP_USING_DCMI is not set
+# CONFIG_BSP_USING_FDCAN is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
 # CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_PWM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# end of On-chip Peripheral
+# end of Hardware Drivers Config
 
 #
 # External Libraries
 #
 # CONFIG_ART_PI_USING_WIFI_6212_LIB is not set
 # CONFIG_ART_PI_USING_OTA_LIB is not set
+# CONFIG_ART_PI_TouchGFX_LIB is not set
+# CONFIG_ART_PI_USING_FTP_LIB is not set
+# end of External Libraries
+
+CONFIG_FIRMWARE_EXEC_USING_QSPI_FLASH=y
+# CONFIG_FIRMWARE_EXEC_USING_QEMU is not set
 CONFIG_RT_STUDIO_BUILT_IN=y

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
projects/art_pi_fibocom_l610/.cproject


BIN
projects/art_pi_fibocom_l610/.settings/.rtmenus


+ 3 - 0
projects/art_pi_fibocom_l610/packages/cJSON-v1.0.2/README.md

@@ -1,2 +1,5 @@
 # cJSON
+
+[中文页](README_ZH.md) | English
+
 Ultralightweight JSON parser in ANSI C

+ 0 - 2
projects/art_pi_fibocom_l610/packages/cJSON-v1.0.2/cJSON_util.c

@@ -16,7 +16,6 @@ void cJSON_free(void *ptr)
 const char * cJSON_item_get_string(cJSON *object, const char *item_name)
 {
     cJSON *item;
-    const char * string;
 
     item = cJSON_GetObjectItem(object, item_name);
 
@@ -35,7 +34,6 @@ const char * cJSON_item_get_string(cJSON *object, const char *item_name)
 int cJSON_item_get_number(cJSON *object, const char *item_name, int * result)
 {
     cJSON *item;
-    const char * string;
 
     item = cJSON_GetObjectItem(object, item_name);
 

BIN
projects/art_pi_fibocom_l610/packages/packages.dbsqlite


+ 5 - 5
projects/art_pi_fibocom_l610/packages/pkgs.json

@@ -4,11 +4,6 @@
   "ver": "v2.1.2", 
   "name": "WEBCLIENT"
  }, 
- {
-  "path": "/packages/iot/cJSON", 
-  "ver": "v1.0.2", 
-  "name": "CJSON"
- }, 
  {
   "path": "/packages/iot/at_device", 
   "ver": "v2.0.4", 
@@ -23,5 +18,10 @@
   "path": "/packages/security/mbedtls", 
   "ver": "v2.7.10.1", 
   "name": "MBEDTLS"
+ }, 
+ {
+  "path": "/packages/language/JSON/cJSON", 
+  "ver": "v1.0.2", 
+  "name": "CJSON"
  }
 ]

+ 1 - 1
projects/art_pi_fibocom_l610/rtconfig.h

@@ -52,7 +52,7 @@
 #define RT_CONSOLEBUF_SIZE 128
 #define RT_CONSOLE_DEVICE_NAME "uart4"
 /* end of Kernel Device Object */
-#define RT_VER_NUM 0x40101
+#define RT_VER_NUM 0x40100
 /* end of RT-Thread Kernel */
 #define ARCH_ARM
 #define RT_USING_CPU_FFS

+ 1 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/LICENSE

@@ -0,0 +1 @@
+该软件整理自网络,仅供学习使用,商业使用请联系官方。

+ 76 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/README.md

@@ -0,0 +1,76 @@
+### The Helix MP3 Decoder
+
+The Helix MP3 decoder provides MPEG-compliant decoding of MP3 content. Both floating-point and fixed-point decoder implementations are available. The fixed-point decoder is optimized especially for ARM processors but can run on any 32-bit fixed-point processor which can perform a long multiply operation (two 32-bit inputs generating a 64-bit result) and long multiply-accumulate (long multiply with 64-bit accumulator).
+
+### Key Features
+
+- Pure 32-bit fixed-point implementation
+- High-quality C reference code for porting to new platforms
+- Optimized for ARM processors
+- Fully reentrant and statically linkable
+- Optional C++ API for compatibility with Helix clients
+- Designed for high performance and low power consumption in handheld and mobile devices
+- Full layer 3 support for
+  - MPEG1 layer 3 - sampling frequencies: 48 KHz, 44.1 KHz, 32 KHz
+  - MPEG2 layer 3 - sampling frequencies: 24 KHz, 22.05 KHz, 16 KHz
+  - MPEG2.5 layer 3 - sampling frequencies: 12 KHz, 11.025 KHz, 8 KHz
+- Supports constant bitrate, variable bitrate, and free bitrate modes
+- Supports mono and all stereo modes (normal stereo, joint stereo, dual-mono)
+- Option to use Intel® IPP performance libraries (if available)
+  - Easy to link in either IPP libraries or Helix code
+
+
+
+### Technical Specifications
+
+
+
+#### Average CPU Usage
+
+| Sample Rate | Channels      | Bit Rate | Processor Model (1) |            |        |        |        |        |
+| ----------- | ------------- | -------- | ------------------- | ---------- | ------ | ------ | ------ | ------ |
+| ARM7TDMI    | ARM9TDMI-REV2 | ARM920T  | ARM9E               | StrongARM1 | XScale |        |        |        |
+| 48.0 KHz    | 2             | 320 Kbps | 30 MHz              | 24 MHz     | 27 MHz | 20 MHz | 20 MHz | 20 MHz |
+| 44.1 KHz    | 2             | 128 Kbps | 26 MHz              | 21 MHz     | 24 MHz | 17 MHz | 17 MHz | 17 MHz |
+
+(1) Tested with ARMulator, simulated zero-wait-state memory
+
+
+
+#### Memory Usage
+
+- ROM = 13446 Bytes (const globals)
+- RAM = 23816 Bytes (heap)
+  - *Total Data Memory = **37262 Bytes***
+- Code Size = 21000 Bytes (approximately - depends on compiler)
+
+
+
+### Frequently Asked Questions
+
+
+
+#### Where is the code in CVS?
+
+- See the Helix Datatype project page: http://datatype.helixcommunity.org
+  The CVS root is /cvsroot/datatype, and the module name (path) is mp3/codec/fixpt
+
+
+
+#### Where does the build system put the code in my local source tree?
+
+- datatype/mp3/codec/fixpt
+
+
+
+#### How does the build system decide whether to build the fixed-point or floating-point MP3 decoder?
+
+- If HELIX_CONFIG_FIXEDPOINT is defined in your profile, it will build the fixed-point decoder. Otherwise it will build the floating-point version.
+
+
+
+
+
+整理自 [https://www.helixcommunity.org/projects/datatype/Mp3dec](https://www.helixcommunity.org/projects/datatype/Mp3dec)
+
+整理者 [liuduanfei](https://github.com/liuduanfei)

+ 24 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/SConscript

@@ -0,0 +1,24 @@
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+
+src = Glob('*.c')
+src += Glob('./real/*.c')
+
+SrcRemove(src, ['./real/polyphase.c'])
+
+if rtconfig.CROSS_TOOL == 'gcc':
+	src += ['./real/arm/asmmisc_gcc.s', './real/arm/asmpoly_thumb2_gcc.s']
+elif rtconfig.CROSS_TOOL == 'keil':
+	src += ['./real/arm/asmmisc_rvds.s', './real/arm/asmpoly_thumb2_rvds.s']
+elif rtconfig.CROSS_TOOL == 'iar':
+    src += ['./real/arm/asmmisc_iar.s', './real/arm/asmpoly_thumb2_iar.s']
+
+
+cwd = GetCurrentDir()
+
+CPPPATH = [cwd + '/pub', cwd + '/real']
+
+group = DefineGroup('Helix', src, depend = [''], CPPPATH = CPPPATH)
+
+Return('group')

+ 417 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/mp3dec.c

@@ -0,0 +1,417 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * mp3dec.c - platform-independent top level MP3 decoder API
+ **************************************************************************************/
+
+#include "string.h" // J.Sz. 21/04/2006
+// #include "hlxclib/string.h"		/* for memmove, memcpy (can replace with different implementations if desired) */
+#include "mp3common.h"	/* includes mp3dec.h (public API) and internal, platform-independent API */
+
+/**************************************************************************************
+ * Function:    MP3InitDecoder
+ *
+ * Description: allocate memory for platform-specific data
+ *              clear all the user-accessible fields
+ *
+ * Inputs:      none
+ *
+ * Outputs:     none
+ *
+ * Return:      handle to mp3 decoder instance, 0 if malloc fails
+ **************************************************************************************/
+HMP3Decoder MP3InitDecoder(void)
+{
+	MP3DecInfo *mp3DecInfo;
+
+	mp3DecInfo = AllocateBuffers();
+
+	return (HMP3Decoder)mp3DecInfo;
+}
+
+/**************************************************************************************
+ * Function:    MP3FreeDecoder
+ *
+ * Description: free platform-specific data allocated by InitMP3Decoder
+ *              zero out the contents of MP3DecInfo struct
+ *
+ * Inputs:      valid MP3 decoder instance pointer (HMP3Decoder)
+ *
+ * Outputs:     none
+ *
+ * Return:      none
+ **************************************************************************************/
+void MP3FreeDecoder(HMP3Decoder hMP3Decoder)
+{
+	MP3DecInfo *mp3DecInfo = (MP3DecInfo *)hMP3Decoder;
+
+	if (!mp3DecInfo)
+		return;
+
+	FreeBuffers(mp3DecInfo);
+}
+
+/**************************************************************************************
+ * Function:    MP3FindSyncWord
+ *
+ * Description: locate the next byte-alinged sync word in the raw mp3 stream
+ *
+ * Inputs:      buffer to search for sync word
+ *              max number of bytes to search in buffer
+ *
+ * Outputs:     none
+ *
+ * Return:      offset to first sync word (bytes from start of buf)
+ *              -1 if sync not found after searching nBytes
+ **************************************************************************************/
+int MP3FindSyncWord(unsigned char *buf, int nBytes)
+{
+	int i;
+
+	/* find byte-aligned syncword - need 12 (MPEG 1,2) or 11 (MPEG 2.5) matching bits */
+	for (i = 0; i < nBytes - 1; i++) {
+		if ( (buf[i+0] & SYNCWORDH) == SYNCWORDH && (buf[i+1] & SYNCWORDL) == SYNCWORDL )
+			return i;
+	}
+	
+	return -1;
+}
+
+/**************************************************************************************
+ * Function:    MP3FindFreeSync
+ *
+ * Description: figure out number of bytes between adjacent sync words in "free" mode
+ *
+ * Inputs:      buffer to search for next sync word
+ *              the 4-byte frame header starting at the current sync word
+ *              max number of bytes to search in buffer
+ *
+ * Outputs:     none
+ *
+ * Return:      offset to next sync word, minus any pad byte (i.e. nSlots)
+ *              -1 if sync not found after searching nBytes
+ *
+ * Notes:       this checks that the first 22 bits of the next frame header are the
+ *                same as the current frame header, but it's still not foolproof
+ *                (could accidentally find a sequence in the bitstream which 
+ *                 appears to match but is not actually the next frame header)
+ *              this could be made more error-resilient by checking several frames
+ *                in a row and verifying that nSlots is the same in each case
+ *              since free mode requires CBR (see spec) we generally only call
+ *                this function once (first frame) then store the result (nSlots)
+ *                and just use it from then on
+ **************************************************************************************/
+static int MP3FindFreeSync(unsigned char *buf, unsigned char firstFH[4], int nBytes)
+{
+	int offset = 0;
+	unsigned char *bufPtr = buf;
+
+	/* loop until we either: 
+	 *  - run out of nBytes (FindMP3SyncWord() returns -1)
+	 *  - find the next valid frame header (sync word, version, layer, CRC flag, bitrate, and sample rate
+	 *      in next header must match current header)
+	 */
+	while (1) {
+		offset = MP3FindSyncWord(bufPtr, nBytes);
+		bufPtr += offset;
+		if (offset < 0) {
+			return -1;
+		} else if ( (bufPtr[0] == firstFH[0]) && (bufPtr[1] == firstFH[1]) && ((bufPtr[2] & 0xfc) == (firstFH[2] & 0xfc)) ) {
+			/* want to return number of bytes per frame, NOT counting the padding byte, so subtract one if padFlag == 1 */
+			if ((firstFH[2] >> 1) & 0x01)
+				bufPtr--;
+			return bufPtr - buf;
+		}
+		bufPtr += 3;
+		nBytes -= (offset + 3);
+	};
+
+	//	return -1;  Removed KJ
+}
+
+/**************************************************************************************
+ * Function:    MP3GetLastFrameInfo
+ *
+ * Description: get info about last MP3 frame decoded (number of sampled decoded, 
+ *                sample rate, bitrate, etc.)
+ *
+ * Inputs:      valid MP3 decoder instance pointer (HMP3Decoder)
+ *              pointer to MP3FrameInfo struct
+ *
+ * Outputs:     filled-in MP3FrameInfo struct
+ *
+ * Return:      none
+ *
+ * Notes:       call this right after calling MP3Decode
+ **************************************************************************************/
+void MP3GetLastFrameInfo(HMP3Decoder hMP3Decoder, MP3FrameInfo *mp3FrameInfo)
+{
+	MP3DecInfo *mp3DecInfo = (MP3DecInfo *)hMP3Decoder;
+
+	if (!mp3DecInfo || mp3DecInfo->layer != 3) {
+		mp3FrameInfo->bitrate = 0;
+		mp3FrameInfo->nChans = 0;
+		mp3FrameInfo->samprate = 0;
+		mp3FrameInfo->bitsPerSample = 0;
+		mp3FrameInfo->outputSamps = 0;
+		mp3FrameInfo->layer = 0;
+		mp3FrameInfo->version = 0;
+	} else {
+		mp3FrameInfo->bitrate = mp3DecInfo->bitrate;
+		mp3FrameInfo->nChans = mp3DecInfo->nChans;
+		mp3FrameInfo->samprate = mp3DecInfo->samprate;
+		mp3FrameInfo->bitsPerSample = 16;
+		mp3FrameInfo->outputSamps = mp3DecInfo->nChans * (int)samplesPerFrameTab[mp3DecInfo->version][mp3DecInfo->layer - 1];
+		mp3FrameInfo->layer = mp3DecInfo->layer;
+		mp3FrameInfo->version = mp3DecInfo->version;
+	}
+}
+
+/**************************************************************************************
+ * Function:    MP3GetNextFrameInfo
+ *
+ * Description: parse MP3 frame header
+ *
+ * Inputs:      valid MP3 decoder instance pointer (HMP3Decoder)
+ *              pointer to MP3FrameInfo struct
+ *              pointer to buffer containing valid MP3 frame header (located using 
+ *                MP3FindSyncWord(), above)
+ *
+ * Outputs:     filled-in MP3FrameInfo struct
+ *
+ * Return:      error code, defined in mp3dec.h (0 means no error, < 0 means error)
+ **************************************************************************************/
+int MP3GetNextFrameInfo(HMP3Decoder hMP3Decoder, MP3FrameInfo *mp3FrameInfo, unsigned char *buf)
+{
+	MP3DecInfo *mp3DecInfo = (MP3DecInfo *)hMP3Decoder;
+
+	if (!mp3DecInfo)
+		return ERR_MP3_NULL_POINTER;
+
+	if (UnpackFrameHeader(mp3DecInfo, buf) == -1 || mp3DecInfo->layer != 3)
+		return ERR_MP3_INVALID_FRAMEHEADER;
+
+	MP3GetLastFrameInfo(mp3DecInfo, mp3FrameInfo);
+
+	return ERR_MP3_NONE;
+}
+
+/**************************************************************************************
+ * Function:    MP3ClearBadFrame
+ *
+ * Description: zero out pcm buffer if error decoding MP3 frame
+ *
+ * Inputs:      mp3DecInfo struct with correct frame size parameters filled in
+ *              pointer pcm output buffer
+ *
+ * Outputs:     zeroed out pcm buffer
+ *
+ * Return:      none
+ **************************************************************************************/
+static void MP3ClearBadFrame(MP3DecInfo *mp3DecInfo, short *outbuf)
+{
+	int i;
+
+	if (!mp3DecInfo)
+		return;
+
+	for (i = 0; i < mp3DecInfo->nGrans * mp3DecInfo->nGranSamps * mp3DecInfo->nChans; i++)
+		outbuf[i] = 0;
+}
+
+/**************************************************************************************
+ * Function:    MP3Decode
+ *
+ * Description: decode one frame of MP3 data
+ *
+ * Inputs:      valid MP3 decoder instance pointer (HMP3Decoder)
+ *              double pointer to buffer of MP3 data (containing headers + mainData)
+ *              number of valid bytes remaining in inbuf
+ *              pointer to outbuf, big enough to hold one frame of decoded PCM samples
+ *              flag indicating whether MP3 data is normal MPEG format (useSize = 0)
+ *                or reformatted as "self-contained" frames (useSize = 1)
+ *
+ * Outputs:     PCM data in outbuf, interleaved LRLRLR... if stereo
+ *                number of output samples = nGrans * nGranSamps * nChans
+ *              updated inbuf pointer, updated bytesLeft
+ *
+ * Return:      error code, defined in mp3dec.h (0 means no error, < 0 means error)
+ *
+ * Notes:       switching useSize on and off between frames in the same stream 
+ *                is not supported (bit reservoir is not maintained if useSize on)
+ **************************************************************************************/
+int MP3Decode(HMP3Decoder hMP3Decoder, unsigned char **inbuf, int *bytesLeft, short *outbuf, int useSize)
+{
+	int offset, bitOffset, mainBits, gr, ch, fhBytes, siBytes, freeFrameBytes;
+	int prevBitOffset, sfBlockBits, huffBlockBits;
+	unsigned char *mainPtr;
+	MP3DecInfo *mp3DecInfo = (MP3DecInfo *)hMP3Decoder;
+
+	if (!mp3DecInfo)
+		return ERR_MP3_NULL_POINTER;
+
+	/* unpack frame header */
+	fhBytes = UnpackFrameHeader(mp3DecInfo, *inbuf);
+	if (fhBytes < 0)	
+		return ERR_MP3_INVALID_FRAMEHEADER;		/* don't clear outbuf since we don't know size (failed to parse header) */
+	*inbuf += fhBytes;
+	
+	/* unpack side info */
+	siBytes = UnpackSideInfo(mp3DecInfo, *inbuf);
+	if (siBytes < 0) {
+		MP3ClearBadFrame(mp3DecInfo, outbuf);
+		return ERR_MP3_INVALID_SIDEINFO;
+	}
+	*inbuf += siBytes;
+	*bytesLeft -= (fhBytes + siBytes);
+	
+	/* if free mode, need to calculate bitrate and nSlots manually, based on frame size */
+	if (mp3DecInfo->bitrate == 0 || mp3DecInfo->freeBitrateFlag) {
+		if (!mp3DecInfo->freeBitrateFlag) {
+			/* first time through, need to scan for next sync word and figure out frame size */
+			mp3DecInfo->freeBitrateFlag = 1;
+			mp3DecInfo->freeBitrateSlots = MP3FindFreeSync(*inbuf, *inbuf - fhBytes - siBytes, *bytesLeft);
+			if (mp3DecInfo->freeBitrateSlots < 0) {
+				MP3ClearBadFrame(mp3DecInfo, outbuf);
+				return ERR_MP3_FREE_BITRATE_SYNC;
+			}
+			freeFrameBytes = mp3DecInfo->freeBitrateSlots + fhBytes + siBytes;
+			mp3DecInfo->bitrate = (freeFrameBytes * mp3DecInfo->samprate * 8) / (mp3DecInfo->nGrans * mp3DecInfo->nGranSamps);
+		}
+		mp3DecInfo->nSlots = mp3DecInfo->freeBitrateSlots + CheckPadBit(mp3DecInfo);	/* add pad byte, if required */
+	}
+
+	/* useSize != 0 means we're getting reformatted (RTP) packets (see RFC 3119)
+	 *  - calling function assembles "self-contained" MP3 frames by shifting any main_data 
+	 *      from the bit reservoir (in previous frames) to AFTER the sync word and side info
+	 *  - calling function should set mainDataBegin to 0, and tell us exactly how large this
+	 *      frame is (in bytesLeft)
+	 */
+	if (useSize) {
+		mp3DecInfo->nSlots = *bytesLeft;
+		if (mp3DecInfo->mainDataBegin != 0 || mp3DecInfo->nSlots <= 0) {
+			/* error - non self-contained frame, or missing frame (size <= 0), could do loss concealment here */
+			MP3ClearBadFrame(mp3DecInfo, outbuf);
+			return ERR_MP3_INVALID_FRAMEHEADER;
+		}
+
+		/* can operate in-place on reformatted frames */
+		mp3DecInfo->mainDataBytes = mp3DecInfo->nSlots;
+		mainPtr = *inbuf;
+		*inbuf += mp3DecInfo->nSlots;
+		*bytesLeft -= (mp3DecInfo->nSlots);
+	} else {
+		/* out of data - assume last or truncated frame */
+		if (mp3DecInfo->nSlots > *bytesLeft) {
+			MP3ClearBadFrame(mp3DecInfo, outbuf);
+			return ERR_MP3_INDATA_UNDERFLOW;	
+		}
+		/* fill main data buffer with enough new data for this frame */
+		if (mp3DecInfo->mainDataBytes >= mp3DecInfo->mainDataBegin) {
+			/* adequate "old" main data available (i.e. bit reservoir) */
+			memmove(mp3DecInfo->mainBuf, mp3DecInfo->mainBuf + mp3DecInfo->mainDataBytes - mp3DecInfo->mainDataBegin, mp3DecInfo->mainDataBegin);
+			memcpy(mp3DecInfo->mainBuf + mp3DecInfo->mainDataBegin, *inbuf, mp3DecInfo->nSlots);
+
+			mp3DecInfo->mainDataBytes = mp3DecInfo->mainDataBegin + mp3DecInfo->nSlots;
+			*inbuf += mp3DecInfo->nSlots;
+			*bytesLeft -= (mp3DecInfo->nSlots);
+			mainPtr = mp3DecInfo->mainBuf;
+		} else {
+			/* not enough data in bit reservoir from previous frames (perhaps starting in middle of file) */
+			memcpy(mp3DecInfo->mainBuf + mp3DecInfo->mainDataBytes, *inbuf, mp3DecInfo->nSlots);
+			mp3DecInfo->mainDataBytes += mp3DecInfo->nSlots;
+			*inbuf += mp3DecInfo->nSlots;
+			*bytesLeft -= (mp3DecInfo->nSlots);
+			MP3ClearBadFrame(mp3DecInfo, outbuf);
+			return ERR_MP3_MAINDATA_UNDERFLOW;
+		}
+	}
+	bitOffset = 0;
+	mainBits = mp3DecInfo->mainDataBytes * 8;
+
+	/* decode one complete frame */
+	for (gr = 0; gr < mp3DecInfo->nGrans; gr++) {
+		for (ch = 0; ch < mp3DecInfo->nChans; ch++) {
+			/* unpack scale factors and compute size of scale factor block */
+			prevBitOffset = bitOffset;
+			offset = UnpackScaleFactors(mp3DecInfo, mainPtr, &bitOffset, mainBits, gr, ch);
+
+			sfBlockBits = 8*offset - prevBitOffset + bitOffset;
+			huffBlockBits = mp3DecInfo->part23Length[gr][ch] - sfBlockBits;
+			mainPtr += offset;
+			mainBits -= sfBlockBits;
+
+			if (offset < 0 || mainBits < huffBlockBits) {
+				MP3ClearBadFrame(mp3DecInfo, outbuf);
+				return ERR_MP3_INVALID_SCALEFACT;
+			}
+
+			/* decode Huffman code words */
+			prevBitOffset = bitOffset;
+			offset = DecodeHuffman(mp3DecInfo, mainPtr, &bitOffset, huffBlockBits, gr, ch);
+			if (offset < 0) {
+				MP3ClearBadFrame(mp3DecInfo, outbuf);
+				return ERR_MP3_INVALID_HUFFCODES;
+			}
+
+			mainPtr += offset;
+			mainBits -= (8*offset - prevBitOffset + bitOffset);
+		}
+		/* dequantize coefficients, decode stereo, reorder short blocks */
+		if (Dequantize(mp3DecInfo, gr) < 0) {
+			MP3ClearBadFrame(mp3DecInfo, outbuf);
+			return ERR_MP3_INVALID_DEQUANTIZE;			
+		}
+
+		/* alias reduction, inverse MDCT, overlap-add, frequency inversion */
+		for (ch = 0; ch < mp3DecInfo->nChans; ch++)
+			if (IMDCT(mp3DecInfo, gr, ch) < 0) {
+				MP3ClearBadFrame(mp3DecInfo, outbuf);
+				return ERR_MP3_INVALID_IMDCT;			
+			}
+
+		/* subband transform - if stereo, interleaves pcm LRLRLR */
+		if (Subband(mp3DecInfo, outbuf + gr*mp3DecInfo->nGranSamps*mp3DecInfo->nChans) < 0) {
+			MP3ClearBadFrame(mp3DecInfo, outbuf);
+			return ERR_MP3_INVALID_SUBBAND;			
+		}
+	}
+	return ERR_MP3_NONE;
+}

+ 181 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/mp3tabs.c

@@ -0,0 +1,181 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * mp3tabs.c - platform-independent tables for MP3 decoder (global, read-only)
+ **************************************************************************************/
+
+#include "mp3common.h"
+
+/* indexing = [version][samplerate index]
+ * sample rate of frame (Hz)
+ */
+const int samplerateTab[3][3] = {
+  {44100, 48000, 32000},		/* MPEG-1 */
+  {22050, 24000, 16000},		/* MPEG-2 */
+  {11025, 12000,  8000},		/* MPEG-2.5 */
+};
+
+/* indexing = [version][layer][bitrate index]
+ * bitrate (kbps) of frame
+ *   - bitrate index == 0 is "free" mode (bitrate determined on the fly by
+ *       counting bits between successive sync words)
+ */
+const short bitrateTab[3][3][15] = {
+	{
+		/* MPEG-1 */
+		{  0, 32, 64, 96,128,160,192,224,256,288,320,352,384,416,448}, /* Layer 1 */
+		{  0, 32, 48, 56, 64, 80, 96,112,128,160,192,224,256,320,384}, /* Layer 2 */
+		{  0, 32, 40, 48, 56, 64, 80, 96,112,128,160,192,224,256,320}, /* Layer 3 */
+	},
+	{
+		/* MPEG-2 */
+		{  0, 32, 48, 56, 64, 80, 96,112,128,144,160,176,192,224,256}, /* Layer 1 */
+		{  0,  8, 16, 24, 32, 40, 48, 56, 64, 80, 96,112,128,144,160}, /* Layer 2 */
+		{  0,  8, 16, 24, 32, 40, 48, 56, 64, 80, 96,112,128,144,160}, /* Layer 3 */
+	},
+	{
+		/* MPEG-2.5 */
+		{  0, 32, 48, 56, 64, 80, 96,112,128,144,160,176,192,224,256}, /* Layer 1 */
+		{  0,  8, 16, 24, 32, 40, 48, 56, 64, 80, 96,112,128,144,160}, /* Layer 2 */
+		{  0,  8, 16, 24, 32, 40, 48, 56, 64, 80, 96,112,128,144,160}, /* Layer 3 */
+	},
+};
+
+/* indexing = [version][layer]
+ * number of samples in one frame (per channel)
+ */
+const short samplesPerFrameTab[3][3] = {
+	{384, 1152, 1152 }, /* MPEG1 */
+	{384, 1152,  576 }, /* MPEG2 */
+	{384, 1152,  576 }, /* MPEG2.5 */
+};
+
+/* layers 1, 2, 3 */
+const short bitsPerSlotTab[3] = {32, 8, 8};
+
+/* indexing = [version][mono/stereo]
+ * number of bytes in side info section of bitstream 
+ */
+const short sideBytesTab[3][2] = {
+	{17, 32},	/* MPEG-1:   mono, stereo */
+	{ 9, 17},	/* MPEG-2:   mono, stereo */
+	{ 9, 17},	/* MPEG-2.5: mono, stereo */
+};
+
+/* indexing = [version][sampleRate][bitRate] 
+ * for layer3, nSlots = floor(samps/frame * bitRate / sampleRate / 8)
+ *   - add one pad slot if necessary
+ */
+const short slotTab[3][3][15] = {
+	{
+		/* MPEG-1 */
+		{ 0, 104, 130, 156, 182, 208, 261, 313, 365, 417, 522, 626, 731, 835,1044 },	/* 44 kHz */
+		{ 0,  96, 120, 144, 168, 192, 240, 288, 336, 384, 480, 576, 672, 768, 960 },	/* 48 kHz */
+		{ 0, 144, 180, 216, 252, 288, 360, 432, 504, 576, 720, 864,1008,1152,1440 },	/* 32 kHz */
+	},
+	{	
+		/* MPEG-2 */
+		{ 0,  26,  52,  78, 104, 130, 156, 182, 208, 261, 313, 365, 417, 470, 522 },	/* 22 kHz */
+		{ 0,  24,  48,  72,  96, 120, 144, 168, 192, 240, 288, 336, 384, 432, 480 },	/* 24 kHz */
+		{ 0,  36,  72, 108, 144, 180, 216, 252, 288, 360, 432, 504, 576, 648, 720 },	/* 16 kHz */
+	},
+	{
+		/* MPEG-2.5 */
+		{ 0,  52, 104, 156, 208, 261, 313, 365, 417, 522, 626, 731, 835, 940,1044 },	/* 11 kHz */
+		{ 0,  48,  96, 144, 192, 240, 288, 336, 384, 480, 576, 672, 768, 864, 960 },	/* 12 kHz */
+		{ 0,  72, 144, 216, 288, 360, 432, 504, 576, 720, 864,1008,1152,1296,1440 },	/*  8 kHz */
+	},
+};
+
+/* indexing = [version][sampleRate][long (.l) or short (.s) block] 
+ *   sfBandTable[v][s].l[cb] = index of first bin in critical band cb (long blocks)
+ *   sfBandTable[v][s].s[cb] = index of first bin in critical band cb (short blocks)
+ */
+const SFBandTable sfBandTable[3][3] = {
+	{
+		/* MPEG-1 (44, 48, 32 kHz) */
+		{
+			{ 0,  4,  8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90,110,134,162,196,238,288,342,418,576 },
+			{ 0,  4,  8, 12, 16, 22, 30, 40, 52, 66, 84,106,136,192 }
+		},
+		{
+			{ 0,  4,  8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88,106,128,156,190,230,276,330,384,576 },
+			{ 0,  4,  8, 12, 16, 22, 28, 38, 50, 64, 80,100,126,192 }
+		},
+		{
+			{ 0,  4,  8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82,102,126,156,194,240,296,364,448,550,576 },
+			{ 0,  4,  8, 12, 16, 22, 30, 42, 58, 78,104,138,180,192 }
+		}
+	},
+
+	{
+		/* MPEG-2 (22, 24, 16 kHz) */
+		{
+			{ 0,  6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,116,140,168,200,238,284,336,396,464,522,576 },
+			{ 0,  4,  8, 12, 18, 24, 32, 42, 56, 74,100,132,174,192 }
+		},
+		{
+			{ 0,  6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,114,136,162,194,232,278,332,394,464,540,576 },
+			{ 0,  4,  8, 12, 18, 26, 36, 48, 62, 80,104,136,180,192 }
+		},
+		{
+			{ 0,  6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,116,140,168,200,238,284,336,396,464,522,576 }, 
+			{ 0,  4,  8, 12, 18, 26, 36, 48, 62, 80,104,134,174,192 }
+		},
+	},
+
+	{
+		/* MPEG-2.5 (11, 12, 8 kHz) */
+		{
+			{ 0,  6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,116,140,168,200,238,284,336,396,464,522,576 },
+			{ 0,  4,  8, 12, 18, 26, 36, 48, 62, 80,104,134,174,192 }
+		},
+		{
+			{ 0,  6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96,116,140,168,200,238,284,336,396,464,522,576 },
+			{ 0,  4,  8, 12, 18, 26, 36, 48, 62, 80,104,134,174,192 }
+		},
+		{
+			{ 0, 12, 24, 36, 48, 60, 72, 88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576 },
+			{ 0,  8, 16, 24, 36, 52, 72, 96,124,160,162,164,166,192 }
+		},
+	},
+};
+
+

+ 30 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/LICENSE.txt

@@ -0,0 +1,30 @@
+ Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.  
+        
+ The contents of this directory, and (except where otherwise
+ indicated) the directories included within this directory, are
+ subject to the current version of the RealNetworks Public Source
+ License (the "RPSL") available at RPSL.txt in this directory, unless
+ you have licensed the directory under the current version of the
+ RealNetworks Community Source License (the "RCSL") available at
+ RCSL.txt in this directory, in which case the RCSL will apply. You
+ may also obtain the license terms directly from RealNetworks.  You
+ may not use the files in this directory except in compliance with the
+ RPSL or, if you have a valid RCSL with RealNetworks applicable to
+ this directory, the RCSL.  Please see the applicable RPSL or RCSL for
+ the rights, obligations and limitations governing use of the contents
+ of the directory.
+ 
+ This directory is part of the Helix DNA Technology. RealNetworks is
+ the developer of the Original Code and owns the copyrights in the
+ portions it created.
+   
+ This directory, and the directories included with this directory, are
+ distributed and made available on an 'AS IS' basis, WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY
+ DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ QUIET ENJOYMENT OR NON-INFRINGEMENT.
+  
+ Technology Compatibility Kit Test Suite(s) Location:  
+    http://www.helixcommunity.org/content/tck  
+

+ 948 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/RCSL.txt

@@ -0,0 +1,948 @@
+The RCSL is made up of a base agreement and a few Attachments.
+
+For Research and Development use, you agree to the terms of the
+RCSL R&D License (base RCSL and Attachments A, B, and C) 
+
+For Commercial Use (either distribution or internal commercial
+deployment) of the Helix DNA with or without support for RealNetworks'
+RealAudio and RealVideo Add-on Technology, you agree to the
+terms of the same RCSL R&D license
+and execute one or more additional Commercial Use License attachments
+<see http://www.helixcommunity.org/content/rcsl-attachments>.
+
+------------------------------------------------------------------------
+
+
+    REALNETWORKS COMMUNITY SOURCE LICENSE
+
+Version 1.2 (Rev. Date: January 22, 2003).
+
+
+  RECITALS
+
+Original Contributor has developed Specifications, Source Code
+implementations and Executables of certain Technology; and
+
+Original Contributor desires to license the Technology to a large
+community to facilitate research, innovation and product development
+while maintaining compatibility of such products with the Technology as
+delivered by Original Contributor; and
+
+Original Contributor desires to license certain Trademarks for the
+purpose of branding products that are compatible with the relevant
+Technology delivered by Original Contributor; and
+
+You desire to license the Technology and possibly certain Trademarks
+from Original Contributor on the terms and conditions specified in this
+License.
+
+In consideration for the mutual covenants contained herein, You and
+Original Contributor agree as follows:
+
+
+  AGREEMENT
+
+*1. Introduction.*
+
+The RealNetworks Community Source License ("RCSL") and effective
+attachments ("License") may include five distinct licenses:
+
+i) Research Use license -- License plus Attachments A, B and C only.
+
+ii) Commercial Use and Trademark License, which may be for Internal
+Deployment Use or external distribution, or both -- License plus
+Attachments A, B, C, and D.
+
+iii) Technology Compatibility Kit (TCK) license -- Attachment C.
+
+iv) Add-On Technology License (Executable) Commercial Use License
+-Attachment F.
+
+v) Add-On Technology Source Code Porting and Optimization
+License-Attachment G.
+
+The Research Use license is effective when You click and accept this
+License. The TCK is effective when You click and accept this License,
+unless otherwise specified in the TCK attachments. The Commercial Use
+and Trademark, Add-On Technology License, and the Add-On Technology
+Source Code Porting and Optimization licenses must each be signed by You
+and Original Contributor to become effective. Once effective, these
+licenses and the associated requirements and responsibilities are
+cumulative. Capitalized terms used in this License are defined in the
+Glossary.
+
+*2. License Grants.*
+
+2.1 Original Contributor Grant.
+
+Subject to Your compliance with Sections 3, 8.10 and Attachment A of
+this License, Original Contributor grants to You a worldwide,
+royalty-free, non-exclusive license, to the extent of Original
+Contributor's Intellectual Property Rights covering the Original Code,
+Upgraded Code and Specifications, to do the following:
+
+(a) Research Use License:
+
+(i) use, reproduce and modify the Original Code, Upgraded Code and
+Specifications to create Modifications and Reformatted Specifications
+for Research Use by You;
+
+(ii) publish and display Original Code, Upgraded Code and Specifications
+with, or as part of Modifications, as permitted under Section 3.1(b) below;
+
+(iii) reproduce and distribute copies of Original Code and Upgraded Code
+to Licensees and students for Research Use by You;
+
+(iv) compile, reproduce and distribute Original Code and Upgraded Code
+in Executable form, and Reformatted Specifications to anyone for
+Research Use by You.
+
+(b) Other than the licenses expressly granted in this License, Original
+Contributor retains all right, title, and interest in Original Code and
+Upgraded Code and Specifications.
+
+2.2 Your Grants.
+
+(a) To Other Licensees. You hereby grant to each Licensee a license to
+Your Error Corrections and Shared Modifications, of the same scope and
+extent as Original Contributor's licenses under Section 2.1 a) above
+relative to Research Use and Attachment D relative to Commercial Use.
+
+(b) To Original Contributor. You hereby grant to Original Contributor a
+worldwide, royalty-free, non-exclusive, perpetual and irrevocable
+license, to the extent of Your Intellectual Property Rights covering
+Your Error Corrections, Shared Modifications and Reformatted
+Specifications, to use, reproduce, modify, display and distribute Your
+Error Corrections, Shared Modifications and Reformatted Specifications,
+in any form, including the right to sublicense such rights through
+multiple tiers of distribution.
+
+(c) Other than the licenses expressly granted in Sections 2.2(a) and (b)
+above, and the restrictions set forth in Section 3.1(d)(iv) below, You
+retain all right, title, and interest in Your Error Corrections, Shared
+Modifications and Reformatted Specifications.
+
+2.3 Contributor Modifications.
+
+You may use, reproduce, modify, display and distribute Contributor Error
+Corrections, Shared Modifications and Reformatted Specifications,
+obtained by You under this License, to the same scope and extent as with
+Original Code, Upgraded Code and Specifications.
+
+2.4 Subcontracting.
+
+You may deliver the Source Code of Covered Code to other Licensees
+having at least a Research Use license, for the sole purpose of
+furnishing development services to You in connection with Your rights
+granted in this License. All such Licensees must execute appropriate
+documents with respect to such work consistent with the terms of this
+License, and acknowledging their work-made-for-hire status or assigning
+exclusive right to the work product and associated Intellectual Property
+Rights to You.
+
+*3. Requirements and Responsibilities*.
+
+3.1 Research Use License.
+
+As a condition of exercising the rights granted under Section 2.1(a)
+above, You agree to comply with the following:
+
+(a) Your Contribution to the Community. All Error Corrections and Shared
+Modifications which You create or contribute to are automatically
+subject to the licenses granted under Section 2.2 above. You are
+encouraged to license all of Your other Modifications under Section 2.2
+as Shared Modifications, but are not required to do so. You agree to
+notify Original Contributor of any errors in the Specification.
+
+(b) Source Code Availability. You agree to provide all Your Error
+Corrections to Original Contributor as soon as reasonably practicable
+and, in any event, prior to Internal Deployment Use or Commercial Use,
+if applicable. Original Contributor may, at its discretion, post Source
+Code for Your Error Corrections and Shared Modifications on the
+Community Webserver. You may also post Error Corrections and Shared
+Modifications on a web-server of Your choice; provided, that You must
+take reasonable precautions to ensure that only Licensees have access to
+such Error Corrections and Shared Modifications. Such precautions shall
+include, without limitation, a password protection scheme limited to
+Licensees and a click-on, download certification of Licensee status
+required of those attempting to download from the server. An example of
+an acceptable certification is attached as Attachment A-2.
+
+(c) Notices. All Error Corrections and Shared Modifications You create
+or contribute to must include a file documenting the additions and
+changes You made and the date of such additions and changes. You must
+also include the notice set forth in Attachment A-1 in the file header.
+If it is not possible to put the notice in a particular Source Code file
+due to its structure, then You must include the notice in a location
+(such as a relevant directory file), where a recipient would be most
+likely to look for such a notice.
+
+(d) Redistribution.
+
+(i) Source. Covered Code may be distributed in Source Code form only to
+another Licensee (except for students as provided below). You may not
+offer or impose any terms on any Covered Code that alter the rights,
+requirements, or responsibilities of such Licensee. You may distribute
+Covered Code to students for use in connection with their course work
+and research projects undertaken at accredited educational institutions.
+Such students need not be Licensees, but must be given a copy of the
+notice set forth in Attachment A-3 and such notice must also be included
+in a file header or prominent location in the Source Code made available
+to such students.
+
+(ii) Executable. You may distribute Executable version(s) of Covered
+Code to Licensees and other third parties only for the purpose of
+evaluation and comment in connection with Research Use by You and under
+a license of Your choice, but which limits use of such Executable
+version(s) of Covered Code only to that purpose.
+
+(iii) Modified Class, Interface and Package Naming. In connection with
+Research Use by You only, You may use Original Contributor's class,
+Interface and package names only to accurately reference or invoke the
+Source Code files You modify. Original Contributor grants to You a
+limited license to the extent necessary for such purposes.
+
+(iv) You expressly agree that any distribution, in whole or in part, of
+Modifications developed by You shall only be done pursuant to the terms
+and conditions of this License.
+
+(e) Extensions.
+
+(i) Covered Code. You may not include any Source Code of Community Code
+in any Extensions. You may include the compiled Header Files of
+Community Code in an Extension provided that Your use of the Covered
+Code, including Heading Files, complies with the Commercial Use License,
+the TCK and all other terms of this License.
+
+(ii) Publication. No later than the date on which You first distribute
+such Extension for Commercial Use, You must publish to the industry, on
+a non-confidential basis and free of all copyright restrictions with
+respect to reproduction and use, an accurate and current specification
+for any Extension. In addition, You must make available an appropriate
+test suite, pursuant to the same rights as the specification,
+sufficiently detailed to allow any third party reasonably skilled in the
+technology to produce implementations of the Extension compatible with
+the specification. Such test suites must be made available as soon as
+reasonably practicable but, in no event, later than ninety (90) days
+after Your first Commercial Use of the Extension. You must use
+reasonable efforts to promptly clarify and correct the specification and
+the test suite upon written request by Original Contributor.
+
+(iii) Open. You agree to refrain from enforcing any Intellectual
+Property Rights You may have covering any interface(s) of Your
+Extension, which would prevent the implementation of such interface(s)
+by Original Contributor or any Licensee. This obligation does not
+prevent You from enforcing any Intellectual Property Right You have that
+would otherwise be infringed by an implementation of Your Extension.
+
+(iv) Interface Modifications and Naming. You may not modify or add to
+the GUID space * * "xxxxxxxx-0901-11d1-8B06-00A024406D59" or any other
+GUID space designated by Original Contributor. You may not modify any
+Interface prefix provided with the Covered Code or any other prefix
+designated by Original Contributor.* *
+
+* *
+
+(f) You agree that any Specifications provided to You by Original
+Contributor are confidential and proprietary information of Original
+Contributor. You must maintain the confidentiality of the Specifications
+and may not disclose them to any third party without Original
+Contributor's prior written consent. You may only use the Specifications
+under the terms of this License and only for the purpose of implementing
+the terms of this License with respect to Covered Code. You agree not
+use, copy or distribute any such Specifications except as provided in
+writing by Original Contributor.
+
+3.2 Commercial Use License.
+
+You may not make Commercial Use of any Covered Code unless You and
+Original Contributor have executed a copy of the Commercial Use and
+Trademark License attached as Attachment D.
+
+*4. Versions of the License.*
+
+4.1 License Versions.
+
+Original Contributor may publish revised versions of the License from
+time to time. Each version will be given a distinguishing version number.
+
+4.2 Effect.
+
+Once a particular version of Covered Code has been provided under a
+version of the License, You may always continue to use such Covered Code
+under the terms of that version of the License. You may also choose to
+use such Covered Code under the terms of any subsequent version of the
+License. No one other than Original Contributor has the right to
+promulgate License versions.
+
+4.3 Multiple-Licensed Code.
+
+Original Contributor may designate portions of the Covered Code as
+"Multiple-Licensed." "Multiple-Licensed" means that the Original
+Contributor permits You to utilize those designated portions of the
+Covered Code under Your choice of this License or the alternative
+license(s), if any, specified by the Original Contributor in an
+Attachment to this License.
+
+*5. Disclaimer of Warranty.*
+
+5.1 COVERED CODE PROVIDED AS IS.
+
+COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," WITHOUT WARRANTY OF
+ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
+WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT
+FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE
+RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED CODE UNDER
+THIS LICENSE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
+OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER
+EXCEPT SUBJECT TO THIS DISCLAIMER.
+
+5.2 Not Designed for High Risk Activities.
+
+You acknowledge that Original Code, Upgraded Code and Specifications are
+not designed or intended for use in high risk activities including, but
+not limited to: (i) on-line control of aircraft, air traffic, aircraft
+navigation or aircraft communications; or (ii) in the design,
+construction, operation or maintenance of any nuclear facility. Original
+Contributor disclaims any express or implied warranty of fitness for
+such uses.
+
+*6. Termination.*
+
+6.1 By You.
+
+You may terminate this Research Use license at anytime by providing
+written notice to Original Contributor.
+
+6.2 By Original Contributor.
+
+This License and the rights granted hereunder will terminate:
+
+(i) automatically if You fail to comply with the terms of this License
+and fail to cure such breach within 30 days of receipt of written notice
+of the breach;
+
+(ii) immediately in the event of circumstances specified in Sections 7.1
+and 8.4; or
+
+(iii) at Original Contributor's discretion upon any action initiated by
+You (including by cross-claim or counter claim) alleging that use or
+distribution by Original Contributor or any Licensee, of Original Code,
+Upgraded Code, Error Corrections, Shared Modifications or Specifications
+infringe a patent owned or controlled by You.
+
+6.3 Effective of Termination.
+
+Upon termination, You agree to discontinue use of and destroy all copies
+of Covered Code in Your possession. All sublicenses to the Covered Code
+which You have properly granted shall survive any termination of this
+License. Provisions that, by their nature, should remain in effect
+beyond the termination of this License shall survive including, without
+limitation, Sections 2.2, 3, 5, 7 and 8.
+
+6.4 No Compensation.
+
+Each party waives and releases the other from any claim to compensation
+or indemnity for permitted or lawful termination of the business
+relationship established by this License.
+
+*7. Liability.*
+
+7.1 Infringement. Should any of the Original Code, Upgraded Code, TCK or
+Specifications ("Materials") become the subject of a claim of
+infringement, Original Contributor may, at its sole option, (i) attempt
+to procure the rights necessary for You to continue using the Materials,
+(ii) modify the Materials so that they are no longer infringing, or
+(iii) terminate Your right to use the Materials, immediately upon
+written notice, and refund to You the amount, if any, having then
+actually been paid by You to Original Contributor for the Original Code,
+Upgraded Code and TCK, depreciated on a straight line, five year basis.
+
+7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY APPLICABLE
+LAW, ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR CLAIMS RELATING TO THIS
+LICENSE, WHETHER FOR BREACH OR IN TORT, SHALL BE LIMITED TO ONE HUNDRED
+PERCENT (100%) OF THE AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO
+ORIGINAL CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE PARTICULAR
+ITEMS GIVING RISE TO SUCH CLAIM, IF ANY, DURING THE TWELVE MONTHS
+PRECEDING THE CLAIMED BREACH. IN NO EVENT WILL YOU (RELATIVE TO YOUR
+SHARED MODIFICATIONS OR ERROR CORRECTIONS) OR ORIGINAL CONTRIBUTOR BE
+LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR RISING OUT OF THIS LICENSE (INCLUDING,
+WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER ECONOMIC
+ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF LIABILITY, WHETHER IN
+AN ACTION FOR CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE)
+OR OTHERWISE, WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE
+FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY.
+
+*8. Miscellaneous.*
+
+8.1 Trademark.
+
+You shall not use any Trademark unless You and Original Contributor
+execute a copy of the Commercial Use and Trademark License Agreement
+attached hereto as Attachment D. Except as expressly provided in the
+License, You are granted no right, title or license to, or interest in,
+any Trademarks. Whether or not You and Original Contributor enter into
+the Trademark License, You agree not to (i) challenge Original
+Contributor's ownership or use of Trademarks; (ii) attempt to register
+any Trademarks, or any mark or logo substantially similar thereto; or
+(iii) incorporate any Trademarks into Your own trademarks, product
+names, service marks, company names, or domain names.
+
+8.2 Integration.
+
+This License represents the complete agreement concerning the subject
+matter hereof.
+
+8.3 Assignment.
+
+Original Contributor may assign this License, and its rights and
+obligations hereunder, in its sole discretion. You may assign the
+Research Use portions of this License and the TCK license to a third
+party upon prior written notice to Original Contributor (which may be
+provided electronically via the Community Web-Server). You may not
+assign the Commercial Use and Trademark license, the Add-On Technology
+License, or the Add-On Technology Source Code Porting License, including
+by way of merger (regardless of whether You are the surviving entity) or
+acquisition, without Original Contributor's prior written consent.
+
+8.4 Severability.
+
+If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. Notwithstanding the foregoing, if You are prohibited by law
+from fully and specifically complying with Sections 2.2 or 3, this
+License will immediately terminate and You must immediately discontinue
+any use of Covered Code.
+
+8.5 Governing Law.
+
+This License shall be governed by the laws of the United States and the
+State of Washington, as applied to contracts entered into and to be
+performed in Washington between Washington residents. The application of
+the United Nations Convention on Contracts for the International Sale of
+Goods is expressly excluded. You agree that the state and federal courts
+located in Seattle, Washington have exclusive jurisdiction over any
+claim relating to the License, including contract and tort claims.
+
+8.6 Dispute Resolution.
+
+a) Arbitration. Any dispute arising out of or relating to this License
+shall be finally settled by arbitration as set out herein, except that
+either party may bring any action, in a court of competent jurisdiction
+(which jurisdiction shall be exclusive), with respect to any dispute
+relating to such party's Intellectual Property Rights or with respect to
+Your compliance with the TCK license. Arbitration shall be administered:
+(i) by the American Arbitration Association (AAA), (ii) in accordance
+with the rules of the United Nations Commission on International Trade
+Law (UNCITRAL) (the "Rules") in effect at the time of arbitration as
+modified herein; and (iii) the arbitrator will apply the substantive
+laws of Washington and the United States. Judgment upon the award
+rendered by the arbitrator may be entered in any court having
+jurisdiction to enforce such award.
+
+b) Arbitration language, venue and damages. All arbitration proceedings
+shall be conducted in English by a single arbitrator selected in
+accordance with the Rules, who must be fluent in English and be either a
+retired judge or practicing attorney having at least ten (10) years
+litigation experience and be reasonably familiar with the technology
+matters relative to the dispute. Unless otherwise agreed, arbitration
+venue shall be in Seattle, Washington. The arbitrator may award monetary
+damages only and nothing shall preclude either party from seeking
+provisional or emergency relief from a court of competent jurisdiction.
+The arbitrator shall have no authority to award damages in excess of
+those permitted in this License and any such award in excess is void.
+All awards will be payable in U.S. dollars and may include, for the
+prevailing party (i) pre-judgment award interest, (ii) reasonable
+attorneys' fees incurred in connection with the arbitration, and (iii)
+reasonable costs and expenses incurred in enforcing the award. The
+arbitrator will order each party to produce identified documents and
+respond to no more than twenty-five single question interrogatories.
+
+8.7 Construction.
+
+Any law or regulation, which provides that the language of a contract
+shall be construed against the drafter, shall not apply to this License.
+
+8.8 U.S. Government End Users.
+
+The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software"
+and "commercial computer software documentation," as such terms are used
+in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
+48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
+End Users acquire Covered Code with only those rights set forth herein.
+You agree to pass this notice to our licensees.
+
+8.9 Marketing Activities.
+
+Licensee hereby grants Original Contributor a non-exclusive,
+non-transferable, limited license to use the Licensee's company name and
+logo ("Licensee Marks") in any presentations, press releases, or
+marketing materials solely for the purpose of identifying Licensee as a
+member of the Helix Community. Licensee shall provide samples of
+Licensee Marks to Original Contributor upon request by Original
+Contributor. Original Contributor acknowledges that the Licensee Marks
+are the trademarks of Licensee. Original Contributor shall not use the
+Licensee Marks in a way that may imply that Original Contributor is an
+agency or branch of Licensee. Original Contributor understands and
+agrees that the use of any Licensee Marks in connection with this
+Agreement shall not create any right, title or interest, in, or to the
+Licensee Marks or any Licensee trademarks and that all such use and
+goodwill associated with any such trademarks will inure to the benefit
+of Licensee. Further the Original Contributor will stop usage of the
+Licensee Marks upon Licensee's request.
+
+8.10 Press Announcements.
+
+You may make press announcements or other public statements regarding
+this License without the prior written consent of the Original
+Contributor, if Your statement is limited to announcing the licensing of
+the Covered Code or the availability of Your Product and its
+compatibility with the Covered Code. All other public announcements
+regarding this license require the prior written consent of the Original
+Contributor. Consent requests are welcome at press@helixcommunity.org.
+
+8.11 International Use.
+
+a) Export/Import laws. Covered Code is subject to U.S. export control
+laws and may be subject to export or import regulations in other
+countries. Each party agrees to comply strictly with all such laws and
+regulations and acknowledges their responsibility to obtain such
+licenses to export, re-export, or import as may be required. You agree
+to pass these obligations to Your licensees.
+
+b) Intellectual Property Protection. Due to limited intellectual
+property protection and enforcement in certain countries, You agree not
+to redistribute the Original Code, Upgraded Code, TCK and Specifications
+to any country on the list of restricted countries on the Community Web
+Server.
+
+8.12 Language.
+
+This License is in the English language only, which language shall be
+controlling in all respects, and all versions of this License in any
+other language shall be for accommodation only and shall not be binding
+on the parties to this License. All communications and notices made or
+given pursuant to this License, and all documentation and support to be
+provided, unless otherwise noted, shall be in the English language.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH REALNETWORKS, INC. IF YOU ARE AGREEING
+TO THIS LICENSE ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE
+AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER YOU ARE ACTING
+ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, YOU MUST BE OF MAJORITY
+AGE AND BE OTHERWISE COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT
+MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND
+CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO EXIT.
+
+
+    GLOSSARY
+
+1. *"Added Value"* means code which:
+
+(i) has a principal purpose which is substantially different from that
+of the stand-alone Technology;
+
+(ii) represents a significant functional and value enhancement to the
+Technology;
+
+(iii) operates in conjunction with the Technology; and
+
+(iv) is not marketed as a technology which replaces or substitutes for
+the Technology
+
+2. "*Applicable Patent Rights*" mean: (a) in the case where Original
+Contributor is the grantor of rights, claims of patents that (i) are now
+or hereafter acquired, owned by or assigned to Original Contributor and
+(ii) are necessarily infringed by using or making the Original Code or
+Upgraded Code, including Modifications provided by Original Contributor,
+alone and not in combination with other software or hardware; and (b) in
+the case where Licensee is the grantor of rights, claims of patents that
+(i) are now or hereafter acquired, owned by or assigned to Licensee and
+(ii) are infringed (directly or indirectly) by using or making
+Licensee's Modifications or Error Corrections, taken alone or in
+combination with Covered Code.
+
+3. "*Application Programming Interfaces (APIs)"* means the interfaces,
+associated header files, service provider interfaces, and protocols that
+enable a device, application, Operating System, or other program to
+obtain services from or make requests of (or provide services in
+response to requests from) other programs, and to use, benefit from, or
+rely on the resources, facilities, and capabilities of the relevant
+programs using the APIs. APIs includes the technical documentation
+describing the APIs, the Source Code constituting the API, and any
+Header Files used with the APIs.
+
+4. "*Commercial Use*" means any use (internal or external), copying,
+sublicensing or distribution (internal or external), directly or
+indirectly of Covered Code by You other than Your Research Use of
+Covered Code within Your business or organization or in conjunction with
+other Licensees with equivalent Research Use rights. Commercial Use
+includes any use of the Covered Code for direct or indirect commercial
+or strategic gain, advantage or other business purpose. Any Commercial
+Use requires execution of Attachment D by You and Original Contributor.
+
+5. "*Community Code*" means the Original Code, Upgraded Code, Error
+Corrections, Shared Modifications, or any combination thereof.
+
+6. "*Community Webserver(s)"* means the webservers designated by
+Original Contributor for access to the Original Code, Upgraded Code, TCK
+and Specifications and for posting Error Corrections and Shared
+Modifications.
+
+7. "*Compliant Covered Code*" means Covered Code that complies with the
+requirements of the TCK.
+
+8. "*Contributor*" means each Licensee that creates or contributes to
+the creation of any Error Correction or Shared Modification.
+
+9. "*Covered Code*" means the Original Code, Upgraded Code,
+Modifications, or any combination thereof.
+
+10. "*Error Correction*" means any change made to Community Code which
+conforms to the Specification and corrects the adverse effect of a
+failure of Community Code to perform any function set forth in or
+required by the Specifications.
+
+11. "*Executable*" means Covered Code that has been converted from
+Source Code to the preferred form for execution by a computer or digital
+processor (e.g. binary form).
+
+12. "*Extension(s)"* means any additional Interfaces developed by or for
+You which: (i) are designed for use with the Technology; (ii) constitute
+an API for a library of computing functions or services; and (iii) are
+disclosed or otherwise made available to third party software developers
+for the purpose of developing software which invokes such additional
+Interfaces. The foregoing shall not apply to software developed by Your
+subcontractors to be exclusively used by You.
+
+13. "*Header File(s)"* means that portion of the Source Code that
+provides the names and types of member functions, data members, class
+definitions, and interface definitions necessary to implement the APIs
+for the Covered Code. Header Files include, files specifically
+designated by Original Contributor as Header Files. Header Files do not
+include the code necessary to implement the functionality underlying the
+Interface.
+
+14. *"Helix DNA Server Technology"* means the program(s) that implement
+the Helix Universal Server streaming engine for the Technology as
+defined in the Specification.
+
+15. *"Helix DNA Client Technology"* means the Covered Code that
+implements the RealOne Player engine as defined in the Specification.
+
+16. *"Helix DNA Producer Technology"* means the Covered Code that
+implements the Helix Producer engine as defined in the Specification.
+
+17. *"Helix DNA Technology"* means the Helix DNA Server Technology, the
+Helix DNA Client Technology, the Helix DNA Producer Technology and other
+Helix technologies designated by Original Contributor.
+
+18. "*Intellectual Property Rights*" means worldwide statutory and
+common law rights associated solely with (i) Applicable Patent Rights;
+(ii) works of authorship including copyrights, copyright applications,
+copyright registrations and "moral rights"; (iii) the protection of
+trade and industrial secrets and confidential information; and (iv)
+divisions, continuations, renewals, and re-issuances of the foregoing
+now existing or acquired in the future.
+
+19. *"Interface*" means interfaces, functions, properties, class
+definitions, APIs, Header Files, GUIDs, V-Tables, and/or protocols
+allowing one piece of software, firmware or hardware to communicate or
+interoperate with another piece of software, firmware or hardware.
+
+20. "*Internal Deployment Use*" means use of Compliant Covered Code
+(excluding Research Use) within Your business or organization only by
+Your employees and/or agents on behalf of Your business or organization,
+but not to provide services, including content distribution, to third
+parties, subject to execution of Attachment D by You and Original
+Contributor, if required.
+
+21. "*Licensee*" means any party that has entered into and has in effect
+a version of this License with Original Contributor.
+
+22. "*MIME type*" means a description of what type of media or other
+content is in a file, including by way of example but not limited to
+'audio/x-pn-realaudio-plugin.'
+
+23. "*Modification(s)"* means (i) any addition to, deletion from and/or
+change to the substance and/or structure of the Covered Code, including
+Interfaces; (ii) the combination of any Covered Code and any previous
+Modifications; (iii) any new file or other representation of computer
+program statements that contains any portion of Covered Code; and/or
+(iv) any new Source Code implementing any portion of the Specifications.
+
+24. "*MP3 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Picture Experts Group known as MPEG-1 Audio Layer-3 or MP3,
+including but not limited to all past and future versions, profiles,
+extensions, parts and amendments relating to the MP3 specification.
+
+25. "*MPEG-4 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Pictures Experts Group known as MPEG-4, including but not
+limited to all past and future versions, profiles, extensions, parts and
+amendments relating to the MPEG-4 specification.
+
+26. "*Original Code*" means the initial Source Code for the Technology
+as described on the Community Web Server.
+
+27. "*Original Contributor*" means RealNetworks, Inc., its affiliates
+and its successors and assigns.
+
+28. "*Original Contributor MIME Type*" means the MIME registry, browser
+preferences, or local file/protocol associations invoking any Helix DNA
+Client-based application, including the RealOne Player, for playback of
+RealAudio, RealVideo, other RealMedia MIME types or datatypes (e.g.,
+.ram, .rnx, .rpm, .ra, .rm, .rp, .rt, .rf, .prx, .mpe, .rmp, .rmj, .rav,
+.rjs, .rmx, .rjt, .rms), and any other Original Contributor-specific or
+proprietary MIME types that Original Contributor may introduce in the
+future.
+
+29. "*Personal Use*" means use of Covered Code by an individual solely
+for his or her personal, private and non-commercial purposes. An
+individual's use of Covered Code in his or her capacity as an officer,
+employee, member, independent contractor or agent of a corporation,
+business or organization (commercial or non-commercial) does not qualify
+as Personal Use.
+
+30. "*RealMedia File Format*" means the file format designed and
+developed by RealNetworks for storing multimedia data and used to store
+RealAudio and RealVideo encoded streams. Valid RealMedia File Format
+extensions include: .rm, .rmj, .rmc, .rmvb, .rms.
+
+31. "*RCSL Webpage*" means the RealNetworks Community Source License
+webpage located at https://www.helixcommunity.org/content/rcsl or such
+other URL that Original Contributor may designate from time to time.
+
+32. "*Reformatted Specifications*" means any revision to the
+Specifications which translates or reformats the Specifications (as for
+example in connection with Your documentation) but which does not alter,
+subset or superset * *the functional or operational aspects of the
+Specifications.
+
+33. "*Research Use*" means use and distribution of Covered Code only for
+Your Personal Use, research or development use and expressly excludes
+Internal Deployment Use and Commercial Use. Research Use also includes
+use of Covered Code to teach individuals how to use Covered Code.
+
+34. "*Shared Modifications*" means Modifications that You distribute or
+use for a Commercial Use, in addition to any Modifications provided by
+You, at Your option, pursuant to Section 2.2, or received by You from a
+Contributor pursuant to Section 2.3.
+
+35. "*Source Code*" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control
+compilation and installation of an Executable, or source code
+differential comparisons against either the Original Code or another
+well known, available Covered Code of the Contributor's choice. The
+Source Code can be in a compressed or archival form, provided the
+appropriate decompression or de-archiving software is widely available
+for no charge.
+
+36. "*Specifications*" means the specifications for the Technology and
+other documentation, as designated on the Community Web Server, as may
+be revised by Original Contributor from time to time.
+
+37. "*Trademarks*" means Original Contributor's trademarks and logos,
+including, but not limited to, RealNetworks, RealAudio, RealVideo,
+RealOne, RealSystem, SureStream, Helix, Helix DNA and other trademarks
+whether now used or adopted in the future.
+
+38. "*Technology*" means the technology described in Attachment B, and
+Upgrades.
+
+39. "*Technology Compatibility Kit"* or *"TCK*" means the test programs,
+procedures, acceptance criteria and/or other requirements, designated by
+Original Contributor for use in verifying compliance of Covered Code
+with the Specifications, in conjunction with the Original Code and
+Upgraded Code. Original Contributor may, in its sole discretion and from
+time to time, revise a TCK to correct errors and/or omissions and in
+connection with Upgrades.
+
+40. "*Upgrade(s)"* means new versions of Technology designated
+exclusively by Original Contributor as an "Upgrade" and released by
+Original Contributor from time to time under the terms of the License.
+
+41. "*Upgraded Code*" means the Source Code and/or Executables for
+Upgrades, possibly including Modifications made by Contributors.
+
+42. *"User's Guide"* means the users guide for the TCK which Original
+Contributor makes available to You to provide direction in how to run
+the TCK and properly interpret the results, as may be revised by
+Original Contributor from time to time.
+
+43. "*You(r)*" means an individual, or a legal entity acting by and
+through an individual or individuals, exercising rights either under
+this License or under a future version of this License issued pursuant
+to Section 4.1. For legal entities, "You(r)" includes any entity that by
+majority voting interest controls, is controlled by, or is under common
+control with You.
+
+44. "*Your Products*" means any (i) hardware products You distribute
+integrating the Covered Code; (ii) any software products You distribute
+with the Covered Code that utilize the APIs of the Covered Code; or
+(iii) any services You provide using the Covered Code.
+
+
+  ATTACHMENT A
+
+REQUIRED NOTICES
+
+
+    ATTACHMENT A-1
+
+REQUIRED IN ALL CASES
+
+Notice to be included in header file of all Error Corrections and Shared
+Modifications:
+
+Portions Copyright 1994-2003 © RealNetworks, Inc. All rights reserved.
+
+The contents of this file, and the files included with this file, are
+subject to the current version of RealNetworks Community Source License
+Version 1.1 (the "License"). You may not use this file except in
+compliance with the License executed by both You and RealNetworks. You
+may obtain a copy of the License at *
+https://www.helixcommunity.org/content/rcsl.* You may also obtain a copy
+of the License by contacting RealNetworks directly. Please see the
+License for the rights, obligations and limitations governing use of the
+contents of the file.
+
+This file is part of the Helix DNA technology. RealNetworks, Inc., is
+the developer of the Original code and owns the copyrights in the
+portions it created.
+
+This file, and the files included with this file, are distributed on an
+'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
+LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s):
+
+_______________________________________________
+
+Technology Compatibility Kit Test Suite(s) Location:
+
+________________________________
+
+
+    ATTACHMENT A-2
+
+SAMPLE LICENSEE CERTIFICATION
+
+"By clicking the `Agree' button below, You certify that You are a
+Licensee in good standing under the RealNetworks Community Source
+License, ("License") and that Your access, use and distribution of code
+and information You may obtain at this site is subject to the License.
+If You are not a Licensee under the RealNetworks Community Source
+License You agree not to download, copy or use the Helix DNA technology.
+
+
+    ATTACHMENT A-3
+
+REQUIRED STUDENT NOTIFICATION
+
+"This software and related documentation has been obtained by Your
+educational institution subject to the RealNetworks Community Source
+License. You have been provided access to the software and related
+documentation for use only in connection with your course work and
+research activities as a matriculated student of Your educational
+institution. Any other use is expressly prohibited.
+
+THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIAL OF
+REALNETWORKS, INC, WHICH ARE PROTECTED BY VARIOUS INTELLECTUAL PROPERTY
+RIGHTS.
+
+You may not use this file except in compliance with the License. You may
+obtain a copy of the License on the web at
+https://www.helixcommunity.org/content/rcsl.
+
+*
+*
+
+
+  ATTACHMENT B
+
+Description of Technology
+
+Helix DNA, which consists of Helix DNA Client, Helix DNA Server and
+Helix DNA Producer.
+
+Description of "Technology"
+
+Helix DNA Technology v1.0 as described on the Community Web Server.
+
+
+  ATTACHMENT C
+
+TECHNOLOGY COMPATIBILITY KIT LICENSE
+
+The following license is effective for the *Helix DNA* Technology
+Compatibility Kit - as described on the Community Web Server. The
+Technology Compatibility Kit(s) for the Technology specified in
+Attachment B may be accessed at the Community Web Server.
+
+1. TCK License.
+
+1.1 Grants to use TCK
+
+Subject to the terms and restrictions set forth below and the
+RealNetworks Community Source License, and the Research Use license,
+Original Contributor grants to You a worldwide, non-exclusive,
+non-transferable license, to the extent of Original Contributor's
+Intellectual Property Rights in the TCK (without the right to
+sublicense), to use the TCK to develop and test Covered Code.
+
+1.2 TCK Use Restrictions.
+
+You are not authorized to create derivative works of the TCK or use the
+TCK to test any implementation of the Specification that is not Covered
+Code. You may not publish Your test results or make claims of
+comparative compatibility with respect to other implementations of the
+Specification. In consideration for the license grant in Section 1.1
+above You agree not to develop Your own tests that are intended to
+validate conformation with the Specification.
+
+2. Test Results.
+
+You agree to provide to Original Contributor or the third party test
+facility if applicable, Your test results that demonstrate that Covered
+Code is Compliant Covered Code and that Original Contributor may publish
+or otherwise distribute such test results.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH THE ORIGINAL CONTRIBUTOR, REALNETWORKS,
+INC. IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY, YOU
+REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE.
+WHETHER YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY,
+YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE COMPETENT TO ENTER INTO
+CONTRACTS. IF YOU DO NOT MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY
+OF THE TERMS AND CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON
+TO EXIT.
+
+*ACCEPT / REJECT
+*
+
+*
+*
+
+*To agree to the R&D/academic terms of this license, please register
+<https://www.helixcommunity.org/2002/intro/why-register> on the site --
+you will then be given a chance to agree to the clickwrap RCSL
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+R&D License
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+and gain access to the RCSL-licensed source code.  To build or deploy
+commercial applications based on the RCSL, you will need to agree to the
+Commercial Use license attachments
+<https://www.helixcommunity.org/content/rcsl-attachments>*
+
+
+

+ 518 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/RPSL.txt

@@ -0,0 +1,518 @@
+RealNetworks Public Source License Version 1.0
+(Rev. Date October 28, 2002)
+
+1. General Definitions. This License applies to any program or other work which
+RealNetworks, Inc., or any other entity that elects to use this license,
+("Licensor") makes publicly available and which contains a notice placed by
+Licensor identifying such program or work as "Original Code" and stating that it
+is subject to the terms of this RealNetworks Public Source License version 1.0
+(or subsequent version thereof) ("License"). You are not required to accept this
+License. However, nothing else grants You permission to use, copy, modify or
+distribute the software or its derivative works. These actions are prohibited by
+law if You do not accept this License. Therefore, by modifying, copying or
+distributing the software (or any work based on the software), You indicate your
+acceptance of this License to do so, and all its terms and conditions. In
+addition, you agree to the terms of this License by clicking the Accept button
+or downloading the software. As used in this License:
+
+1.1 "Applicable Patent Rights" mean: (a) in the case where Licensor is the
+grantor of rights, claims of patents that (i) are now or hereafter acquired,
+owned by or assigned to Licensor and (ii) are necessarily infringed by using or
+making the Original Code alone and not in combination with other software or
+hardware; and (b) in the case where You are the grantor of rights, claims of
+patents that (i) are now or hereafter acquired, owned by or assigned to You and
+(ii) are infringed (directly or indirectly) by using or making Your
+Modifications, taken alone or in combination with Original Code.
+
+1.2 "Compatible Source License" means any one of the licenses listed on Exhibit
+B or at https://www.helixcommunity.org/content/complicense or other licenses
+specifically identified by Licensor in writing. Notwithstanding any term to the
+contrary in any Compatible Source License, any code covered by any Compatible
+Source License that is used with Covered Code must be made readily available in
+Source Code format for royalty-free use under the terms of the Compatible Source
+License or this License.
+
+1.3 "Contributor" means any person or entity that creates or contributes to the
+creation of Modifications.
+
+1.4 "Covered Code" means the Original Code, Modifications, the combination of
+Original Code and any Modifications, and/or any respective portions thereof.
+
+1.5 "Deploy" means to use, sublicense or distribute Covered Code other than for
+Your internal research and development (R&D) and/or Personal Use, and includes
+without limitation, any and all internal use or distribution of Covered Code
+within Your business or organization except for R&D use and/or Personal Use, as
+well as direct or indirect sublicensing or distribution of Covered Code by You
+to any third party in any form or manner.
+
+1.6 "Derivative Work" means either the Covered Code or any derivative work under
+United States copyright law, and including any work containing or including any
+portion of the Covered Code or Modifications, either verbatim or with
+modifications and/or translated into another language. Derivative Work also
+includes any work which combines any portion of Covered Code or Modifications
+with code not otherwise governed by the terms of this License.
+
+1.7 "Externally Deploy" means to Deploy the Covered Code in any way that may be
+accessed or used by anyone other than You, used to provide any services to
+anyone other than You, or used in any way to deliver any content to anyone other
+than You, whether the Covered Code is distributed to those parties, made
+available as an application intended for use over a computer network, or used to
+provide services or otherwise deliver content to anyone other than You.
+
+1.8. "Interface" means interfaces, functions, properties, class definitions,
+APIs, header files, GUIDs, V-Tables, and/or protocols allowing one piece of
+software, firmware or hardware to communicate or interoperate with another piece
+of software, firmware or hardware.
+
+1.9 "Modifications" mean any addition to, deletion from, and/or change to, the
+substance and/or structure of the Original Code, any previous Modifications, the
+combination of Original Code and any previous Modifications, and/or any
+respective portions thereof. When code is released as a series of files, a
+Modification is: (a) any addition to or deletion from the contents of a file
+containing Covered Code; and/or (b) any new file or other representation of
+computer program statements that contains any part of Covered Code.
+
+1.10 "Original Code" means (a) the Source Code of a program or other work as
+originally made available by Licensor under this License, including the Source
+Code of any updates or upgrades to such programs or works made available by
+Licensor under this License, and that has been expressly identified by Licensor
+as such in the header file(s) of such work; and (b) the object code compiled
+from such Source Code and originally made available by Licensor under this
+License.
+
+1.11 "Personal Use" means use of Covered Code by an individual solely for his or
+her personal, private and non-commercial purposes. An individual's use of
+Covered Code in his or her capacity as an officer, employee, member, independent
+contractor or agent of a corporation, business or organization (commercial or
+non-commercial) does not qualify as Personal Use.
+
+1.12 "Source Code" means the human readable form of a program or other work that
+is suitable for making modifications to it, including all modules it contains,
+plus any associated interface definition files, scripts used to control
+compilation and installation of an executable (object code).
+
+1.13 "You" or "Your" means an individual or a legal entity exercising rights
+under this License. For legal entities, "You" or "Your" includes any entity
+which controls, is controlled by, or is under common control with, You, where
+"control" means (a) the power, direct or indirect, to cause the direction or
+management of such entity, whether by contract or otherwise, or (b) ownership of
+fifty percent (50%) or more of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Permitted Uses; Conditions & Restrictions. Subject to the terms and
+conditions of this License, Licensor hereby grants You, effective on the date
+You accept this License (via downloading or using Covered Code or otherwise
+indicating your acceptance of this License), a worldwide, royalty-free,
+non-exclusive copyright license, to the extent of Licensor's copyrights cover
+the Original Code, to do the following:
+
+2.1 You may reproduce, display, perform, modify and Deploy Covered Code,
+provided that in each instance:
+
+(a) You must retain and reproduce in all copies of Original Code the copyright
+and other proprietary notices and disclaimers of Licensor as they appear in the
+Original Code, and keep intact all notices in the Original Code that refer to
+this License;
+
+(b) You must include a copy of this License with every copy of Source Code of
+Covered Code and documentation You distribute, and You may not offer or impose
+any terms on such Source Code that alter or restrict this License or the
+recipients' rights hereunder, except as permitted under Section 6;
+
+(c) You must duplicate, to the extent it does not already exist, the notice in
+Exhibit A in each file of the Source Code of all Your Modifications, and cause
+the modified files to carry prominent notices stating that You changed the files
+and the date of any change;
+
+(d) You must make Source Code of all Your Externally Deployed Modifications
+publicly available under the terms of this License, including the license grants
+set forth in Section 3 below, for as long as you Deploy the Covered Code or
+twelve (12) months from the date of initial Deployment, whichever is longer. You
+should preferably distribute the Source Code of Your Deployed Modifications
+electronically (e.g. download from a web site); and
+
+(e) if You Deploy Covered Code in object code, executable form only, You must
+include a prominent notice, in the code itself as well as in related
+documentation, stating that Source Code of the Covered Code is available under
+the terms of this License with information on how and where to obtain such
+Source Code. You must also include the Object Code Notice set forth in Exhibit A
+in the "about" box or other appropriate place where other copyright notices are
+placed, including any packaging materials.
+
+2.2 You expressly acknowledge and agree that although Licensor and each
+Contributor grants the licenses to their respective portions of the Covered Code
+set forth herein, no assurances are provided by Licensor or any Contributor that
+the Covered Code does not infringe the patent or other intellectual property
+rights of any other entity. Licensor and each Contributor disclaim any liability
+to You for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, You hereby assume sole responsibility to
+secure any other intellectual property rights needed, if any. For example, if a
+third party patent license is required to allow You to make, use, sell, import
+or offer for sale the Covered Code, it is Your responsibility to acquire such
+license(s).
+
+2.3 Subject to the terms and conditions of this License, Licensor hereby grants
+You, effective on the date You accept this License (via downloading or using
+Covered Code or otherwise indicating your acceptance of this License), a
+worldwide, royalty-free, perpetual, non-exclusive patent license under
+Licensor's Applicable Patent Rights to make, use, sell, offer for sale and
+import the Covered Code, provided that in each instance you comply with the
+terms of this License.
+
+3. Your Grants. In consideration of, and as a condition to, the licenses granted
+to You under this License:
+
+(a) You grant to Licensor and all third parties a non-exclusive, perpetual,
+irrevocable, royalty free license under Your Applicable Patent Rights and other
+intellectual property rights owned or controlled by You, to make, sell, offer
+for sale, use, import, reproduce, display, perform, modify, distribute and
+Deploy Your Modifications of the same scope and extent as Licensor's licenses
+under Sections 2.1 and 2.2; and
+
+(b) You grant to Licensor and its subsidiaries a non-exclusive, worldwide,
+royalty-free, perpetual and irrevocable license, under Your Applicable Patent
+Rights and other intellectual property rights owned or controlled by You, to
+make, use, sell, offer for sale, import, reproduce, display, perform,
+distribute, modify or have modified (for Licensor and/or its subsidiaries),
+sublicense and distribute Your Modifications, in any form and for any purpose,
+through multiple tiers of distribution.
+
+(c) You agree not use any information derived from Your use and review of the
+Covered Code, including but not limited to any algorithms or inventions that may
+be contained in the Covered Code, for the purpose of asserting any of Your
+patent rights, or assisting a third party to assert any of its patent rights,
+against Licensor or any Contributor.
+
+4. Derivative Works. You may create a Derivative Work by combining Covered Code
+with other code not otherwise governed by the terms of this License and
+distribute the Derivative Work as an integrated product. In each such instance,
+You must make sure the requirements of this License are fulfilled for the
+Covered Code or any portion thereof, including all Modifications.
+
+4.1 You must cause any Derivative Work that you distribute, publish or
+Externally Deploy, that in whole or in part contains or is derived from the
+Covered Code or any part thereof, to be licensed as a whole at no charge to all
+third parties under the terms of this License and no other license except as
+provided in Section 4.2. You also must make Source Code available for the
+Derivative Work under the same terms as Modifications, described in Sections 2
+and 3, above.
+
+4.2 Compatible Source Licenses. Software modules that have been independently
+developed without any use of Covered Code and which contain no portion of the
+Covered Code, Modifications or other Derivative Works, but are used or combined
+in any way wtih the Covered Code or any Derivative Work to form a larger
+Derivative Work, are exempt from the conditions described in Section 4.1 but
+only to the extent that: the software module, including any software that is
+linked to, integrated with, or part of the same applications as, the software
+module by any method must be wholly subject to one of the Compatible Source
+Licenses. Notwithstanding the foregoing, all Covered Code must be subject to the
+terms of this License. Thus, the entire Derivative Work must be licensed under a
+combination of the RPSL (for Covered Code) and a Compatible Source License for
+any independently developed software modules within the Derivative Work. The
+foregoing requirement applies even if the Compatible Source License would
+ordinarily allow the software module to link with, or form larger works with,
+other software that is not subject to the Compatible Source License. For
+example, although the Mozilla Public License v1.1 allows Mozilla code to be
+combined with proprietary software that is not subject to the MPL, if
+MPL-licensed code is used with Covered Code the MPL-licensed code could not be
+combined or linked with any code not governed by the MPL. The general intent of
+this section 4.2 is to enable use of Covered Code with applications that are
+wholly subject to an acceptable open source license. You are responsible for
+determining whether your use of software with Covered Code is allowed under Your
+license to such software.
+
+4.3 Mere aggregation of another work not based on the Covered Code with the
+Covered Code (or with a work based on the Covered Code) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License. If You deliver the Covered Code for combination and/or integration with
+an application previously provided by You (for example, via automatic updating
+technology), such combination and/or integration constitutes a Derivative Work
+subject to the terms of this License.
+
+5. Exclusions From License Grant. Nothing in this License shall be deemed to
+grant any rights to trademarks, copyrights, patents, trade secrets or any other
+intellectual property of Licensor or any Contributor except as expressly stated
+herein. No right is granted to the trademarks of Licensor or any Contributor
+even if such marks are included in the Covered Code. Nothing in this License
+shall be interpreted to prohibit Licensor from licensing under different terms
+from this License any code that Licensor otherwise would have a right to
+license. Modifications, Derivative Works and/or any use or combination of
+Covered Code with other technology provided by Licensor or third parties may
+require additional patent licenses from Licensor which Licensor may grant in its
+sole discretion. No patent license is granted separate from the Original Code or
+combinations of the Original Code with other software or hardware.
+
+5.1. Trademarks. This License does not grant any rights to use the trademarks or
+trade names owned by Licensor ("Licensor Marks" defined in Exhibit C) or to any
+trademark or trade name belonging to any Contributor. No Licensor Marks may be
+used to endorse or promote products derived from the Original Code other than as
+permitted by the Licensor Trademark Policy defined in Exhibit C.
+
+6. Additional Terms. You may choose to offer, and to charge a fee for, warranty,
+support, indemnity or liability obligations and/or other rights consistent with
+the scope of the license granted herein ("Additional Terms") to one or more
+recipients of Covered Code. However, You may do so only on Your own behalf and
+as Your sole responsibility, and not on behalf of Licensor or any Contributor.
+You must obtain the recipient's agreement that any such Additional Terms are
+offered by You alone, and You hereby agree to indemnify, defend and hold
+Licensor and every Contributor harmless for any liability incurred by or claims
+asserted against Licensor or such Contributor by reason of any such Additional
+Terms.
+
+7. Versions of the License. Licensor may publish revised and/or new versions of
+this License from time to time. Each version will be given a distinguishing
+version number. Once Original Code has been published under a particular version
+of this License, You may continue to use it under the terms of that version. You
+may also choose to use such Original Code under the terms of any subsequent
+version of this License published by Licensor. No one other than Licensor has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in part
+pre-release, untested, or not fully tested works. The Covered Code may contain
+errors that could cause failures or loss of data, and may be incomplete or
+contain inaccuracies. You expressly acknowledge and agree that use of the
+Covered Code, or any portion thereof, is at Your sole and entire risk. THE
+COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
+ANY KIND AND LICENSOR AND LICENSOR'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS
+"LICENSOR" FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY
+DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF
+SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET
+ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. LICENSOR AND EACH
+CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE
+COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR
+REQUIREMENTS, THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
+ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO ORAL OR
+WRITTEN DOCUMENTATION, INFORMATION OR ADVICE GIVEN BY LICENSOR, A LICENSOR
+AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY. You
+acknowledge that the Covered Code is not intended for use in high risk
+activities, including, but not limited to, the design, construction, operation
+or maintenance of nuclear facilities, aircraft navigation, aircraft
+communication systems, or air traffic control machines in which case the failure
+of the Covered Code could lead to death, personal injury, or severe physical or
+environmental damage. Licensor disclaims any express or implied warranty of
+fitness for such uses.
+
+9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
+SHALL LICENSOR OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR
+YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER
+UNDER A THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE OR STRICT
+LIABILITY), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF LICENSOR OR SUCH
+CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND
+NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. SOME
+JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF INCIDENTAL OR
+CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event
+shall Licensor's total liability to You for all damages (other than as may be
+required by applicable law) under this License exceed the amount of ten dollars
+($10.00).
+
+10. Ownership. Subject to the licenses granted under this License, each
+Contributor retains all rights, title and interest in and to any Modifications
+made by such Contributor. Licensor retains all rights, title and interest in and
+to the Original Code and any Modifications made by or on behalf of Licensor
+("Licensor Modifications"), and such Licensor Modifications will not be
+automatically subject to this License. Licensor may, at its sole discretion,
+choose to license such Licensor Modifications under this License, or on
+different terms from those contained in this License or may choose not to
+license them at all.
+
+11. Termination. 
+
+11.1 Term and Termination. The term of this License is perpetual unless
+terminated as provided below. This License and the rights granted hereunder will
+terminate:
+
+(a) automatically without notice from Licensor if You fail to comply with any
+term(s) of this License and fail to cure such breach within 30 days of becoming
+aware of such breach;
+
+(b) immediately in the event of the circumstances described in Section 12.5(b);
+or
+
+(c) automatically without notice from Licensor if You, at any time during the
+term of this License, commence an action for patent infringement against
+Licensor (including by cross-claim or counter claim in a lawsuit);
+
+(d) upon written notice from Licensor if You, at any time during the term of
+this License, commence an action for patent infringement against any third party
+alleging that the Covered Code itself (excluding combinations with other
+software or hardware) infringes any patent (including by cross-claim or counter
+claim in a lawsuit).
+
+11.2 Effect of Termination. Upon termination, You agree to immediately stop any
+further use, reproduction, modification, sublicensing and distribution of the
+Covered Code and to destroy all copies of the Covered Code that are in your
+possession or control. All sublicenses to the Covered Code which have been
+properly granted prior to termination shall survive any termination of this
+License. Provisions which, by their nature, should remain in effect beyond the
+termination of this License shall survive, including but not limited to Sections
+3, 5, 8, 9, 10, 11, 12.2 and 13. No party will be liable to any other for
+compensation, indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this License will
+be without prejudice to any other right or remedy of any party.
+
+12. Miscellaneous.
+
+12.1 Government End Users. The Covered Code is a "commercial item" as defined in
+FAR 2.101. Government software and technical data rights in the Covered Code
+include only those rights customarily provided to the public as defined in this
+License. This customary commercial license in technical data and software is
+provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
+Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
+Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
+or Computer Software Documentation). Accordingly, all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+12.2 Relationship of Parties. This License will not be construed as creating an
+agency, partnership, joint venture or any other form of legal association
+between or among You, Licensor or any Contributor, and You will not represent to
+the contrary, whether expressly, by implication, appearance or otherwise.
+
+12.3 Independent Development. Nothing in this License will impair Licensor's
+right to acquire, license, develop, have others develop for it, market and/or
+distribute technology or products that perform the same or similar functions as,
+or otherwise compete with, Modifications, Derivative Works, technology or
+products that You may develop, produce, market or distribute.
+
+12.4 Waiver; Construction. Failure by Licensor or any Contributor to enforce any
+provision of this License will not be deemed a waiver of future enforcement of
+that or any other provision. Any law or regulation which provides that the
+language of a contract shall be construed against the drafter will not apply to
+this License.
+
+12.5 Severability. (a) If for any reason a court of competent jurisdiction finds
+any provision of this License, or portion thereof, to be unenforceable, that
+provision of the License will be enforced to the maximum extent permissible so
+as to effect the economic benefits and intent of the parties, and the remainder
+of this License will continue in full force and effect. (b) Notwithstanding the
+foregoing, if applicable law prohibits or restricts You from fully and/or
+specifically complying with Sections 2 and/or 3 or prevents the enforceability
+of either of those Sections, this License will immediately terminate and You
+must immediately discontinue any use of the Covered Code and destroy all copies
+of it that are in your possession or control.
+
+12.6 Dispute Resolution. Any litigation or other dispute resolution between You
+and Licensor relating to this License shall take place in the Seattle,
+Washington, and You and Licensor hereby consent to the personal jurisdiction of,
+and venue in, the state and federal courts within that District with respect to
+this License. The application of the United Nations Convention on Contracts for
+the International Sale of Goods is expressly excluded.
+
+12.7 Export/Import Laws. This software is subject to all export and import laws
+and restrictions and regulations of the country in which you receive the Covered
+Code and You are solely responsible for ensuring that You do not export,
+re-export or import the Covered Code or any direct product thereof in violation
+of any such restrictions, laws or regulations, or without all necessary
+authorizations.
+
+12.8 Entire Agreement; Governing Law. This License constitutes the entire
+agreement between the parties with respect to the subject matter hereof. This
+License shall be governed by the laws of the United States and the State of
+Washington.
+
+Where You are located in the province of Quebec, Canada, the following clause
+applies: The parties hereby confirm that they have requested that this License
+and all related documents be drafted in English. Les parties ont exig&eacute;
+que le pr&eacute;sent contrat et tous les documents connexes soient
+r&eacute;dig&eacute;s en anglais.
+
+								EXHIBIT A.  
+
+"Copyright &copy; 1995-2002
+RealNetworks, Inc. and/or its licensors. All Rights Reserved.
+
+The contents of this file, and the files included with this file, are subject to
+the current version of the RealNetworks Public Source License Version 1.0 (the
+"RPSL") available at https://www.helixcommunity.org/content/rpsl unless you have
+licensed the file under the RealNetworks Community Source License Version 1.0
+(the "RCSL") available at https://www.helixcommunity.org/content/rcsl, in which
+case the RCSL will apply. You may also obtain the license terms directly from
+RealNetworks. You may not use this file except in compliance with the RPSL or,
+if you have a valid RCSL with RealNetworks applicable to this file, the RCSL.
+Please see the applicable RPSL or RCSL for the rights, obligations and
+limitations governing use of the contents of the file.
+
+This file is part of the Helix DNA Technology. RealNetworks is the developer of
+the Original code and owns the copyrights in the portions it created.
+
+This file, and the files included with this file, is distributed and made
+available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
+IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING
+WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s): ____________________________________ 
+
+Technology Compatibility Kit Test
+Suite(s) Location (if licensed under the RCSL): ______________________________ 
+
+Object Code Notice: Helix DNA Client technology included. Copyright (c)
+RealNetworks, Inc., 1995-2002. All rights reserved.
+
+
+								EXHIBIT B 
+
+Compatible Source Licenses for the RealNetworks Public Source License. The
+following list applies to the most recent version of the license as of October
+25, 2002, unless otherwise indicated.
+
+* Academic Free License
+* Apache Software License
+* Apple Public Source License
+* Artistic license
+* Attribution Assurance Licenses
+* BSD license
+* Common Public License (1)
+* Eiffel Forum License
+* GNU General Public License (GPL) (1)
+* GNU Library or "Lesser" General Public License (LGPL) (1)
+* IBM Public License
+* Intel Open Source License
+* Jabber Open Source License
+* MIT license
+* MITRE Collaborative Virtual Workspace License (CVW License)
+* Motosoto License
+* Mozilla Public License 1.0 (MPL)
+* Mozilla Public License 1.1 (MPL)
+* Nokia Open Source License
+* Open Group Test Suite License
+* Python Software Foundation License
+* Ricoh Source Code Public License
+* Sun Industry Standards Source License (SISSL)
+* Sun Public License
+* University of Illinois/NCSA Open Source License
+* Vovida Software License v. 1.0
+* W3C License
+* X.Net License
+* Zope Public License
+* zlib/libpng license
+
+(1) Note: because this license contains certain reciprocal licensing terms that
+purport to extend to independently developed code, You may be prohibited under
+the terms of this otherwise compatible license from using code licensed under
+its terms with Covered Code because Covered Code may only be licensed under the
+RealNetworks Public Source License. Any attempt to apply non RPSL license terms,
+including without limitation the GPL, to Covered Code is expressly forbidden.
+You are responsible for ensuring that Your use of Compatible Source Licensed
+code does not violate either the RPSL or the Compatible Source License.
+
+The latest version of this list can be found at:
+https://www.helixcommunity.org/content/complicense
+
+								EXHIBIT C 
+
+RealNetworks' Trademark policy.  
+
+RealNetworks defines the following trademarks collectively as "Licensor
+Trademarks": "RealNetworks", "RealPlayer", "RealJukebox", "RealSystem",
+"RealAudio", "RealVideo", "RealOne Player", "RealMedia", "Helix" or any other
+trademarks or trade names belonging to RealNetworks.
+
+RealNetworks "Licensor Trademark Policy" forbids any use of Licensor Trademarks
+except as permitted by and in strict compliance at all times with RealNetworks'
+third party trademark usage guidelines which are posted at
+http://www.realnetworks.com/info/helixlogo.html.
+

+ 123 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/mp3common.h

@@ -0,0 +1,123 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * mp3common.h - implementation-independent API's, datatypes, and definitions
+ **************************************************************************************/
+
+#ifndef _MP3COMMON_H
+#define _MP3COMMON_H
+
+#include "mp3dec.h"
+#include "statname.h"	/* do name-mangling for static linking */
+
+#define MAX_SCFBD		4		/* max scalefactor bands per channel */
+#define NGRANS_MPEG1	2
+#define NGRANS_MPEG2	1
+
+/* 11-bit syncword if MPEG 2.5 extensions are enabled */
+#define	SYNCWORDH		0xff
+#define	SYNCWORDL		0xe0
+
+/* 12-bit syncword if MPEG 1,2 only are supported 
+ * #define	SYNCWORDH		0xff
+ * #define	SYNCWORDL		0xf0
+ */
+
+typedef struct _MP3DecInfo {
+	/* pointers to platform-specific data structures */
+	void *FrameHeaderPS;
+	void *SideInfoPS;
+	void *ScaleFactorInfoPS;
+	void *HuffmanInfoPS;
+	void *DequantInfoPS;
+	void *IMDCTInfoPS;
+	void *SubbandInfoPS;
+
+	/* buffer which must be large enough to hold largest possible main_data section */
+	unsigned char mainBuf[MAINBUF_SIZE];
+
+	/* special info for "free" bitrate files */
+	int freeBitrateFlag;
+	int freeBitrateSlots;
+
+	/* user-accessible info */
+	int bitrate;
+	int nChans;
+	int samprate;
+	int nGrans;				/* granules per frame */
+	int nGranSamps;			/* samples per granule */
+	int nSlots;
+	int layer;
+	MPEGVersion version;
+
+	int mainDataBegin;
+	int mainDataBytes;
+
+	int part23Length[MAX_NGRAN][MAX_NCHAN];
+
+} MP3DecInfo;
+
+typedef struct _SFBandTable {
+	short l[23];
+	short s[14];
+} SFBandTable;
+
+/* decoder functions which must be implemented for each platform */
+MP3DecInfo *AllocateBuffers(void);
+void FreeBuffers(MP3DecInfo *mp3DecInfo);
+int CheckPadBit(MP3DecInfo *mp3DecInfo);
+int UnpackFrameHeader(MP3DecInfo *mp3DecInfo, unsigned char *buf);
+int UnpackSideInfo(MP3DecInfo *mp3DecInfo, unsigned char *buf);
+int DecodeHuffman(MP3DecInfo *mp3DecInfo, unsigned char *buf, int *bitOffset, int huffBlockBits, int gr, int ch);
+int Dequantize(MP3DecInfo *mp3DecInfo, int gr);
+int IMDCT(MP3DecInfo *mp3DecInfo, int gr, int ch);
+int UnpackScaleFactors(MP3DecInfo *mp3DecInfo, unsigned char *buf, int *bitOffset, int bitsAvail, int gr, int ch);
+int Subband(MP3DecInfo *mp3DecInfo, short *pcmBuf);
+
+/* mp3tabs.c - global ROM tables */
+extern const int samplerateTab[3][3];
+extern const short bitrateTab[3][3][15];
+extern const short samplesPerFrameTab[3][3];
+extern const short bitsPerSlotTab[3];
+extern const short sideBytesTab[3][2];
+extern const short slotTab[3][3][15];
+extern const SFBandTable sfBandTable[3][3];
+
+#endif	/* _MP3COMMON_H */

+ 137 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/mp3dec.h

@@ -0,0 +1,137 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * mp3dec.h - public C API for MP3 decoder
+ **************************************************************************************/
+
+#ifndef _MP3DEC_H
+#define _MP3DEC_H
+
+// Must be moved KJ
+//#define __GNUC__
+#define ARM
+#define ARM_ADS
+
+#if defined(_WIN32) && !defined(_WIN32_WCE)
+#
+#elif defined(_WIN32) && defined(_WIN32_WCE) && defined(ARM)
+#
+#elif defined(_WIN32) && defined(WINCE_EMULATOR)
+#
+#elif defined(ARM_ADS)
+#
+#elif defined(_SYMBIAN) && defined(__WINS__)	/* Symbian emulator for Ix86 */
+#
+#elif defined(__GNUC__) && defined(ARM)
+#
+#elif defined(__GNUC__) && defined(__i386__)
+#
+#elif defined(_OPENWAVE_SIMULATOR) || defined(_OPENWAVE_ARMULATOR)
+#
+#else
+#error No platform defined. See valid options in mp3dec.h
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* determining MAINBUF_SIZE:
+ *   max mainDataBegin = (2^9 - 1) bytes (since 9-bit offset) = 511
+ *   max nSlots (concatenated with mainDataBegin bytes from before) = 1440 - 9 - 4 + 1 = 1428
+ *   511 + 1428 = 1939, round up to 1940 (4-byte align)
+ */
+#define MAINBUF_SIZE	1940
+
+#define MAX_NGRAN		2		/* max granules */
+#define MAX_NCHAN		2		/* max channels */
+#define MAX_NSAMP		576		/* max samples per channel, per granule */
+
+/* map to 0,1,2 to make table indexing easier */
+typedef enum {
+	MPEG1 =  0,
+	MPEG2 =  1,
+	MPEG25 = 2
+} MPEGVersion;
+
+typedef void *HMP3Decoder;
+
+enum {
+	ERR_MP3_NONE =                  0,
+	ERR_MP3_INDATA_UNDERFLOW =     -1,
+	ERR_MP3_MAINDATA_UNDERFLOW =   -2,
+	ERR_MP3_FREE_BITRATE_SYNC =    -3,
+	ERR_MP3_OUT_OF_MEMORY =	       -4,
+	ERR_MP3_NULL_POINTER =         -5,
+	ERR_MP3_INVALID_FRAMEHEADER =  -6,
+	ERR_MP3_INVALID_SIDEINFO =     -7,
+	ERR_MP3_INVALID_SCALEFACT =    -8,
+	ERR_MP3_INVALID_HUFFCODES =    -9,
+	ERR_MP3_INVALID_DEQUANTIZE =   -10,
+	ERR_MP3_INVALID_IMDCT =        -11,
+	ERR_MP3_INVALID_SUBBAND =      -12,
+
+	ERR_UNKNOWN =                  -9999
+};
+
+typedef struct _MP3FrameInfo {
+	int bitrate;
+	int nChans;
+	int samprate;
+	int bitsPerSample;
+	int outputSamps;
+	int layer;
+	int version;
+} MP3FrameInfo;
+
+/* public API */
+HMP3Decoder MP3InitDecoder(void);
+void MP3FreeDecoder(HMP3Decoder hMP3Decoder);
+int MP3Decode(HMP3Decoder hMP3Decoder, unsigned char **inbuf, int *bytesLeft, short *outbuf, int useSize);
+
+void MP3GetLastFrameInfo(HMP3Decoder hMP3Decoder, MP3FrameInfo *mp3FrameInfo);
+int MP3GetNextFrameInfo(HMP3Decoder hMP3Decoder, MP3FrameInfo *mp3FrameInfo, unsigned char *buf);
+int MP3FindSyncWord(unsigned char *buf, int nBytes);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _MP3DEC_H */

+ 108 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/mpadecobjfixpt.h

@@ -0,0 +1,108 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+#ifndef _MPADECOBJFIXPT_H_
+#define _MPADECOBJFIXPT_H_
+
+#include "mp3dec.h"		/* public C API for new MP3 decoder */
+
+class CMpaDecObj
+{
+public:
+    CMpaDecObj();
+    ~CMpaDecObj();
+
+    ///////////////////////////////////////////////////////////////////////////
+    // Function:    Init_n
+    // Purpose:     Initialize the mp3 decoder.
+    // Parameters:  pSync       a pointer to a syncword
+    //              ulSize      the size of the buffer pSync points to
+    //              bUseSize    this tells the decoder to use the input frame
+    //                          size on the decode instead of calculating
+    //                          the frame size.  This is necessary when
+    //                          our formatted mp3 data (main_data_begin always
+    //                          equal to 0).
+    //
+    // Returns:     returns 1 on success, 0 on failure
+    ///////////////////////////////////////////////////////////////////////////
+    int     Init_n(unsigned char *pSync,
+                   unsigned long ulSize,
+                   unsigned char bUseSize=0);
+
+    ///////////////////////////////////////////////////////////////////////////
+    // Function:    DecodeFrame_v
+    // Purpose:     Decodes one mp3 frame
+    // Parameters:  pSource     pointer to an mp3 frame (at a syncword)
+    //              pulSize     size of the buffer pSource points to.  It will
+    //                          contain the number of mp3 bytes decoded upon
+    //                          return.
+    //              pPCM        pointer to a buffer to decode into
+    //              pulPCMSize  size of the PCM buffer.  It will contain the
+    //                          number of PCM bytes prodced upon return.
+    ///////////////////////////////////////////////////////////////////////////
+    void    DecodeFrame_v(unsigned char *pSource,
+              	          unsigned long *pulSize,
+                   	      unsigned char *pPCM,
+                       	  unsigned long *pulPCMSize);
+
+	// overloaded new version that returns error code in errCode
+    void    DecodeFrame_v(unsigned char *pSource,
+              	          unsigned long *pulSize,
+                   	      unsigned char *pPCM,
+                       	  unsigned long *pulPCMSize, 
+						  int *errCode);
+
+    void    GetPCMInfo_v(unsigned long &ulSampRate,
+                         int &nChannels,
+                         int &nBitsPerSample);
+
+	// return number of samples per frame, PER CHANNEL (renderer multiplies this result by nChannels)
+    int     GetSamplesPerFrame_n();
+
+    void    SetTrustPackets(unsigned char bTrust) { m_bTrustPackets = bTrust; }
+
+private:
+	void *              m_pDec;		// generic void ptr
+
+	void *				m_pDecL1;	// not implemented (could use old Xing mpadecl1.cpp)
+	void *				m_pDecL2;	// not implemented (could use old Xing mpadecl2.cpp)
+	HMP3Decoder			m_pDecL3;
+
+	MP3FrameInfo		m_lastMP3FrameInfo;
+	unsigned char		m_bUseFrameSize;
+        unsigned char           m_bTrustPackets;
+};
+
+#endif	/* _MPADECOBJFIXPT_H_ */

+ 88 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/pub/statname.h

@@ -0,0 +1,88 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * statname.h - name mangling macros for static linking
+ **************************************************************************************/
+
+#ifndef _STATNAME_H
+#define _STATNAME_H
+
+/* define STAT_PREFIX to a unique name for static linking 
+ * all the C functions and global variables will be mangled by the preprocessor
+ *   e.g. void FFT(int *fftbuf) becomes void cook_FFT(int *fftbuf)
+ */
+#define STAT_PREFIX		xmp3
+
+#define STATCC1(x,y,z)	STATCC2(x,y,z)
+#define STATCC2(x,y,z)	x##y##z  
+
+#ifdef STAT_PREFIX
+#define STATNAME(func)	STATCC1(STAT_PREFIX, _, func)
+#else
+#define STATNAME(func)	func
+#endif
+
+/* these symbols are common to all implementations */
+#define	CheckPadBit			STATNAME(CheckPadBit)
+#define	UnpackFrameHeader	STATNAME(UnpackFrameHeader)
+#define	UnpackSideInfo		STATNAME(UnpackSideInfo)
+#define	AllocateBuffers		STATNAME(AllocateBuffers)
+#define	FreeBuffers			STATNAME(FreeBuffers)
+#define	DecodeHuffman		STATNAME(DecodeHuffman)
+#define	Dequantize			STATNAME(Dequantize)
+#define	IMDCT				STATNAME(IMDCT)
+#define	UnpackScaleFactors	STATNAME(UnpackScaleFactors)
+#define	Subband				STATNAME(Subband)
+
+#define	samplerateTab		STATNAME(samplerateTab)
+#define	bitrateTab			STATNAME(bitrateTab)
+#define	samplesPerFrameTab	STATNAME(samplesPerFrameTab)
+#define	bitsPerSlotTab		STATNAME(bitsPerSlotTab)
+#define	sideBytesTab		STATNAME(sideBytesTab)
+#define	slotTab				STATNAME(slotTab)
+#define	sfBandTable			STATNAME(sfBandTable)
+
+/* in your implementation's top-level include file (e.g. real\coder.h) you should
+ *   add new #define sym STATNAME(sym) lines for all the
+ *   additional global functions or variables which your
+ *   implementation uses
+ */
+
+#endif /* _STATNAME_H */

+ 30 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/LICENSE.txt

@@ -0,0 +1,30 @@
+ Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.  
+        
+ The contents of this directory, and (except where otherwise
+ indicated) the directories included within this directory, are
+ subject to the current version of the RealNetworks Public Source
+ License (the "RPSL") available at RPSL.txt in this directory, unless
+ you have licensed the directory under the current version of the
+ RealNetworks Community Source License (the "RCSL") available at
+ RCSL.txt in this directory, in which case the RCSL will apply. You
+ may also obtain the license terms directly from RealNetworks.  You
+ may not use the files in this directory except in compliance with the
+ RPSL or, if you have a valid RCSL with RealNetworks applicable to
+ this directory, the RCSL.  Please see the applicable RPSL or RCSL for
+ the rights, obligations and limitations governing use of the contents
+ of the directory.
+ 
+ This directory is part of the Helix DNA Technology. RealNetworks is
+ the developer of the Original Code and owns the copyrights in the
+ portions it created.
+   
+ This directory, and the directories included with this directory, are
+ distributed and made available on an 'AS IS' basis, WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY
+ DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ QUIET ENJOYMENT OR NON-INFRINGEMENT.
+  
+ Technology Compatibility Kit Test Suite(s) Location:  
+    http://www.helixcommunity.org/content/tck  
+

+ 948 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/RCSL.txt

@@ -0,0 +1,948 @@
+The RCSL is made up of a base agreement and a few Attachments.
+
+For Research and Development use, you agree to the terms of the
+RCSL R&D License (base RCSL and Attachments A, B, and C) 
+
+For Commercial Use (either distribution or internal commercial
+deployment) of the Helix DNA with or without support for RealNetworks'
+RealAudio and RealVideo Add-on Technology, you agree to the
+terms of the same RCSL R&D license
+and execute one or more additional Commercial Use License attachments
+<see http://www.helixcommunity.org/content/rcsl-attachments>.
+
+------------------------------------------------------------------------
+
+
+    REALNETWORKS COMMUNITY SOURCE LICENSE
+
+Version 1.2 (Rev. Date: January 22, 2003).
+
+
+  RECITALS
+
+Original Contributor has developed Specifications, Source Code
+implementations and Executables of certain Technology; and
+
+Original Contributor desires to license the Technology to a large
+community to facilitate research, innovation and product development
+while maintaining compatibility of such products with the Technology as
+delivered by Original Contributor; and
+
+Original Contributor desires to license certain Trademarks for the
+purpose of branding products that are compatible with the relevant
+Technology delivered by Original Contributor; and
+
+You desire to license the Technology and possibly certain Trademarks
+from Original Contributor on the terms and conditions specified in this
+License.
+
+In consideration for the mutual covenants contained herein, You and
+Original Contributor agree as follows:
+
+
+  AGREEMENT
+
+*1. Introduction.*
+
+The RealNetworks Community Source License ("RCSL") and effective
+attachments ("License") may include five distinct licenses:
+
+i) Research Use license -- License plus Attachments A, B and C only.
+
+ii) Commercial Use and Trademark License, which may be for Internal
+Deployment Use or external distribution, or both -- License plus
+Attachments A, B, C, and D.
+
+iii) Technology Compatibility Kit (TCK) license -- Attachment C.
+
+iv) Add-On Technology License (Executable) Commercial Use License
+-Attachment F.
+
+v) Add-On Technology Source Code Porting and Optimization
+License-Attachment G.
+
+The Research Use license is effective when You click and accept this
+License. The TCK is effective when You click and accept this License,
+unless otherwise specified in the TCK attachments. The Commercial Use
+and Trademark, Add-On Technology License, and the Add-On Technology
+Source Code Porting and Optimization licenses must each be signed by You
+and Original Contributor to become effective. Once effective, these
+licenses and the associated requirements and responsibilities are
+cumulative. Capitalized terms used in this License are defined in the
+Glossary.
+
+*2. License Grants.*
+
+2.1 Original Contributor Grant.
+
+Subject to Your compliance with Sections 3, 8.10 and Attachment A of
+this License, Original Contributor grants to You a worldwide,
+royalty-free, non-exclusive license, to the extent of Original
+Contributor's Intellectual Property Rights covering the Original Code,
+Upgraded Code and Specifications, to do the following:
+
+(a) Research Use License:
+
+(i) use, reproduce and modify the Original Code, Upgraded Code and
+Specifications to create Modifications and Reformatted Specifications
+for Research Use by You;
+
+(ii) publish and display Original Code, Upgraded Code and Specifications
+with, or as part of Modifications, as permitted under Section 3.1(b) below;
+
+(iii) reproduce and distribute copies of Original Code and Upgraded Code
+to Licensees and students for Research Use by You;
+
+(iv) compile, reproduce and distribute Original Code and Upgraded Code
+in Executable form, and Reformatted Specifications to anyone for
+Research Use by You.
+
+(b) Other than the licenses expressly granted in this License, Original
+Contributor retains all right, title, and interest in Original Code and
+Upgraded Code and Specifications.
+
+2.2 Your Grants.
+
+(a) To Other Licensees. You hereby grant to each Licensee a license to
+Your Error Corrections and Shared Modifications, of the same scope and
+extent as Original Contributor's licenses under Section 2.1 a) above
+relative to Research Use and Attachment D relative to Commercial Use.
+
+(b) To Original Contributor. You hereby grant to Original Contributor a
+worldwide, royalty-free, non-exclusive, perpetual and irrevocable
+license, to the extent of Your Intellectual Property Rights covering
+Your Error Corrections, Shared Modifications and Reformatted
+Specifications, to use, reproduce, modify, display and distribute Your
+Error Corrections, Shared Modifications and Reformatted Specifications,
+in any form, including the right to sublicense such rights through
+multiple tiers of distribution.
+
+(c) Other than the licenses expressly granted in Sections 2.2(a) and (b)
+above, and the restrictions set forth in Section 3.1(d)(iv) below, You
+retain all right, title, and interest in Your Error Corrections, Shared
+Modifications and Reformatted Specifications.
+
+2.3 Contributor Modifications.
+
+You may use, reproduce, modify, display and distribute Contributor Error
+Corrections, Shared Modifications and Reformatted Specifications,
+obtained by You under this License, to the same scope and extent as with
+Original Code, Upgraded Code and Specifications.
+
+2.4 Subcontracting.
+
+You may deliver the Source Code of Covered Code to other Licensees
+having at least a Research Use license, for the sole purpose of
+furnishing development services to You in connection with Your rights
+granted in this License. All such Licensees must execute appropriate
+documents with respect to such work consistent with the terms of this
+License, and acknowledging their work-made-for-hire status or assigning
+exclusive right to the work product and associated Intellectual Property
+Rights to You.
+
+*3. Requirements and Responsibilities*.
+
+3.1 Research Use License.
+
+As a condition of exercising the rights granted under Section 2.1(a)
+above, You agree to comply with the following:
+
+(a) Your Contribution to the Community. All Error Corrections and Shared
+Modifications which You create or contribute to are automatically
+subject to the licenses granted under Section 2.2 above. You are
+encouraged to license all of Your other Modifications under Section 2.2
+as Shared Modifications, but are not required to do so. You agree to
+notify Original Contributor of any errors in the Specification.
+
+(b) Source Code Availability. You agree to provide all Your Error
+Corrections to Original Contributor as soon as reasonably practicable
+and, in any event, prior to Internal Deployment Use or Commercial Use,
+if applicable. Original Contributor may, at its discretion, post Source
+Code for Your Error Corrections and Shared Modifications on the
+Community Webserver. You may also post Error Corrections and Shared
+Modifications on a web-server of Your choice; provided, that You must
+take reasonable precautions to ensure that only Licensees have access to
+such Error Corrections and Shared Modifications. Such precautions shall
+include, without limitation, a password protection scheme limited to
+Licensees and a click-on, download certification of Licensee status
+required of those attempting to download from the server. An example of
+an acceptable certification is attached as Attachment A-2.
+
+(c) Notices. All Error Corrections and Shared Modifications You create
+or contribute to must include a file documenting the additions and
+changes You made and the date of such additions and changes. You must
+also include the notice set forth in Attachment A-1 in the file header.
+If it is not possible to put the notice in a particular Source Code file
+due to its structure, then You must include the notice in a location
+(such as a relevant directory file), where a recipient would be most
+likely to look for such a notice.
+
+(d) Redistribution.
+
+(i) Source. Covered Code may be distributed in Source Code form only to
+another Licensee (except for students as provided below). You may not
+offer or impose any terms on any Covered Code that alter the rights,
+requirements, or responsibilities of such Licensee. You may distribute
+Covered Code to students for use in connection with their course work
+and research projects undertaken at accredited educational institutions.
+Such students need not be Licensees, but must be given a copy of the
+notice set forth in Attachment A-3 and such notice must also be included
+in a file header or prominent location in the Source Code made available
+to such students.
+
+(ii) Executable. You may distribute Executable version(s) of Covered
+Code to Licensees and other third parties only for the purpose of
+evaluation and comment in connection with Research Use by You and under
+a license of Your choice, but which limits use of such Executable
+version(s) of Covered Code only to that purpose.
+
+(iii) Modified Class, Interface and Package Naming. In connection with
+Research Use by You only, You may use Original Contributor's class,
+Interface and package names only to accurately reference or invoke the
+Source Code files You modify. Original Contributor grants to You a
+limited license to the extent necessary for such purposes.
+
+(iv) You expressly agree that any distribution, in whole or in part, of
+Modifications developed by You shall only be done pursuant to the terms
+and conditions of this License.
+
+(e) Extensions.
+
+(i) Covered Code. You may not include any Source Code of Community Code
+in any Extensions. You may include the compiled Header Files of
+Community Code in an Extension provided that Your use of the Covered
+Code, including Heading Files, complies with the Commercial Use License,
+the TCK and all other terms of this License.
+
+(ii) Publication. No later than the date on which You first distribute
+such Extension for Commercial Use, You must publish to the industry, on
+a non-confidential basis and free of all copyright restrictions with
+respect to reproduction and use, an accurate and current specification
+for any Extension. In addition, You must make available an appropriate
+test suite, pursuant to the same rights as the specification,
+sufficiently detailed to allow any third party reasonably skilled in the
+technology to produce implementations of the Extension compatible with
+the specification. Such test suites must be made available as soon as
+reasonably practicable but, in no event, later than ninety (90) days
+after Your first Commercial Use of the Extension. You must use
+reasonable efforts to promptly clarify and correct the specification and
+the test suite upon written request by Original Contributor.
+
+(iii) Open. You agree to refrain from enforcing any Intellectual
+Property Rights You may have covering any interface(s) of Your
+Extension, which would prevent the implementation of such interface(s)
+by Original Contributor or any Licensee. This obligation does not
+prevent You from enforcing any Intellectual Property Right You have that
+would otherwise be infringed by an implementation of Your Extension.
+
+(iv) Interface Modifications and Naming. You may not modify or add to
+the GUID space * * "xxxxxxxx-0901-11d1-8B06-00A024406D59" or any other
+GUID space designated by Original Contributor. You may not modify any
+Interface prefix provided with the Covered Code or any other prefix
+designated by Original Contributor.* *
+
+* *
+
+(f) You agree that any Specifications provided to You by Original
+Contributor are confidential and proprietary information of Original
+Contributor. You must maintain the confidentiality of the Specifications
+and may not disclose them to any third party without Original
+Contributor's prior written consent. You may only use the Specifications
+under the terms of this License and only for the purpose of implementing
+the terms of this License with respect to Covered Code. You agree not
+use, copy or distribute any such Specifications except as provided in
+writing by Original Contributor.
+
+3.2 Commercial Use License.
+
+You may not make Commercial Use of any Covered Code unless You and
+Original Contributor have executed a copy of the Commercial Use and
+Trademark License attached as Attachment D.
+
+*4. Versions of the License.*
+
+4.1 License Versions.
+
+Original Contributor may publish revised versions of the License from
+time to time. Each version will be given a distinguishing version number.
+
+4.2 Effect.
+
+Once a particular version of Covered Code has been provided under a
+version of the License, You may always continue to use such Covered Code
+under the terms of that version of the License. You may also choose to
+use such Covered Code under the terms of any subsequent version of the
+License. No one other than Original Contributor has the right to
+promulgate License versions.
+
+4.3 Multiple-Licensed Code.
+
+Original Contributor may designate portions of the Covered Code as
+"Multiple-Licensed." "Multiple-Licensed" means that the Original
+Contributor permits You to utilize those designated portions of the
+Covered Code under Your choice of this License or the alternative
+license(s), if any, specified by the Original Contributor in an
+Attachment to this License.
+
+*5. Disclaimer of Warranty.*
+
+5.1 COVERED CODE PROVIDED AS IS.
+
+COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," WITHOUT WARRANTY OF
+ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
+WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT
+FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE
+RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED CODE UNDER
+THIS LICENSE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
+OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER
+EXCEPT SUBJECT TO THIS DISCLAIMER.
+
+5.2 Not Designed for High Risk Activities.
+
+You acknowledge that Original Code, Upgraded Code and Specifications are
+not designed or intended for use in high risk activities including, but
+not limited to: (i) on-line control of aircraft, air traffic, aircraft
+navigation or aircraft communications; or (ii) in the design,
+construction, operation or maintenance of any nuclear facility. Original
+Contributor disclaims any express or implied warranty of fitness for
+such uses.
+
+*6. Termination.*
+
+6.1 By You.
+
+You may terminate this Research Use license at anytime by providing
+written notice to Original Contributor.
+
+6.2 By Original Contributor.
+
+This License and the rights granted hereunder will terminate:
+
+(i) automatically if You fail to comply with the terms of this License
+and fail to cure such breach within 30 days of receipt of written notice
+of the breach;
+
+(ii) immediately in the event of circumstances specified in Sections 7.1
+and 8.4; or
+
+(iii) at Original Contributor's discretion upon any action initiated by
+You (including by cross-claim or counter claim) alleging that use or
+distribution by Original Contributor or any Licensee, of Original Code,
+Upgraded Code, Error Corrections, Shared Modifications or Specifications
+infringe a patent owned or controlled by You.
+
+6.3 Effective of Termination.
+
+Upon termination, You agree to discontinue use of and destroy all copies
+of Covered Code in Your possession. All sublicenses to the Covered Code
+which You have properly granted shall survive any termination of this
+License. Provisions that, by their nature, should remain in effect
+beyond the termination of this License shall survive including, without
+limitation, Sections 2.2, 3, 5, 7 and 8.
+
+6.4 No Compensation.
+
+Each party waives and releases the other from any claim to compensation
+or indemnity for permitted or lawful termination of the business
+relationship established by this License.
+
+*7. Liability.*
+
+7.1 Infringement. Should any of the Original Code, Upgraded Code, TCK or
+Specifications ("Materials") become the subject of a claim of
+infringement, Original Contributor may, at its sole option, (i) attempt
+to procure the rights necessary for You to continue using the Materials,
+(ii) modify the Materials so that they are no longer infringing, or
+(iii) terminate Your right to use the Materials, immediately upon
+written notice, and refund to You the amount, if any, having then
+actually been paid by You to Original Contributor for the Original Code,
+Upgraded Code and TCK, depreciated on a straight line, five year basis.
+
+7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY APPLICABLE
+LAW, ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR CLAIMS RELATING TO THIS
+LICENSE, WHETHER FOR BREACH OR IN TORT, SHALL BE LIMITED TO ONE HUNDRED
+PERCENT (100%) OF THE AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO
+ORIGINAL CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE PARTICULAR
+ITEMS GIVING RISE TO SUCH CLAIM, IF ANY, DURING THE TWELVE MONTHS
+PRECEDING THE CLAIMED BREACH. IN NO EVENT WILL YOU (RELATIVE TO YOUR
+SHARED MODIFICATIONS OR ERROR CORRECTIONS) OR ORIGINAL CONTRIBUTOR BE
+LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR RISING OUT OF THIS LICENSE (INCLUDING,
+WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER ECONOMIC
+ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF LIABILITY, WHETHER IN
+AN ACTION FOR CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE)
+OR OTHERWISE, WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE
+FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY.
+
+*8. Miscellaneous.*
+
+8.1 Trademark.
+
+You shall not use any Trademark unless You and Original Contributor
+execute a copy of the Commercial Use and Trademark License Agreement
+attached hereto as Attachment D. Except as expressly provided in the
+License, You are granted no right, title or license to, or interest in,
+any Trademarks. Whether or not You and Original Contributor enter into
+the Trademark License, You agree not to (i) challenge Original
+Contributor's ownership or use of Trademarks; (ii) attempt to register
+any Trademarks, or any mark or logo substantially similar thereto; or
+(iii) incorporate any Trademarks into Your own trademarks, product
+names, service marks, company names, or domain names.
+
+8.2 Integration.
+
+This License represents the complete agreement concerning the subject
+matter hereof.
+
+8.3 Assignment.
+
+Original Contributor may assign this License, and its rights and
+obligations hereunder, in its sole discretion. You may assign the
+Research Use portions of this License and the TCK license to a third
+party upon prior written notice to Original Contributor (which may be
+provided electronically via the Community Web-Server). You may not
+assign the Commercial Use and Trademark license, the Add-On Technology
+License, or the Add-On Technology Source Code Porting License, including
+by way of merger (regardless of whether You are the surviving entity) or
+acquisition, without Original Contributor's prior written consent.
+
+8.4 Severability.
+
+If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. Notwithstanding the foregoing, if You are prohibited by law
+from fully and specifically complying with Sections 2.2 or 3, this
+License will immediately terminate and You must immediately discontinue
+any use of Covered Code.
+
+8.5 Governing Law.
+
+This License shall be governed by the laws of the United States and the
+State of Washington, as applied to contracts entered into and to be
+performed in Washington between Washington residents. The application of
+the United Nations Convention on Contracts for the International Sale of
+Goods is expressly excluded. You agree that the state and federal courts
+located in Seattle, Washington have exclusive jurisdiction over any
+claim relating to the License, including contract and tort claims.
+
+8.6 Dispute Resolution.
+
+a) Arbitration. Any dispute arising out of or relating to this License
+shall be finally settled by arbitration as set out herein, except that
+either party may bring any action, in a court of competent jurisdiction
+(which jurisdiction shall be exclusive), with respect to any dispute
+relating to such party's Intellectual Property Rights or with respect to
+Your compliance with the TCK license. Arbitration shall be administered:
+(i) by the American Arbitration Association (AAA), (ii) in accordance
+with the rules of the United Nations Commission on International Trade
+Law (UNCITRAL) (the "Rules") in effect at the time of arbitration as
+modified herein; and (iii) the arbitrator will apply the substantive
+laws of Washington and the United States. Judgment upon the award
+rendered by the arbitrator may be entered in any court having
+jurisdiction to enforce such award.
+
+b) Arbitration language, venue and damages. All arbitration proceedings
+shall be conducted in English by a single arbitrator selected in
+accordance with the Rules, who must be fluent in English and be either a
+retired judge or practicing attorney having at least ten (10) years
+litigation experience and be reasonably familiar with the technology
+matters relative to the dispute. Unless otherwise agreed, arbitration
+venue shall be in Seattle, Washington. The arbitrator may award monetary
+damages only and nothing shall preclude either party from seeking
+provisional or emergency relief from a court of competent jurisdiction.
+The arbitrator shall have no authority to award damages in excess of
+those permitted in this License and any such award in excess is void.
+All awards will be payable in U.S. dollars and may include, for the
+prevailing party (i) pre-judgment award interest, (ii) reasonable
+attorneys' fees incurred in connection with the arbitration, and (iii)
+reasonable costs and expenses incurred in enforcing the award. The
+arbitrator will order each party to produce identified documents and
+respond to no more than twenty-five single question interrogatories.
+
+8.7 Construction.
+
+Any law or regulation, which provides that the language of a contract
+shall be construed against the drafter, shall not apply to this License.
+
+8.8 U.S. Government End Users.
+
+The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software"
+and "commercial computer software documentation," as such terms are used
+in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
+48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
+End Users acquire Covered Code with only those rights set forth herein.
+You agree to pass this notice to our licensees.
+
+8.9 Marketing Activities.
+
+Licensee hereby grants Original Contributor a non-exclusive,
+non-transferable, limited license to use the Licensee's company name and
+logo ("Licensee Marks") in any presentations, press releases, or
+marketing materials solely for the purpose of identifying Licensee as a
+member of the Helix Community. Licensee shall provide samples of
+Licensee Marks to Original Contributor upon request by Original
+Contributor. Original Contributor acknowledges that the Licensee Marks
+are the trademarks of Licensee. Original Contributor shall not use the
+Licensee Marks in a way that may imply that Original Contributor is an
+agency or branch of Licensee. Original Contributor understands and
+agrees that the use of any Licensee Marks in connection with this
+Agreement shall not create any right, title or interest, in, or to the
+Licensee Marks or any Licensee trademarks and that all such use and
+goodwill associated with any such trademarks will inure to the benefit
+of Licensee. Further the Original Contributor will stop usage of the
+Licensee Marks upon Licensee's request.
+
+8.10 Press Announcements.
+
+You may make press announcements or other public statements regarding
+this License without the prior written consent of the Original
+Contributor, if Your statement is limited to announcing the licensing of
+the Covered Code or the availability of Your Product and its
+compatibility with the Covered Code. All other public announcements
+regarding this license require the prior written consent of the Original
+Contributor. Consent requests are welcome at press@helixcommunity.org.
+
+8.11 International Use.
+
+a) Export/Import laws. Covered Code is subject to U.S. export control
+laws and may be subject to export or import regulations in other
+countries. Each party agrees to comply strictly with all such laws and
+regulations and acknowledges their responsibility to obtain such
+licenses to export, re-export, or import as may be required. You agree
+to pass these obligations to Your licensees.
+
+b) Intellectual Property Protection. Due to limited intellectual
+property protection and enforcement in certain countries, You agree not
+to redistribute the Original Code, Upgraded Code, TCK and Specifications
+to any country on the list of restricted countries on the Community Web
+Server.
+
+8.12 Language.
+
+This License is in the English language only, which language shall be
+controlling in all respects, and all versions of this License in any
+other language shall be for accommodation only and shall not be binding
+on the parties to this License. All communications and notices made or
+given pursuant to this License, and all documentation and support to be
+provided, unless otherwise noted, shall be in the English language.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH REALNETWORKS, INC. IF YOU ARE AGREEING
+TO THIS LICENSE ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE
+AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER YOU ARE ACTING
+ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, YOU MUST BE OF MAJORITY
+AGE AND BE OTHERWISE COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT
+MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND
+CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO EXIT.
+
+
+    GLOSSARY
+
+1. *"Added Value"* means code which:
+
+(i) has a principal purpose which is substantially different from that
+of the stand-alone Technology;
+
+(ii) represents a significant functional and value enhancement to the
+Technology;
+
+(iii) operates in conjunction with the Technology; and
+
+(iv) is not marketed as a technology which replaces or substitutes for
+the Technology
+
+2. "*Applicable Patent Rights*" mean: (a) in the case where Original
+Contributor is the grantor of rights, claims of patents that (i) are now
+or hereafter acquired, owned by or assigned to Original Contributor and
+(ii) are necessarily infringed by using or making the Original Code or
+Upgraded Code, including Modifications provided by Original Contributor,
+alone and not in combination with other software or hardware; and (b) in
+the case where Licensee is the grantor of rights, claims of patents that
+(i) are now or hereafter acquired, owned by or assigned to Licensee and
+(ii) are infringed (directly or indirectly) by using or making
+Licensee's Modifications or Error Corrections, taken alone or in
+combination with Covered Code.
+
+3. "*Application Programming Interfaces (APIs)"* means the interfaces,
+associated header files, service provider interfaces, and protocols that
+enable a device, application, Operating System, or other program to
+obtain services from or make requests of (or provide services in
+response to requests from) other programs, and to use, benefit from, or
+rely on the resources, facilities, and capabilities of the relevant
+programs using the APIs. APIs includes the technical documentation
+describing the APIs, the Source Code constituting the API, and any
+Header Files used with the APIs.
+
+4. "*Commercial Use*" means any use (internal or external), copying,
+sublicensing or distribution (internal or external), directly or
+indirectly of Covered Code by You other than Your Research Use of
+Covered Code within Your business or organization or in conjunction with
+other Licensees with equivalent Research Use rights. Commercial Use
+includes any use of the Covered Code for direct or indirect commercial
+or strategic gain, advantage or other business purpose. Any Commercial
+Use requires execution of Attachment D by You and Original Contributor.
+
+5. "*Community Code*" means the Original Code, Upgraded Code, Error
+Corrections, Shared Modifications, or any combination thereof.
+
+6. "*Community Webserver(s)"* means the webservers designated by
+Original Contributor for access to the Original Code, Upgraded Code, TCK
+and Specifications and for posting Error Corrections and Shared
+Modifications.
+
+7. "*Compliant Covered Code*" means Covered Code that complies with the
+requirements of the TCK.
+
+8. "*Contributor*" means each Licensee that creates or contributes to
+the creation of any Error Correction or Shared Modification.
+
+9. "*Covered Code*" means the Original Code, Upgraded Code,
+Modifications, or any combination thereof.
+
+10. "*Error Correction*" means any change made to Community Code which
+conforms to the Specification and corrects the adverse effect of a
+failure of Community Code to perform any function set forth in or
+required by the Specifications.
+
+11. "*Executable*" means Covered Code that has been converted from
+Source Code to the preferred form for execution by a computer or digital
+processor (e.g. binary form).
+
+12. "*Extension(s)"* means any additional Interfaces developed by or for
+You which: (i) are designed for use with the Technology; (ii) constitute
+an API for a library of computing functions or services; and (iii) are
+disclosed or otherwise made available to third party software developers
+for the purpose of developing software which invokes such additional
+Interfaces. The foregoing shall not apply to software developed by Your
+subcontractors to be exclusively used by You.
+
+13. "*Header File(s)"* means that portion of the Source Code that
+provides the names and types of member functions, data members, class
+definitions, and interface definitions necessary to implement the APIs
+for the Covered Code. Header Files include, files specifically
+designated by Original Contributor as Header Files. Header Files do not
+include the code necessary to implement the functionality underlying the
+Interface.
+
+14. *"Helix DNA Server Technology"* means the program(s) that implement
+the Helix Universal Server streaming engine for the Technology as
+defined in the Specification.
+
+15. *"Helix DNA Client Technology"* means the Covered Code that
+implements the RealOne Player engine as defined in the Specification.
+
+16. *"Helix DNA Producer Technology"* means the Covered Code that
+implements the Helix Producer engine as defined in the Specification.
+
+17. *"Helix DNA Technology"* means the Helix DNA Server Technology, the
+Helix DNA Client Technology, the Helix DNA Producer Technology and other
+Helix technologies designated by Original Contributor.
+
+18. "*Intellectual Property Rights*" means worldwide statutory and
+common law rights associated solely with (i) Applicable Patent Rights;
+(ii) works of authorship including copyrights, copyright applications,
+copyright registrations and "moral rights"; (iii) the protection of
+trade and industrial secrets and confidential information; and (iv)
+divisions, continuations, renewals, and re-issuances of the foregoing
+now existing or acquired in the future.
+
+19. *"Interface*" means interfaces, functions, properties, class
+definitions, APIs, Header Files, GUIDs, V-Tables, and/or protocols
+allowing one piece of software, firmware or hardware to communicate or
+interoperate with another piece of software, firmware or hardware.
+
+20. "*Internal Deployment Use*" means use of Compliant Covered Code
+(excluding Research Use) within Your business or organization only by
+Your employees and/or agents on behalf of Your business or organization,
+but not to provide services, including content distribution, to third
+parties, subject to execution of Attachment D by You and Original
+Contributor, if required.
+
+21. "*Licensee*" means any party that has entered into and has in effect
+a version of this License with Original Contributor.
+
+22. "*MIME type*" means a description of what type of media or other
+content is in a file, including by way of example but not limited to
+'audio/x-pn-realaudio-plugin.'
+
+23. "*Modification(s)"* means (i) any addition to, deletion from and/or
+change to the substance and/or structure of the Covered Code, including
+Interfaces; (ii) the combination of any Covered Code and any previous
+Modifications; (iii) any new file or other representation of computer
+program statements that contains any portion of Covered Code; and/or
+(iv) any new Source Code implementing any portion of the Specifications.
+
+24. "*MP3 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Picture Experts Group known as MPEG-1 Audio Layer-3 or MP3,
+including but not limited to all past and future versions, profiles,
+extensions, parts and amendments relating to the MP3 specification.
+
+25. "*MPEG-4 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Pictures Experts Group known as MPEG-4, including but not
+limited to all past and future versions, profiles, extensions, parts and
+amendments relating to the MPEG-4 specification.
+
+26. "*Original Code*" means the initial Source Code for the Technology
+as described on the Community Web Server.
+
+27. "*Original Contributor*" means RealNetworks, Inc., its affiliates
+and its successors and assigns.
+
+28. "*Original Contributor MIME Type*" means the MIME registry, browser
+preferences, or local file/protocol associations invoking any Helix DNA
+Client-based application, including the RealOne Player, for playback of
+RealAudio, RealVideo, other RealMedia MIME types or datatypes (e.g.,
+.ram, .rnx, .rpm, .ra, .rm, .rp, .rt, .rf, .prx, .mpe, .rmp, .rmj, .rav,
+.rjs, .rmx, .rjt, .rms), and any other Original Contributor-specific or
+proprietary MIME types that Original Contributor may introduce in the
+future.
+
+29. "*Personal Use*" means use of Covered Code by an individual solely
+for his or her personal, private and non-commercial purposes. An
+individual's use of Covered Code in his or her capacity as an officer,
+employee, member, independent contractor or agent of a corporation,
+business or organization (commercial or non-commercial) does not qualify
+as Personal Use.
+
+30. "*RealMedia File Format*" means the file format designed and
+developed by RealNetworks for storing multimedia data and used to store
+RealAudio and RealVideo encoded streams. Valid RealMedia File Format
+extensions include: .rm, .rmj, .rmc, .rmvb, .rms.
+
+31. "*RCSL Webpage*" means the RealNetworks Community Source License
+webpage located at https://www.helixcommunity.org/content/rcsl or such
+other URL that Original Contributor may designate from time to time.
+
+32. "*Reformatted Specifications*" means any revision to the
+Specifications which translates or reformats the Specifications (as for
+example in connection with Your documentation) but which does not alter,
+subset or superset * *the functional or operational aspects of the
+Specifications.
+
+33. "*Research Use*" means use and distribution of Covered Code only for
+Your Personal Use, research or development use and expressly excludes
+Internal Deployment Use and Commercial Use. Research Use also includes
+use of Covered Code to teach individuals how to use Covered Code.
+
+34. "*Shared Modifications*" means Modifications that You distribute or
+use for a Commercial Use, in addition to any Modifications provided by
+You, at Your option, pursuant to Section 2.2, or received by You from a
+Contributor pursuant to Section 2.3.
+
+35. "*Source Code*" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control
+compilation and installation of an Executable, or source code
+differential comparisons against either the Original Code or another
+well known, available Covered Code of the Contributor's choice. The
+Source Code can be in a compressed or archival form, provided the
+appropriate decompression or de-archiving software is widely available
+for no charge.
+
+36. "*Specifications*" means the specifications for the Technology and
+other documentation, as designated on the Community Web Server, as may
+be revised by Original Contributor from time to time.
+
+37. "*Trademarks*" means Original Contributor's trademarks and logos,
+including, but not limited to, RealNetworks, RealAudio, RealVideo,
+RealOne, RealSystem, SureStream, Helix, Helix DNA and other trademarks
+whether now used or adopted in the future.
+
+38. "*Technology*" means the technology described in Attachment B, and
+Upgrades.
+
+39. "*Technology Compatibility Kit"* or *"TCK*" means the test programs,
+procedures, acceptance criteria and/or other requirements, designated by
+Original Contributor for use in verifying compliance of Covered Code
+with the Specifications, in conjunction with the Original Code and
+Upgraded Code. Original Contributor may, in its sole discretion and from
+time to time, revise a TCK to correct errors and/or omissions and in
+connection with Upgrades.
+
+40. "*Upgrade(s)"* means new versions of Technology designated
+exclusively by Original Contributor as an "Upgrade" and released by
+Original Contributor from time to time under the terms of the License.
+
+41. "*Upgraded Code*" means the Source Code and/or Executables for
+Upgrades, possibly including Modifications made by Contributors.
+
+42. *"User's Guide"* means the users guide for the TCK which Original
+Contributor makes available to You to provide direction in how to run
+the TCK and properly interpret the results, as may be revised by
+Original Contributor from time to time.
+
+43. "*You(r)*" means an individual, or a legal entity acting by and
+through an individual or individuals, exercising rights either under
+this License or under a future version of this License issued pursuant
+to Section 4.1. For legal entities, "You(r)" includes any entity that by
+majority voting interest controls, is controlled by, or is under common
+control with You.
+
+44. "*Your Products*" means any (i) hardware products You distribute
+integrating the Covered Code; (ii) any software products You distribute
+with the Covered Code that utilize the APIs of the Covered Code; or
+(iii) any services You provide using the Covered Code.
+
+
+  ATTACHMENT A
+
+REQUIRED NOTICES
+
+
+    ATTACHMENT A-1
+
+REQUIRED IN ALL CASES
+
+Notice to be included in header file of all Error Corrections and Shared
+Modifications:
+
+Portions Copyright 1994-2003 © RealNetworks, Inc. All rights reserved.
+
+The contents of this file, and the files included with this file, are
+subject to the current version of RealNetworks Community Source License
+Version 1.1 (the "License"). You may not use this file except in
+compliance with the License executed by both You and RealNetworks. You
+may obtain a copy of the License at *
+https://www.helixcommunity.org/content/rcsl.* You may also obtain a copy
+of the License by contacting RealNetworks directly. Please see the
+License for the rights, obligations and limitations governing use of the
+contents of the file.
+
+This file is part of the Helix DNA technology. RealNetworks, Inc., is
+the developer of the Original code and owns the copyrights in the
+portions it created.
+
+This file, and the files included with this file, are distributed on an
+'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
+LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s):
+
+_______________________________________________
+
+Technology Compatibility Kit Test Suite(s) Location:
+
+________________________________
+
+
+    ATTACHMENT A-2
+
+SAMPLE LICENSEE CERTIFICATION
+
+"By clicking the `Agree' button below, You certify that You are a
+Licensee in good standing under the RealNetworks Community Source
+License, ("License") and that Your access, use and distribution of code
+and information You may obtain at this site is subject to the License.
+If You are not a Licensee under the RealNetworks Community Source
+License You agree not to download, copy or use the Helix DNA technology.
+
+
+    ATTACHMENT A-3
+
+REQUIRED STUDENT NOTIFICATION
+
+"This software and related documentation has been obtained by Your
+educational institution subject to the RealNetworks Community Source
+License. You have been provided access to the software and related
+documentation for use only in connection with your course work and
+research activities as a matriculated student of Your educational
+institution. Any other use is expressly prohibited.
+
+THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIAL OF
+REALNETWORKS, INC, WHICH ARE PROTECTED BY VARIOUS INTELLECTUAL PROPERTY
+RIGHTS.
+
+You may not use this file except in compliance with the License. You may
+obtain a copy of the License on the web at
+https://www.helixcommunity.org/content/rcsl.
+
+*
+*
+
+
+  ATTACHMENT B
+
+Description of Technology
+
+Helix DNA, which consists of Helix DNA Client, Helix DNA Server and
+Helix DNA Producer.
+
+Description of "Technology"
+
+Helix DNA Technology v1.0 as described on the Community Web Server.
+
+
+  ATTACHMENT C
+
+TECHNOLOGY COMPATIBILITY KIT LICENSE
+
+The following license is effective for the *Helix DNA* Technology
+Compatibility Kit - as described on the Community Web Server. The
+Technology Compatibility Kit(s) for the Technology specified in
+Attachment B may be accessed at the Community Web Server.
+
+1. TCK License.
+
+1.1 Grants to use TCK
+
+Subject to the terms and restrictions set forth below and the
+RealNetworks Community Source License, and the Research Use license,
+Original Contributor grants to You a worldwide, non-exclusive,
+non-transferable license, to the extent of Original Contributor's
+Intellectual Property Rights in the TCK (without the right to
+sublicense), to use the TCK to develop and test Covered Code.
+
+1.2 TCK Use Restrictions.
+
+You are not authorized to create derivative works of the TCK or use the
+TCK to test any implementation of the Specification that is not Covered
+Code. You may not publish Your test results or make claims of
+comparative compatibility with respect to other implementations of the
+Specification. In consideration for the license grant in Section 1.1
+above You agree not to develop Your own tests that are intended to
+validate conformation with the Specification.
+
+2. Test Results.
+
+You agree to provide to Original Contributor or the third party test
+facility if applicable, Your test results that demonstrate that Covered
+Code is Compliant Covered Code and that Original Contributor may publish
+or otherwise distribute such test results.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH THE ORIGINAL CONTRIBUTOR, REALNETWORKS,
+INC. IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY, YOU
+REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE.
+WHETHER YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY,
+YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE COMPETENT TO ENTER INTO
+CONTRACTS. IF YOU DO NOT MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY
+OF THE TERMS AND CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON
+TO EXIT.
+
+*ACCEPT / REJECT
+*
+
+*
+*
+
+*To agree to the R&D/academic terms of this license, please register
+<https://www.helixcommunity.org/2002/intro/why-register> on the site --
+you will then be given a chance to agree to the clickwrap RCSL
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+R&D License
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+and gain access to the RCSL-licensed source code.  To build or deploy
+commercial applications based on the RCSL, you will need to agree to the
+Commercial Use license attachments
+<https://www.helixcommunity.org/content/rcsl-attachments>*
+
+
+

+ 518 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/RPSL.txt

@@ -0,0 +1,518 @@
+RealNetworks Public Source License Version 1.0
+(Rev. Date October 28, 2002)
+
+1. General Definitions. This License applies to any program or other work which
+RealNetworks, Inc., or any other entity that elects to use this license,
+("Licensor") makes publicly available and which contains a notice placed by
+Licensor identifying such program or work as "Original Code" and stating that it
+is subject to the terms of this RealNetworks Public Source License version 1.0
+(or subsequent version thereof) ("License"). You are not required to accept this
+License. However, nothing else grants You permission to use, copy, modify or
+distribute the software or its derivative works. These actions are prohibited by
+law if You do not accept this License. Therefore, by modifying, copying or
+distributing the software (or any work based on the software), You indicate your
+acceptance of this License to do so, and all its terms and conditions. In
+addition, you agree to the terms of this License by clicking the Accept button
+or downloading the software. As used in this License:
+
+1.1 "Applicable Patent Rights" mean: (a) in the case where Licensor is the
+grantor of rights, claims of patents that (i) are now or hereafter acquired,
+owned by or assigned to Licensor and (ii) are necessarily infringed by using or
+making the Original Code alone and not in combination with other software or
+hardware; and (b) in the case where You are the grantor of rights, claims of
+patents that (i) are now or hereafter acquired, owned by or assigned to You and
+(ii) are infringed (directly or indirectly) by using or making Your
+Modifications, taken alone or in combination with Original Code.
+
+1.2 "Compatible Source License" means any one of the licenses listed on Exhibit
+B or at https://www.helixcommunity.org/content/complicense or other licenses
+specifically identified by Licensor in writing. Notwithstanding any term to the
+contrary in any Compatible Source License, any code covered by any Compatible
+Source License that is used with Covered Code must be made readily available in
+Source Code format for royalty-free use under the terms of the Compatible Source
+License or this License.
+
+1.3 "Contributor" means any person or entity that creates or contributes to the
+creation of Modifications.
+
+1.4 "Covered Code" means the Original Code, Modifications, the combination of
+Original Code and any Modifications, and/or any respective portions thereof.
+
+1.5 "Deploy" means to use, sublicense or distribute Covered Code other than for
+Your internal research and development (R&D) and/or Personal Use, and includes
+without limitation, any and all internal use or distribution of Covered Code
+within Your business or organization except for R&D use and/or Personal Use, as
+well as direct or indirect sublicensing or distribution of Covered Code by You
+to any third party in any form or manner.
+
+1.6 "Derivative Work" means either the Covered Code or any derivative work under
+United States copyright law, and including any work containing or including any
+portion of the Covered Code or Modifications, either verbatim or with
+modifications and/or translated into another language. Derivative Work also
+includes any work which combines any portion of Covered Code or Modifications
+with code not otherwise governed by the terms of this License.
+
+1.7 "Externally Deploy" means to Deploy the Covered Code in any way that may be
+accessed or used by anyone other than You, used to provide any services to
+anyone other than You, or used in any way to deliver any content to anyone other
+than You, whether the Covered Code is distributed to those parties, made
+available as an application intended for use over a computer network, or used to
+provide services or otherwise deliver content to anyone other than You.
+
+1.8. "Interface" means interfaces, functions, properties, class definitions,
+APIs, header files, GUIDs, V-Tables, and/or protocols allowing one piece of
+software, firmware or hardware to communicate or interoperate with another piece
+of software, firmware or hardware.
+
+1.9 "Modifications" mean any addition to, deletion from, and/or change to, the
+substance and/or structure of the Original Code, any previous Modifications, the
+combination of Original Code and any previous Modifications, and/or any
+respective portions thereof. When code is released as a series of files, a
+Modification is: (a) any addition to or deletion from the contents of a file
+containing Covered Code; and/or (b) any new file or other representation of
+computer program statements that contains any part of Covered Code.
+
+1.10 "Original Code" means (a) the Source Code of a program or other work as
+originally made available by Licensor under this License, including the Source
+Code of any updates or upgrades to such programs or works made available by
+Licensor under this License, and that has been expressly identified by Licensor
+as such in the header file(s) of such work; and (b) the object code compiled
+from such Source Code and originally made available by Licensor under this
+License.
+
+1.11 "Personal Use" means use of Covered Code by an individual solely for his or
+her personal, private and non-commercial purposes. An individual's use of
+Covered Code in his or her capacity as an officer, employee, member, independent
+contractor or agent of a corporation, business or organization (commercial or
+non-commercial) does not qualify as Personal Use.
+
+1.12 "Source Code" means the human readable form of a program or other work that
+is suitable for making modifications to it, including all modules it contains,
+plus any associated interface definition files, scripts used to control
+compilation and installation of an executable (object code).
+
+1.13 "You" or "Your" means an individual or a legal entity exercising rights
+under this License. For legal entities, "You" or "Your" includes any entity
+which controls, is controlled by, or is under common control with, You, where
+"control" means (a) the power, direct or indirect, to cause the direction or
+management of such entity, whether by contract or otherwise, or (b) ownership of
+fifty percent (50%) or more of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Permitted Uses; Conditions & Restrictions. Subject to the terms and
+conditions of this License, Licensor hereby grants You, effective on the date
+You accept this License (via downloading or using Covered Code or otherwise
+indicating your acceptance of this License), a worldwide, royalty-free,
+non-exclusive copyright license, to the extent of Licensor's copyrights cover
+the Original Code, to do the following:
+
+2.1 You may reproduce, display, perform, modify and Deploy Covered Code,
+provided that in each instance:
+
+(a) You must retain and reproduce in all copies of Original Code the copyright
+and other proprietary notices and disclaimers of Licensor as they appear in the
+Original Code, and keep intact all notices in the Original Code that refer to
+this License;
+
+(b) You must include a copy of this License with every copy of Source Code of
+Covered Code and documentation You distribute, and You may not offer or impose
+any terms on such Source Code that alter or restrict this License or the
+recipients' rights hereunder, except as permitted under Section 6;
+
+(c) You must duplicate, to the extent it does not already exist, the notice in
+Exhibit A in each file of the Source Code of all Your Modifications, and cause
+the modified files to carry prominent notices stating that You changed the files
+and the date of any change;
+
+(d) You must make Source Code of all Your Externally Deployed Modifications
+publicly available under the terms of this License, including the license grants
+set forth in Section 3 below, for as long as you Deploy the Covered Code or
+twelve (12) months from the date of initial Deployment, whichever is longer. You
+should preferably distribute the Source Code of Your Deployed Modifications
+electronically (e.g. download from a web site); and
+
+(e) if You Deploy Covered Code in object code, executable form only, You must
+include a prominent notice, in the code itself as well as in related
+documentation, stating that Source Code of the Covered Code is available under
+the terms of this License with information on how and where to obtain such
+Source Code. You must also include the Object Code Notice set forth in Exhibit A
+in the "about" box or other appropriate place where other copyright notices are
+placed, including any packaging materials.
+
+2.2 You expressly acknowledge and agree that although Licensor and each
+Contributor grants the licenses to their respective portions of the Covered Code
+set forth herein, no assurances are provided by Licensor or any Contributor that
+the Covered Code does not infringe the patent or other intellectual property
+rights of any other entity. Licensor and each Contributor disclaim any liability
+to You for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, You hereby assume sole responsibility to
+secure any other intellectual property rights needed, if any. For example, if a
+third party patent license is required to allow You to make, use, sell, import
+or offer for sale the Covered Code, it is Your responsibility to acquire such
+license(s).
+
+2.3 Subject to the terms and conditions of this License, Licensor hereby grants
+You, effective on the date You accept this License (via downloading or using
+Covered Code or otherwise indicating your acceptance of this License), a
+worldwide, royalty-free, perpetual, non-exclusive patent license under
+Licensor's Applicable Patent Rights to make, use, sell, offer for sale and
+import the Covered Code, provided that in each instance you comply with the
+terms of this License.
+
+3. Your Grants. In consideration of, and as a condition to, the licenses granted
+to You under this License:
+
+(a) You grant to Licensor and all third parties a non-exclusive, perpetual,
+irrevocable, royalty free license under Your Applicable Patent Rights and other
+intellectual property rights owned or controlled by You, to make, sell, offer
+for sale, use, import, reproduce, display, perform, modify, distribute and
+Deploy Your Modifications of the same scope and extent as Licensor's licenses
+under Sections 2.1 and 2.2; and
+
+(b) You grant to Licensor and its subsidiaries a non-exclusive, worldwide,
+royalty-free, perpetual and irrevocable license, under Your Applicable Patent
+Rights and other intellectual property rights owned or controlled by You, to
+make, use, sell, offer for sale, import, reproduce, display, perform,
+distribute, modify or have modified (for Licensor and/or its subsidiaries),
+sublicense and distribute Your Modifications, in any form and for any purpose,
+through multiple tiers of distribution.
+
+(c) You agree not use any information derived from Your use and review of the
+Covered Code, including but not limited to any algorithms or inventions that may
+be contained in the Covered Code, for the purpose of asserting any of Your
+patent rights, or assisting a third party to assert any of its patent rights,
+against Licensor or any Contributor.
+
+4. Derivative Works. You may create a Derivative Work by combining Covered Code
+with other code not otherwise governed by the terms of this License and
+distribute the Derivative Work as an integrated product. In each such instance,
+You must make sure the requirements of this License are fulfilled for the
+Covered Code or any portion thereof, including all Modifications.
+
+4.1 You must cause any Derivative Work that you distribute, publish or
+Externally Deploy, that in whole or in part contains or is derived from the
+Covered Code or any part thereof, to be licensed as a whole at no charge to all
+third parties under the terms of this License and no other license except as
+provided in Section 4.2. You also must make Source Code available for the
+Derivative Work under the same terms as Modifications, described in Sections 2
+and 3, above.
+
+4.2 Compatible Source Licenses. Software modules that have been independently
+developed without any use of Covered Code and which contain no portion of the
+Covered Code, Modifications or other Derivative Works, but are used or combined
+in any way wtih the Covered Code or any Derivative Work to form a larger
+Derivative Work, are exempt from the conditions described in Section 4.1 but
+only to the extent that: the software module, including any software that is
+linked to, integrated with, or part of the same applications as, the software
+module by any method must be wholly subject to one of the Compatible Source
+Licenses. Notwithstanding the foregoing, all Covered Code must be subject to the
+terms of this License. Thus, the entire Derivative Work must be licensed under a
+combination of the RPSL (for Covered Code) and a Compatible Source License for
+any independently developed software modules within the Derivative Work. The
+foregoing requirement applies even if the Compatible Source License would
+ordinarily allow the software module to link with, or form larger works with,
+other software that is not subject to the Compatible Source License. For
+example, although the Mozilla Public License v1.1 allows Mozilla code to be
+combined with proprietary software that is not subject to the MPL, if
+MPL-licensed code is used with Covered Code the MPL-licensed code could not be
+combined or linked with any code not governed by the MPL. The general intent of
+this section 4.2 is to enable use of Covered Code with applications that are
+wholly subject to an acceptable open source license. You are responsible for
+determining whether your use of software with Covered Code is allowed under Your
+license to such software.
+
+4.3 Mere aggregation of another work not based on the Covered Code with the
+Covered Code (or with a work based on the Covered Code) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License. If You deliver the Covered Code for combination and/or integration with
+an application previously provided by You (for example, via automatic updating
+technology), such combination and/or integration constitutes a Derivative Work
+subject to the terms of this License.
+
+5. Exclusions From License Grant. Nothing in this License shall be deemed to
+grant any rights to trademarks, copyrights, patents, trade secrets or any other
+intellectual property of Licensor or any Contributor except as expressly stated
+herein. No right is granted to the trademarks of Licensor or any Contributor
+even if such marks are included in the Covered Code. Nothing in this License
+shall be interpreted to prohibit Licensor from licensing under different terms
+from this License any code that Licensor otherwise would have a right to
+license. Modifications, Derivative Works and/or any use or combination of
+Covered Code with other technology provided by Licensor or third parties may
+require additional patent licenses from Licensor which Licensor may grant in its
+sole discretion. No patent license is granted separate from the Original Code or
+combinations of the Original Code with other software or hardware.
+
+5.1. Trademarks. This License does not grant any rights to use the trademarks or
+trade names owned by Licensor ("Licensor Marks" defined in Exhibit C) or to any
+trademark or trade name belonging to any Contributor. No Licensor Marks may be
+used to endorse or promote products derived from the Original Code other than as
+permitted by the Licensor Trademark Policy defined in Exhibit C.
+
+6. Additional Terms. You may choose to offer, and to charge a fee for, warranty,
+support, indemnity or liability obligations and/or other rights consistent with
+the scope of the license granted herein ("Additional Terms") to one or more
+recipients of Covered Code. However, You may do so only on Your own behalf and
+as Your sole responsibility, and not on behalf of Licensor or any Contributor.
+You must obtain the recipient's agreement that any such Additional Terms are
+offered by You alone, and You hereby agree to indemnify, defend and hold
+Licensor and every Contributor harmless for any liability incurred by or claims
+asserted against Licensor or such Contributor by reason of any such Additional
+Terms.
+
+7. Versions of the License. Licensor may publish revised and/or new versions of
+this License from time to time. Each version will be given a distinguishing
+version number. Once Original Code has been published under a particular version
+of this License, You may continue to use it under the terms of that version. You
+may also choose to use such Original Code under the terms of any subsequent
+version of this License published by Licensor. No one other than Licensor has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in part
+pre-release, untested, or not fully tested works. The Covered Code may contain
+errors that could cause failures or loss of data, and may be incomplete or
+contain inaccuracies. You expressly acknowledge and agree that use of the
+Covered Code, or any portion thereof, is at Your sole and entire risk. THE
+COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
+ANY KIND AND LICENSOR AND LICENSOR'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS
+"LICENSOR" FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY
+DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF
+SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET
+ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. LICENSOR AND EACH
+CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE
+COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR
+REQUIREMENTS, THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
+ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO ORAL OR
+WRITTEN DOCUMENTATION, INFORMATION OR ADVICE GIVEN BY LICENSOR, A LICENSOR
+AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY. You
+acknowledge that the Covered Code is not intended for use in high risk
+activities, including, but not limited to, the design, construction, operation
+or maintenance of nuclear facilities, aircraft navigation, aircraft
+communication systems, or air traffic control machines in which case the failure
+of the Covered Code could lead to death, personal injury, or severe physical or
+environmental damage. Licensor disclaims any express or implied warranty of
+fitness for such uses.
+
+9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
+SHALL LICENSOR OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR
+YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER
+UNDER A THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE OR STRICT
+LIABILITY), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF LICENSOR OR SUCH
+CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND
+NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. SOME
+JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF INCIDENTAL OR
+CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event
+shall Licensor's total liability to You for all damages (other than as may be
+required by applicable law) under this License exceed the amount of ten dollars
+($10.00).
+
+10. Ownership. Subject to the licenses granted under this License, each
+Contributor retains all rights, title and interest in and to any Modifications
+made by such Contributor. Licensor retains all rights, title and interest in and
+to the Original Code and any Modifications made by or on behalf of Licensor
+("Licensor Modifications"), and such Licensor Modifications will not be
+automatically subject to this License. Licensor may, at its sole discretion,
+choose to license such Licensor Modifications under this License, or on
+different terms from those contained in this License or may choose not to
+license them at all.
+
+11. Termination. 
+
+11.1 Term and Termination. The term of this License is perpetual unless
+terminated as provided below. This License and the rights granted hereunder will
+terminate:
+
+(a) automatically without notice from Licensor if You fail to comply with any
+term(s) of this License and fail to cure such breach within 30 days of becoming
+aware of such breach;
+
+(b) immediately in the event of the circumstances described in Section 12.5(b);
+or
+
+(c) automatically without notice from Licensor if You, at any time during the
+term of this License, commence an action for patent infringement against
+Licensor (including by cross-claim or counter claim in a lawsuit);
+
+(d) upon written notice from Licensor if You, at any time during the term of
+this License, commence an action for patent infringement against any third party
+alleging that the Covered Code itself (excluding combinations with other
+software or hardware) infringes any patent (including by cross-claim or counter
+claim in a lawsuit).
+
+11.2 Effect of Termination. Upon termination, You agree to immediately stop any
+further use, reproduction, modification, sublicensing and distribution of the
+Covered Code and to destroy all copies of the Covered Code that are in your
+possession or control. All sublicenses to the Covered Code which have been
+properly granted prior to termination shall survive any termination of this
+License. Provisions which, by their nature, should remain in effect beyond the
+termination of this License shall survive, including but not limited to Sections
+3, 5, 8, 9, 10, 11, 12.2 and 13. No party will be liable to any other for
+compensation, indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this License will
+be without prejudice to any other right or remedy of any party.
+
+12. Miscellaneous.
+
+12.1 Government End Users. The Covered Code is a "commercial item" as defined in
+FAR 2.101. Government software and technical data rights in the Covered Code
+include only those rights customarily provided to the public as defined in this
+License. This customary commercial license in technical data and software is
+provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
+Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
+Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
+or Computer Software Documentation). Accordingly, all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+12.2 Relationship of Parties. This License will not be construed as creating an
+agency, partnership, joint venture or any other form of legal association
+between or among You, Licensor or any Contributor, and You will not represent to
+the contrary, whether expressly, by implication, appearance or otherwise.
+
+12.3 Independent Development. Nothing in this License will impair Licensor's
+right to acquire, license, develop, have others develop for it, market and/or
+distribute technology or products that perform the same or similar functions as,
+or otherwise compete with, Modifications, Derivative Works, technology or
+products that You may develop, produce, market or distribute.
+
+12.4 Waiver; Construction. Failure by Licensor or any Contributor to enforce any
+provision of this License will not be deemed a waiver of future enforcement of
+that or any other provision. Any law or regulation which provides that the
+language of a contract shall be construed against the drafter will not apply to
+this License.
+
+12.5 Severability. (a) If for any reason a court of competent jurisdiction finds
+any provision of this License, or portion thereof, to be unenforceable, that
+provision of the License will be enforced to the maximum extent permissible so
+as to effect the economic benefits and intent of the parties, and the remainder
+of this License will continue in full force and effect. (b) Notwithstanding the
+foregoing, if applicable law prohibits or restricts You from fully and/or
+specifically complying with Sections 2 and/or 3 or prevents the enforceability
+of either of those Sections, this License will immediately terminate and You
+must immediately discontinue any use of the Covered Code and destroy all copies
+of it that are in your possession or control.
+
+12.6 Dispute Resolution. Any litigation or other dispute resolution between You
+and Licensor relating to this License shall take place in the Seattle,
+Washington, and You and Licensor hereby consent to the personal jurisdiction of,
+and venue in, the state and federal courts within that District with respect to
+this License. The application of the United Nations Convention on Contracts for
+the International Sale of Goods is expressly excluded.
+
+12.7 Export/Import Laws. This software is subject to all export and import laws
+and restrictions and regulations of the country in which you receive the Covered
+Code and You are solely responsible for ensuring that You do not export,
+re-export or import the Covered Code or any direct product thereof in violation
+of any such restrictions, laws or regulations, or without all necessary
+authorizations.
+
+12.8 Entire Agreement; Governing Law. This License constitutes the entire
+agreement between the parties with respect to the subject matter hereof. This
+License shall be governed by the laws of the United States and the State of
+Washington.
+
+Where You are located in the province of Quebec, Canada, the following clause
+applies: The parties hereby confirm that they have requested that this License
+and all related documents be drafted in English. Les parties ont exig&eacute;
+que le pr&eacute;sent contrat et tous les documents connexes soient
+r&eacute;dig&eacute;s en anglais.
+
+								EXHIBIT A.  
+
+"Copyright &copy; 1995-2002
+RealNetworks, Inc. and/or its licensors. All Rights Reserved.
+
+The contents of this file, and the files included with this file, are subject to
+the current version of the RealNetworks Public Source License Version 1.0 (the
+"RPSL") available at https://www.helixcommunity.org/content/rpsl unless you have
+licensed the file under the RealNetworks Community Source License Version 1.0
+(the "RCSL") available at https://www.helixcommunity.org/content/rcsl, in which
+case the RCSL will apply. You may also obtain the license terms directly from
+RealNetworks. You may not use this file except in compliance with the RPSL or,
+if you have a valid RCSL with RealNetworks applicable to this file, the RCSL.
+Please see the applicable RPSL or RCSL for the rights, obligations and
+limitations governing use of the contents of the file.
+
+This file is part of the Helix DNA Technology. RealNetworks is the developer of
+the Original code and owns the copyrights in the portions it created.
+
+This file, and the files included with this file, is distributed and made
+available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
+IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING
+WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s): ____________________________________ 
+
+Technology Compatibility Kit Test
+Suite(s) Location (if licensed under the RCSL): ______________________________ 
+
+Object Code Notice: Helix DNA Client technology included. Copyright (c)
+RealNetworks, Inc., 1995-2002. All rights reserved.
+
+
+								EXHIBIT B 
+
+Compatible Source Licenses for the RealNetworks Public Source License. The
+following list applies to the most recent version of the license as of October
+25, 2002, unless otherwise indicated.
+
+* Academic Free License
+* Apache Software License
+* Apple Public Source License
+* Artistic license
+* Attribution Assurance Licenses
+* BSD license
+* Common Public License (1)
+* Eiffel Forum License
+* GNU General Public License (GPL) (1)
+* GNU Library or "Lesser" General Public License (LGPL) (1)
+* IBM Public License
+* Intel Open Source License
+* Jabber Open Source License
+* MIT license
+* MITRE Collaborative Virtual Workspace License (CVW License)
+* Motosoto License
+* Mozilla Public License 1.0 (MPL)
+* Mozilla Public License 1.1 (MPL)
+* Nokia Open Source License
+* Open Group Test Suite License
+* Python Software Foundation License
+* Ricoh Source Code Public License
+* Sun Industry Standards Source License (SISSL)
+* Sun Public License
+* University of Illinois/NCSA Open Source License
+* Vovida Software License v. 1.0
+* W3C License
+* X.Net License
+* Zope Public License
+* zlib/libpng license
+
+(1) Note: because this license contains certain reciprocal licensing terms that
+purport to extend to independently developed code, You may be prohibited under
+the terms of this otherwise compatible license from using code licensed under
+its terms with Covered Code because Covered Code may only be licensed under the
+RealNetworks Public Source License. Any attempt to apply non RPSL license terms,
+including without limitation the GPL, to Covered Code is expressly forbidden.
+You are responsible for ensuring that Your use of Compatible Source Licensed
+code does not violate either the RPSL or the Compatible Source License.
+
+The latest version of this list can be found at:
+https://www.helixcommunity.org/content/complicense
+
+								EXHIBIT C 
+
+RealNetworks' Trademark policy.  
+
+RealNetworks defines the following trademarks collectively as "Licensor
+Trademarks": "RealNetworks", "RealPlayer", "RealJukebox", "RealSystem",
+"RealAudio", "RealVideo", "RealOne Player", "RealMedia", "Helix" or any other
+trademarks or trade names belonging to RealNetworks.
+
+RealNetworks "Licensor Trademark Policy" forbids any use of Licensor Trademarks
+except as permitted by and in strict compliance at all times with RealNetworks'
+third party trademark usage guidelines which are posted at
+http://www.realnetworks.com/info/helixlogo.html.
+

+ 30 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/LICENSE.txt

@@ -0,0 +1,30 @@
+ Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.  
+        
+ The contents of this directory, and (except where otherwise
+ indicated) the directories included within this directory, are
+ subject to the current version of the RealNetworks Public Source
+ License (the "RPSL") available at RPSL.txt in this directory, unless
+ you have licensed the directory under the current version of the
+ RealNetworks Community Source License (the "RCSL") available at
+ RCSL.txt in this directory, in which case the RCSL will apply. You
+ may also obtain the license terms directly from RealNetworks.  You
+ may not use the files in this directory except in compliance with the
+ RPSL or, if you have a valid RCSL with RealNetworks applicable to
+ this directory, the RCSL.  Please see the applicable RPSL or RCSL for
+ the rights, obligations and limitations governing use of the contents
+ of the directory.
+ 
+ This directory is part of the Helix DNA Technology. RealNetworks is
+ the developer of the Original Code and owns the copyrights in the
+ portions it created.
+   
+ This directory, and the directories included with this directory, are
+ distributed and made available on an 'AS IS' basis, WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY
+ DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ QUIET ENJOYMENT OR NON-INFRINGEMENT.
+  
+ Technology Compatibility Kit Test Suite(s) Location:  
+    http://www.helixcommunity.org/content/tck  
+

+ 948 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/RCSL.txt

@@ -0,0 +1,948 @@
+The RCSL is made up of a base agreement and a few Attachments.
+
+For Research and Development use, you agree to the terms of the
+RCSL R&D License (base RCSL and Attachments A, B, and C) 
+
+For Commercial Use (either distribution or internal commercial
+deployment) of the Helix DNA with or without support for RealNetworks'
+RealAudio and RealVideo Add-on Technology, you agree to the
+terms of the same RCSL R&D license
+and execute one or more additional Commercial Use License attachments
+<see http://www.helixcommunity.org/content/rcsl-attachments>.
+
+------------------------------------------------------------------------
+
+
+    REALNETWORKS COMMUNITY SOURCE LICENSE
+
+Version 1.2 (Rev. Date: January 22, 2003).
+
+
+  RECITALS
+
+Original Contributor has developed Specifications, Source Code
+implementations and Executables of certain Technology; and
+
+Original Contributor desires to license the Technology to a large
+community to facilitate research, innovation and product development
+while maintaining compatibility of such products with the Technology as
+delivered by Original Contributor; and
+
+Original Contributor desires to license certain Trademarks for the
+purpose of branding products that are compatible with the relevant
+Technology delivered by Original Contributor; and
+
+You desire to license the Technology and possibly certain Trademarks
+from Original Contributor on the terms and conditions specified in this
+License.
+
+In consideration for the mutual covenants contained herein, You and
+Original Contributor agree as follows:
+
+
+  AGREEMENT
+
+*1. Introduction.*
+
+The RealNetworks Community Source License ("RCSL") and effective
+attachments ("License") may include five distinct licenses:
+
+i) Research Use license -- License plus Attachments A, B and C only.
+
+ii) Commercial Use and Trademark License, which may be for Internal
+Deployment Use or external distribution, or both -- License plus
+Attachments A, B, C, and D.
+
+iii) Technology Compatibility Kit (TCK) license -- Attachment C.
+
+iv) Add-On Technology License (Executable) Commercial Use License
+-Attachment F.
+
+v) Add-On Technology Source Code Porting and Optimization
+License-Attachment G.
+
+The Research Use license is effective when You click and accept this
+License. The TCK is effective when You click and accept this License,
+unless otherwise specified in the TCK attachments. The Commercial Use
+and Trademark, Add-On Technology License, and the Add-On Technology
+Source Code Porting and Optimization licenses must each be signed by You
+and Original Contributor to become effective. Once effective, these
+licenses and the associated requirements and responsibilities are
+cumulative. Capitalized terms used in this License are defined in the
+Glossary.
+
+*2. License Grants.*
+
+2.1 Original Contributor Grant.
+
+Subject to Your compliance with Sections 3, 8.10 and Attachment A of
+this License, Original Contributor grants to You a worldwide,
+royalty-free, non-exclusive license, to the extent of Original
+Contributor's Intellectual Property Rights covering the Original Code,
+Upgraded Code and Specifications, to do the following:
+
+(a) Research Use License:
+
+(i) use, reproduce and modify the Original Code, Upgraded Code and
+Specifications to create Modifications and Reformatted Specifications
+for Research Use by You;
+
+(ii) publish and display Original Code, Upgraded Code and Specifications
+with, or as part of Modifications, as permitted under Section 3.1(b) below;
+
+(iii) reproduce and distribute copies of Original Code and Upgraded Code
+to Licensees and students for Research Use by You;
+
+(iv) compile, reproduce and distribute Original Code and Upgraded Code
+in Executable form, and Reformatted Specifications to anyone for
+Research Use by You.
+
+(b) Other than the licenses expressly granted in this License, Original
+Contributor retains all right, title, and interest in Original Code and
+Upgraded Code and Specifications.
+
+2.2 Your Grants.
+
+(a) To Other Licensees. You hereby grant to each Licensee a license to
+Your Error Corrections and Shared Modifications, of the same scope and
+extent as Original Contributor's licenses under Section 2.1 a) above
+relative to Research Use and Attachment D relative to Commercial Use.
+
+(b) To Original Contributor. You hereby grant to Original Contributor a
+worldwide, royalty-free, non-exclusive, perpetual and irrevocable
+license, to the extent of Your Intellectual Property Rights covering
+Your Error Corrections, Shared Modifications and Reformatted
+Specifications, to use, reproduce, modify, display and distribute Your
+Error Corrections, Shared Modifications and Reformatted Specifications,
+in any form, including the right to sublicense such rights through
+multiple tiers of distribution.
+
+(c) Other than the licenses expressly granted in Sections 2.2(a) and (b)
+above, and the restrictions set forth in Section 3.1(d)(iv) below, You
+retain all right, title, and interest in Your Error Corrections, Shared
+Modifications and Reformatted Specifications.
+
+2.3 Contributor Modifications.
+
+You may use, reproduce, modify, display and distribute Contributor Error
+Corrections, Shared Modifications and Reformatted Specifications,
+obtained by You under this License, to the same scope and extent as with
+Original Code, Upgraded Code and Specifications.
+
+2.4 Subcontracting.
+
+You may deliver the Source Code of Covered Code to other Licensees
+having at least a Research Use license, for the sole purpose of
+furnishing development services to You in connection with Your rights
+granted in this License. All such Licensees must execute appropriate
+documents with respect to such work consistent with the terms of this
+License, and acknowledging their work-made-for-hire status or assigning
+exclusive right to the work product and associated Intellectual Property
+Rights to You.
+
+*3. Requirements and Responsibilities*.
+
+3.1 Research Use License.
+
+As a condition of exercising the rights granted under Section 2.1(a)
+above, You agree to comply with the following:
+
+(a) Your Contribution to the Community. All Error Corrections and Shared
+Modifications which You create or contribute to are automatically
+subject to the licenses granted under Section 2.2 above. You are
+encouraged to license all of Your other Modifications under Section 2.2
+as Shared Modifications, but are not required to do so. You agree to
+notify Original Contributor of any errors in the Specification.
+
+(b) Source Code Availability. You agree to provide all Your Error
+Corrections to Original Contributor as soon as reasonably practicable
+and, in any event, prior to Internal Deployment Use or Commercial Use,
+if applicable. Original Contributor may, at its discretion, post Source
+Code for Your Error Corrections and Shared Modifications on the
+Community Webserver. You may also post Error Corrections and Shared
+Modifications on a web-server of Your choice; provided, that You must
+take reasonable precautions to ensure that only Licensees have access to
+such Error Corrections and Shared Modifications. Such precautions shall
+include, without limitation, a password protection scheme limited to
+Licensees and a click-on, download certification of Licensee status
+required of those attempting to download from the server. An example of
+an acceptable certification is attached as Attachment A-2.
+
+(c) Notices. All Error Corrections and Shared Modifications You create
+or contribute to must include a file documenting the additions and
+changes You made and the date of such additions and changes. You must
+also include the notice set forth in Attachment A-1 in the file header.
+If it is not possible to put the notice in a particular Source Code file
+due to its structure, then You must include the notice in a location
+(such as a relevant directory file), where a recipient would be most
+likely to look for such a notice.
+
+(d) Redistribution.
+
+(i) Source. Covered Code may be distributed in Source Code form only to
+another Licensee (except for students as provided below). You may not
+offer or impose any terms on any Covered Code that alter the rights,
+requirements, or responsibilities of such Licensee. You may distribute
+Covered Code to students for use in connection with their course work
+and research projects undertaken at accredited educational institutions.
+Such students need not be Licensees, but must be given a copy of the
+notice set forth in Attachment A-3 and such notice must also be included
+in a file header or prominent location in the Source Code made available
+to such students.
+
+(ii) Executable. You may distribute Executable version(s) of Covered
+Code to Licensees and other third parties only for the purpose of
+evaluation and comment in connection with Research Use by You and under
+a license of Your choice, but which limits use of such Executable
+version(s) of Covered Code only to that purpose.
+
+(iii) Modified Class, Interface and Package Naming. In connection with
+Research Use by You only, You may use Original Contributor's class,
+Interface and package names only to accurately reference or invoke the
+Source Code files You modify. Original Contributor grants to You a
+limited license to the extent necessary for such purposes.
+
+(iv) You expressly agree that any distribution, in whole or in part, of
+Modifications developed by You shall only be done pursuant to the terms
+and conditions of this License.
+
+(e) Extensions.
+
+(i) Covered Code. You may not include any Source Code of Community Code
+in any Extensions. You may include the compiled Header Files of
+Community Code in an Extension provided that Your use of the Covered
+Code, including Heading Files, complies with the Commercial Use License,
+the TCK and all other terms of this License.
+
+(ii) Publication. No later than the date on which You first distribute
+such Extension for Commercial Use, You must publish to the industry, on
+a non-confidential basis and free of all copyright restrictions with
+respect to reproduction and use, an accurate and current specification
+for any Extension. In addition, You must make available an appropriate
+test suite, pursuant to the same rights as the specification,
+sufficiently detailed to allow any third party reasonably skilled in the
+technology to produce implementations of the Extension compatible with
+the specification. Such test suites must be made available as soon as
+reasonably practicable but, in no event, later than ninety (90) days
+after Your first Commercial Use of the Extension. You must use
+reasonable efforts to promptly clarify and correct the specification and
+the test suite upon written request by Original Contributor.
+
+(iii) Open. You agree to refrain from enforcing any Intellectual
+Property Rights You may have covering any interface(s) of Your
+Extension, which would prevent the implementation of such interface(s)
+by Original Contributor or any Licensee. This obligation does not
+prevent You from enforcing any Intellectual Property Right You have that
+would otherwise be infringed by an implementation of Your Extension.
+
+(iv) Interface Modifications and Naming. You may not modify or add to
+the GUID space * * "xxxxxxxx-0901-11d1-8B06-00A024406D59" or any other
+GUID space designated by Original Contributor. You may not modify any
+Interface prefix provided with the Covered Code or any other prefix
+designated by Original Contributor.* *
+
+* *
+
+(f) You agree that any Specifications provided to You by Original
+Contributor are confidential and proprietary information of Original
+Contributor. You must maintain the confidentiality of the Specifications
+and may not disclose them to any third party without Original
+Contributor's prior written consent. You may only use the Specifications
+under the terms of this License and only for the purpose of implementing
+the terms of this License with respect to Covered Code. You agree not
+use, copy or distribute any such Specifications except as provided in
+writing by Original Contributor.
+
+3.2 Commercial Use License.
+
+You may not make Commercial Use of any Covered Code unless You and
+Original Contributor have executed a copy of the Commercial Use and
+Trademark License attached as Attachment D.
+
+*4. Versions of the License.*
+
+4.1 License Versions.
+
+Original Contributor may publish revised versions of the License from
+time to time. Each version will be given a distinguishing version number.
+
+4.2 Effect.
+
+Once a particular version of Covered Code has been provided under a
+version of the License, You may always continue to use such Covered Code
+under the terms of that version of the License. You may also choose to
+use such Covered Code under the terms of any subsequent version of the
+License. No one other than Original Contributor has the right to
+promulgate License versions.
+
+4.3 Multiple-Licensed Code.
+
+Original Contributor may designate portions of the Covered Code as
+"Multiple-Licensed." "Multiple-Licensed" means that the Original
+Contributor permits You to utilize those designated portions of the
+Covered Code under Your choice of this License or the alternative
+license(s), if any, specified by the Original Contributor in an
+Attachment to this License.
+
+*5. Disclaimer of Warranty.*
+
+5.1 COVERED CODE PROVIDED AS IS.
+
+COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," WITHOUT WARRANTY OF
+ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
+WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT
+FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE
+RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED CODE UNDER
+THIS LICENSE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
+OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER
+EXCEPT SUBJECT TO THIS DISCLAIMER.
+
+5.2 Not Designed for High Risk Activities.
+
+You acknowledge that Original Code, Upgraded Code and Specifications are
+not designed or intended for use in high risk activities including, but
+not limited to: (i) on-line control of aircraft, air traffic, aircraft
+navigation or aircraft communications; or (ii) in the design,
+construction, operation or maintenance of any nuclear facility. Original
+Contributor disclaims any express or implied warranty of fitness for
+such uses.
+
+*6. Termination.*
+
+6.1 By You.
+
+You may terminate this Research Use license at anytime by providing
+written notice to Original Contributor.
+
+6.2 By Original Contributor.
+
+This License and the rights granted hereunder will terminate:
+
+(i) automatically if You fail to comply with the terms of this License
+and fail to cure such breach within 30 days of receipt of written notice
+of the breach;
+
+(ii) immediately in the event of circumstances specified in Sections 7.1
+and 8.4; or
+
+(iii) at Original Contributor's discretion upon any action initiated by
+You (including by cross-claim or counter claim) alleging that use or
+distribution by Original Contributor or any Licensee, of Original Code,
+Upgraded Code, Error Corrections, Shared Modifications or Specifications
+infringe a patent owned or controlled by You.
+
+6.3 Effective of Termination.
+
+Upon termination, You agree to discontinue use of and destroy all copies
+of Covered Code in Your possession. All sublicenses to the Covered Code
+which You have properly granted shall survive any termination of this
+License. Provisions that, by their nature, should remain in effect
+beyond the termination of this License shall survive including, without
+limitation, Sections 2.2, 3, 5, 7 and 8.
+
+6.4 No Compensation.
+
+Each party waives and releases the other from any claim to compensation
+or indemnity for permitted or lawful termination of the business
+relationship established by this License.
+
+*7. Liability.*
+
+7.1 Infringement. Should any of the Original Code, Upgraded Code, TCK or
+Specifications ("Materials") become the subject of a claim of
+infringement, Original Contributor may, at its sole option, (i) attempt
+to procure the rights necessary for You to continue using the Materials,
+(ii) modify the Materials so that they are no longer infringing, or
+(iii) terminate Your right to use the Materials, immediately upon
+written notice, and refund to You the amount, if any, having then
+actually been paid by You to Original Contributor for the Original Code,
+Upgraded Code and TCK, depreciated on a straight line, five year basis.
+
+7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY APPLICABLE
+LAW, ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR CLAIMS RELATING TO THIS
+LICENSE, WHETHER FOR BREACH OR IN TORT, SHALL BE LIMITED TO ONE HUNDRED
+PERCENT (100%) OF THE AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO
+ORIGINAL CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE PARTICULAR
+ITEMS GIVING RISE TO SUCH CLAIM, IF ANY, DURING THE TWELVE MONTHS
+PRECEDING THE CLAIMED BREACH. IN NO EVENT WILL YOU (RELATIVE TO YOUR
+SHARED MODIFICATIONS OR ERROR CORRECTIONS) OR ORIGINAL CONTRIBUTOR BE
+LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR RISING OUT OF THIS LICENSE (INCLUDING,
+WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER ECONOMIC
+ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF LIABILITY, WHETHER IN
+AN ACTION FOR CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE)
+OR OTHERWISE, WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE
+FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY.
+
+*8. Miscellaneous.*
+
+8.1 Trademark.
+
+You shall not use any Trademark unless You and Original Contributor
+execute a copy of the Commercial Use and Trademark License Agreement
+attached hereto as Attachment D. Except as expressly provided in the
+License, You are granted no right, title or license to, or interest in,
+any Trademarks. Whether or not You and Original Contributor enter into
+the Trademark License, You agree not to (i) challenge Original
+Contributor's ownership or use of Trademarks; (ii) attempt to register
+any Trademarks, or any mark or logo substantially similar thereto; or
+(iii) incorporate any Trademarks into Your own trademarks, product
+names, service marks, company names, or domain names.
+
+8.2 Integration.
+
+This License represents the complete agreement concerning the subject
+matter hereof.
+
+8.3 Assignment.
+
+Original Contributor may assign this License, and its rights and
+obligations hereunder, in its sole discretion. You may assign the
+Research Use portions of this License and the TCK license to a third
+party upon prior written notice to Original Contributor (which may be
+provided electronically via the Community Web-Server). You may not
+assign the Commercial Use and Trademark license, the Add-On Technology
+License, or the Add-On Technology Source Code Porting License, including
+by way of merger (regardless of whether You are the surviving entity) or
+acquisition, without Original Contributor's prior written consent.
+
+8.4 Severability.
+
+If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. Notwithstanding the foregoing, if You are prohibited by law
+from fully and specifically complying with Sections 2.2 or 3, this
+License will immediately terminate and You must immediately discontinue
+any use of Covered Code.
+
+8.5 Governing Law.
+
+This License shall be governed by the laws of the United States and the
+State of Washington, as applied to contracts entered into and to be
+performed in Washington between Washington residents. The application of
+the United Nations Convention on Contracts for the International Sale of
+Goods is expressly excluded. You agree that the state and federal courts
+located in Seattle, Washington have exclusive jurisdiction over any
+claim relating to the License, including contract and tort claims.
+
+8.6 Dispute Resolution.
+
+a) Arbitration. Any dispute arising out of or relating to this License
+shall be finally settled by arbitration as set out herein, except that
+either party may bring any action, in a court of competent jurisdiction
+(which jurisdiction shall be exclusive), with respect to any dispute
+relating to such party's Intellectual Property Rights or with respect to
+Your compliance with the TCK license. Arbitration shall be administered:
+(i) by the American Arbitration Association (AAA), (ii) in accordance
+with the rules of the United Nations Commission on International Trade
+Law (UNCITRAL) (the "Rules") in effect at the time of arbitration as
+modified herein; and (iii) the arbitrator will apply the substantive
+laws of Washington and the United States. Judgment upon the award
+rendered by the arbitrator may be entered in any court having
+jurisdiction to enforce such award.
+
+b) Arbitration language, venue and damages. All arbitration proceedings
+shall be conducted in English by a single arbitrator selected in
+accordance with the Rules, who must be fluent in English and be either a
+retired judge or practicing attorney having at least ten (10) years
+litigation experience and be reasonably familiar with the technology
+matters relative to the dispute. Unless otherwise agreed, arbitration
+venue shall be in Seattle, Washington. The arbitrator may award monetary
+damages only and nothing shall preclude either party from seeking
+provisional or emergency relief from a court of competent jurisdiction.
+The arbitrator shall have no authority to award damages in excess of
+those permitted in this License and any such award in excess is void.
+All awards will be payable in U.S. dollars and may include, for the
+prevailing party (i) pre-judgment award interest, (ii) reasonable
+attorneys' fees incurred in connection with the arbitration, and (iii)
+reasonable costs and expenses incurred in enforcing the award. The
+arbitrator will order each party to produce identified documents and
+respond to no more than twenty-five single question interrogatories.
+
+8.7 Construction.
+
+Any law or regulation, which provides that the language of a contract
+shall be construed against the drafter, shall not apply to this License.
+
+8.8 U.S. Government End Users.
+
+The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software"
+and "commercial computer software documentation," as such terms are used
+in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
+48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
+End Users acquire Covered Code with only those rights set forth herein.
+You agree to pass this notice to our licensees.
+
+8.9 Marketing Activities.
+
+Licensee hereby grants Original Contributor a non-exclusive,
+non-transferable, limited license to use the Licensee's company name and
+logo ("Licensee Marks") in any presentations, press releases, or
+marketing materials solely for the purpose of identifying Licensee as a
+member of the Helix Community. Licensee shall provide samples of
+Licensee Marks to Original Contributor upon request by Original
+Contributor. Original Contributor acknowledges that the Licensee Marks
+are the trademarks of Licensee. Original Contributor shall not use the
+Licensee Marks in a way that may imply that Original Contributor is an
+agency or branch of Licensee. Original Contributor understands and
+agrees that the use of any Licensee Marks in connection with this
+Agreement shall not create any right, title or interest, in, or to the
+Licensee Marks or any Licensee trademarks and that all such use and
+goodwill associated with any such trademarks will inure to the benefit
+of Licensee. Further the Original Contributor will stop usage of the
+Licensee Marks upon Licensee's request.
+
+8.10 Press Announcements.
+
+You may make press announcements or other public statements regarding
+this License without the prior written consent of the Original
+Contributor, if Your statement is limited to announcing the licensing of
+the Covered Code or the availability of Your Product and its
+compatibility with the Covered Code. All other public announcements
+regarding this license require the prior written consent of the Original
+Contributor. Consent requests are welcome at press@helixcommunity.org.
+
+8.11 International Use.
+
+a) Export/Import laws. Covered Code is subject to U.S. export control
+laws and may be subject to export or import regulations in other
+countries. Each party agrees to comply strictly with all such laws and
+regulations and acknowledges their responsibility to obtain such
+licenses to export, re-export, or import as may be required. You agree
+to pass these obligations to Your licensees.
+
+b) Intellectual Property Protection. Due to limited intellectual
+property protection and enforcement in certain countries, You agree not
+to redistribute the Original Code, Upgraded Code, TCK and Specifications
+to any country on the list of restricted countries on the Community Web
+Server.
+
+8.12 Language.
+
+This License is in the English language only, which language shall be
+controlling in all respects, and all versions of this License in any
+other language shall be for accommodation only and shall not be binding
+on the parties to this License. All communications and notices made or
+given pursuant to this License, and all documentation and support to be
+provided, unless otherwise noted, shall be in the English language.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH REALNETWORKS, INC. IF YOU ARE AGREEING
+TO THIS LICENSE ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE
+AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER YOU ARE ACTING
+ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, YOU MUST BE OF MAJORITY
+AGE AND BE OTHERWISE COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT
+MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND
+CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO EXIT.
+
+
+    GLOSSARY
+
+1. *"Added Value"* means code which:
+
+(i) has a principal purpose which is substantially different from that
+of the stand-alone Technology;
+
+(ii) represents a significant functional and value enhancement to the
+Technology;
+
+(iii) operates in conjunction with the Technology; and
+
+(iv) is not marketed as a technology which replaces or substitutes for
+the Technology
+
+2. "*Applicable Patent Rights*" mean: (a) in the case where Original
+Contributor is the grantor of rights, claims of patents that (i) are now
+or hereafter acquired, owned by or assigned to Original Contributor and
+(ii) are necessarily infringed by using or making the Original Code or
+Upgraded Code, including Modifications provided by Original Contributor,
+alone and not in combination with other software or hardware; and (b) in
+the case where Licensee is the grantor of rights, claims of patents that
+(i) are now or hereafter acquired, owned by or assigned to Licensee and
+(ii) are infringed (directly or indirectly) by using or making
+Licensee's Modifications or Error Corrections, taken alone or in
+combination with Covered Code.
+
+3. "*Application Programming Interfaces (APIs)"* means the interfaces,
+associated header files, service provider interfaces, and protocols that
+enable a device, application, Operating System, or other program to
+obtain services from or make requests of (or provide services in
+response to requests from) other programs, and to use, benefit from, or
+rely on the resources, facilities, and capabilities of the relevant
+programs using the APIs. APIs includes the technical documentation
+describing the APIs, the Source Code constituting the API, and any
+Header Files used with the APIs.
+
+4. "*Commercial Use*" means any use (internal or external), copying,
+sublicensing or distribution (internal or external), directly or
+indirectly of Covered Code by You other than Your Research Use of
+Covered Code within Your business or organization or in conjunction with
+other Licensees with equivalent Research Use rights. Commercial Use
+includes any use of the Covered Code for direct or indirect commercial
+or strategic gain, advantage or other business purpose. Any Commercial
+Use requires execution of Attachment D by You and Original Contributor.
+
+5. "*Community Code*" means the Original Code, Upgraded Code, Error
+Corrections, Shared Modifications, or any combination thereof.
+
+6. "*Community Webserver(s)"* means the webservers designated by
+Original Contributor for access to the Original Code, Upgraded Code, TCK
+and Specifications and for posting Error Corrections and Shared
+Modifications.
+
+7. "*Compliant Covered Code*" means Covered Code that complies with the
+requirements of the TCK.
+
+8. "*Contributor*" means each Licensee that creates or contributes to
+the creation of any Error Correction or Shared Modification.
+
+9. "*Covered Code*" means the Original Code, Upgraded Code,
+Modifications, or any combination thereof.
+
+10. "*Error Correction*" means any change made to Community Code which
+conforms to the Specification and corrects the adverse effect of a
+failure of Community Code to perform any function set forth in or
+required by the Specifications.
+
+11. "*Executable*" means Covered Code that has been converted from
+Source Code to the preferred form for execution by a computer or digital
+processor (e.g. binary form).
+
+12. "*Extension(s)"* means any additional Interfaces developed by or for
+You which: (i) are designed for use with the Technology; (ii) constitute
+an API for a library of computing functions or services; and (iii) are
+disclosed or otherwise made available to third party software developers
+for the purpose of developing software which invokes such additional
+Interfaces. The foregoing shall not apply to software developed by Your
+subcontractors to be exclusively used by You.
+
+13. "*Header File(s)"* means that portion of the Source Code that
+provides the names and types of member functions, data members, class
+definitions, and interface definitions necessary to implement the APIs
+for the Covered Code. Header Files include, files specifically
+designated by Original Contributor as Header Files. Header Files do not
+include the code necessary to implement the functionality underlying the
+Interface.
+
+14. *"Helix DNA Server Technology"* means the program(s) that implement
+the Helix Universal Server streaming engine for the Technology as
+defined in the Specification.
+
+15. *"Helix DNA Client Technology"* means the Covered Code that
+implements the RealOne Player engine as defined in the Specification.
+
+16. *"Helix DNA Producer Technology"* means the Covered Code that
+implements the Helix Producer engine as defined in the Specification.
+
+17. *"Helix DNA Technology"* means the Helix DNA Server Technology, the
+Helix DNA Client Technology, the Helix DNA Producer Technology and other
+Helix technologies designated by Original Contributor.
+
+18. "*Intellectual Property Rights*" means worldwide statutory and
+common law rights associated solely with (i) Applicable Patent Rights;
+(ii) works of authorship including copyrights, copyright applications,
+copyright registrations and "moral rights"; (iii) the protection of
+trade and industrial secrets and confidential information; and (iv)
+divisions, continuations, renewals, and re-issuances of the foregoing
+now existing or acquired in the future.
+
+19. *"Interface*" means interfaces, functions, properties, class
+definitions, APIs, Header Files, GUIDs, V-Tables, and/or protocols
+allowing one piece of software, firmware or hardware to communicate or
+interoperate with another piece of software, firmware or hardware.
+
+20. "*Internal Deployment Use*" means use of Compliant Covered Code
+(excluding Research Use) within Your business or organization only by
+Your employees and/or agents on behalf of Your business or organization,
+but not to provide services, including content distribution, to third
+parties, subject to execution of Attachment D by You and Original
+Contributor, if required.
+
+21. "*Licensee*" means any party that has entered into and has in effect
+a version of this License with Original Contributor.
+
+22. "*MIME type*" means a description of what type of media or other
+content is in a file, including by way of example but not limited to
+'audio/x-pn-realaudio-plugin.'
+
+23. "*Modification(s)"* means (i) any addition to, deletion from and/or
+change to the substance and/or structure of the Covered Code, including
+Interfaces; (ii) the combination of any Covered Code and any previous
+Modifications; (iii) any new file or other representation of computer
+program statements that contains any portion of Covered Code; and/or
+(iv) any new Source Code implementing any portion of the Specifications.
+
+24. "*MP3 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Picture Experts Group known as MPEG-1 Audio Layer-3 or MP3,
+including but not limited to all past and future versions, profiles,
+extensions, parts and amendments relating to the MP3 specification.
+
+25. "*MPEG-4 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Pictures Experts Group known as MPEG-4, including but not
+limited to all past and future versions, profiles, extensions, parts and
+amendments relating to the MPEG-4 specification.
+
+26. "*Original Code*" means the initial Source Code for the Technology
+as described on the Community Web Server.
+
+27. "*Original Contributor*" means RealNetworks, Inc., its affiliates
+and its successors and assigns.
+
+28. "*Original Contributor MIME Type*" means the MIME registry, browser
+preferences, or local file/protocol associations invoking any Helix DNA
+Client-based application, including the RealOne Player, for playback of
+RealAudio, RealVideo, other RealMedia MIME types or datatypes (e.g.,
+.ram, .rnx, .rpm, .ra, .rm, .rp, .rt, .rf, .prx, .mpe, .rmp, .rmj, .rav,
+.rjs, .rmx, .rjt, .rms), and any other Original Contributor-specific or
+proprietary MIME types that Original Contributor may introduce in the
+future.
+
+29. "*Personal Use*" means use of Covered Code by an individual solely
+for his or her personal, private and non-commercial purposes. An
+individual's use of Covered Code in his or her capacity as an officer,
+employee, member, independent contractor or agent of a corporation,
+business or organization (commercial or non-commercial) does not qualify
+as Personal Use.
+
+30. "*RealMedia File Format*" means the file format designed and
+developed by RealNetworks for storing multimedia data and used to store
+RealAudio and RealVideo encoded streams. Valid RealMedia File Format
+extensions include: .rm, .rmj, .rmc, .rmvb, .rms.
+
+31. "*RCSL Webpage*" means the RealNetworks Community Source License
+webpage located at https://www.helixcommunity.org/content/rcsl or such
+other URL that Original Contributor may designate from time to time.
+
+32. "*Reformatted Specifications*" means any revision to the
+Specifications which translates or reformats the Specifications (as for
+example in connection with Your documentation) but which does not alter,
+subset or superset * *the functional or operational aspects of the
+Specifications.
+
+33. "*Research Use*" means use and distribution of Covered Code only for
+Your Personal Use, research or development use and expressly excludes
+Internal Deployment Use and Commercial Use. Research Use also includes
+use of Covered Code to teach individuals how to use Covered Code.
+
+34. "*Shared Modifications*" means Modifications that You distribute or
+use for a Commercial Use, in addition to any Modifications provided by
+You, at Your option, pursuant to Section 2.2, or received by You from a
+Contributor pursuant to Section 2.3.
+
+35. "*Source Code*" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control
+compilation and installation of an Executable, or source code
+differential comparisons against either the Original Code or another
+well known, available Covered Code of the Contributor's choice. The
+Source Code can be in a compressed or archival form, provided the
+appropriate decompression or de-archiving software is widely available
+for no charge.
+
+36. "*Specifications*" means the specifications for the Technology and
+other documentation, as designated on the Community Web Server, as may
+be revised by Original Contributor from time to time.
+
+37. "*Trademarks*" means Original Contributor's trademarks and logos,
+including, but not limited to, RealNetworks, RealAudio, RealVideo,
+RealOne, RealSystem, SureStream, Helix, Helix DNA and other trademarks
+whether now used or adopted in the future.
+
+38. "*Technology*" means the technology described in Attachment B, and
+Upgrades.
+
+39. "*Technology Compatibility Kit"* or *"TCK*" means the test programs,
+procedures, acceptance criteria and/or other requirements, designated by
+Original Contributor for use in verifying compliance of Covered Code
+with the Specifications, in conjunction with the Original Code and
+Upgraded Code. Original Contributor may, in its sole discretion and from
+time to time, revise a TCK to correct errors and/or omissions and in
+connection with Upgrades.
+
+40. "*Upgrade(s)"* means new versions of Technology designated
+exclusively by Original Contributor as an "Upgrade" and released by
+Original Contributor from time to time under the terms of the License.
+
+41. "*Upgraded Code*" means the Source Code and/or Executables for
+Upgrades, possibly including Modifications made by Contributors.
+
+42. *"User's Guide"* means the users guide for the TCK which Original
+Contributor makes available to You to provide direction in how to run
+the TCK and properly interpret the results, as may be revised by
+Original Contributor from time to time.
+
+43. "*You(r)*" means an individual, or a legal entity acting by and
+through an individual or individuals, exercising rights either under
+this License or under a future version of this License issued pursuant
+to Section 4.1. For legal entities, "You(r)" includes any entity that by
+majority voting interest controls, is controlled by, or is under common
+control with You.
+
+44. "*Your Products*" means any (i) hardware products You distribute
+integrating the Covered Code; (ii) any software products You distribute
+with the Covered Code that utilize the APIs of the Covered Code; or
+(iii) any services You provide using the Covered Code.
+
+
+  ATTACHMENT A
+
+REQUIRED NOTICES
+
+
+    ATTACHMENT A-1
+
+REQUIRED IN ALL CASES
+
+Notice to be included in header file of all Error Corrections and Shared
+Modifications:
+
+Portions Copyright 1994-2003 © RealNetworks, Inc. All rights reserved.
+
+The contents of this file, and the files included with this file, are
+subject to the current version of RealNetworks Community Source License
+Version 1.1 (the "License"). You may not use this file except in
+compliance with the License executed by both You and RealNetworks. You
+may obtain a copy of the License at *
+https://www.helixcommunity.org/content/rcsl.* You may also obtain a copy
+of the License by contacting RealNetworks directly. Please see the
+License for the rights, obligations and limitations governing use of the
+contents of the file.
+
+This file is part of the Helix DNA technology. RealNetworks, Inc., is
+the developer of the Original code and owns the copyrights in the
+portions it created.
+
+This file, and the files included with this file, are distributed on an
+'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
+LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s):
+
+_______________________________________________
+
+Technology Compatibility Kit Test Suite(s) Location:
+
+________________________________
+
+
+    ATTACHMENT A-2
+
+SAMPLE LICENSEE CERTIFICATION
+
+"By clicking the `Agree' button below, You certify that You are a
+Licensee in good standing under the RealNetworks Community Source
+License, ("License") and that Your access, use and distribution of code
+and information You may obtain at this site is subject to the License.
+If You are not a Licensee under the RealNetworks Community Source
+License You agree not to download, copy or use the Helix DNA technology.
+
+
+    ATTACHMENT A-3
+
+REQUIRED STUDENT NOTIFICATION
+
+"This software and related documentation has been obtained by Your
+educational institution subject to the RealNetworks Community Source
+License. You have been provided access to the software and related
+documentation for use only in connection with your course work and
+research activities as a matriculated student of Your educational
+institution. Any other use is expressly prohibited.
+
+THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIAL OF
+REALNETWORKS, INC, WHICH ARE PROTECTED BY VARIOUS INTELLECTUAL PROPERTY
+RIGHTS.
+
+You may not use this file except in compliance with the License. You may
+obtain a copy of the License on the web at
+https://www.helixcommunity.org/content/rcsl.
+
+*
+*
+
+
+  ATTACHMENT B
+
+Description of Technology
+
+Helix DNA, which consists of Helix DNA Client, Helix DNA Server and
+Helix DNA Producer.
+
+Description of "Technology"
+
+Helix DNA Technology v1.0 as described on the Community Web Server.
+
+
+  ATTACHMENT C
+
+TECHNOLOGY COMPATIBILITY KIT LICENSE
+
+The following license is effective for the *Helix DNA* Technology
+Compatibility Kit - as described on the Community Web Server. The
+Technology Compatibility Kit(s) for the Technology specified in
+Attachment B may be accessed at the Community Web Server.
+
+1. TCK License.
+
+1.1 Grants to use TCK
+
+Subject to the terms and restrictions set forth below and the
+RealNetworks Community Source License, and the Research Use license,
+Original Contributor grants to You a worldwide, non-exclusive,
+non-transferable license, to the extent of Original Contributor's
+Intellectual Property Rights in the TCK (without the right to
+sublicense), to use the TCK to develop and test Covered Code.
+
+1.2 TCK Use Restrictions.
+
+You are not authorized to create derivative works of the TCK or use the
+TCK to test any implementation of the Specification that is not Covered
+Code. You may not publish Your test results or make claims of
+comparative compatibility with respect to other implementations of the
+Specification. In consideration for the license grant in Section 1.1
+above You agree not to develop Your own tests that are intended to
+validate conformation with the Specification.
+
+2. Test Results.
+
+You agree to provide to Original Contributor or the third party test
+facility if applicable, Your test results that demonstrate that Covered
+Code is Compliant Covered Code and that Original Contributor may publish
+or otherwise distribute such test results.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH THE ORIGINAL CONTRIBUTOR, REALNETWORKS,
+INC. IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY, YOU
+REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE.
+WHETHER YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY,
+YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE COMPETENT TO ENTER INTO
+CONTRACTS. IF YOU DO NOT MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY
+OF THE TERMS AND CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON
+TO EXIT.
+
+*ACCEPT / REJECT
+*
+
+*
+*
+
+*To agree to the R&D/academic terms of this license, please register
+<https://www.helixcommunity.org/2002/intro/why-register> on the site --
+you will then be given a chance to agree to the clickwrap RCSL
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+R&D License
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+and gain access to the RCSL-licensed source code.  To build or deploy
+commercial applications based on the RCSL, you will need to agree to the
+Commercial Use license attachments
+<https://www.helixcommunity.org/content/rcsl-attachments>*
+
+
+

+ 518 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/RPSL.txt

@@ -0,0 +1,518 @@
+RealNetworks Public Source License Version 1.0
+(Rev. Date October 28, 2002)
+
+1. General Definitions. This License applies to any program or other work which
+RealNetworks, Inc., or any other entity that elects to use this license,
+("Licensor") makes publicly available and which contains a notice placed by
+Licensor identifying such program or work as "Original Code" and stating that it
+is subject to the terms of this RealNetworks Public Source License version 1.0
+(or subsequent version thereof) ("License"). You are not required to accept this
+License. However, nothing else grants You permission to use, copy, modify or
+distribute the software or its derivative works. These actions are prohibited by
+law if You do not accept this License. Therefore, by modifying, copying or
+distributing the software (or any work based on the software), You indicate your
+acceptance of this License to do so, and all its terms and conditions. In
+addition, you agree to the terms of this License by clicking the Accept button
+or downloading the software. As used in this License:
+
+1.1 "Applicable Patent Rights" mean: (a) in the case where Licensor is the
+grantor of rights, claims of patents that (i) are now or hereafter acquired,
+owned by or assigned to Licensor and (ii) are necessarily infringed by using or
+making the Original Code alone and not in combination with other software or
+hardware; and (b) in the case where You are the grantor of rights, claims of
+patents that (i) are now or hereafter acquired, owned by or assigned to You and
+(ii) are infringed (directly or indirectly) by using or making Your
+Modifications, taken alone or in combination with Original Code.
+
+1.2 "Compatible Source License" means any one of the licenses listed on Exhibit
+B or at https://www.helixcommunity.org/content/complicense or other licenses
+specifically identified by Licensor in writing. Notwithstanding any term to the
+contrary in any Compatible Source License, any code covered by any Compatible
+Source License that is used with Covered Code must be made readily available in
+Source Code format for royalty-free use under the terms of the Compatible Source
+License or this License.
+
+1.3 "Contributor" means any person or entity that creates or contributes to the
+creation of Modifications.
+
+1.4 "Covered Code" means the Original Code, Modifications, the combination of
+Original Code and any Modifications, and/or any respective portions thereof.
+
+1.5 "Deploy" means to use, sublicense or distribute Covered Code other than for
+Your internal research and development (R&D) and/or Personal Use, and includes
+without limitation, any and all internal use or distribution of Covered Code
+within Your business or organization except for R&D use and/or Personal Use, as
+well as direct or indirect sublicensing or distribution of Covered Code by You
+to any third party in any form or manner.
+
+1.6 "Derivative Work" means either the Covered Code or any derivative work under
+United States copyright law, and including any work containing or including any
+portion of the Covered Code or Modifications, either verbatim or with
+modifications and/or translated into another language. Derivative Work also
+includes any work which combines any portion of Covered Code or Modifications
+with code not otherwise governed by the terms of this License.
+
+1.7 "Externally Deploy" means to Deploy the Covered Code in any way that may be
+accessed or used by anyone other than You, used to provide any services to
+anyone other than You, or used in any way to deliver any content to anyone other
+than You, whether the Covered Code is distributed to those parties, made
+available as an application intended for use over a computer network, or used to
+provide services or otherwise deliver content to anyone other than You.
+
+1.8. "Interface" means interfaces, functions, properties, class definitions,
+APIs, header files, GUIDs, V-Tables, and/or protocols allowing one piece of
+software, firmware or hardware to communicate or interoperate with another piece
+of software, firmware or hardware.
+
+1.9 "Modifications" mean any addition to, deletion from, and/or change to, the
+substance and/or structure of the Original Code, any previous Modifications, the
+combination of Original Code and any previous Modifications, and/or any
+respective portions thereof. When code is released as a series of files, a
+Modification is: (a) any addition to or deletion from the contents of a file
+containing Covered Code; and/or (b) any new file or other representation of
+computer program statements that contains any part of Covered Code.
+
+1.10 "Original Code" means (a) the Source Code of a program or other work as
+originally made available by Licensor under this License, including the Source
+Code of any updates or upgrades to such programs or works made available by
+Licensor under this License, and that has been expressly identified by Licensor
+as such in the header file(s) of such work; and (b) the object code compiled
+from such Source Code and originally made available by Licensor under this
+License.
+
+1.11 "Personal Use" means use of Covered Code by an individual solely for his or
+her personal, private and non-commercial purposes. An individual's use of
+Covered Code in his or her capacity as an officer, employee, member, independent
+contractor or agent of a corporation, business or organization (commercial or
+non-commercial) does not qualify as Personal Use.
+
+1.12 "Source Code" means the human readable form of a program or other work that
+is suitable for making modifications to it, including all modules it contains,
+plus any associated interface definition files, scripts used to control
+compilation and installation of an executable (object code).
+
+1.13 "You" or "Your" means an individual or a legal entity exercising rights
+under this License. For legal entities, "You" or "Your" includes any entity
+which controls, is controlled by, or is under common control with, You, where
+"control" means (a) the power, direct or indirect, to cause the direction or
+management of such entity, whether by contract or otherwise, or (b) ownership of
+fifty percent (50%) or more of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Permitted Uses; Conditions & Restrictions. Subject to the terms and
+conditions of this License, Licensor hereby grants You, effective on the date
+You accept this License (via downloading or using Covered Code or otherwise
+indicating your acceptance of this License), a worldwide, royalty-free,
+non-exclusive copyright license, to the extent of Licensor's copyrights cover
+the Original Code, to do the following:
+
+2.1 You may reproduce, display, perform, modify and Deploy Covered Code,
+provided that in each instance:
+
+(a) You must retain and reproduce in all copies of Original Code the copyright
+and other proprietary notices and disclaimers of Licensor as they appear in the
+Original Code, and keep intact all notices in the Original Code that refer to
+this License;
+
+(b) You must include a copy of this License with every copy of Source Code of
+Covered Code and documentation You distribute, and You may not offer or impose
+any terms on such Source Code that alter or restrict this License or the
+recipients' rights hereunder, except as permitted under Section 6;
+
+(c) You must duplicate, to the extent it does not already exist, the notice in
+Exhibit A in each file of the Source Code of all Your Modifications, and cause
+the modified files to carry prominent notices stating that You changed the files
+and the date of any change;
+
+(d) You must make Source Code of all Your Externally Deployed Modifications
+publicly available under the terms of this License, including the license grants
+set forth in Section 3 below, for as long as you Deploy the Covered Code or
+twelve (12) months from the date of initial Deployment, whichever is longer. You
+should preferably distribute the Source Code of Your Deployed Modifications
+electronically (e.g. download from a web site); and
+
+(e) if You Deploy Covered Code in object code, executable form only, You must
+include a prominent notice, in the code itself as well as in related
+documentation, stating that Source Code of the Covered Code is available under
+the terms of this License with information on how and where to obtain such
+Source Code. You must also include the Object Code Notice set forth in Exhibit A
+in the "about" box or other appropriate place where other copyright notices are
+placed, including any packaging materials.
+
+2.2 You expressly acknowledge and agree that although Licensor and each
+Contributor grants the licenses to their respective portions of the Covered Code
+set forth herein, no assurances are provided by Licensor or any Contributor that
+the Covered Code does not infringe the patent or other intellectual property
+rights of any other entity. Licensor and each Contributor disclaim any liability
+to You for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, You hereby assume sole responsibility to
+secure any other intellectual property rights needed, if any. For example, if a
+third party patent license is required to allow You to make, use, sell, import
+or offer for sale the Covered Code, it is Your responsibility to acquire such
+license(s).
+
+2.3 Subject to the terms and conditions of this License, Licensor hereby grants
+You, effective on the date You accept this License (via downloading or using
+Covered Code or otherwise indicating your acceptance of this License), a
+worldwide, royalty-free, perpetual, non-exclusive patent license under
+Licensor's Applicable Patent Rights to make, use, sell, offer for sale and
+import the Covered Code, provided that in each instance you comply with the
+terms of this License.
+
+3. Your Grants. In consideration of, and as a condition to, the licenses granted
+to You under this License:
+
+(a) You grant to Licensor and all third parties a non-exclusive, perpetual,
+irrevocable, royalty free license under Your Applicable Patent Rights and other
+intellectual property rights owned or controlled by You, to make, sell, offer
+for sale, use, import, reproduce, display, perform, modify, distribute and
+Deploy Your Modifications of the same scope and extent as Licensor's licenses
+under Sections 2.1 and 2.2; and
+
+(b) You grant to Licensor and its subsidiaries a non-exclusive, worldwide,
+royalty-free, perpetual and irrevocable license, under Your Applicable Patent
+Rights and other intellectual property rights owned or controlled by You, to
+make, use, sell, offer for sale, import, reproduce, display, perform,
+distribute, modify or have modified (for Licensor and/or its subsidiaries),
+sublicense and distribute Your Modifications, in any form and for any purpose,
+through multiple tiers of distribution.
+
+(c) You agree not use any information derived from Your use and review of the
+Covered Code, including but not limited to any algorithms or inventions that may
+be contained in the Covered Code, for the purpose of asserting any of Your
+patent rights, or assisting a third party to assert any of its patent rights,
+against Licensor or any Contributor.
+
+4. Derivative Works. You may create a Derivative Work by combining Covered Code
+with other code not otherwise governed by the terms of this License and
+distribute the Derivative Work as an integrated product. In each such instance,
+You must make sure the requirements of this License are fulfilled for the
+Covered Code or any portion thereof, including all Modifications.
+
+4.1 You must cause any Derivative Work that you distribute, publish or
+Externally Deploy, that in whole or in part contains or is derived from the
+Covered Code or any part thereof, to be licensed as a whole at no charge to all
+third parties under the terms of this License and no other license except as
+provided in Section 4.2. You also must make Source Code available for the
+Derivative Work under the same terms as Modifications, described in Sections 2
+and 3, above.
+
+4.2 Compatible Source Licenses. Software modules that have been independently
+developed without any use of Covered Code and which contain no portion of the
+Covered Code, Modifications or other Derivative Works, but are used or combined
+in any way wtih the Covered Code or any Derivative Work to form a larger
+Derivative Work, are exempt from the conditions described in Section 4.1 but
+only to the extent that: the software module, including any software that is
+linked to, integrated with, or part of the same applications as, the software
+module by any method must be wholly subject to one of the Compatible Source
+Licenses. Notwithstanding the foregoing, all Covered Code must be subject to the
+terms of this License. Thus, the entire Derivative Work must be licensed under a
+combination of the RPSL (for Covered Code) and a Compatible Source License for
+any independently developed software modules within the Derivative Work. The
+foregoing requirement applies even if the Compatible Source License would
+ordinarily allow the software module to link with, or form larger works with,
+other software that is not subject to the Compatible Source License. For
+example, although the Mozilla Public License v1.1 allows Mozilla code to be
+combined with proprietary software that is not subject to the MPL, if
+MPL-licensed code is used with Covered Code the MPL-licensed code could not be
+combined or linked with any code not governed by the MPL. The general intent of
+this section 4.2 is to enable use of Covered Code with applications that are
+wholly subject to an acceptable open source license. You are responsible for
+determining whether your use of software with Covered Code is allowed under Your
+license to such software.
+
+4.3 Mere aggregation of another work not based on the Covered Code with the
+Covered Code (or with a work based on the Covered Code) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License. If You deliver the Covered Code for combination and/or integration with
+an application previously provided by You (for example, via automatic updating
+technology), such combination and/or integration constitutes a Derivative Work
+subject to the terms of this License.
+
+5. Exclusions From License Grant. Nothing in this License shall be deemed to
+grant any rights to trademarks, copyrights, patents, trade secrets or any other
+intellectual property of Licensor or any Contributor except as expressly stated
+herein. No right is granted to the trademarks of Licensor or any Contributor
+even if such marks are included in the Covered Code. Nothing in this License
+shall be interpreted to prohibit Licensor from licensing under different terms
+from this License any code that Licensor otherwise would have a right to
+license. Modifications, Derivative Works and/or any use or combination of
+Covered Code with other technology provided by Licensor or third parties may
+require additional patent licenses from Licensor which Licensor may grant in its
+sole discretion. No patent license is granted separate from the Original Code or
+combinations of the Original Code with other software or hardware.
+
+5.1. Trademarks. This License does not grant any rights to use the trademarks or
+trade names owned by Licensor ("Licensor Marks" defined in Exhibit C) or to any
+trademark or trade name belonging to any Contributor. No Licensor Marks may be
+used to endorse or promote products derived from the Original Code other than as
+permitted by the Licensor Trademark Policy defined in Exhibit C.
+
+6. Additional Terms. You may choose to offer, and to charge a fee for, warranty,
+support, indemnity or liability obligations and/or other rights consistent with
+the scope of the license granted herein ("Additional Terms") to one or more
+recipients of Covered Code. However, You may do so only on Your own behalf and
+as Your sole responsibility, and not on behalf of Licensor or any Contributor.
+You must obtain the recipient's agreement that any such Additional Terms are
+offered by You alone, and You hereby agree to indemnify, defend and hold
+Licensor and every Contributor harmless for any liability incurred by or claims
+asserted against Licensor or such Contributor by reason of any such Additional
+Terms.
+
+7. Versions of the License. Licensor may publish revised and/or new versions of
+this License from time to time. Each version will be given a distinguishing
+version number. Once Original Code has been published under a particular version
+of this License, You may continue to use it under the terms of that version. You
+may also choose to use such Original Code under the terms of any subsequent
+version of this License published by Licensor. No one other than Licensor has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in part
+pre-release, untested, or not fully tested works. The Covered Code may contain
+errors that could cause failures or loss of data, and may be incomplete or
+contain inaccuracies. You expressly acknowledge and agree that use of the
+Covered Code, or any portion thereof, is at Your sole and entire risk. THE
+COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
+ANY KIND AND LICENSOR AND LICENSOR'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS
+"LICENSOR" FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY
+DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF
+SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET
+ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. LICENSOR AND EACH
+CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE
+COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR
+REQUIREMENTS, THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
+ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO ORAL OR
+WRITTEN DOCUMENTATION, INFORMATION OR ADVICE GIVEN BY LICENSOR, A LICENSOR
+AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY. You
+acknowledge that the Covered Code is not intended for use in high risk
+activities, including, but not limited to, the design, construction, operation
+or maintenance of nuclear facilities, aircraft navigation, aircraft
+communication systems, or air traffic control machines in which case the failure
+of the Covered Code could lead to death, personal injury, or severe physical or
+environmental damage. Licensor disclaims any express or implied warranty of
+fitness for such uses.
+
+9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
+SHALL LICENSOR OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR
+YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER
+UNDER A THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE OR STRICT
+LIABILITY), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF LICENSOR OR SUCH
+CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND
+NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. SOME
+JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF INCIDENTAL OR
+CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event
+shall Licensor's total liability to You for all damages (other than as may be
+required by applicable law) under this License exceed the amount of ten dollars
+($10.00).
+
+10. Ownership. Subject to the licenses granted under this License, each
+Contributor retains all rights, title and interest in and to any Modifications
+made by such Contributor. Licensor retains all rights, title and interest in and
+to the Original Code and any Modifications made by or on behalf of Licensor
+("Licensor Modifications"), and such Licensor Modifications will not be
+automatically subject to this License. Licensor may, at its sole discretion,
+choose to license such Licensor Modifications under this License, or on
+different terms from those contained in this License or may choose not to
+license them at all.
+
+11. Termination. 
+
+11.1 Term and Termination. The term of this License is perpetual unless
+terminated as provided below. This License and the rights granted hereunder will
+terminate:
+
+(a) automatically without notice from Licensor if You fail to comply with any
+term(s) of this License and fail to cure such breach within 30 days of becoming
+aware of such breach;
+
+(b) immediately in the event of the circumstances described in Section 12.5(b);
+or
+
+(c) automatically without notice from Licensor if You, at any time during the
+term of this License, commence an action for patent infringement against
+Licensor (including by cross-claim or counter claim in a lawsuit);
+
+(d) upon written notice from Licensor if You, at any time during the term of
+this License, commence an action for patent infringement against any third party
+alleging that the Covered Code itself (excluding combinations with other
+software or hardware) infringes any patent (including by cross-claim or counter
+claim in a lawsuit).
+
+11.2 Effect of Termination. Upon termination, You agree to immediately stop any
+further use, reproduction, modification, sublicensing and distribution of the
+Covered Code and to destroy all copies of the Covered Code that are in your
+possession or control. All sublicenses to the Covered Code which have been
+properly granted prior to termination shall survive any termination of this
+License. Provisions which, by their nature, should remain in effect beyond the
+termination of this License shall survive, including but not limited to Sections
+3, 5, 8, 9, 10, 11, 12.2 and 13. No party will be liable to any other for
+compensation, indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this License will
+be without prejudice to any other right or remedy of any party.
+
+12. Miscellaneous.
+
+12.1 Government End Users. The Covered Code is a "commercial item" as defined in
+FAR 2.101. Government software and technical data rights in the Covered Code
+include only those rights customarily provided to the public as defined in this
+License. This customary commercial license in technical data and software is
+provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
+Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
+Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
+or Computer Software Documentation). Accordingly, all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+12.2 Relationship of Parties. This License will not be construed as creating an
+agency, partnership, joint venture or any other form of legal association
+between or among You, Licensor or any Contributor, and You will not represent to
+the contrary, whether expressly, by implication, appearance or otherwise.
+
+12.3 Independent Development. Nothing in this License will impair Licensor's
+right to acquire, license, develop, have others develop for it, market and/or
+distribute technology or products that perform the same or similar functions as,
+or otherwise compete with, Modifications, Derivative Works, technology or
+products that You may develop, produce, market or distribute.
+
+12.4 Waiver; Construction. Failure by Licensor or any Contributor to enforce any
+provision of this License will not be deemed a waiver of future enforcement of
+that or any other provision. Any law or regulation which provides that the
+language of a contract shall be construed against the drafter will not apply to
+this License.
+
+12.5 Severability. (a) If for any reason a court of competent jurisdiction finds
+any provision of this License, or portion thereof, to be unenforceable, that
+provision of the License will be enforced to the maximum extent permissible so
+as to effect the economic benefits and intent of the parties, and the remainder
+of this License will continue in full force and effect. (b) Notwithstanding the
+foregoing, if applicable law prohibits or restricts You from fully and/or
+specifically complying with Sections 2 and/or 3 or prevents the enforceability
+of either of those Sections, this License will immediately terminate and You
+must immediately discontinue any use of the Covered Code and destroy all copies
+of it that are in your possession or control.
+
+12.6 Dispute Resolution. Any litigation or other dispute resolution between You
+and Licensor relating to this License shall take place in the Seattle,
+Washington, and You and Licensor hereby consent to the personal jurisdiction of,
+and venue in, the state and federal courts within that District with respect to
+this License. The application of the United Nations Convention on Contracts for
+the International Sale of Goods is expressly excluded.
+
+12.7 Export/Import Laws. This software is subject to all export and import laws
+and restrictions and regulations of the country in which you receive the Covered
+Code and You are solely responsible for ensuring that You do not export,
+re-export or import the Covered Code or any direct product thereof in violation
+of any such restrictions, laws or regulations, or without all necessary
+authorizations.
+
+12.8 Entire Agreement; Governing Law. This License constitutes the entire
+agreement between the parties with respect to the subject matter hereof. This
+License shall be governed by the laws of the United States and the State of
+Washington.
+
+Where You are located in the province of Quebec, Canada, the following clause
+applies: The parties hereby confirm that they have requested that this License
+and all related documents be drafted in English. Les parties ont exig&eacute;
+que le pr&eacute;sent contrat et tous les documents connexes soient
+r&eacute;dig&eacute;s en anglais.
+
+								EXHIBIT A.  
+
+"Copyright &copy; 1995-2002
+RealNetworks, Inc. and/or its licensors. All Rights Reserved.
+
+The contents of this file, and the files included with this file, are subject to
+the current version of the RealNetworks Public Source License Version 1.0 (the
+"RPSL") available at https://www.helixcommunity.org/content/rpsl unless you have
+licensed the file under the RealNetworks Community Source License Version 1.0
+(the "RCSL") available at https://www.helixcommunity.org/content/rcsl, in which
+case the RCSL will apply. You may also obtain the license terms directly from
+RealNetworks. You may not use this file except in compliance with the RPSL or,
+if you have a valid RCSL with RealNetworks applicable to this file, the RCSL.
+Please see the applicable RPSL or RCSL for the rights, obligations and
+limitations governing use of the contents of the file.
+
+This file is part of the Helix DNA Technology. RealNetworks is the developer of
+the Original code and owns the copyrights in the portions it created.
+
+This file, and the files included with this file, is distributed and made
+available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
+IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING
+WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s): ____________________________________ 
+
+Technology Compatibility Kit Test
+Suite(s) Location (if licensed under the RCSL): ______________________________ 
+
+Object Code Notice: Helix DNA Client technology included. Copyright (c)
+RealNetworks, Inc., 1995-2002. All rights reserved.
+
+
+								EXHIBIT B 
+
+Compatible Source Licenses for the RealNetworks Public Source License. The
+following list applies to the most recent version of the license as of October
+25, 2002, unless otherwise indicated.
+
+* Academic Free License
+* Apache Software License
+* Apple Public Source License
+* Artistic license
+* Attribution Assurance Licenses
+* BSD license
+* Common Public License (1)
+* Eiffel Forum License
+* GNU General Public License (GPL) (1)
+* GNU Library or "Lesser" General Public License (LGPL) (1)
+* IBM Public License
+* Intel Open Source License
+* Jabber Open Source License
+* MIT license
+* MITRE Collaborative Virtual Workspace License (CVW License)
+* Motosoto License
+* Mozilla Public License 1.0 (MPL)
+* Mozilla Public License 1.1 (MPL)
+* Nokia Open Source License
+* Open Group Test Suite License
+* Python Software Foundation License
+* Ricoh Source Code Public License
+* Sun Industry Standards Source License (SISSL)
+* Sun Public License
+* University of Illinois/NCSA Open Source License
+* Vovida Software License v. 1.0
+* W3C License
+* X.Net License
+* Zope Public License
+* zlib/libpng license
+
+(1) Note: because this license contains certain reciprocal licensing terms that
+purport to extend to independently developed code, You may be prohibited under
+the terms of this otherwise compatible license from using code licensed under
+its terms with Covered Code because Covered Code may only be licensed under the
+RealNetworks Public Source License. Any attempt to apply non RPSL license terms,
+including without limitation the GPL, to Covered Code is expressly forbidden.
+You are responsible for ensuring that Your use of Compatible Source Licensed
+code does not violate either the RPSL or the Compatible Source License.
+
+The latest version of this list can be found at:
+https://www.helixcommunity.org/content/complicense
+
+								EXHIBIT C 
+
+RealNetworks' Trademark policy.  
+
+RealNetworks defines the following trademarks collectively as "Licensor
+Trademarks": "RealNetworks", "RealPlayer", "RealJukebox", "RealSystem",
+"RealAudio", "RealVideo", "RealOne Player", "RealMedia", "Helix" or any other
+trademarks or trade names belonging to RealNetworks.
+
+RealNetworks "Licensor Trademark Policy" forbids any use of Licensor Trademarks
+except as permitted by and in strict compliance at all times with RealNetworks'
+third party trademark usage guidelines which are posted at
+http://www.realnetworks.com/info/helixlogo.html.
+

+ 64 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmmisc_gcc.s

@@ -0,0 +1,64 @@
+#/* ***** BEGIN LICENSE BLOCK *****
+# * Version: RCSL 1.0/RPSL 1.0
+# *
+# * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved.
+# *
+# * The contents of this file, and the files included with this file, are
+# * subject to the current version of the RealNetworks Public Source License
+# * Version 1.0 (the "RPSL") available at
+# * http://www.helixcommunity.org/content/rpsl unless you have licensed
+# * the file under the RealNetworks Community Source License Version 1.0
+# * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl,
+# * in which case the RCSL will apply. You may also obtain the license terms
+# * directly from RealNetworks.  You may not use this file except in
+# * compliance with the RPSL or, if you have a valid RCSL with RealNetworks
+# * applicable to this file, the RCSL.  Please see the applicable RPSL or
+# * RCSL for the rights, obligations and limitations governing use of the
+# * contents of the file.
+# *
+# * This file is part of the Helix DNA Technology. RealNetworks is the
+# * developer of the Original Code and owns the copyrights in the portions
+# * it created.
+# *
+# * This file, and the files included with this file, is distributed and made
+# * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+# * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+# * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
+# * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+# *
+# * Technology Compatibility Kit Test Suite(s) Location:
+# *    http://www.helixcommunity.org/content/tck
+# *
+# * Contributor(s):
+# *
+# * ***** END LICENSE BLOCK ***** */
+
+
+#	AREA	|.text|, CODE, READONLY
+# int xmp3_MULSHIFT32(int x, int y)
+#	EXPORT	xmp3_MULSHIFT32
+
+.cpu cortex-m3
+.fpu softvfp
+.syntax unified
+.thumb
+.text
+
+    .global xmp3_MULSHIFT32
+    .thumb_func
+    xmp3_MULSHIFT32:
+	smull	r2, r0, r1, r0
+	bx lr
+
+
+
+	.global	xmp3_FASTABS
+    .thumb_func
+    xmp3_FASTABS:
+	mov r1, r0
+	mov r0, #0x0
+	eor r0, r1, r1, asr # 31
+	sub r0, r0, r1, asr # 31
+	bx lr
+
+	.END

+ 59 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmmisc_iar.s

@@ -0,0 +1,59 @@
+;/* ***** BEGIN LICENSE BLOCK ***** 
+; * Version: RCSL 1.0/RPSL 1.0 
+; *  
+; * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+; *      
+; * The contents of this file, and the files included with this file, are 
+; * subject to the current version of the RealNetworks Public Source License 
+; * Version 1.0 (the "RPSL") available at 
+; * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+; * the file under the RealNetworks Community Source License Version 1.0 
+; * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+; * in which case the RCSL will apply. You may also obtain the license terms 
+; * directly from RealNetworks.  You may not use this file except in 
+; * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+; * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+; * RCSL for the rights, obligations and limitations governing use of the 
+; * contents of the file.  
+; *  
+; * This file is part of the Helix DNA Technology. RealNetworks is the 
+; * developer of the Original Code and owns the copyrights in the portions 
+; * it created. 
+; *  
+; * This file, and the files included with this file, is distributed and made 
+; * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+; * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+; * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+; * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+; * 
+; * Technology Compatibility Kit Test Suite(s) Location: 
+; *    http://www.helixcommunity.org/content/tck 
+; * 
+; * Contributor(s): 
+; *  
+; * ***** END LICENSE BLOCK ***** */ 
+    SECTION .text:CODE (2)
+	THUMB
+	REQUIRE8
+	PRESERVE8
+
+	EXPORT xmp3_MULSHIFT32
+	EXPORT xmp3_FASTABS
+
+    ; .global xmp3_MULSHIFT32
+    ; .thumb_func
+xmp3_MULSHIFT32 
+	smull	r2, r0, r1, r0
+	BX lr
+	
+
+	;.global	xmp3_FASTABS
+    ;.thumb_func
+xmp3_FASTABS 
+	mov r1, r0
+	mov r0, #0x0
+	eor r0, r1, r1, asr # 31
+	sub r0, r0, r1, asr # 31
+	BX lr
+    
+    END

+ 69 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmmisc_rvds.s

@@ -0,0 +1,69 @@
+;/* ***** BEGIN LICENSE BLOCK ***** 
+; * Version: RCSL 1.0/RPSL 1.0 
+; *  
+; * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+; *      
+; * The contents of this file, and the files included with this file, are 
+; * subject to the current version of the RealNetworks Public Source License 
+; * Version 1.0 (the "RPSL") available at 
+; * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+; * the file under the RealNetworks Community Source License Version 1.0 
+; * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+; * in which case the RCSL will apply. You may also obtain the license terms 
+; * directly from RealNetworks.  You may not use this file except in 
+; * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+; * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+; * RCSL for the rights, obligations and limitations governing use of the 
+; * contents of the file.  
+; *  
+; * This file is part of the Helix DNA Technology. RealNetworks is the 
+; * developer of the Original Code and owns the copyrights in the portions 
+; * it created. 
+; *  
+; * This file, and the files included with this file, is distributed and made 
+; * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+; * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+; * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+; * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+; * 
+; * Technology Compatibility Kit Test Suite(s) Location: 
+; *    http://www.helixcommunity.org/content/tck 
+; * 
+; * Contributor(s): 
+; *  
+; * ***** END LICENSE BLOCK ***** */ 
+
+
+	AREA	|.text|, CODE, READONLY
+	THUMB
+	REQUIRE8
+	PRESERVE8
+; int xmp3_MULSHIFT32(int x, int y)
+	EXPORT xmp3_MULSHIFT32
+	EXPORT xmp3_FASTABS
+
+;.cpu cortex-m3
+;.fpu softvfp   
+;.syntax unified 
+;.thumb
+;.text
+
+    ; .global xmp3_MULSHIFT32
+    ; .thumb_func
+xmp3_MULSHIFT32 PROC
+	smull	r2, r0, r1, r0
+;	mov		pc, lr	  // KJ changed to BX for Cortex
+	BX lr
+	ENDP
+
+	;.global	xmp3_FASTABS
+    ;.thumb_func
+xmp3_FASTABS PROC
+	mov r1, r0
+	mov r0, #0x0
+	eor r0, r1, r1, asr # 31
+	sub r0, r0, r1, asr # 31
+	bx lr
+	ENDP
+	
+	END

+ 382 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmpoly_thumb2_gcc.s

@@ -0,0 +1,382 @@
+.cpu cortex-m3
+.fpu softvfp
+.syntax unified
+.thumb
+.text
+
+/*.equ  PCM ,  r0*/
+PCM  .req    r0
+VB1  .req    r1
+COEF .req    r2
+
+VLO  .req    r0
+VHI  .req    r3
+
+SUM1LL .req  r4
+SUM1LH .req  r5
+SUM2LL .req  r6
+SUM2LH .req  r7
+SUM1RL .req  r8
+SUM1RH .req  r9
+SUM2RL .req  r10
+SUM2RH .req  r11
+
+CF1    .req  r12
+CF2    .req  r14
+
+SIGN   .req  r12
+MAXPOS .req  r14
+
+I      .req  r12
+
+.global         RNDVAL
+/* RNDVAL    SETA    (1 << ((32 - 12) + (6 - 1))) */
+.equ   RNDVAL,    0x02000000   /*(1 << (25))     */
+
+    /*; C64TOS - clip 64-bit accumulator to short (no rounding)
+    ;   xl, xh = value (lo 32, hi 32)
+    ;   input assumed to have 6 fraction bits
+    ;   sign = temp variable to use for sign
+    ;   maxPos = 0x00007fff (takes 2 instr. to generate - calculating
+    ;              once and using repeatedly saves if you do several CTOS in a row) */
+    .macro   C64TOS    _xl, _xh, _sign, _maxPos
+    mov        \_xl, \_xl, lsr #(20+6)
+    orr        \_xl, \_xl, \_xh, lsl #(12-6)
+    mov        \_sign, \_xl, ASR #31
+    cmp        \_sign, \_xl, ASR #15
+    it ne
+    eorne        \_xl, \_sign, \_maxPos
+    .endm
+
+  /*  ; MC0S - process 2 taps, 1 sample per channel (sample 0) */
+  /*  ;   x = vb1 offset */
+    .MACRO        MC0S    val_x
+
+    ldr        CF1, [COEF], #4
+    ldr        CF2, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\val_x))]
+    ldr        VHI, [VB1, #(4*(23 - \val_x))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    ldr        VLO, [VB1, #(4*(32 + \val_x))]
+    rsb        CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+    ldr        VHI, [VB1, #(4*(32 + 23 - \val_x))]
+
+    smlal    SUM1RL, SUM1RH, VLO, CF1
+    smlal    SUM1RL, SUM1RH, VHI, CF2
+
+    .ENDM
+
+/*    ; MC1S - process 2 taps, 1 sample per channel (sample 16)
+    ;   x = vb1 offset */
+    .MACRO         MC1S    val_x
+
+    ldr        CF1, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\val_x))]
+    ldr        VHI, [VB1, #(4*(32 + \val_x))]
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM1RL, SUM1RH, VHI, CF1
+
+    .ENDM
+
+/*    ; MC2S - process 2 taps, 2 samples per channel
+    ;   x = vb1 offset */
+    .MACRO         MC2S    val_x
+
+    /* ; load data as far as possible in advance of using it */
+    ldr        CF1, [COEF], #4
+    ldr        CF2, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\val_x))]
+    ldr        VHI, [VB1, #(4*(23 - \val_x))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM2LL, SUM2LH, VLO, CF2
+    rsb        CF2, CF2, #0
+    smlal    SUM2LL, SUM2LH, VHI, CF1
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+
+    ldr        VHI, [VB1, #(4*(32 + 23 - \val_x))]
+    ldr        VLO, [VB1, #(4*(32 + \val_x))]
+
+    smlal    SUM1RL, SUM1RH, VHI, CF2
+    smlal    SUM2RL, SUM2RH, VHI, CF1
+    rsb        CF2, CF2, #0
+    smlal    SUM1RL, SUM1RH, VLO, CF1
+    smlal    SUM2RL, SUM2RH, VLO, CF2
+    .ENDM
+
+
+/* ; void PolyphaseStereo(short *pcm, int *vbuf, const int *coefBase) */
+ .global xmp3_PolyphaseStereo
+.thumb_func
+    xmp3_PolyphaseStereo:
+
+    stmfd    sp!, {r4-r11, r14}
+
+/*    ; clear out stack space for 2 local variables (4 bytes each) */
+    sub        sp, sp, #8
+    str        PCM , [sp, #4]                /*; sp[1] = pcm pointer */
+
+/*    ; special case, output sample 0 */
+    mov        SUM1LL, #RNDVAL               /* ; load rndVal (low 32) */
+    mov        SUM1RL, #RNDVAL               /* ; load rndVal (low 32) */
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+
+    MC0S    0
+    MC0S    1
+    MC0S    2
+    MC0S    3
+    MC0S    4
+    MC0S    5
+    MC0S    6
+    MC0S    7
+
+    ldr        PCM, [sp, #4]         /* ; load pcm pointer */
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM1RL, SUM1RH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*0)]
+    strh    SUM1RL, [PCM, #(2*1)]
+
+   /* ; special case, output sample 16 */
+    add        COEF, COEF, #(4*(256-16))  /*   ; coef = coefBase + 256 (was coefBase + 16 after MC0S block) */
+    add        VB1, VB1, #(4*1024)          /*   ; vb1 = vbuf + 64*16 */
+
+    mov        SUM1LL, #RNDVAL                 /* ; load rndVal (low 32) */
+    mov        SUM1RL, #RNDVAL                 /* ; load rndVal (low 32)  */
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+
+    MC1S    0
+    MC1S    1
+    MC1S    2
+    MC1S    3
+    MC1S    4
+    MC1S    5
+    MC1S    6
+    MC1S    7
+
+    ldr        PCM, [sp, #4]        /* load pcm pointer */
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM1RL, SUM1RH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*(2*16+0))]
+    strh    SUM1RL, [PCM, #(2*(2*16+1))]
+
+    /*; main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17 */
+    sub        COEF, COEF, #(4*(264-16))    /* ; coef = coefBase + 16 (was coefBase + 264 after MC1S block) */
+    sub        VB1, VB1, #(4*(1024-64))     /* ; vb1 = vbuf + 64 (was vbuf + 64*16 after MC1S block) */
+    mov        I, #15                       /* ; loop counter, count down */
+    add        PCM, PCM, #(2*2)             /* ; pcm+=2 */
+
+LoopPS:
+    str        I, [sp, #0]                  /*  ; sp[0] = i (loop counter) */
+    str        PCM, [sp, #4]               /* ; sp[1] = pcm (pointer to pcm buffer) */
+
+    mov        SUM1LL, #RNDVAL              /*  ; load rndVal (low 32) */
+    mov        SUM1RL, #RNDVAL             /*  ; load rndVal (low 32) */
+    mov        SUM2LL, #RNDVAL              /*  ; load rndVal (low 32) */
+    mov        SUM2RL, #RNDVAL              /*  ; load rndVal (low 32) */
+
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+    mov        SUM2LH, #0
+    mov        SUM2RH, #0
+
+    MC2S    0
+    MC2S    1
+    MC2S    2
+    MC2S    3
+    MC2S    4
+    MC2S    5
+    MC2S    6
+    MC2S    7
+
+    add        VB1, VB1, #(4*64)    /*; vb1 += 64*/
+
+    ldr        PCM, [sp, #4]        /*; load pcm pointer*/
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM1RL, SUM1RH, SIGN, MAXPOS
+    C64TOS    SUM2LL, SUM2LH, SIGN, MAXPOS
+    C64TOS    SUM2RL, SUM2RH, SIGN, MAXPOS
+
+    ldr        I, [sp, #0]            /*; load loop counter*/
+    add        CF2, PCM, I, lsl #3    /*; CF2 = PCM + 4*i (short offset)*/
+    strh    SUM2LL, [CF2], #2    /*; *(pcm + 2*2*i + 0)*/
+    strh    SUM2RL, [CF2], #2    /*; *(pcm + 2*2*i + 1)*/
+
+    strh    SUM1LL, [PCM], #2    /*; *(pcm + 0)*/
+    strh    SUM1RL, [PCM], #2    /*; *(pcm + 1)*/
+
+    subs    I, I, #1
+    bne        LoopPS
+
+   /* ; restore stack pointer*/
+    add        sp, sp, #8
+
+    ldmfd    sp!, {r4-r11, pc}
+   /* ENDFUNC*/
+
+/*;; MONO PROCESSING*/
+
+    /*; MC0M - process 2 taps, 1 sample (sample 0)*/
+    /*;   x = vb1 offset*/
+    .MACRO MC0M    val_x
+
+    ldr        CF1, [COEF], #4
+    ldr        CF2, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\val_x))]
+    ldr        VHI, [VB1, #(4*(23 - \val_x))]
+
+    rsb        CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+
+    .endm
+    /*MEND    ; MC0M*/
+
+    /*; MC1M - process 2 taps, 1 sample (sample 16)*/
+    /*;   x = vb1 offset*/
+    .MACRO   MC1M    val_x
+
+    ldr        CF1, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\val_x))]
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+
+    .endm
+    /*MEND    ; MC1M*/
+
+  /*  ; MC2M - process 2 taps, 2 samples*/
+  /*  ;   x = vb1 offset*/
+    .MACRO  MC2M    val_x
+
+  /*  ; load data as far as possible in advance of using it*/
+    ldr        CF1, [COEF], #4
+    ldr        CF2, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\val_x))]
+    ldr        VHI, [VB1, #(4*(23 - \val_x))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM2LL, SUM2LH, VLO, CF2
+    rsb        CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+    smlal    SUM2LL, SUM2LH, VHI, CF1
+
+    .endm
+    /*MEND    ; MC2M*/
+
+/*; void PolyphaseMono(short *pcm, int *vbuf, const int *coefBase)*/
+
+.global xmp3_PolyphaseMono
+.thumb_func
+    xmp3_PolyphaseMono:
+
+    stmfd    sp!, {r4-r11, r14}
+
+    /*; clear out stack space for 4 local variables (4 bytes each)*/
+    sub        sp, sp, #8
+    str        PCM, [sp, #4]            /*; sp[1] = pcm pointer*/
+
+  /*  ; special case, output sample 0*/
+    mov        SUM1LL, #RNDVAL            /*    ; load rndVal (low 32)*/
+    mov        SUM1LH, #0
+
+    MC0M    0
+    MC0M    1
+    MC0M    2
+    MC0M    3
+    MC0M    4
+    MC0M    5
+    MC0M    6
+    MC0M    7
+
+    ldr        PCM, [sp, #4]        /*; load pcm pointer*/
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    strh    SUM1LL, [PCM, #(2*0)]
+
+  /*  ; special case, output sample 16*/
+    add        COEF, COEF, #(4*(256-16))   /* ; coef = coefBase + 256 (was coefBase + 16 after MC0M block)*/
+    add        VB1, VB1, #(4*1024)          /*  ; vb1 = vbuf + 64*16*/
+
+    mov        SUM1LL, #RNDVAL               /* ; load rndVal (low 32)*/
+    mov        SUM1LH, #0
+
+    MC1M    0
+    MC1M    1
+    MC1M    2
+    MC1M    3
+    MC1M    4
+    MC1M    5
+    MC1M    6
+    MC1M    7
+
+    ldr        PCM, [sp, #4]     /*   ; load pcm pointer*/
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*16)]
+
+   /* ; main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17*/
+    sub        COEF, COEF, #(4*(264-16))  /*  ; coef = coefBase + 16 (was coefBase + 264 after MC1M block)*/
+    sub        VB1, VB1, #(4*(1024-64))  /*  ; vb1 = vbuf + 64 (was vbuf + 64*16 after MC1M block)*/
+    mov        I, #15                      /*  ; loop counter, count down*/
+    add        PCM, PCM, #(2)              /*  ; pcm++*/
+
+LoopPM:
+    str        I, [sp, #0]                /*    ; sp[0] = i (loop counter)*/
+    str        PCM, [sp, #4]             /*   ; sp[1] = pcm (pointer to pcm buffer)*/
+
+    mov        SUM1LL, #RNDVAL          /*      ; load rndVal (low 32)*/
+    mov        SUM2LL, #RNDVAL        /*        ; load rndVal (low 32)*/
+    mov        SUM1LH, #0
+    mov        SUM2LH, #0
+
+    MC2M    0
+    MC2M    1
+    MC2M    2
+    MC2M    3
+    MC2M    4
+    MC2M    5
+    MC2M    6
+    MC2M    7
+
+    add        VB1, VB1, #(4*64)    /*; vb1 += 64*/
+
+    ldr        PCM, [sp, #4]        /*; load pcm pointer*/
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM2LL, SUM2LH, SIGN, MAXPOS
+
+    ldr        I, [sp, #0]            /*; load loop counter*/
+    add        CF2, PCM, I, lsl #2    /*; CF2 = PCM + 2*i (short offset)*/
+    strh    SUM2LL, [CF2], #2    ; /**(pcm + 2*i + 0)*/
+    strh    SUM1LL, [PCM], #2    ; /**(pcm + 0) ; pcm++*/
+
+    subs    I, I, #1
+    bne        LoopPM
+
+  /*  ; restore stack pointer*/
+    add        sp, sp, #8
+
+    ldmfd    sp!, {r4-r11, pc}
+
+
+    .END

+ 377 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmpoly_thumb2_iar.s

@@ -0,0 +1,377 @@
+    SECTION .text:CODE:NOROOT(2)
+    THUMB
+	REQUIRE8
+	PRESERVE8
+
+#define PCM    r0
+#define VB1    r1
+#define COEF   r2
+
+#define VLO    r0       
+#define VHI    r3       
+
+#define SUM1LL r4
+#define SUM1LH r5
+#define SUM2LL r6
+#define SUM2LH r7
+#define SUM1RL r8
+#define SUM1RH r9
+#define SUM2RL r10
+#define SUM2RH r11
+
+#define CF1    r12
+#define CF2    r14        
+
+#define SIGN   r12 
+#define MAXPOS r14 
+
+#define I      r12    
+
+	PUBLIC RNDVAL
+RNDVAL    EQU    (1 << ((32 - 12) + (6 - 1)))
+
+    ; C64TOS - clip 64-bit accumulator to short (no rounding)
+    ;   xl, xh = value (lo 32, hi 32)
+    ;   input assumed to have 6 fraction bits
+    ;   sign = temp variable to use for sign
+    ;   maxPos = 0x00007fff (takes 2 instr. to generate - calculating
+    ;              once and using repeatedly saves if you do several CTOS in a row) */
+    MACRO C64TOS    xl, xh, sign,maxPos
+	
+    mov        \0, \0, lsr #(20+6)
+    orr        \0, \0, \1, lsl #(12-6)
+    mov        \2, \0, ASR #31
+    cmp        \2, \0, ASR #15
+    it ne
+    eorne      \0, \2, \3   
+    ENDM ; C64TOS
+
+    ; MC0S - process 2 taps, 1 sample per channel (sample 0) */
+    ;   x = vb1 offset */
+    MACRO MC0S x
+
+    ldr        CF1, [COEF], #4
+    ldr        CF2, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\0))]
+    ldr        VHI, [VB1, #(4*(23 - \0))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    ldr        VLO, [VB1, #(4*(32 + \0))]
+    rsb        CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+    ldr        VHI, [VB1, #(4*(32 + 23 - \0))]
+    
+    smlal    SUM1RL, SUM1RH, VLO, CF1
+    smlal    SUM1RL, SUM1RH, VHI, CF2
+
+	ENDM ; MCOS
+
+    ; MC1S - process 2 taps, 1 sample per channel (sample 16)
+    ;   x = vb1 offset
+    MACRO MC1S    x
+
+    ldr        CF1, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\0))]
+    ldr        VHI, [VB1, #(4*(32 + \0))]
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM1RL, SUM1RH, VHI, CF1
+    
+	ENDM ; MC1S
+
+    ; MC2S - process 2 taps, 2 samples per channel
+    ;   x = vb1 offset
+    MACRO MC2S    x
+
+    ; load data as far as possible in advance of using it
+    ldr      CF1, [COEF], #4
+    ldr      CF2, [COEF], #4
+    ldr      VLO, [VB1, #(4*(\0))]
+    ldr      VHI, [VB1, #(4*(23 - \0))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM2LL, SUM2LH, VLO, CF2
+    rsb      CF2, CF2, #0
+    smlal    SUM2LL, SUM2LH, VHI, CF1
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+
+    ldr      VHI, [VB1, #(4*(32 + 23 - \0))]
+    ldr      VLO, [VB1, #(4*(32 + \0))]
+
+    smlal    SUM1RL, SUM1RH, VHI, CF2
+    smlal    SUM2RL, SUM2RH, VHI, CF1
+    rsb      CF2, CF2, #0
+    smlal    SUM1RL, SUM1RH, VLO, CF1
+    smlal    SUM2RL, SUM2RH, VLO, CF2
+    
+	ENDM ; MC2S
+
+
+; void PolyphaseStereo(short *pcm, int *vbuf, const int *coefBase)
+xmp3_PolyphaseStereo
+	EXPORT xmp3_PolyphaseStereo
+
+    stmfd    sp!, {r4-r11, r14}
+    
+	; clear out stack space for 2 local variables (4 bytes each)
+    sub        sp, sp, #8
+    str        PCM , [sp, #4]                ; sp[1] = pcm pointer
+
+    ; special case, output sample 0
+    mov        SUM1LL, #RNDVAL               ; load rndVal (low 32)
+    mov        SUM1RL, #RNDVAL               ; load rndVal (low 32)
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+
+    MC0S    0
+    MC0S    1
+    MC0S    2
+    MC0S    3
+    MC0S    4
+    MC0S    5
+    MC0S    6
+    MC0S    7
+
+    ldr        PCM, [sp, #4]         ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+    
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM1RL, SUM1RH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*0)]
+    strh    SUM1RL, [PCM, #(2*1)]
+
+	; special case, output sample 16
+    add        COEF, COEF, #(4*(256-16))    ; coef = coefBase + 256 (was coefBase + 16 after MC0S block)
+    add        VB1, VB1, #(4*1024)          ; vb1 = vbuf + 64*16
+    
+    mov        SUM1LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1RL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+
+    MC1S    0
+    MC1S    1
+    MC1S    2
+    MC1S    3
+    MC1S    4
+    MC1S    5
+    MC1S    6
+    MC1S    7
+
+    ldr     PCM, [sp, #4]        ; load pcm pointer
+    mov     MAXPOS, #0x7f00
+    orr     MAXPOS, MAXPOS, #0xff
+    
+    C64TOS  SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS  SUM1RL, SUM1RH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*(2*16+0))]
+    strh    SUM1RL, [PCM, #(2*(2*16+1))]
+
+    ; main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17
+    sub        COEF, COEF, #(4*(264-16))    ; coef = coefBase + 16 (was coefBase + 264 after MC1S block)
+    sub        VB1, VB1, #(4*(1024-64))     ; vb1 = vbuf + 64 (was vbuf + 64*16 after MC1S block)
+    mov        I, #15                       ; loop counter, count down
+    add        PCM, PCM, #(2*2)             ; pcm+=2
+    
+LoopPS
+    str        I, [sp, #0]                  ; sp[0] = i (loop counter)
+    str        PCM, [sp, #4]                ; sp[1] = pcm (pointer to pcm buffer)
+    
+    mov        SUM1LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1RL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM2LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM2RL, #RNDVAL              ; load rndVal (low 32)
+    
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+    mov        SUM2LH, #0
+    mov        SUM2RH, #0
+
+    MC2S    0
+    MC2S    1
+    MC2S    2
+    MC2S    3
+    MC2S    4
+    MC2S    5
+    MC2S    6
+    MC2S    7
+    
+    add        VB1, VB1, #(4*64)    ; vb1 += 64
+    
+    ldr        PCM, [sp, #4]        ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+    
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM1RL, SUM1RH, SIGN, MAXPOS
+    C64TOS    SUM2LL, SUM2LH, SIGN, MAXPOS
+    C64TOS    SUM2RL, SUM2RH, SIGN, MAXPOS
+    
+    ldr        I, [sp, #0]            ; load loop counter
+    add        CF2, PCM, I, lsl #3    ; CF2 = PCM + 4*i (short offset)
+    strh    SUM2LL, [CF2], #2    	  ; *(pcm + 2*2*i + 0)
+    strh    SUM2RL, [CF2], #2         ; *(pcm + 2*2*i + 1)
+
+    strh    SUM1LL, [PCM], #2         ; *(pcm + 0)
+    strh    SUM1RL, [PCM], #2         ; *(pcm + 1)
+    
+    subs    I, I, #1
+    bne     LoopPS
+
+    ; restore stack pointer
+    add        sp, sp, #8
+
+    ldmfd    sp!, {r4-r11, pc}
+	
+	
+
+; MONOESSING
+
+    ; MC0M - process 2 taps, 1 sample (sample 0)
+    ;   x = vb1 offset
+    MACRO MC0M    x
+
+    ldr      CF1, [COEF], #4
+    ldr      CF2, [COEF], #4
+    ldr      VLO, [VB1, #(4*(\0))]
+    ldr      VHI, [VB1, #(4*(23 - \0))]
+
+    rsb      CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+
+    ENDM    ; MC0M
+
+	; MC1M - process 2 taps, 1 sample (sample 16)
+    ;   x = vb1 offset
+    MACRO MC1M    x
+
+    ldr        CF1, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\0))]
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    
+    ENDM    ; MC1M
+
+    ; MC2M - process 2 taps, 2 samples
+    ;   x = vb1 offset
+	MACRO MC2M    x
+
+    ; load data as far as possible in advance of using it
+    ldr        CF1, [COEF], #4
+    ldr        CF2, [COEF], #4
+    ldr        VLO, [VB1, #(4*(\0))]
+    ldr        VHI, [VB1, #(4*(23 - \0))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM2LL, SUM2LH, VLO, CF2
+    rsb        CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+    smlal    SUM2LL, SUM2LH, VHI, CF1
+
+    ENDM    ; MC2M
+
+; void PolyphaseMono(short *pcm, int *vbuf, const int *coefBase)
+
+xmp3_PolyphaseMono
+	EXPORT xmp3_PolyphaseMono
+
+    stmfd    sp!, {r4-r11, r14}
+    
+    ; clear out stack space for 4 local variables (4 bytes each)
+    sub        sp, sp, #8
+    str        PCM, [sp, #4]            ; sp[1] = pcm pointer
+
+    ; special case, output sample 0
+    mov        SUM1LL, #RNDVAL          ; load rndVal (low 32)
+    mov        SUM1LH, #0
+
+    MC0M    0
+    MC0M    1
+    MC0M    2
+    MC0M    3
+    MC0M    4
+    MC0M    5
+    MC0M    6
+    MC0M    7
+
+    ldr        PCM, [sp, #4]        ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+    
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    strh    SUM1LL, [PCM, #(2*0)]
+
+    ; special case, output sample 16
+    add        COEF, COEF, #(4*(256-16))    ; coef = coefBase + 256 (was coefBase + 16 after MC0M block)
+    add        VB1, VB1, #(4*1024)          ; vb1 = vbuf + 64*16
+    
+    mov        SUM1LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1LH, #0
+
+    MC1M    0
+    MC1M    1
+    MC1M    2
+    MC1M    3
+    MC1M    4
+    MC1M    5
+    MC1M    6
+    MC1M    7
+
+    ldr        PCM, [sp, #4]        ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+    
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*16)]
+
+    ; main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17
+    sub        COEF, COEF, #(4*(264-16))    ; coef = coefBase + 16 (was coefBase + 264 after MC1M block)
+    sub        VB1, VB1, #(4*(1024-64))     ; vb1 = vbuf + 64 (was vbuf + 64*16 after MC1M block)
+    mov        I, #15                       ; loop counter, count down
+    add        PCM, PCM, #(2)               ; pcm++
+
+LoopPM
+    str        I, [sp, #0]                  ; sp[0] = i (loop counter)
+    str        PCM, [sp, #4]                ; sp[1] = pcm (pointer to pcm buffer)
+    
+    mov        SUM1LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM2LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1LH, #0
+    mov        SUM2LH, #0
+
+    MC2M    0
+    MC2M    1
+    MC2M    2
+    MC2M    3
+    MC2M    4
+    MC2M    5
+    MC2M    6
+    MC2M    7
+    
+    add        VB1, VB1, #(4*64)    ; vb1 += 64
+    
+    ldr        PCM, [sp, #4]        ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+    
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM2LL, SUM2LH, SIGN, MAXPOS
+    
+    ldr        I, [sp, #0]            ; load loop counter*/
+    add        CF2, PCM, I, lsl #2    ; CF2 = PCM + 2*i (short offset)*/
+    strh    SUM2LL, [CF2], #2    	  ; (pcm + 2*i + 0)
+    strh    SUM1LL, [PCM], #2         ; (pcm + 0) ; pcm++
+    
+    subs    I, I, #1
+    bne        LoopPM
+
+    ; restore stack pointer
+    add        sp, sp, #8
+
+    ldmfd    sp!, {r4-r11, pc}
+    
+
+    END

+ 384 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/arm/asmpoly_thumb2_rvds.s

@@ -0,0 +1,384 @@
+	AREA |.text|, CODE, READONLY, ALIGN=2
+	THUMB
+	REQUIRE8
+	PRESERVE8
+
+PCM  RN    r0
+VB1  RN    r1
+COEF RN    r2
+
+VLO  RN    r0
+VHI  RN    r3
+
+SUM1LL RN  r4
+SUM1LH RN  r5
+SUM2LL RN  r6
+SUM2LH RN  r7
+SUM1RL RN  r8
+SUM1RH RN  r9
+SUM2RL RN  r10
+SUM2RH RN  r11
+
+CF1    RN  r12
+CF2    RN  r14
+
+SIGN   RN  r12
+MAXPOS RN  r14
+
+I      RN  r12
+
+	GBLA RNDVAL
+RNDVAL    SETA    (1 << ((32 - 12) + (6 - 1)))
+
+    ; C64TOS - clip 64-bit accumulator to short (no rounding)
+    ;   xl, xh = value (lo 32, hi 32)
+    ;   input assumed to have 6 fraction bits
+    ;   sign = temp variable to use for sign
+    ;   maxPos = 0x00007fff (takes 2 instr. to generate - calculating
+    ;              once and using repeatedly saves if you do several CTOS in a row) */
+    MACRO
+	C64TOS    $xl, $xh, $sign, $maxPos
+
+    mov        $xl, $xl, lsr #(20+6)
+    orr        $xl, $xl, $xh, lsl #(12-6)
+    mov        $sign, $xl, ASR #31
+    cmp        $sign, $xl, ASR #15
+    it ne
+    eorne      $xl, $sign, $maxPos
+    MEND ; C64TOS
+
+    ; MC0S - process 2 taps, 1 sample per channel (sample 0) */
+    ;   x = vb1 offset */
+    MACRO
+	MC0S    $x
+
+    ldr        CF1, [COEF], #4
+    ldr        CF2, [COEF], #4
+    ldr        VLO, [VB1, #(4*($x))]
+    ldr        VHI, [VB1, #(4*(23 - $x))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    ldr        VLO, [VB1, #(4*(32 + $x))]
+    rsb        CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+    ldr        VHI, [VB1, #(4*(32 + 23 - $x))]
+
+    smlal    SUM1RL, SUM1RH, VLO, CF1
+    smlal    SUM1RL, SUM1RH, VHI, CF2
+
+	MEND ; MCOS
+
+    ; MC1S - process 2 taps, 1 sample per channel (sample 16)
+    ;   x = vb1 offset
+    MACRO
+	MC1S    $x
+
+    ldr        CF1, [COEF], #4
+    ldr        VLO, [VB1, #(4*($x))]
+    ldr        VHI, [VB1, #(4*(32 + $x))]
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM1RL, SUM1RH, VHI, CF1
+
+	MEND ; MC1S
+
+    ; MC2S - process 2 taps, 2 samples per channel
+    ;   x = vb1 offset
+    MACRO
+	MC2S    $x
+
+    ; load data as far as possible in advance of using it
+    ldr      CF1, [COEF], #4
+    ldr      CF2, [COEF], #4
+    ldr      VLO, [VB1, #(4*($x))]
+    ldr      VHI, [VB1, #(4*(23 - $x))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM2LL, SUM2LH, VLO, CF2
+    rsb      CF2, CF2, #0
+    smlal    SUM2LL, SUM2LH, VHI, CF1
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+
+    ldr      VHI, [VB1, #(4*(32 + 23 - $x))]
+    ldr      VLO, [VB1, #(4*(32 + $x))]
+
+    smlal    SUM1RL, SUM1RH, VHI, CF2
+    smlal    SUM2RL, SUM2RH, VHI, CF1
+    rsb      CF2, CF2, #0
+    smlal    SUM1RL, SUM1RH, VLO, CF1
+    smlal    SUM2RL, SUM2RH, VLO, CF2
+
+	MEND ; MC2S
+
+
+; void PolyphaseStereo(short *pcm, int *vbuf, const int *coefBase)
+xmp3_PolyphaseStereo PROC
+	EXPORT xmp3_PolyphaseStereo
+
+    stmfd    sp!, {r4-r11, r14}
+
+	; clear out stack space for 2 local variables (4 bytes each)
+    sub        sp, sp, #8
+    str        PCM , [sp, #4]                ; sp[1] = pcm pointer
+
+    ; special case, output sample 0
+    mov        SUM1LL, #RNDVAL               ; load rndVal (low 32)
+    mov        SUM1RL, #RNDVAL               ; load rndVal (low 32)
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+
+    MC0S    0
+    MC0S    1
+    MC0S    2
+    MC0S    3
+    MC0S    4
+    MC0S    5
+    MC0S    6
+    MC0S    7
+
+    ldr        PCM, [sp, #4]         ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM1RL, SUM1RH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*0)]
+    strh    SUM1RL, [PCM, #(2*1)]
+
+	; special case, output sample 16
+    add        COEF, COEF, #(4*(256-16))    ; coef = coefBase + 256 (was coefBase + 16 after MC0S block)
+    add        VB1, VB1, #(4*1024)          ; vb1 = vbuf + 64*16
+
+    mov        SUM1LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1RL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+
+    MC1S    0
+    MC1S    1
+    MC1S    2
+    MC1S    3
+    MC1S    4
+    MC1S    5
+    MC1S    6
+    MC1S    7
+
+    ldr     PCM, [sp, #4]        ; load pcm pointer
+    mov     MAXPOS, #0x7f00
+    orr     MAXPOS, MAXPOS, #0xff
+
+    C64TOS  SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS  SUM1RL, SUM1RH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*(2*16+0))]
+    strh    SUM1RL, [PCM, #(2*(2*16+1))]
+
+    ; main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17
+    sub        COEF, COEF, #(4*(264-16))    ; coef = coefBase + 16 (was coefBase + 264 after MC1S block)
+    sub        VB1, VB1, #(4*(1024-64))     ; vb1 = vbuf + 64 (was vbuf + 64*16 after MC1S block)
+    mov        I, #15                       ; loop counter, count down
+    add        PCM, PCM, #(2*2)             ; pcm+=2
+
+LoopPS
+    str        I, [sp, #0]                  ; sp[0] = i (loop counter)
+    str        PCM, [sp, #4]                ; sp[1] = pcm (pointer to pcm buffer)
+
+    mov        SUM1LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1RL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM2LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM2RL, #RNDVAL              ; load rndVal (low 32)
+
+    mov        SUM1LH, #0
+    mov        SUM1RH, #0
+    mov        SUM2LH, #0
+    mov        SUM2RH, #0
+
+    MC2S    0
+    MC2S    1
+    MC2S    2
+    MC2S    3
+    MC2S    4
+    MC2S    5
+    MC2S    6
+    MC2S    7
+
+    add        VB1, VB1, #(4*64)    ; vb1 += 64
+
+    ldr        PCM, [sp, #4]        ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM1RL, SUM1RH, SIGN, MAXPOS
+    C64TOS    SUM2LL, SUM2LH, SIGN, MAXPOS
+    C64TOS    SUM2RL, SUM2RH, SIGN, MAXPOS
+
+    ldr        I, [sp, #0]            ; load loop counter
+    add        CF2, PCM, I, lsl #3    ; CF2 = PCM + 4*i (short offset)
+    strh    SUM2LL, [CF2], #2    	  ; *(pcm + 2*2*i + 0)
+    strh    SUM2RL, [CF2], #2         ; *(pcm + 2*2*i + 1)
+
+    strh    SUM1LL, [PCM], #2         ; *(pcm + 0)
+    strh    SUM1RL, [PCM], #2         ; *(pcm + 1)
+
+    subs    I, I, #1
+    bne     LoopPS
+
+    ; restore stack pointer
+    add        sp, sp, #8
+
+    ldmfd    sp!, {r4-r11, pc}
+
+	ENDP
+
+; MONO PROCESSING
+
+    ; MC0M - process 2 taps, 1 sample (sample 0)
+    ;   x = vb1 offset
+    MACRO
+	MC0M    $x
+
+    ldr      CF1, [COEF], #4
+    ldr      CF2, [COEF], #4
+    ldr      VLO, [VB1, #(4*($x))]
+    ldr      VHI, [VB1, #(4*(23 - $x))]
+
+    rsb      CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+
+    MEND    ; MC0M
+
+	; MC1M - process 2 taps, 1 sample (sample 16)
+    ;   x = vb1 offset
+    MACRO
+	MC1M    $x
+
+    ldr        CF1, [COEF], #4
+    ldr        VLO, [VB1, #(4*($x))]
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+
+    MEND    ; MC1M
+
+    ; MC2M - process 2 taps, 2 samples
+    ;   x = vb1 offset
+	MACRO
+	MC2M    $x
+
+    ; load data as far as possible in advance of using it
+    ldr        CF1, [COEF], #4
+    ldr        CF2, [COEF], #4
+    ldr        VLO, [VB1, #(4*($x))]
+    ldr        VHI, [VB1, #(4*(23 - $x))]
+
+    smlal    SUM1LL, SUM1LH, VLO, CF1
+    smlal    SUM2LL, SUM2LH, VLO, CF2
+    rsb        CF2, CF2, #0
+    smlal    SUM1LL, SUM1LH, VHI, CF2
+    smlal    SUM2LL, SUM2LH, VHI, CF1
+
+    MEND    ; MC2M
+
+; void PolyphaseMono(short *pcm, int *vbuf, const int *coefBase)
+
+xmp3_PolyphaseMono PROC
+	EXPORT xmp3_PolyphaseMono
+
+    stmfd    sp!, {r4-r11, r14}
+
+    ; clear out stack space for 4 local variables (4 bytes each)
+    sub        sp, sp, #8
+    str        PCM, [sp, #4]            ; sp[1] = pcm pointer
+
+    ; special case, output sample 0
+    mov        SUM1LL, #RNDVAL          ; load rndVal (low 32)
+    mov        SUM1LH, #0
+
+    MC0M    0
+    MC0M    1
+    MC0M    2
+    MC0M    3
+    MC0M    4
+    MC0M    5
+    MC0M    6
+    MC0M    7
+
+    ldr        PCM, [sp, #4]        ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    strh    SUM1LL, [PCM, #(2*0)]
+
+    ; special case, output sample 16
+    add        COEF, COEF, #(4*(256-16))    ; coef = coefBase + 256 (was coefBase + 16 after MC0M block)
+    add        VB1, VB1, #(4*1024)          ; vb1 = vbuf + 64*16
+
+    mov        SUM1LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1LH, #0
+
+    MC1M    0
+    MC1M    1
+    MC1M    2
+    MC1M    3
+    MC1M    4
+    MC1M    5
+    MC1M    6
+    MC1M    7
+
+    ldr        PCM, [sp, #4]        ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+
+    strh    SUM1LL, [PCM, #(2*16)]
+
+    ; main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17
+    sub        COEF, COEF, #(4*(264-16))    ; coef = coefBase + 16 (was coefBase + 264 after MC1M block)
+    sub        VB1, VB1, #(4*(1024-64))     ; vb1 = vbuf + 64 (was vbuf + 64*16 after MC1M block)
+    mov        I, #15                       ; loop counter, count down
+    add        PCM, PCM, #(2)               ; pcm++
+
+LoopPM
+    str        I, [sp, #0]                  ; sp[0] = i (loop counter)
+    str        PCM, [sp, #4]                ; sp[1] = pcm (pointer to pcm buffer)
+
+    mov        SUM1LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM2LL, #RNDVAL              ; load rndVal (low 32)
+    mov        SUM1LH, #0
+    mov        SUM2LH, #0
+
+    MC2M    0
+    MC2M    1
+    MC2M    2
+    MC2M    3
+    MC2M    4
+    MC2M    5
+    MC2M    6
+    MC2M    7
+
+    add        VB1, VB1, #(4*64)    ; vb1 += 64
+
+    ldr        PCM, [sp, #4]        ; load pcm pointer
+    mov        MAXPOS, #0x7f00
+    orr        MAXPOS, MAXPOS, #0xff
+
+    C64TOS    SUM1LL, SUM1LH, SIGN, MAXPOS
+    C64TOS    SUM2LL, SUM2LH, SIGN, MAXPOS
+
+    ldr        I, [sp, #0]            ; load loop counter*/
+    add        CF2, PCM, I, lsl #2    ; CF2 = PCM + 2*i (short offset)*/
+    strh    SUM2LL, [CF2], #2    	  ; (pcm + 2*i + 0)
+    strh    SUM1LL, [PCM], #2         ; (pcm + 0) ; pcm++
+
+    subs    I, I, #1
+    bne        LoopPM
+
+    ; restore stack pointer
+    add        sp, sp, #8
+
+    ldmfd    sp!, {r4-r11, pc}
+    ENDP
+
+    END

+ 282 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/assembly.h

@@ -0,0 +1,282 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * assembly.h - assembly language functions and prototypes for supported platforms
+ *
+ * - inline rountines with access to 64-bit multiply results 
+ * - x86 (_WIN32) and ARM (ARM_ADS, _WIN32_WCE) versions included
+ * - some inline functions are mix of asm and C for speed
+ * - some functions are in native asm files, so only the prototype is given here
+ *
+ * MULSHIFT32(x, y)    signed multiply of two 32-bit integers (x and y), returns top 32 bits of 64-bit result
+ * FASTABS(x)          branchless absolute value of signed integer x
+ * CLZ(x)              count leading zeros in x
+ * MADD64(sum, x, y)   (Windows only) sum [64-bit] += x [32-bit] * y [32-bit]
+ * SHL64(sum, x, y)    (Windows only) 64-bit left shift using __int64
+ * SAR64(sum, x, y)    (Windows only) 64-bit right shift using __int64
+ */
+
+#ifndef _ASSEMBLY_H
+#define _ASSEMBLY_H
+
+#if (defined _WIN32 && !defined _WIN32_WCE) || (defined __WINS__ && defined _SYMBIAN) || defined(_OPENWAVE_SIMULATOR) || defined(WINCE_EMULATOR)    /* Symbian emulator for Ix86 */
+
+#pragma warning( disable : 4035 )	/* complains about inline asm not returning a value */
+
+static __inline int MULSHIFT32(int x, int y)	
+{
+    __asm {
+		mov		eax, x
+	    imul	y
+	    mov		eax, edx
+	}
+}
+
+static __inline int FASTABS(int x) 
+{
+	int sign;
+
+	sign = x >> (sizeof(int) * 8 - 1);
+	x ^= sign;
+	x -= sign;
+
+	return x;
+}
+
+static __inline int CLZ(int x)
+{
+	int numZeros;
+
+	if (!x)
+		return (sizeof(int) * 8);
+
+	numZeros = 0;
+	while (!(x & 0x80000000)) {
+		numZeros++;
+		x <<= 1;
+	} 
+
+	return numZeros;
+}
+
+/* MADD64, SHL64, SAR64:
+ * write in assembly to avoid dependency on run-time lib for 64-bit shifts, muls
+ *  (sometimes compiler thunks to function calls instead of code generating)
+ * required for Symbian emulator
+ */
+#ifdef __CW32__
+typedef long long Word64;
+#else
+typedef __int64 Word64;
+#endif
+
+static __inline Word64 MADD64(Word64 sum, int x, int y)
+{
+	unsigned int sumLo = ((unsigned int *)&sum)[0];
+	int sumHi = ((int *)&sum)[1];
+
+	__asm {
+		mov		eax, x
+		imul	y
+		add		eax, sumLo
+		adc		edx, sumHi
+	}
+
+	/* equivalent to return (sum + ((__int64)x * y)); */
+}
+
+static __inline Word64 SHL64(Word64 x, int n)
+{
+	unsigned int xLo = ((unsigned int *)&x)[0];
+	int xHi = ((int *)&x)[1];
+	unsigned char nb = (unsigned char)n;
+
+	if (n < 32) {
+		__asm {
+			mov		edx, xHi
+			mov		eax, xLo
+			mov		cl, nb
+			shld    edx, eax, cl
+			shl     eax, cl
+		}
+	} else if (n < 64) {
+		/* shl masks cl to 0x1f */
+		__asm {
+			mov		edx, xLo
+			mov		cl, nb
+			xor     eax, eax
+			shl     edx, cl
+		}
+	} else {
+		__asm {
+			xor		edx, edx
+			xor		eax, eax
+		}
+	}
+}
+
+static __inline Word64 SAR64(Word64 x, int n)
+{
+	unsigned int xLo = ((unsigned int *)&x)[0];
+	int xHi = ((int *)&x)[1];
+	unsigned char nb = (unsigned char)n;
+
+	if (n < 32) {
+		__asm {
+			mov		edx, xHi
+			mov		eax, xLo
+			mov		cl, nb
+			shrd	eax, edx, cl
+			sar		edx, cl
+		}
+	} else if (n < 64) {
+		/* sar masks cl to 0x1f */
+		__asm {
+			mov		edx, xHi
+			mov		eax, xHi
+			mov		cl, nb
+			sar		edx, 31
+			sar		eax, cl
+		}
+	} else {
+		__asm {
+			sar		xHi, 31
+			mov		eax, xHi
+			mov		edx, xHi
+		}
+	}
+}
+
+#elif (defined _WIN32) && (defined _WIN32_WCE)
+
+/* use asm function for now (EVC++ 3.0 does horrible job compiling __int64 version) */
+#define MULSHIFT32	xmp3_MULSHIFT32
+int MULSHIFT32(int x, int y);
+
+static __inline int FASTABS(int x) 
+{
+	int sign;
+
+	sign = x >> (sizeof(int) * 8 - 1);
+	x ^= sign;
+	x -= sign;
+
+	return x;
+}
+
+static __inline int CLZ(int x)
+{
+	int numZeros;
+
+	if (!x)
+		return (sizeof(int) * 8);
+
+	numZeros = 0;
+	while (!(x & 0x80000000)) {
+		numZeros++;
+		x <<= 1;
+	} 
+
+	return numZeros;
+}
+
+#elif defined ARM_ADS
+
+typedef long long Word64;
+
+#define MULSHIFT32	xmp3_MULSHIFT32
+extern int MULSHIFT32(int x, int y);
+
+
+#define FASTABS	xmp3_FASTABS
+int FASTABS(int x);
+
+
+static __inline int CLZ(int x)
+{
+	int numZeros;
+
+	if (!x)
+		return (sizeof(int) * 8);
+
+	numZeros = 0;
+	while (!(x & 0x80000000)) {
+		numZeros++;
+		x <<= 1;
+	} 
+
+	return numZeros;
+}
+
+#elif defined(__GNUC__) && defined(ARM)
+
+typedef long long Word64;
+
+#define MULSHIFT32	xmp3_MULSHIFT32
+extern int MULSHIFT32(int x, int y);
+
+
+#define FASTABS	xmp3_FASTABS
+int FASTABS(int x);
+
+
+static __inline int CLZ(int x)
+{
+	int numZeros;
+
+	if (!x)
+		return (sizeof(int) * 8);
+
+	numZeros = 0;
+	while (!(x & 0x80000000)) {
+		numZeros++;
+		x <<= 1;
+	} 
+
+	return numZeros;
+}
+
+#else
+
+#error Unsupported platform in assembly.h
+
+#endif	/* platforms */
+
+#endif /* _ASSEMBLY_H */

+ 389 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/bitstream.c

@@ -0,0 +1,389 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * bitstream.c - bitstream unpacking, frame header parsing, side info parsing
+ **************************************************************************************/
+
+#include "coder.h"
+#include "assembly.h"
+
+/**************************************************************************************
+ * Function:    SetBitstreamPointer
+ *
+ * Description: initialize bitstream reader
+ *
+ * Inputs:      pointer to BitStreamInfo struct
+ *              number of bytes in bitstream
+ *              pointer to byte-aligned buffer of data to read from
+ *
+ * Outputs:     filled bitstream info struct
+ *
+ * Return:      none
+ **************************************************************************************/
+void SetBitstreamPointer(BitStreamInfo *bsi, int nBytes, unsigned char *buf)
+{
+	/* init bitstream */
+	bsi->bytePtr = buf;
+	bsi->iCache = 0;		/* 4-byte unsigned int */
+	bsi->cachedBits = 0;	/* i.e. zero bits in cache */
+	bsi->nBytes = nBytes;
+}
+
+/**************************************************************************************
+ * Function:    RefillBitstreamCache
+ *
+ * Description: read new data from bitstream buffer into bsi cache
+ *
+ * Inputs:      pointer to initialized BitStreamInfo struct
+ *
+ * Outputs:     updated bitstream info struct
+ *
+ * Return:      none
+ *
+ * Notes:       only call when iCache is completely drained (resets bitOffset to 0)
+ *              always loads 4 new bytes except when bsi->nBytes < 4 (end of buffer)
+ *              stores data as big-endian in cache, regardless of machine endian-ness
+ *
+ * TODO:        optimize for ARM
+ *              possibly add little/big-endian modes for doing 32-bit loads
+ **************************************************************************************/
+static __inline void RefillBitstreamCache(BitStreamInfo *bsi)
+{
+	int nBytes = bsi->nBytes;
+
+	/* optimize for common case, independent of machine endian-ness */
+	if (nBytes >= 4) {
+		bsi->iCache  = (*bsi->bytePtr++) << 24;
+		bsi->iCache |= (*bsi->bytePtr++) << 16;
+		bsi->iCache |= (*bsi->bytePtr++) <<  8;
+		bsi->iCache |= (*bsi->bytePtr++);
+		bsi->cachedBits = 32;
+		bsi->nBytes -= 4;
+	} else {
+		bsi->iCache = 0;
+		while (nBytes--) {
+			bsi->iCache |= (*bsi->bytePtr++);
+			bsi->iCache <<= 8;
+		}
+		bsi->iCache <<= ((3 - bsi->nBytes)*8);
+		bsi->cachedBits = 8*bsi->nBytes;
+		bsi->nBytes = 0;
+	}
+}
+
+/**************************************************************************************
+ * Function:    GetBits
+ *
+ * Description: get bits from bitstream, advance bitstream pointer
+ *
+ * Inputs:      pointer to initialized BitStreamInfo struct
+ *              number of bits to get from bitstream
+ *
+ * Outputs:     updated bitstream info struct
+ *
+ * Return:      the next nBits bits of data from bitstream buffer
+ *
+ * Notes:       nBits must be in range [0, 31], nBits outside this range masked by 0x1f
+ *              for speed, does not indicate error if you overrun bit buffer 
+ *              if nBits = 0, returns 0 (useful for scalefactor unpacking)
+ *
+ * TODO:        optimize for ARM
+ **************************************************************************************/
+unsigned int GetBits(BitStreamInfo *bsi, int nBits)
+{
+	unsigned int data, lowBits;
+
+	nBits &= 0x1f;							/* nBits mod 32 to avoid unpredictable results like >> by negative amount */
+	data = bsi->iCache >> (31 - nBits);		/* unsigned >> so zero-extend */
+	data >>= 1;								/* do as >> 31, >> 1 so that nBits = 0 works okay (returns 0) */
+	bsi->iCache <<= nBits;					/* left-justify cache */
+	bsi->cachedBits -= nBits;				/* how many bits have we drawn from the cache so far */
+
+	/* if we cross an int boundary, refill the cache */
+	if (bsi->cachedBits < 0) {
+		lowBits = -bsi->cachedBits;
+		RefillBitstreamCache(bsi);
+		data |= bsi->iCache >> (32 - lowBits);		/* get the low-order bits */
+	
+		bsi->cachedBits -= lowBits;			/* how many bits have we drawn from the cache so far */
+		bsi->iCache <<= lowBits;			/* left-justify cache */
+	}
+
+	return data;
+}
+
+/**************************************************************************************
+ * Function:    CalcBitsUsed
+ *
+ * Description: calculate how many bits have been read from bitstream
+ *
+ * Inputs:      pointer to initialized BitStreamInfo struct
+ *              pointer to start of bitstream buffer
+ *              bit offset into first byte of startBuf (0-7) 
+ *
+ * Outputs:     none
+ *
+ * Return:      number of bits read from bitstream, as offset from startBuf:startOffset
+ **************************************************************************************/
+int CalcBitsUsed(BitStreamInfo *bsi, unsigned char *startBuf, int startOffset)
+{
+	int bitsUsed;
+
+	bitsUsed  = (bsi->bytePtr - startBuf) * 8;
+	bitsUsed -= bsi->cachedBits;
+	bitsUsed -= startOffset;
+
+	return bitsUsed;
+}
+
+/**************************************************************************************
+ * Function:    CheckPadBit
+ *
+ * Description: check whether padding byte is present in an MP3 frame
+ *
+ * Inputs:      MP3DecInfo struct with valid FrameHeader struct 
+ *                (filled by UnpackFrameHeader())
+ *
+ * Outputs:     none
+ *
+ * Return:      1 if pad bit is set, 0 if not, -1 if null input pointer
+ **************************************************************************************/
+int CheckPadBit(MP3DecInfo *mp3DecInfo)
+{
+	FrameHeader *fh;
+
+	/* validate pointers */
+	if (!mp3DecInfo || !mp3DecInfo->FrameHeaderPS)
+		return -1;
+
+	fh = ((FrameHeader *)(mp3DecInfo->FrameHeaderPS));
+
+	return (fh->paddingBit ? 1 : 0);
+}
+
+/**************************************************************************************
+ * Function:    UnpackFrameHeader
+ *
+ * Description: parse the fields of the MP3 frame header
+ *
+ * Inputs:      buffer pointing to a complete MP3 frame header (4 bytes, plus 2 if CRC)
+ *
+ * Outputs:     filled frame header info in the MP3DecInfo structure
+ *              updated platform-specific FrameHeader struct
+ *
+ * Return:      length (in bytes) of frame header (for caller to calculate offset to
+ *                first byte following frame header)
+ *              -1 if null frameHeader or invalid header
+ *
+ * TODO:        check for valid modes, depending on capabilities of decoder
+ *              test CRC on actual stream (verify no endian problems)
+ **************************************************************************************/
+int UnpackFrameHeader(MP3DecInfo *mp3DecInfo, unsigned char *buf)
+{
+
+	int verIdx;
+	FrameHeader *fh;
+
+	/* validate pointers and sync word */
+	if (!mp3DecInfo || !mp3DecInfo->FrameHeaderPS || (buf[0] & SYNCWORDH) != SYNCWORDH || (buf[1] & SYNCWORDL) != SYNCWORDL)
+		return -1;
+
+	fh = ((FrameHeader *)(mp3DecInfo->FrameHeaderPS));
+
+	/* read header fields - use bitmasks instead of GetBits() for speed, since format never varies */
+	verIdx =         (buf[1] >> 3) & 0x03;
+	fh->ver =        (MPEGVersion)( verIdx == 0 ? MPEG25 : ((verIdx & 0x01) ? MPEG1 : MPEG2) );
+	fh->layer = 4 - ((buf[1] >> 1) & 0x03);     /* easy mapping of index to layer number, 4 = error */
+	fh->crc =   1 - ((buf[1] >> 0) & 0x01);
+	fh->brIdx =      (buf[2] >> 4) & 0x0f;
+	fh->srIdx =      (buf[2] >> 2) & 0x03;
+	fh->paddingBit = (buf[2] >> 1) & 0x01;
+	fh->privateBit = (buf[2] >> 0) & 0x01;
+	fh->sMode =      (StereoMode)((buf[3] >> 6) & 0x03);      /* maps to correct enum (see definition) */    
+	fh->modeExt =    (buf[3] >> 4) & 0x03;
+	fh->copyFlag =   (buf[3] >> 3) & 0x01;
+	fh->origFlag =   (buf[3] >> 2) & 0x01;
+	fh->emphasis =   (buf[3] >> 0) & 0x03;
+
+	/* check parameters to avoid indexing tables with bad values */
+	if (fh->srIdx == 3 || fh->layer == 4 || fh->brIdx == 15)
+		return -1;
+
+	fh->sfBand = &sfBandTable[fh->ver][fh->srIdx];	/* for readability (we reference sfBandTable many times in decoder) */
+	if (fh->sMode != Joint)		/* just to be safe (dequant, stproc check fh->modeExt) */
+		fh->modeExt = 0;
+
+	/* init user-accessible data */
+	mp3DecInfo->nChans = (fh->sMode == Mono ? 1 : 2);
+	mp3DecInfo->samprate = samplerateTab[fh->ver][fh->srIdx];
+	mp3DecInfo->nGrans = (fh->ver == MPEG1 ? NGRANS_MPEG1 : NGRANS_MPEG2);
+	mp3DecInfo->nGranSamps = ((int)samplesPerFrameTab[fh->ver][fh->layer - 1]) / mp3DecInfo->nGrans;
+	mp3DecInfo->layer = fh->layer;
+	mp3DecInfo->version = fh->ver;
+	
+	/* get bitrate and nSlots from table, unless brIdx == 0 (free mode) in which case caller must figure it out himself
+	 * question - do we want to overwrite mp3DecInfo->bitrate with 0 each time if it's free mode, and
+	 *  copy the pre-calculated actual free bitrate into it in mp3dec.c (according to the spec, 
+	 *  this shouldn't be necessary, since it should be either all frames free or none free)
+	 */
+	if (fh->brIdx) {
+		mp3DecInfo->bitrate = ((int)bitrateTab[fh->ver][fh->layer - 1][fh->brIdx]) * 1000;
+	
+		/* nSlots = total frame bytes (from table) - sideInfo bytes - header - CRC (if present) + pad (if present) */
+		mp3DecInfo->nSlots = (int)slotTab[fh->ver][fh->srIdx][fh->brIdx] - 
+			(int)sideBytesTab[fh->ver][(fh->sMode == Mono ? 0 : 1)] - 
+			4 - (fh->crc ? 2 : 0) + (fh->paddingBit ? 1 : 0);
+	}
+
+	/* load crc word, if enabled, and return length of frame header (in bytes) */
+	if (fh->crc) {
+		fh->CRCWord = ((int)buf[4] << 8 | (int)buf[5] << 0);
+		return 6;
+	} else {
+		fh->CRCWord = 0;
+		return 4;
+	}
+}
+
+/**************************************************************************************
+ * Function:    UnpackSideInfo
+ *
+ * Description: parse the fields of the MP3 side info header
+ *
+ * Inputs:      MP3DecInfo structure filled by UnpackFrameHeader()
+ *              buffer pointing to the MP3 side info data
+ *
+ * Outputs:     updated mainDataBegin in MP3DecInfo struct
+ *              updated private (platform-specific) SideInfo struct
+ *
+ * Return:      length (in bytes) of side info data
+ *              -1 if null input pointers
+ **************************************************************************************/
+int UnpackSideInfo(MP3DecInfo *mp3DecInfo, unsigned char *buf)
+{
+	int gr, ch, bd, nBytes;
+	BitStreamInfo bitStreamInfo, *bsi;
+	FrameHeader *fh;
+	SideInfo *si;
+	SideInfoSub *sis;
+
+	/* validate pointers and sync word */
+	if (!mp3DecInfo || !mp3DecInfo->FrameHeaderPS || !mp3DecInfo->SideInfoPS)
+		return -1;
+
+	fh = ((FrameHeader *)(mp3DecInfo->FrameHeaderPS));
+	si = ((SideInfo *)(mp3DecInfo->SideInfoPS));
+
+	bsi = &bitStreamInfo;
+	if (fh->ver == MPEG1) {
+		/* MPEG 1 */
+		nBytes = (fh->sMode == Mono ? SIBYTES_MPEG1_MONO : SIBYTES_MPEG1_STEREO);
+		SetBitstreamPointer(bsi, nBytes, buf);
+		si->mainDataBegin = GetBits(bsi, 9);
+		si->privateBits =   GetBits(bsi, (fh->sMode == Mono ? 5 : 3));
+
+		for (ch = 0; ch < mp3DecInfo->nChans; ch++)
+			for (bd = 0; bd < MAX_SCFBD; bd++)
+				si->scfsi[ch][bd] = GetBits(bsi, 1);
+	} else {
+		/* MPEG 2, MPEG 2.5 */
+		nBytes = (fh->sMode == Mono ? SIBYTES_MPEG2_MONO : SIBYTES_MPEG2_STEREO);
+		SetBitstreamPointer(bsi, nBytes, buf);
+		si->mainDataBegin = GetBits(bsi, 8);
+		si->privateBits =   GetBits(bsi, (fh->sMode == Mono ? 1 : 2));
+	}
+
+	for(gr =0; gr < mp3DecInfo->nGrans; gr++) {
+		for (ch = 0; ch < mp3DecInfo->nChans; ch++) {
+			sis = &si->sis[gr][ch];						/* side info subblock for this granule, channel */
+
+			sis->part23Length =    GetBits(bsi, 12);
+			sis->nBigvals =        GetBits(bsi, 9);
+			sis->globalGain =      GetBits(bsi, 8);
+			sis->sfCompress =      GetBits(bsi, (fh->ver == MPEG1 ? 4 : 9));
+			sis->winSwitchFlag =   GetBits(bsi, 1);
+
+			if(sis->winSwitchFlag) {
+				/* this is a start, stop, short, or mixed block */
+				sis->blockType =       GetBits(bsi, 2);		/* 0 = normal, 1 = start, 2 = short, 3 = stop */
+				sis->mixedBlock =      GetBits(bsi, 1);		/* 0 = not mixed, 1 = mixed */
+				sis->tableSelect[0] =  GetBits(bsi, 5);
+				sis->tableSelect[1] =  GetBits(bsi, 5);
+				sis->tableSelect[2] =  0;					/* unused */
+				sis->subBlockGain[0] = GetBits(bsi, 3);
+				sis->subBlockGain[1] = GetBits(bsi, 3);
+				sis->subBlockGain[2] = GetBits(bsi, 3);
+
+				/* TODO - check logic */
+				if (sis->blockType == 0) {
+					/* this should not be allowed, according to spec */
+					sis->nBigvals = 0;
+					sis->part23Length = 0;
+					sis->sfCompress = 0;
+				} else if (sis->blockType == 2 && sis->mixedBlock == 0) {
+					/* short block, not mixed */
+					sis->region0Count = 8;
+				} else {
+					/* start, stop, or short-mixed */
+					sis->region0Count = 7;
+				}
+				sis->region1Count = 20 - sis->region0Count;
+			} else {
+				/* this is a normal block */
+				sis->blockType = 0;
+				sis->mixedBlock = 0;
+				sis->tableSelect[0] =  GetBits(bsi, 5);
+				sis->tableSelect[1] =  GetBits(bsi, 5);
+				sis->tableSelect[2] =  GetBits(bsi, 5);
+				sis->region0Count =    GetBits(bsi, 4);
+				sis->region1Count =    GetBits(bsi, 3);
+			}
+			sis->preFlag =           (fh->ver == MPEG1 ? GetBits(bsi, 1) : 0);
+			sis->sfactScale =        GetBits(bsi, 1);
+			sis->count1TableSelect = GetBits(bsi, 1);
+		}
+	}
+	mp3DecInfo->mainDataBegin = si->mainDataBegin;	/* needed by main decode loop */
+
+	ASSERT(nBytes == CalcBitsUsed(bsi, buf, 0) >> 3);
+
+	return nBytes;	
+}
+

+ 220 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/buffers.c

@@ -0,0 +1,220 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * buffers.c - allocation and freeing of internal MP3 decoder buffers
+ *
+ * All memory allocation for the codec is done in this file, so if you don't want 
+ *  to use other the default system malloc() and free() for heap management this is 
+ *  the only file you'll need to change.
+ **************************************************************************************/
+
+// J.Sz. 21/04/2006 #include "hlxclib/stdlib.h"		/* for malloc, free */ 
+
+
+#include "coder.h"
+
+#define static_buffers
+#ifdef static_buffers
+MP3DecInfo  mp3DecInfo;     //  0x7f0 =  2032 
+SubbandInfo sbi;            // 0x2204 =  8708
+IMDCTInfo mi;               // 0x1b20 =  6944
+HuffmanInfo hi;             // 0x1210 =  4624
+DequantInfo di;             //  0x348 =   840
+ScaleFactorInfo sfi;        //  0x124 =   292
+SideInfo si;                //  0x148 =   328
+FrameHeader fh;             //   0x38 =    56
+#else
+#include <rtthread.h>
+#define malloc rt_malloc
+#define free rt_free
+#endif
+
+/**************************************************************************************
+ * Function:    ClearBuffer
+ *
+ * Description: fill buffer with 0's
+ *
+ * Inputs:      pointer to buffer
+ *              number of bytes to fill with 0
+ *
+ * Outputs:     cleared buffer
+ *
+ * Return:      none
+ *
+ * Notes:       slow, platform-independent equivalent to memset(buf, 0, nBytes)
+ **************************************************************************************/
+void ClearBuffer(void *buf, int nBytes)
+{
+	int i;
+	unsigned char *cbuf = (unsigned char *)buf;
+
+	for (i = 0; i < nBytes; i++)
+		cbuf[i] = 0;
+
+}
+
+/**************************************************************************************
+ * Function:    AllocateBuffers
+ *
+ * Description: allocate all the memory needed for the MP3 decoder
+ *
+ * Inputs:      none
+ *
+ * Outputs:     none
+ *
+ * Return:      pointer to MP3DecInfo structure (initialized with pointers to all 
+ *                the internal buffers needed for decoding, all other members of 
+ *                MP3DecInfo structure set to 0)
+ *
+ * Notes:       if one or more mallocs fail, function frees any buffers already
+ *                allocated before returning
+ *
+ *              Changed by Kasper Jepsen to support static buffers as well.
+ *
+ **************************************************************************************/
+MP3DecInfo *AllocateBuffers(void)
+{
+  MP3DecInfo *mp3DecInfo_pointer;
+  #ifdef static_buffers
+  mp3DecInfo_pointer = (MP3DecInfo*)&mp3DecInfo;
+  ClearBuffer((void*)&mp3DecInfo, sizeof(MP3DecInfo));
+
+  	mp3DecInfo.FrameHeaderPS =     (void*)&fh;
+	mp3DecInfo.SideInfoPS =        (void*)&si;
+	mp3DecInfo.ScaleFactorInfoPS = (void*)&sfi;
+	mp3DecInfo.HuffmanInfoPS =     (void*)&hi;
+	mp3DecInfo.DequantInfoPS =     (void*)&di;
+	mp3DecInfo.IMDCTInfoPS =       (void*)&mi;
+	mp3DecInfo.SubbandInfoPS =     (void*)&sbi;
+
+	/* important to do this - DSP primitives assume a bunch of state variables are 0 on first use */
+    ClearBuffer((void*)&fh,  sizeof(FrameHeader));
+	ClearBuffer((void*)&si,  sizeof(SideInfo));
+	ClearBuffer((void*)&sfi, sizeof(ScaleFactorInfo));
+	ClearBuffer((void*)&hi,  sizeof(HuffmanInfo));
+	ClearBuffer((void*)&di,  sizeof(DequantInfo));
+	ClearBuffer((void*)&mi,  sizeof(IMDCTInfo));
+	ClearBuffer((void*)&sbi, sizeof(SubbandInfo));
+   // return mp3DecInfo_pointer;
+
+  #else
+	FrameHeader *fh;
+	SideInfo *si;
+	ScaleFactorInfo *sfi;
+	HuffmanInfo *hi;
+	DequantInfo *di;
+	IMDCTInfo *mi;
+	SubbandInfo *sbi;
+
+	mp3DecInfo_pointer = (MP3DecInfo *)malloc(sizeof(MP3DecInfo));
+	if (!mp3DecInfo_pointer)
+		return 0;
+	ClearBuffer(mp3DecInfo_pointer, sizeof(MP3DecInfo));
+	
+	fh =  (FrameHeader *)     malloc(sizeof(FrameHeader));
+	si =  (SideInfo *)        malloc(sizeof(SideInfo));
+	sfi = (ScaleFactorInfo *) malloc(sizeof(ScaleFactorInfo));
+	hi =  (HuffmanInfo *)     malloc(sizeof(HuffmanInfo));
+	di =  (DequantInfo *)     malloc(sizeof(DequantInfo));
+	mi =  (IMDCTInfo *)       malloc(sizeof(IMDCTInfo));
+	sbi = (SubbandInfo *)     malloc(sizeof(SubbandInfo));
+
+	mp3DecInfo_pointer->FrameHeaderPS =     (void *)fh;
+	mp3DecInfo_pointer->SideInfoPS =        (void *)si;
+	mp3DecInfo_pointer->ScaleFactorInfoPS = (void *)sfi;
+	mp3DecInfo_pointer->HuffmanInfoPS =     (void *)hi;
+	mp3DecInfo_pointer->DequantInfoPS =     (void *)di;
+	mp3DecInfo_pointer->IMDCTInfoPS =       (void *)mi;
+	mp3DecInfo_pointer->SubbandInfoPS =     (void *)sbi;
+
+	if (!fh || !si || !sfi || !hi || !di || !mi || !sbi) {
+		FreeBuffers(mp3DecInfo_pointer);	/* safe to call - only frees memory that was successfully allocated */
+		return 0;
+	}
+
+	/* important to do this - DSP primitives assume a bunch of state variables are 0 on first use */
+	//Optimized away.. hmm
+    ClearBuffer(fh,  sizeof(FrameHeader));
+	ClearBuffer(si,  sizeof(SideInfo));
+	ClearBuffer(sfi, sizeof(ScaleFactorInfo));
+	ClearBuffer(hi,  sizeof(HuffmanInfo));
+	ClearBuffer(di,  sizeof(DequantInfo));
+	ClearBuffer(mi,  sizeof(IMDCTInfo));
+	ClearBuffer(sbi, sizeof(SubbandInfo));
+
+#endif
+	return mp3DecInfo_pointer;
+}
+
+
+#ifndef static_buffers
+#define SAFE_FREE(x)	{if (x)	free(x);	(x) = 0;}	/* helper macro */
+#endif
+
+/**************************************************************************************
+ * Function:    FreeBuffers
+ *
+ * Description: frees all the memory used by the MP3 decoder
+ *
+ * Inputs:      pointer to initialized MP3DecInfo structure
+ *
+ * Outputs:     none
+ *
+ * Return:      none
+ *
+ * Notes:       safe to call even if some buffers were not allocated (uses SAFE_FREE)
+ **************************************************************************************/
+void FreeBuffers(MP3DecInfo *mp3DecInfo)
+{
+#ifndef static_buffers	
+    if (!mp3DecInfo)
+		return;
+
+	SAFE_FREE(mp3DecInfo->FrameHeaderPS);
+	SAFE_FREE(mp3DecInfo->SideInfoPS);
+	SAFE_FREE(mp3DecInfo->ScaleFactorInfoPS);
+	SAFE_FREE(mp3DecInfo->HuffmanInfoPS);
+	SAFE_FREE(mp3DecInfo->DequantInfoPS);
+	SAFE_FREE(mp3DecInfo->IMDCTInfoPS);
+	SAFE_FREE(mp3DecInfo->SubbandInfoPS);
+
+	SAFE_FREE(mp3DecInfo);
+#endif
+}

+ 306 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/coder.h

@@ -0,0 +1,306 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * coder.h - private, implementation-specific header file
+ **************************************************************************************/
+
+#ifndef _CODER_H
+#define _CODER_H
+
+#include "mp3common.h"
+
+#if defined(ASSERT)
+#undef ASSERT
+#endif
+#if defined(_WIN32) && defined(_M_IX86) && (defined (_DEBUG) || defined (REL_ENABLE_ASSERTS))
+#define ASSERT(x) if (!(x)) __asm int 3;
+#else
+#define ASSERT(x) /* do nothing */
+#endif
+
+#ifndef MAX
+#define MAX(a,b)	((a) > (b) ? (a) : (b))
+#endif
+
+#ifndef MIN
+#define MIN(a,b)	((a) < (b) ? (a) : (b))
+#endif
+
+/* clip to range [-2^n, 2^n - 1] */
+#define CLIP_2N(y, n) { \
+	int sign = (y) >> 31;  \
+	if (sign != (y) >> (n))  { \
+		(y) = sign ^ ((1 << (n)) - 1); \
+	} \
+}
+
+#define SIBYTES_MPEG1_MONO		17
+#define SIBYTES_MPEG1_STEREO	32
+#define SIBYTES_MPEG2_MONO		 9
+#define SIBYTES_MPEG2_STEREO	17
+
+/* number of fraction bits for pow43Tab (see comments there) */
+#define POW43_FRACBITS_LOW		22
+#define POW43_FRACBITS_HIGH		12
+
+#define DQ_FRACBITS_OUT			25	/* number of fraction bits in output of dequant */
+#define	IMDCT_SCALE				2	/* additional scaling (by sqrt(2)) for fast IMDCT36 */
+
+#define	HUFF_PAIRTABS			32
+#define BLOCK_SIZE				18
+#define	NBANDS					32
+#define MAX_REORDER_SAMPS		((192-126)*3)		/* largest critical band for short blocks (see sfBandTable) */
+#define VBUF_LENGTH				(17 * 2 * NBANDS)	/* for double-sized vbuf FIFO */
+
+/* additional external symbols to name-mangle for static linking */
+#define	SetBitstreamPointer	STATNAME(SetBitstreamPointer)
+#define	GetBits				STATNAME(GetBits)
+#define	CalcBitsUsed		STATNAME(CalcBitsUsed)
+#define	DequantChannel		STATNAME(DequantChannel)
+#define	MidSideProc			STATNAME(MidSideProc)
+#define	IntensityProcMPEG1	STATNAME(IntensityProcMPEG1)
+#define	IntensityProcMPEG2	STATNAME(IntensityProcMPEG2)
+#define PolyphaseMono		STATNAME(PolyphaseMono)
+#define PolyphaseStereo		STATNAME(PolyphaseStereo)
+#define FDCT32				STATNAME(FDCT32)
+
+#define	ISFMpeg1			STATNAME(ISFMpeg1)
+#define	ISFMpeg2			STATNAME(ISFMpeg2)
+#define	ISFIIP				STATNAME(ISFIIP)
+#define uniqueIDTab			STATNAME(uniqueIDTab)
+#define	coef32				STATNAME(coef32)
+#define	polyCoef			STATNAME(polyCoef)
+#define	csa					STATNAME(csa)
+#define	imdctWin			STATNAME(imdctWin)
+
+#define	huffTable			STATNAME(huffTable)
+#define	huffTabOffset		STATNAME(huffTabOffset)
+#define	huffTabLookup		STATNAME(huffTabLookup)
+#define	quadTable			STATNAME(quadTable)
+#define	quadTabOffset		STATNAME(quadTabOffset)
+#define	quadTabMaxBits		STATNAME(quadTabMaxBits)
+
+/* map these to the corresponding 2-bit values in the frame header */
+typedef enum {
+	Stereo = 0x00,	/* two independent channels, but L and R frames might have different # of bits */
+	Joint = 0x01,	/* coupled channels - layer III: mix of M-S and intensity, Layers I/II: intensity and direct coding only */
+	Dual = 0x02,	/* two independent channels, L and R always have exactly 1/2 the total bitrate */
+	Mono = 0x03		/* one channel */
+} StereoMode;
+
+typedef struct _BitStreamInfo {
+	unsigned char *bytePtr;
+	unsigned int iCache;
+	int cachedBits;
+	int nBytes;
+} BitStreamInfo;
+
+typedef struct _FrameHeader {
+    MPEGVersion ver;	/* version ID */
+    int layer;			/* layer index (1, 2, or 3) */
+    int crc;			/* CRC flag: 0 = disabled, 1 = enabled */
+    int brIdx;			/* bitrate index (0 - 15) */
+    int srIdx;			/* sample rate index (0 - 2) */
+    int paddingBit;		/* padding flag: 0 = no padding, 1 = single pad byte */
+    int privateBit;		/* unused */
+    StereoMode sMode;	/* mono/stereo mode */
+    int modeExt;		/* used to decipher joint stereo mode */
+    int copyFlag;		/* copyright flag: 0 = no, 1 = yes */
+    int origFlag;		/* original flag: 0 = copy, 1 = original */
+    int emphasis;		/* deemphasis mode */
+    int CRCWord;		/* CRC word (16 bits, 0 if crc not enabled) */
+
+	const SFBandTable *sfBand;
+} FrameHeader;
+
+typedef struct _SideInfoSub {
+    int part23Length;		/* number of bits in main data */ 
+    int nBigvals;			/* 2x this = first set of Huffman cw's (maximum amplitude can be > 1) */
+    int globalGain;			/* overall gain for dequantizer */
+    int sfCompress;			/* unpacked to figure out number of bits in scale factors */
+    int winSwitchFlag;		/* window switching flag */
+    int blockType;			/* block type */
+    int mixedBlock;			/* 0 = regular block (all short or long), 1 = mixed block */
+    int tableSelect[3];		/* index of Huffman tables for the big values regions */
+    int subBlockGain[3];	/* subblock gain offset, relative to global gain */
+    int region0Count;		/* 1+region0Count = num scale factor bands in first region of bigvals */
+    int region1Count;		/* 1+region1Count = num scale factor bands in second region of bigvals */
+    int preFlag;			/* for optional high frequency boost */
+    int sfactScale;			/* scaling of the scalefactors */
+    int count1TableSelect;	/* index of Huffman table for quad codewords */
+} SideInfoSub;
+
+typedef struct _SideInfo {
+	int mainDataBegin;
+	int privateBits;
+	int scfsi[MAX_NCHAN][MAX_SCFBD];				/* 4 scalefactor bands per channel */
+	
+	SideInfoSub	sis[MAX_NGRAN][MAX_NCHAN];
+} SideInfo;
+
+typedef struct {
+    int cbType;		/* pure long = 0, pure short = 1, mixed = 2 */
+    int cbEndS[3];	/* number nonzero short cb's, per subbblock */
+	int cbEndSMax;	/* max of cbEndS[] */
+    int cbEndL;		/* number nonzero long cb's  */
+} CriticalBandInfo;
+
+typedef struct _DequantInfo {
+	int workBuf[MAX_REORDER_SAMPS];		/* workbuf for reordering short blocks */
+	CriticalBandInfo cbi[MAX_NCHAN];	/* filled in dequantizer, used in joint stereo reconstruction */
+} DequantInfo;
+
+typedef struct _HuffmanInfo {
+	int huffDecBuf[MAX_NCHAN][MAX_NSAMP];		/* used both for decoded Huffman values and dequantized coefficients */
+	int nonZeroBound[MAX_NCHAN];				/* number of coeffs in huffDecBuf[ch] which can be > 0 */
+	int gb[MAX_NCHAN];							/* minimum number of guard bits in huffDecBuf[ch] */
+} HuffmanInfo;
+
+typedef enum _HuffTabType {
+	noBits,
+	oneShot,
+	loopNoLinbits,
+	loopLinbits,
+	quadA,
+	quadB,
+	invalidTab
+} HuffTabType;
+
+typedef struct _HuffTabLookup {
+	int	linBits;
+	HuffTabType tabType;
+} HuffTabLookup;
+
+typedef struct _IMDCTInfo {
+	int outBuf[MAX_NCHAN][BLOCK_SIZE][NBANDS];	/* output of IMDCT */	
+	int overBuf[MAX_NCHAN][MAX_NSAMP / 2];		/* overlap-add buffer (by symmetry, only need 1/2 size) */
+	int numPrevIMDCT[MAX_NCHAN];				/* how many IMDCT's calculated in this channel on prev. granule */
+	int prevType[MAX_NCHAN];
+	int prevWinSwitch[MAX_NCHAN];
+	int gb[MAX_NCHAN];
+} IMDCTInfo;
+
+typedef struct _BlockCount {
+	int nBlocksLong;
+	int nBlocksTotal;
+	int nBlocksPrev; 
+	int prevType;
+	int prevWinSwitch;
+	int currWinSwitch;
+	int gbIn;
+	int gbOut;
+} BlockCount;
+
+/* max bits in scalefactors = 5, so use char's to save space */
+typedef struct _ScaleFactorInfoSub {
+	char l[23];            /* [band] */
+	char s[13][3];         /* [band][window] */
+} ScaleFactorInfoSub;  
+
+/* used in MPEG 2, 2.5 intensity (joint) stereo only */
+typedef struct _ScaleFactorJS {
+	int intensityScale;		
+	int	slen[4];
+	int	nr[4];
+} ScaleFactorJS;
+
+typedef struct _ScaleFactorInfo {
+	ScaleFactorInfoSub sfis[MAX_NGRAN][MAX_NCHAN];
+	ScaleFactorJS sfjs;
+} ScaleFactorInfo;
+
+/* NOTE - could get by with smaller vbuf if memory is more important than speed
+ *  (in Subband, instead of replicating each block in FDCT32 you would do a memmove on the
+ *   last 15 blocks to shift them down one, a hardware style FIFO)
+ */ 
+typedef struct _SubbandInfo {
+	int vbuf[MAX_NCHAN * VBUF_LENGTH];		/* vbuf for fast DCT-based synthesis PQMF - double size for speed (no modulo indexing) */
+	int vindex;								/* internal index for tracking position in vbuf */
+} SubbandInfo;
+
+/* bitstream.c */
+void SetBitstreamPointer(BitStreamInfo *bsi, int nBytes, unsigned char *buf);
+unsigned int GetBits(BitStreamInfo *bsi, int nBits);
+int CalcBitsUsed(BitStreamInfo *bsi, unsigned char *startBuf, int startOffset);
+
+/* dequant.c, dqchan.c, stproc.c */
+int DequantChannel(int *sampleBuf, int *workBuf, int *nonZeroBound, FrameHeader *fh, SideInfoSub *sis, 
+					ScaleFactorInfoSub *sfis, CriticalBandInfo *cbi);
+void MidSideProc(int x[MAX_NCHAN][MAX_NSAMP], int nSamps, int mOut[2]);
+void IntensityProcMPEG1(int x[MAX_NCHAN][MAX_NSAMP], int nSamps, FrameHeader *fh, ScaleFactorInfoSub *sfis, 
+						CriticalBandInfo *cbi, int midSideFlag, int mixFlag, int mOut[2]);
+void IntensityProcMPEG2(int x[MAX_NCHAN][MAX_NSAMP], int nSamps, FrameHeader *fh, ScaleFactorInfoSub *sfis, 
+						CriticalBandInfo *cbi, ScaleFactorJS *sfjs, int midSideFlag, int mixFlag, int mOut[2]);
+
+/* dct32.c */
+void FDCT32(int *x, int *d, int offset, int oddBlock, int gb);
+
+/* hufftabs.c */
+extern const HuffTabLookup huffTabLookup[HUFF_PAIRTABS];
+extern const int huffTabOffset[HUFF_PAIRTABS];
+extern const unsigned short huffTable[];
+extern const unsigned char quadTable[64+16];
+extern const int quadTabOffset[2];
+extern const int quadTabMaxBits[2];
+
+/* polyphase.c (or asmpoly.s)
+ * some platforms require a C++ compile of all source files,
+ * so if we're compiling C as C++ and using native assembly
+ * for these functions we need to prevent C++ name mangling.
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+void PolyphaseMono(short *pcm, int *vbuf, const int *coefBase);
+void PolyphaseStereo(short *pcm, int *vbuf, const int *coefBase);
+#ifdef __cplusplus
+}
+#endif
+
+/* trigtabs.c */
+extern const int imdctWin[4][36];
+extern const int ISFMpeg1[2][7];
+extern const int ISFMpeg2[2][2][16];
+extern const int ISFIIP[2][2];
+extern const int csa[8][2];
+extern const int coef32[31];
+extern const int polyCoef[264];
+
+#endif	/* _CODER_H */

+ 278 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/dct32.c

@@ -0,0 +1,278 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * dct32.c - optimized implementations of 32-point DCT for matrixing stage of 
+ *             polyphase filter
+ **************************************************************************************/
+
+#include "coder.h"
+#include "assembly.h"
+
+#define COS0_0  0x4013c251	/* Q31 */
+#define COS0_1  0x40b345bd	/* Q31 */
+#define COS0_2  0x41fa2d6d	/* Q31 */
+#define COS0_3  0x43f93421	/* Q31 */
+#define COS0_4  0x46cc1bc4	/* Q31 */
+#define COS0_5  0x4a9d9cf0	/* Q31 */
+#define COS0_6  0x4fae3711	/* Q31 */
+#define COS0_7  0x56601ea7	/* Q31 */
+#define COS0_8  0x5f4cf6eb	/* Q31 */
+#define COS0_9  0x6b6fcf26	/* Q31 */
+#define COS0_10 0x7c7d1db3	/* Q31 */
+#define COS0_11 0x4ad81a97	/* Q30 */
+#define COS0_12 0x5efc8d96	/* Q30 */
+#define COS0_13 0x41d95790	/* Q29 */
+#define COS0_14 0x6d0b20cf	/* Q29 */
+#define COS0_15 0x518522fb	/* Q27 */
+
+#define COS1_0  0x404f4672	/* Q31 */
+#define COS1_1  0x42e13c10	/* Q31 */
+#define COS1_2  0x48919f44	/* Q31 */
+#define COS1_3  0x52cb0e63	/* Q31 */
+#define COS1_4  0x64e2402e	/* Q31 */
+#define COS1_5  0x43e224a9	/* Q30 */
+#define COS1_6  0x6e3c92c1	/* Q30 */
+#define COS1_7  0x519e4e04	/* Q28 */
+
+#define COS2_0  0x4140fb46	/* Q31 */
+#define COS2_1  0x4cf8de88	/* Q31 */
+#define COS2_2  0x73326bbf	/* Q31 */
+#define COS2_3  0x52036742	/* Q29 */
+
+#define COS3_0  0x4545e9ef	/* Q31 */
+#define COS3_1  0x539eba45	/* Q30 */
+
+#define COS4_0  0x5a82799a	/* Q31 */
+
+static const int dcttab[48] = {
+	/* first pass */
+	COS0_0, COS0_15, COS1_0,	/* 31, 27, 31 */
+	COS0_1, COS0_14, COS1_1,	/* 31, 29, 31 */
+	COS0_2, COS0_13, COS1_2,	/* 31, 29, 31 */
+	COS0_3, COS0_12, COS1_3,	/* 31, 30, 31 */
+	COS0_4, COS0_11, COS1_4,	/* 31, 30, 31 */
+	COS0_5, COS0_10, COS1_5,	/* 31, 31, 30 */
+	COS0_6, COS0_9,  COS1_6,	/* 31, 31, 30 */
+	COS0_7, COS0_8,  COS1_7,	/* 31, 31, 28 */
+	/* second pass */
+	 COS2_0,  COS2_3, COS3_0,	/* 31, 29, 31 */
+	 COS2_1,  COS2_2, COS3_1,	/* 31, 31, 30 */
+	-COS2_0, -COS2_3, COS3_0, 	/* 31, 29, 31 */
+	-COS2_1, -COS2_2, COS3_1, 	/* 31, 31, 30 */
+	 COS2_0,  COS2_3, COS3_0, 	/* 31, 29, 31 */
+	 COS2_1,  COS2_2, COS3_1, 	/* 31, 31, 30 */
+	-COS2_0, -COS2_3, COS3_0, 	/* 31, 29, 31 */
+	-COS2_1, -COS2_2, COS3_1, 	/* 31, 31, 30 */
+};
+
+#define D32FP(i, s0, s1, s2) { \
+    a0 = buf[i];			a3 = buf[31-i]; \
+	a1 = buf[15-i];			a2 = buf[16+i]; \
+    b0 = a0 + a3;			b3 = MULSHIFT32(*cptr++, a0 - a3) << (s0);	\
+	b1 = a1 + a2;			b2 = MULSHIFT32(*cptr++, a1 - a2) << (s1);	\
+	buf[i] = b0 + b1;		buf[15-i] = MULSHIFT32(*cptr,   b0 - b1) << (s2); \
+	buf[16+i] = b2 + b3;    buf[31-i] = MULSHIFT32(*cptr++, b3 - b2) << (s2); \
+}
+
+/**************************************************************************************
+ * Function:    FDCT32
+ *
+ * Description: Ken's highly-optimized 32-point DCT (radix-4 + radix-8) 
+ *
+ * Inputs:      input buffer, length = 32 samples
+ *              require at least 6 guard bits in input vector x to avoid possibility
+ *                of overflow in internal calculations (see bbtest_imdct test app)
+ *              buffer offset and oddblock flag for polyphase filter input buffer
+ *              number of guard bits in input
+ *
+ * Outputs:     output buffer, data copied and interleaved for polyphase filter
+ *              no guarantees about number of guard bits in output
+ *
+ * Return:      none
+ *
+ * Notes:       number of muls = 4*8 + 12*4 = 80
+ *              final stage of DCT is hardcoded to shuffle data into the proper order
+ *                for the polyphase filterbank
+ *              fully unrolled stage 1, for max precision (scale the 1/cos() factors
+ *                differently, depending on magnitude)
+ *              guard bit analysis verified by exhaustive testing of all 2^32 
+ *                combinations of max pos/max neg values in x[]
+ *
+ * TODO:        code organization and optimization for ARM
+ *              possibly interleave stereo (cut # of coef loads in half - may not have
+ *                enough registers)
+ **************************************************************************************/
+void FDCT32(int *buf, int *dest, int offset, int oddBlock, int gb)
+{
+    int i, s, tmp, es;
+    const int *cptr = dcttab;
+    int a0, a1, a2, a3, a4, a5, a6, a7;
+    int b0, b1, b2, b3, b4, b5, b6, b7;
+	int *d;
+
+	/* scaling - ensure at least 6 guard bits for DCT 
+	 * (in practice this is already true 99% of time, so this code is
+	 *  almost never triggered)
+	 */
+	es = 0;
+	if (gb < 6) {
+		es = 6 - gb;
+		for (i = 0; i < 32; i++)
+			buf[i] >>= es;
+	}
+
+	/* first pass */    
+	D32FP(0, 1, 5, 1);
+	D32FP(1, 1, 3, 1);
+	D32FP(2, 1, 3, 1);
+	D32FP(3, 1, 2, 1);
+	D32FP(4, 1, 2, 1);
+	D32FP(5, 1, 1, 2);
+	D32FP(6, 1, 1, 2);
+	D32FP(7, 1, 1, 4);
+
+	/* second pass */
+	for (i = 4; i > 0; i--) {
+		a0 = buf[0]; 	    a7 = buf[7];		a3 = buf[3];	    a4 = buf[4];
+		b0 = a0 + a7;	    b7 = MULSHIFT32(*cptr++, a0 - a7) << 1;
+		b3 = a3 + a4;	    b4 = MULSHIFT32(*cptr++, a3 - a4) << 3;
+		a0 = b0 + b3;	    a3 = MULSHIFT32(*cptr,   b0 - b3) << 1;
+		a4 = b4 + b7;		a7 = MULSHIFT32(*cptr++, b7 - b4) << 1;
+
+		a1 = buf[1];	    a6 = buf[6];	    a2 = buf[2];	    a5 = buf[5];
+		b1 = a1 + a6;	    b6 = MULSHIFT32(*cptr++, a1 - a6) << 1;
+		b2 = a2 + a5;	    b5 = MULSHIFT32(*cptr++, a2 - a5) << 1;
+		a1 = b1 + b2;		a2 = MULSHIFT32(*cptr,   b1 - b2) << 2;
+		a5 = b5 + b6;	    a6 = MULSHIFT32(*cptr++, b6 - b5) << 2;
+
+		b0 = a0 + a1;	    b1 = MULSHIFT32(COS4_0, a0 - a1) << 1;
+		b2 = a2 + a3;	    b3 = MULSHIFT32(COS4_0, a3 - a2) << 1;
+		buf[0] = b0;	    buf[1] = b1;
+		buf[2] = b2 + b3;	buf[3] = b3;
+
+		b4 = a4 + a5;	    b5 = MULSHIFT32(COS4_0, a4 - a5) << 1;
+		b6 = a6 + a7;	    b7 = MULSHIFT32(COS4_0, a7 - a6) << 1;
+		b6 += b7;
+		buf[4] = b4 + b6;	buf[5] = b5 + b7;
+		buf[6] = b5 + b6;	buf[7] = b7;
+
+		buf += 8;
+	}
+	buf -= 32;	/* reset */
+
+	/* sample 0 - always delayed one block */
+	d = dest + 64*16 + ((offset - oddBlock) & 7) + (oddBlock ? 0 : VBUF_LENGTH);
+	s = buf[ 0];				d[0] = d[8] = s;
+    
+	/* samples 16 to 31 */
+	d = dest + offset + (oddBlock ? VBUF_LENGTH  : 0);
+
+	s = buf[ 1];				d[0] = d[8] = s;	d += 64;
+
+	tmp = buf[25] + buf[29];
+	s = buf[17] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[ 9] + buf[13];		d[0] = d[8] = s;	d += 64;
+	s = buf[21] + tmp;			d[0] = d[8] = s;	d += 64;
+
+	tmp = buf[29] + buf[27];
+	s = buf[ 5];				d[0] = d[8] = s;	d += 64;
+	s = buf[21] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[13] + buf[11];		d[0] = d[8] = s;	d += 64;
+	s = buf[19] + tmp;			d[0] = d[8] = s;	d += 64;
+
+	tmp = buf[27] + buf[31];
+	s = buf[ 3];				d[0] = d[8] = s;	d += 64;
+	s = buf[19] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[11] + buf[15];		d[0] = d[8] = s;	d += 64;
+	s = buf[23] + tmp;			d[0] = d[8] = s;	d += 64;
+
+	tmp = buf[31];
+	s = buf[ 7];				d[0] = d[8] = s;	d += 64;
+	s = buf[23] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[15];				d[0] = d[8] = s;	d += 64;
+	s = tmp;					d[0] = d[8] = s;
+
+	/* samples 16 to 1 (sample 16 used again) */
+	d = dest + 16 + ((offset - oddBlock) & 7) + (oddBlock ? 0 : VBUF_LENGTH);
+
+	s = buf[ 1];				d[0] = d[8] = s;	d += 64;
+
+	tmp = buf[30] + buf[25];
+	s = buf[17] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[14] + buf[ 9];		d[0] = d[8] = s;	d += 64;
+	s = buf[22] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[ 6];				d[0] = d[8] = s;	d += 64;
+
+	tmp = buf[26] + buf[30];
+	s = buf[22] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[10] + buf[14];		d[0] = d[8] = s;	d += 64;
+	s = buf[18] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[ 2];				d[0] = d[8] = s;	d += 64;
+
+	tmp = buf[28] + buf[26];
+	s = buf[18] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[12] + buf[10];		d[0] = d[8] = s;	d += 64;
+	s = buf[20] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[ 4];				d[0] = d[8] = s;	d += 64;
+
+	tmp = buf[24] + buf[28];
+	s = buf[20] + tmp;			d[0] = d[8] = s;	d += 64;
+	s = buf[ 8] + buf[12];		d[0] = d[8] = s;	d += 64;
+	s = buf[16] + tmp;			d[0] = d[8] = s;
+
+	/* this is so rarely invoked that it's not worth making two versions of the output
+	 *   shuffle code (one for no shift, one for clip + variable shift) like in IMDCT
+	 * here we just load, clip, shift, and store on the rare instances that es != 0
+	 */
+	if (es) {
+		d = dest + 64*16 + ((offset - oddBlock) & 7) + (oddBlock ? 0 : VBUF_LENGTH);
+		s = d[0];	CLIP_2N(s, 31 - es);	d[0] = d[8] = (s << es);
+	
+		d = dest + offset + (oddBlock ? VBUF_LENGTH  : 0);
+		for (i = 16; i <= 31; i++) {
+			s = d[0];	CLIP_2N(s, 31 - es);	d[0] = d[8] = (s << es);	d += 64;
+		}
+
+		d = dest + 16 + ((offset - oddBlock) & 7) + (oddBlock ? 0 : VBUF_LENGTH);
+		for (i = 15; i >= 0; i--) {
+			s = d[0];	CLIP_2N(s, 31 - es);	d[0] = d[8] = (s << es);	d += 64;
+		}
+	}
+}

+ 158 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/dequant.c

@@ -0,0 +1,158 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * dequant.c - dequantization, stereo processing (intensity, mid-side), short-block
+ *               coefficient reordering
+ **************************************************************************************/
+
+#include "coder.h"
+#include "assembly.h"
+
+/**************************************************************************************
+ * Function:    Dequantize
+ *
+ * Description: dequantize coefficients, decode stereo, reorder short blocks
+ *                (one granule-worth)
+ *
+ * Inputs:      MP3DecInfo structure filled by UnpackFrameHeader(), UnpackSideInfo(),
+ *                UnpackScaleFactors(), and DecodeHuffman() (for this granule)
+ *              index of current granule
+ *
+ * Outputs:     dequantized and reordered coefficients in hi->huffDecBuf 
+ *                (one granule-worth, all channels), format = Q26
+ *              operates in-place on huffDecBuf but also needs di->workBuf
+ *              updated hi->nonZeroBound index for both channels
+ *
+ * Return:      0 on success, -1 if null input pointers
+ *
+ * Notes:       In calling output Q(DQ_FRACBITS_OUT), we assume an implicit bias 
+ *                of 2^15. Some (floating-point) reference implementations factor this 
+ *                into the 2^(0.25 * gain) scaling explicitly. But to avoid precision 
+ *                loss, we don't do that. Instead take it into account in the final 
+ *                round to PCM (>> by 15 less than we otherwise would have).
+ *              Equivalently, we can think of the dequantized coefficients as 
+ *                Q(DQ_FRACBITS_OUT - 15) with no implicit bias. 
+ **************************************************************************************/
+int Dequantize(MP3DecInfo *mp3DecInfo, int gr)
+{
+	int i, ch, nSamps, mOut[2];
+	FrameHeader *fh;
+	SideInfo *si;
+	ScaleFactorInfo *sfi;
+	HuffmanInfo *hi;
+	DequantInfo *di;
+	CriticalBandInfo *cbi;
+
+	/* validate pointers */
+	if (!mp3DecInfo || !mp3DecInfo->FrameHeaderPS || !mp3DecInfo->SideInfoPS || !mp3DecInfo->ScaleFactorInfoPS || 
+		!mp3DecInfo->HuffmanInfoPS || !mp3DecInfo->DequantInfoPS)
+		return -1;
+
+	fh = (FrameHeader *)(mp3DecInfo->FrameHeaderPS);
+
+	/* si is an array of up to 4 structs, stored as gr0ch0, gr0ch1, gr1ch0, gr1ch1 */
+	si = (SideInfo *)(mp3DecInfo->SideInfoPS);
+	sfi = (ScaleFactorInfo *)(mp3DecInfo->ScaleFactorInfoPS);
+	hi = (HuffmanInfo *)mp3DecInfo->HuffmanInfoPS;
+	di = (DequantInfo *)mp3DecInfo->DequantInfoPS;
+	cbi = di->cbi;
+	mOut[0] = mOut[1] = 0;
+
+	/* dequantize all the samples in each channel */
+	for (ch = 0; ch < mp3DecInfo->nChans; ch++) {
+		hi->gb[ch] = DequantChannel(hi->huffDecBuf[ch], di->workBuf, &hi->nonZeroBound[ch], fh, 
+			&si->sis[gr][ch], &sfi->sfis[gr][ch], &cbi[ch]);
+	}
+
+	/* joint stereo processing assumes one guard bit in input samples
+	 * it's extremely rare not to have at least one gb, so if this is the case
+	 *   just make a pass over the data and clip to [-2^30+1, 2^30-1]
+	 * in practice this may never happen
+	 */
+	if (fh->modeExt && (hi->gb[0] < 1 || hi->gb[1] < 1)) {
+		for (i = 0; i < hi->nonZeroBound[0]; i++) {
+			if (hi->huffDecBuf[0][i] < -0x3fffffff)	 hi->huffDecBuf[0][i] = -0x3fffffff;
+			if (hi->huffDecBuf[0][i] >  0x3fffffff)	 hi->huffDecBuf[0][i] =  0x3fffffff;
+		}
+		for (i = 0; i < hi->nonZeroBound[1]; i++) {
+			if (hi->huffDecBuf[1][i] < -0x3fffffff)	 hi->huffDecBuf[1][i] = -0x3fffffff;
+			if (hi->huffDecBuf[1][i] >  0x3fffffff)	 hi->huffDecBuf[1][i] =  0x3fffffff;
+		}
+	}
+
+	/* do mid-side stereo processing, if enabled */
+	if (fh->modeExt >> 1) {
+		if (fh->modeExt & 0x01) {
+			/* intensity stereo enabled - run mid-side up to start of right zero region */
+			if (cbi[1].cbType == 0)
+				nSamps = fh->sfBand->l[cbi[1].cbEndL + 1];
+			else 
+				nSamps = 3 * fh->sfBand->s[cbi[1].cbEndSMax + 1];
+		} else {
+			/* intensity stereo disabled - run mid-side on whole spectrum */
+			nSamps = MAX(hi->nonZeroBound[0], hi->nonZeroBound[1]);
+		}
+		MidSideProc(hi->huffDecBuf, nSamps, mOut);
+	}
+
+	/* do intensity stereo processing, if enabled */
+	if (fh->modeExt & 0x01) {
+		nSamps = hi->nonZeroBound[0];
+		if (fh->ver == MPEG1) {
+			IntensityProcMPEG1(hi->huffDecBuf, nSamps, fh, &sfi->sfis[gr][1], di->cbi, 
+				fh->modeExt >> 1, si->sis[gr][1].mixedBlock, mOut);
+		} else {
+			IntensityProcMPEG2(hi->huffDecBuf, nSamps, fh, &sfi->sfis[gr][1], di->cbi, &sfi->sfjs,
+				fh->modeExt >> 1, si->sis[gr][1].mixedBlock, mOut);
+		}
+	}
+
+	/* adjust guard bit count and nonZeroBound if we did any stereo processing */
+	if (fh->modeExt) {
+		hi->gb[0] = CLZ(mOut[0]) - 1;
+		hi->gb[1] = CLZ(mOut[1]) - 1;
+		nSamps = MAX(hi->nonZeroBound[0], hi->nonZeroBound[1]);
+		hi->nonZeroBound[0] = nSamps;
+		hi->nonZeroBound[1] = nSamps;
+	}
+
+	/* output format Q(DQ_FRACBITS_OUT) */
+	return 0;
+}

+ 375 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/dqchan.c

@@ -0,0 +1,375 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * August 2003
+ *
+ * dqchan.c - dequantization of transform coefficients
+ **************************************************************************************/
+
+#include "coder.h"
+#include "assembly.h"
+
+typedef int ARRAY3[3];	/* for short-block reordering */
+
+/* optional pre-emphasis for high-frequency scale factor bands */
+static const char preTab[22] = { 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0 };
+
+/* pow(2,-i/4) for i=0..3, Q31 format */
+static const int pow14[4] = { 
+	0x7fffffff, 0x6ba27e65, 0x5a82799a, 0x4c1bf829
+};
+
+/* pow(2,-i/4) * pow(j,4/3) for i=0..3 j=0..15, Q25 format */
+static const int pow43_14[4][16] = {
+{	0x00000000, 0x10000000, 0x285145f3, 0x453a5cdb, /* Q28 */
+	0x0cb2ff53, 0x111989d6, 0x15ce31c8, 0x1ac7f203, 
+	0x20000000, 0x257106b9, 0x2b16b4a3, 0x30ed74b4, 
+	0x36f23fa5, 0x3d227bd3, 0x437be656, 0x49fc823c, },
+
+{	0x00000000, 0x0d744fcd, 0x21e71f26, 0x3a36abd9, 
+	0x0aadc084, 0x0e610e6e, 0x12560c1d, 0x168523cf, 
+	0x1ae89f99, 0x1f7c03a4, 0x243bae49, 0x29249c67, 
+	0x2e34420f, 0x33686f85, 0x38bf3dff, 0x3e370182, },
+
+{	0x00000000, 0x0b504f33, 0x1c823e07, 0x30f39a55, 
+	0x08facd62, 0x0c176319, 0x0f6b3522, 0x12efe2ad, 
+	0x16a09e66, 0x1a79a317, 0x1e77e301, 0x2298d5b4, 
+	0x26da56fc, 0x2b3a902a, 0x2fb7e7e7, 0x3450f650, },
+
+{	0x00000000, 0x09837f05, 0x17f910d7, 0x2929c7a9, 
+	0x078d0dfa, 0x0a2ae661, 0x0cf73154, 0x0fec91cb, 
+	0x1306fe0a, 0x16434a6c, 0x199ee595, 0x1d17ae3d, 
+	0x20abd76a, 0x2459d551, 0x28204fbb, 0x2bfe1808, },
+};
+
+/* pow(j,4/3) for j=16..63, Q23 format */
+static const int pow43[] = {
+	0x1428a2fa, 0x15db1bd6, 0x1796302c, 0x19598d85, 
+	0x1b24e8bb, 0x1cf7fcfa, 0x1ed28af2, 0x20b4582a, 
+	0x229d2e6e, 0x248cdb55, 0x26832fda, 0x28800000, 
+	0x2a832287, 0x2c8c70a8, 0x2e9bc5d8, 0x30b0ff99, 
+	0x32cbfd4a, 0x34eca001, 0x3712ca62, 0x393e6088, 
+	0x3b6f47e0, 0x3da56717, 0x3fe0a5fc, 0x4220ed72, 
+	0x44662758, 0x46b03e7c, 0x48ff1e87, 0x4b52b3f3, 
+	0x4daaebfd, 0x5007b497, 0x5268fc62, 0x54ceb29c, 
+	0x5738c721, 0x59a72a59, 0x5c19cd35, 0x5e90a129, 
+	0x610b9821, 0x638aa47f, 0x660db90f, 0x6894c90b, 
+	0x6b1fc80c, 0x6daeaa0d, 0x70416360, 0x72d7e8b0, 
+	0x75722ef9, 0x78102b85, 0x7ab1d3ec, 0x7d571e09, 
+};
+
+/* sqrt(0.5) in Q31 format */
+#define SQRTHALF 0x5a82799a
+
+/*
+ * Minimax polynomial approximation to pow(x, 4/3), over the range
+ *  poly43lo: x = [0.5, 0.7071]
+ *  poly43hi: x = [0.7071, 1.0]
+ *
+ * Relative error < 1E-7
+ * Coefs are scaled by 4, 2, 1, 0.5, 0.25
+ */
+static const int poly43lo[5] = { 0x29a0bda9, 0xb02e4828, 0x5957aa1b, 0x236c498d, 0xff581859 };
+static const int poly43hi[5] = { 0x10852163, 0xd333f6a4, 0x46e9408b, 0x27c2cef0, 0xfef577b4 };
+
+/* pow(2, i*4/3) as exp and frac */
+static const int pow2exp[8]  = { 14, 13, 11, 10, 9, 7, 6, 5 };
+
+static const int pow2frac[8] = {
+	0x6597fa94, 0x50a28be6, 0x7fffffff, 0x6597fa94, 
+	0x50a28be6, 0x7fffffff, 0x6597fa94, 0x50a28be6
+};
+
+/**************************************************************************************
+ * Function:    DequantBlock
+ *
+ * Description: Ken's highly-optimized, low memory dequantizer performing the operation
+ *              y = pow(x, 4.0/3.0) * pow(2, 25 - scale/4.0)
+ *
+ * Inputs:      input buffer of decode Huffman codewords (signed-magnitude)
+ *              output buffer of same length (in-place (outbuf = inbuf) is allowed)
+ *              number of samples
+ *              
+ * Outputs:     dequantized samples in Q25 format
+ *
+ * Return:      bitwise-OR of the unsigned outputs (for guard bit calculations)
+ **************************************************************************************/
+static int DequantBlock(int *inbuf, int *outbuf, int num, int scale)
+{
+	int tab4[4];
+	int scalef, scalei, shift;
+	int sx, x, y;
+	int mask = 0;
+	const int *tab16, *coef;
+
+	tab16 = pow43_14[scale & 0x3];
+	scalef = pow14[scale & 0x3];
+	scalei = MIN(scale >> 2, 31);	/* smallest input scale = -47, so smallest scalei = -12 */
+
+	/* cache first 4 values */
+	shift = MIN(scalei + 3, 31);
+	shift = MAX(shift, 0);
+	tab4[0] = 0;
+	tab4[1] = tab16[1] >> shift;
+	tab4[2] = tab16[2] >> shift;
+	tab4[3] = tab16[3] >> shift;
+
+	do {
+
+		sx = *inbuf++;
+		x = sx & 0x7fffffff;	/* sx = sign|mag */
+
+		if (x < 4) {
+
+			y = tab4[x];
+
+		} else if (x < 16) {
+
+			y = tab16[x];
+			y = (scalei < 0) ? y << -scalei : y >> scalei;
+
+		} else {
+
+			if (x < 64) {
+
+				y = pow43[x-16];
+
+				/* fractional scale */
+				y = MULSHIFT32(y, scalef);
+				shift = scalei - 3;
+
+			} else {
+
+				/* normalize to [0x40000000, 0x7fffffff] */
+				x <<= 17;
+				shift = 0;
+				if (x < 0x08000000)
+					x <<= 4, shift += 4;
+				if (x < 0x20000000)
+					x <<= 2, shift += 2;
+				if (x < 0x40000000)
+					x <<= 1, shift += 1;
+
+				coef = (x < SQRTHALF) ? poly43lo : poly43hi;
+
+				/* polynomial */
+				y = coef[0];
+				y = MULSHIFT32(y, x) + coef[1];
+				y = MULSHIFT32(y, x) + coef[2];
+				y = MULSHIFT32(y, x) + coef[3];
+				y = MULSHIFT32(y, x) + coef[4];
+				y = MULSHIFT32(y, pow2frac[shift]) << 3;
+
+				/* fractional scale */
+				y = MULSHIFT32(y, scalef);
+				shift = scalei - pow2exp[shift];
+			}
+
+			/* integer scale */
+			if (shift < 0) {
+				shift = -shift;
+				if (y > (0x7fffffff >> shift))
+					y = 0x7fffffff;		/* clip */
+				else
+					y <<= shift;
+			} else {
+				y >>= shift;
+			}
+		}
+
+		/* sign and store */
+		mask |= y;
+		*outbuf++ = (sx < 0) ? -y : y;
+
+	} while (--num);
+
+	return mask;
+}
+
+/**************************************************************************************
+ * Function:    DequantChannel
+ *
+ * Description: dequantize one granule, one channel worth of decoded Huffman codewords
+ *
+ * Inputs:      sample buffer (decoded Huffman codewords), length = MAX_NSAMP samples
+ *              work buffer for reordering short-block, length = MAX_REORDER_SAMPS
+ *                samples (3 * width of largest short-block critical band)
+ *              non-zero bound for this channel/granule
+ *              valid FrameHeader, SideInfoSub, ScaleFactorInfoSub, and CriticalBandInfo
+ *                structures for this channel/granule
+ *
+ * Outputs:     MAX_NSAMP dequantized samples in sampleBuf
+ *              updated non-zero bound (indicating which samples are != 0 after DQ)
+ *              filled-in cbi structure indicating start and end critical bands
+ *
+ * Return:      minimum number of guard bits in dequantized sampleBuf
+ *
+ * Notes:       dequantized samples in Q(DQ_FRACBITS_OUT) format 
+ **************************************************************************************/
+int DequantChannel(int *sampleBuf, int *workBuf, int *nonZeroBound, FrameHeader *fh, SideInfoSub *sis, 
+					ScaleFactorInfoSub *sfis, CriticalBandInfo *cbi)
+{
+	int i, j, w, cb;
+	int cbStartL, cbEndL, cbStartS, cbEndS;
+	int nSamps, nonZero, sfactMultiplier, gbMask;
+	int globalGain, gainI;
+	int cbMax[3];
+	ARRAY3 *buf;    /* short block reorder */
+	
+	/* set default start/end points for short/long blocks - will update with non-zero cb info */
+	if (sis->blockType == 2) {
+		cbStartL = 0;
+		if (sis->mixedBlock) { 
+			cbEndL = (fh->ver == MPEG1 ? 8 : 6); 
+			cbStartS = 3; 
+		} else {
+			cbEndL = 0; 
+			cbStartS = 0;
+		}
+		cbEndS = 13;
+	} else {
+		/* long block */
+		cbStartL = 0;
+		cbEndL =   22;
+		cbStartS = 13;
+		cbEndS =   13;
+	}
+	cbMax[2] = cbMax[1] = cbMax[0] = 0;
+	gbMask = 0;
+	i = 0;
+
+	/* sfactScale = 0 --> quantizer step size = 2
+	 * sfactScale = 1 --> quantizer step size = sqrt(2)
+	 *   so sfactMultiplier = 2 or 4 (jump through globalGain by powers of 2 or sqrt(2))
+	 */
+	sfactMultiplier = 2 * (sis->sfactScale + 1);
+
+	/* offset globalGain by -2 if midSide enabled, for 1/sqrt(2) used in MidSideProc()
+	 *  (DequantBlock() does 0.25 * gainI so knocking it down by two is the same as 
+	 *   dividing every sample by sqrt(2) = multiplying by 2^-.5)
+	 */
+	globalGain = sis->globalGain;
+	if (fh->modeExt >> 1)
+		 globalGain -= 2;
+	globalGain += IMDCT_SCALE;		/* scale everything by sqrt(2), for fast IMDCT36 */
+
+	/* long blocks */
+	for (cb = 0; cb < cbEndL; cb++) {
+
+		nonZero = 0;
+		nSamps = fh->sfBand->l[cb + 1] - fh->sfBand->l[cb];
+		gainI = 210 - globalGain + sfactMultiplier * (sfis->l[cb] + (sis->preFlag ? (int)preTab[cb] : 0));
+
+		nonZero |= DequantBlock(sampleBuf + i, sampleBuf + i, nSamps, gainI);
+		i += nSamps;
+
+		/* update highest non-zero critical band */
+		if (nonZero) 
+			cbMax[0] = cb;
+		gbMask |= nonZero;
+
+		if (i >= *nonZeroBound) 
+			break;
+	}
+
+	/* set cbi (Type, EndS[], EndSMax will be overwritten if we proceed to do short blocks) */
+	cbi->cbType = 0;			/* long only */
+	cbi->cbEndL  = cbMax[0];
+	cbi->cbEndS[0] = cbi->cbEndS[1] = cbi->cbEndS[2] = 0;
+	cbi->cbEndSMax = 0;
+
+	/* early exit if no short blocks */
+	if (cbStartS >= 12) 
+		return CLZ(gbMask) - 1;
+	
+	/* short blocks */
+	cbMax[2] = cbMax[1] = cbMax[0] = cbStartS;
+	for (cb = cbStartS; cb < cbEndS; cb++) {
+
+		nSamps = fh->sfBand->s[cb + 1] - fh->sfBand->s[cb];
+		for (w = 0; w < 3; w++) {
+			nonZero =  0;
+			gainI = 210 - globalGain + 8*sis->subBlockGain[w] + sfactMultiplier*(sfis->s[cb][w]);
+
+			nonZero |= DequantBlock(sampleBuf + i + nSamps*w, workBuf + nSamps*w, nSamps, gainI);
+
+			/* update highest non-zero critical band */
+			if (nonZero)
+				cbMax[w] = cb;
+			gbMask |= nonZero;
+		}
+
+		/* reorder blocks */
+		buf = (ARRAY3 *)(sampleBuf + i);
+		i += 3*nSamps;
+		for (j = 0; j < nSamps; j++) {
+			buf[j][0] = workBuf[0*nSamps + j];
+			buf[j][1] = workBuf[1*nSamps + j];
+			buf[j][2] = workBuf[2*nSamps + j];
+		}
+
+		ASSERT(3*nSamps <= MAX_REORDER_SAMPS);
+
+		if (i >= *nonZeroBound) 
+			break;
+	}
+
+	/* i = last non-zero INPUT sample processed, which corresponds to highest possible non-zero 
+	 *     OUTPUT sample (after reorder)
+	 * however, the original nzb is no longer necessarily true
+	 *   for each cb, buf[][] is updated with 3*nSamps samples (i increases 3*nSamps each time)
+	 *   (buf[j + 1][0] = 3 (input) samples ahead of buf[j][0])
+     * so update nonZeroBound to i
+	 */
+	*nonZeroBound = i;
+
+	ASSERT(*nonZeroBound <= MAX_NSAMP);
+
+	cbi->cbType = (sis->mixedBlock ? 2 : 1);	/* 2 = mixed short/long, 1 = short only */
+
+	cbi->cbEndS[0] = cbMax[0];
+	cbi->cbEndS[1] = cbMax[1];
+	cbi->cbEndS[2] = cbMax[2];
+
+	cbi->cbEndSMax = cbMax[0];
+	cbi->cbEndSMax = MAX(cbi->cbEndSMax, cbMax[1]);
+	cbi->cbEndSMax = MAX(cbi->cbEndSMax, cbMax[2]);
+
+	return CLZ(gbMask) - 1;
+}
+

+ 458 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/huffman.c

@@ -0,0 +1,458 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * July 2003
+ *
+ * huffman.c - Huffman decoding of transform coefficients
+ **************************************************************************************/
+
+#include "coder.h"
+
+/* helper macros - see comments in hufftabs.c about the format of the huffman tables */
+#define GetMaxbits(x)   ((int)( (((unsigned short)(x)) >>  0) & 0x000f))
+#define GetHLen(x)      ((int)( (((unsigned short)(x)) >> 12) & 0x000f))
+#define GetCWY(x)       ((int)( (((unsigned short)(x)) >>  8) & 0x000f))
+#define GetCWX(x)       ((int)( (((unsigned short)(x)) >>  4) & 0x000f))
+#define GetSignBits(x)  ((int)( (((unsigned short)(x)) >>  0) & 0x000f))
+
+#define GetHLenQ(x)     ((int)( (((unsigned char)(x)) >> 4) & 0x0f))
+#define GetCWVQ(x)      ((int)( (((unsigned char)(x)) >> 3) & 0x01))
+#define GetCWWQ(x)      ((int)( (((unsigned char)(x)) >> 2) & 0x01))
+#define GetCWXQ(x)      ((int)( (((unsigned char)(x)) >> 1) & 0x01))
+#define GetCWYQ(x)      ((int)( (((unsigned char)(x)) >> 0) & 0x01))
+
+/* apply sign of s to the positive number x (save in MSB, will do two's complement in dequant) */
+#define ApplySign(x, s)	{ (x) |= ((s) & 0x80000000); }
+
+/**************************************************************************************
+ * Function:    DecodeHuffmanPairs
+ *
+ * Description: decode 2-way vector Huffman codes in the "bigValues" region of spectrum
+ *
+ * Inputs:      valid BitStreamInfo struct, pointing to start of pair-wise codes
+ *              pointer to xy buffer to received decoded values
+ *              number of codewords to decode
+ *              index of Huffman table to use
+ *              number of bits remaining in bitstream
+ *
+ * Outputs:     pairs of decoded coefficients in vwxy
+ *              updated BitStreamInfo struct
+ *
+ * Return:      number of bits used, or -1 if out of bits
+ *
+ * Notes:       assumes that nVals is an even number
+ *              si_huff.bit tests every Huffman codeword in every table (though not
+ *                necessarily all linBits outputs for x,y > 15)
+ **************************************************************************************/
+static int DecodeHuffmanPairs(int *xy, int nVals, int tabIdx, int bitsLeft, unsigned char *buf, int bitOffset)
+{
+	int i, x, y;
+	int cachedBits, padBits, len, startBits, linBits, maxBits, minBits;
+	HuffTabType tabType;
+	unsigned short cw, *tBase, *tCurr;
+	unsigned int cache;
+
+	if(nVals <= 0) 
+		return 0;
+
+	if (bitsLeft < 0)
+		return -1;
+	startBits = bitsLeft;
+
+	tBase = (unsigned short *)(huffTable + huffTabOffset[tabIdx]);
+	linBits = huffTabLookup[tabIdx].linBits;
+	tabType = huffTabLookup[tabIdx].tabType;
+
+	ASSERT(!(nVals & 0x01));
+	ASSERT(tabIdx < HUFF_PAIRTABS);
+	ASSERT(tabIdx >= 0);
+	ASSERT(tabType != invalidTab);
+
+	/* initially fill cache with any partial byte */
+	cache = 0;
+	cachedBits = (8 - bitOffset) & 0x07;
+	if (cachedBits)
+		cache = (unsigned int)(*buf++) << (32 - cachedBits);
+	bitsLeft -= cachedBits;
+
+	if (tabType == noBits) {
+		/* table 0, no data, x = y = 0 */
+		for (i = 0; i < nVals; i+=2) {
+			xy[i+0] = 0;
+			xy[i+1] = 0;
+		}
+		return 0;
+	} else if (tabType == oneShot) {
+		/* single lookup, no escapes */
+		maxBits = GetMaxbits(tBase[0]);
+		tBase++;
+		padBits = 0;
+		while (nVals > 0) {
+			/* refill cache - assumes cachedBits <= 16 */
+			if (bitsLeft >= 16) {
+				/* load 2 new bytes into left-justified cache */
+				cache |= (unsigned int)(*buf++) << (24 - cachedBits);
+				cache |= (unsigned int)(*buf++) << (16 - cachedBits);
+				cachedBits += 16;
+				bitsLeft -= 16;
+			} else {
+				/* last time through, pad cache with zeros and drain cache */
+				if (cachedBits + bitsLeft <= 0)	return -1;
+				if (bitsLeft > 0)	cache |= (unsigned int)(*buf++) << (24 - cachedBits);
+				if (bitsLeft > 8)	cache |= (unsigned int)(*buf++) << (16 - cachedBits);
+				cachedBits += bitsLeft;
+				bitsLeft = 0;
+
+				cache &= (signed int)0x80000000 >> (cachedBits - 1);
+				padBits = 11;
+				cachedBits += padBits;	/* okay if this is > 32 (0's automatically shifted in from right) */
+			}
+
+			/* largest maxBits = 9, plus 2 for sign bits, so make sure cache has at least 11 bits */
+			while (nVals > 0 && cachedBits >= 11 ) {
+				cw = tBase[cache >> (32 - maxBits)];
+				len = GetHLen(cw);
+				cachedBits -= len;
+				cache <<= len;
+
+				x = GetCWX(cw);		if (x)	{ApplySign(x, cache); cache <<= 1; cachedBits--;}
+				y = GetCWY(cw);		if (y)	{ApplySign(y, cache); cache <<= 1; cachedBits--;}
+
+				/* ran out of bits - should never have consumed padBits */
+				if (cachedBits < padBits)
+					return -1;
+
+				*xy++ = x;
+				*xy++ = y;
+				nVals -= 2;
+			}
+		}
+		bitsLeft += (cachedBits - padBits);
+		return (startBits - bitsLeft);
+	} else if (tabType == loopLinbits || tabType == loopNoLinbits) {
+		tCurr = tBase;
+		padBits = 0;
+		while (nVals > 0) {
+			/* refill cache - assumes cachedBits <= 16 */
+			if (bitsLeft >= 16) {
+				/* load 2 new bytes into left-justified cache */
+				cache |= (unsigned int)(*buf++) << (24 - cachedBits);
+				cache |= (unsigned int)(*buf++) << (16 - cachedBits);
+				cachedBits += 16;
+				bitsLeft -= 16;
+			} else {
+				/* last time through, pad cache with zeros and drain cache */
+				if (cachedBits + bitsLeft <= 0)	return -1;
+				if (bitsLeft > 0)	cache |= (unsigned int)(*buf++) << (24 - cachedBits);
+				if (bitsLeft > 8)	cache |= (unsigned int)(*buf++) << (16 - cachedBits);
+				cachedBits += bitsLeft;
+				bitsLeft = 0;
+
+				cache &= (signed int)0x80000000 >> (cachedBits - 1);
+				padBits = 11;
+				cachedBits += padBits;	/* okay if this is > 32 (0's automatically shifted in from right) */
+			}
+
+			/* largest maxBits = 9, plus 2 for sign bits, so make sure cache has at least 11 bits */
+			while (nVals > 0 && cachedBits >= 11 ) {
+				maxBits = GetMaxbits(tCurr[0]);
+				cw = tCurr[(cache >> (32 - maxBits)) + 1];
+				len = GetHLen(cw);
+				if (!len) {
+					cachedBits -= maxBits;
+					cache <<= maxBits;
+					tCurr += cw;
+					continue;
+				}
+				cachedBits -= len;
+				cache <<= len;
+			
+				x = GetCWX(cw);
+				y = GetCWY(cw);
+
+				if (x == 15 && tabType == loopLinbits) {
+					minBits = linBits + 1 + (y ? 1 : 0);
+					if (cachedBits + bitsLeft < minBits)
+						return -1;
+					while (cachedBits < minBits) {
+						cache |= (unsigned int)(*buf++) << (24 - cachedBits);
+						cachedBits += 8;
+						bitsLeft -= 8;
+					}
+					if (bitsLeft < 0) {
+						cachedBits += bitsLeft;
+						bitsLeft = 0;
+						cache &= (signed int)0x80000000 >> (cachedBits - 1);
+					}
+					x += (int)(cache >> (32 - linBits));
+					cachedBits -= linBits;
+					cache <<= linBits;
+				}
+				if (x)	{ApplySign(x, cache); cache <<= 1; cachedBits--;}
+
+				if (y == 15 && tabType == loopLinbits) {
+					minBits = linBits + 1;
+					if (cachedBits + bitsLeft < minBits)
+						return -1;
+					while (cachedBits < minBits) {
+						cache |= (unsigned int)(*buf++) << (24 - cachedBits);
+						cachedBits += 8;
+						bitsLeft -= 8;
+					}
+					if (bitsLeft < 0) {
+						cachedBits += bitsLeft;
+						bitsLeft = 0;
+						cache &= (signed int)0x80000000 >> (cachedBits - 1);
+					}
+					y += (int)(cache >> (32 - linBits));
+					cachedBits -= linBits;
+					cache <<= linBits;
+				}
+				if (y)	{ApplySign(y, cache); cache <<= 1; cachedBits--;}
+
+				/* ran out of bits - should never have consumed padBits */
+				if (cachedBits < padBits)
+					return -1;
+
+				*xy++ = x;
+				*xy++ = y;
+				nVals -= 2;
+				tCurr = tBase;
+			}
+		}
+		bitsLeft += (cachedBits - padBits);
+		return (startBits - bitsLeft);
+	}
+
+	/* error in bitstream - trying to access unused Huffman table */
+	return -1;
+}
+
+/**************************************************************************************
+ * Function:    DecodeHuffmanQuads
+ *
+ * Description: decode 4-way vector Huffman codes in the "count1" region of spectrum
+ *
+ * Inputs:      valid BitStreamInfo struct, pointing to start of quadword codes
+ *              pointer to vwxy buffer to received decoded values
+ *              maximum number of codewords to decode
+ *              index of quadword table (0 = table A, 1 = table B)
+ *              number of bits remaining in bitstream
+ *
+ * Outputs:     quadruples of decoded coefficients in vwxy
+ *              updated BitStreamInfo struct
+ *
+ * Return:      index of the first "zero_part" value (index of the first sample 
+ *                of the quad word after which all samples are 0)
+ * 
+ * Notes:        si_huff.bit tests every vwxy output in both quad tables
+ **************************************************************************************/
+static int DecodeHuffmanQuads(int *vwxy, int nVals, int tabIdx, int bitsLeft, unsigned char *buf, int bitOffset)
+{
+	int i, v, w, x, y;
+	int len, maxBits, cachedBits, padBits;
+	unsigned int cache;
+	unsigned char cw, *tBase;
+
+	if (bitsLeft <= 0)
+		return 0;
+
+	tBase = (unsigned char *)quadTable + quadTabOffset[tabIdx];
+	maxBits = quadTabMaxBits[tabIdx];
+
+	/* initially fill cache with any partial byte */
+	cache = 0;
+	cachedBits = (8 - bitOffset) & 0x07;
+	if (cachedBits)
+		cache = (unsigned int)(*buf++) << (32 - cachedBits);
+	bitsLeft -= cachedBits;
+
+	i = padBits = 0;
+	while (i < (nVals - 3)) {
+		/* refill cache - assumes cachedBits <= 16 */
+		if (bitsLeft >= 16) {
+			/* load 2 new bytes into left-justified cache */
+			cache |= (unsigned int)(*buf++) << (24 - cachedBits);
+			cache |= (unsigned int)(*buf++) << (16 - cachedBits);
+			cachedBits += 16;
+			bitsLeft -= 16;
+		} else {
+			/* last time through, pad cache with zeros and drain cache */
+			if (cachedBits + bitsLeft <= 0) return i;
+			if (bitsLeft > 0)	cache |= (unsigned int)(*buf++) << (24 - cachedBits);
+			if (bitsLeft > 8)	cache |= (unsigned int)(*buf++) << (16 - cachedBits);
+			cachedBits += bitsLeft;
+			bitsLeft = 0;
+
+			cache &= (signed int)0x80000000 >> (cachedBits - 1);
+			padBits = 10;
+			cachedBits += padBits;	/* okay if this is > 32 (0's automatically shifted in from right) */
+		}
+
+		/* largest maxBits = 6, plus 4 for sign bits, so make sure cache has at least 10 bits */
+		while (i < (nVals - 3) && cachedBits >= 10 ) {
+			cw = tBase[cache >> (32 - maxBits)];
+			len = GetHLenQ(cw);
+			cachedBits -= len;
+			cache <<= len;
+
+			v = GetCWVQ(cw);	if(v) {ApplySign(v, cache); cache <<= 1; cachedBits--;}
+			w = GetCWWQ(cw);	if(w) {ApplySign(w, cache); cache <<= 1; cachedBits--;}
+			x = GetCWXQ(cw);	if(x) {ApplySign(x, cache); cache <<= 1; cachedBits--;}
+			y = GetCWYQ(cw);	if(y) {ApplySign(y, cache); cache <<= 1; cachedBits--;}
+
+			/* ran out of bits - okay (means we're done) */
+			if (cachedBits < padBits)
+				return i;
+
+			*vwxy++ = v;
+			*vwxy++ = w;
+			*vwxy++ = x;
+			*vwxy++ = y;
+			i += 4;
+		}
+	}
+
+	/* decoded max number of quad values */
+	return i;
+}
+
+/**************************************************************************************
+ * Function:    DecodeHuffman
+ *
+ * Description: decode one granule, one channel worth of Huffman codes
+ *
+ * Inputs:      MP3DecInfo structure filled by UnpackFrameHeader(), UnpackSideInfo(),
+ *                and UnpackScaleFactors() (for this granule)
+ *              buffer pointing to start of Huffman data in MP3 frame
+ *              pointer to bit offset (0-7) indicating starting bit in buf[0]
+ *              number of bits in the Huffman data section of the frame
+ *                (could include padding bits)
+ *              index of current granule and channel
+ *
+ * Outputs:     decoded coefficients in hi->huffDecBuf[ch] (hi pointer in mp3DecInfo)
+ *              updated bitOffset
+ *
+ * Return:      length (in bytes) of Huffman codes
+ *              bitOffset also returned in parameter (0 = MSB, 7 = LSB of 
+ *                byte located at buf + offset)
+ *              -1 if null input pointers, huffBlockBits < 0, or decoder runs 
+ *                out of bits prematurely (invalid bitstream)
+ **************************************************************************************/
+int DecodeHuffman(MP3DecInfo *mp3DecInfo, unsigned char *buf, int *bitOffset, int huffBlockBits, int gr, int ch)
+{
+	int r1Start, r2Start, rEnd[4];	/* region boundaries */
+	int i, w, bitsUsed, bitsLeft;
+	unsigned char *startBuf = buf;
+
+	FrameHeader *fh;
+	SideInfo *si;
+	SideInfoSub *sis;
+	ScaleFactorInfo *sfi;
+	HuffmanInfo *hi;
+
+	/* validate pointers */
+	if (!mp3DecInfo || !mp3DecInfo->FrameHeaderPS || !mp3DecInfo->SideInfoPS || !mp3DecInfo->ScaleFactorInfoPS || !mp3DecInfo->HuffmanInfoPS)
+		return -1;
+
+	fh = ((FrameHeader *)(mp3DecInfo->FrameHeaderPS));
+	si = ((SideInfo *)(mp3DecInfo->SideInfoPS));
+	sis = &si->sis[gr][ch];
+	sfi = ((ScaleFactorInfo *)(mp3DecInfo->ScaleFactorInfoPS));
+	hi = (HuffmanInfo*)(mp3DecInfo->HuffmanInfoPS);
+
+	if (huffBlockBits < 0)
+		return -1;
+
+	/* figure out region boundaries (the first 2*bigVals coefficients divided into 3 regions) */
+	if (sis->winSwitchFlag && sis->blockType == 2) {
+		if (sis->mixedBlock == 0) {
+			r1Start = fh->sfBand->s[(sis->region0Count + 1)/3] * 3;
+		} else {
+			if (fh->ver == MPEG1) {
+				r1Start = fh->sfBand->l[sis->region0Count + 1];
+			} else {
+				/* see MPEG2 spec for explanation */
+				w = fh->sfBand->s[4] - fh->sfBand->s[3];
+				r1Start = fh->sfBand->l[6] + 2*w;
+			}
+		}
+		r2Start = MAX_NSAMP;	/* short blocks don't have region 2 */
+	} else {
+		r1Start = fh->sfBand->l[sis->region0Count + 1];
+		r2Start = fh->sfBand->l[sis->region0Count + 1 + sis->region1Count + 1];
+	}
+
+	/* offset rEnd index by 1 so first region = rEnd[1] - rEnd[0], etc. */
+	rEnd[3] = MIN(MAX_NSAMP, 2 * sis->nBigvals);
+	rEnd[2] = MIN(r2Start, rEnd[3]);
+	rEnd[1] = MIN(r1Start, rEnd[3]);
+	rEnd[0] = 0;
+
+	/* rounds up to first all-zero pair (we don't check last pair for (x,y) == (non-zero, zero)) */
+	hi->nonZeroBound[ch] = rEnd[3];
+
+	/* decode Huffman pairs (rEnd[i] are always even numbers) */
+	bitsLeft = huffBlockBits;
+	for (i = 0; i < 3; i++) {
+		bitsUsed = DecodeHuffmanPairs(hi->huffDecBuf[ch] + rEnd[i], rEnd[i+1] - rEnd[i], sis->tableSelect[i], bitsLeft, buf, *bitOffset);
+		if (bitsUsed < 0 || bitsUsed > bitsLeft)	/* error - overran end of bitstream */
+			return -1;
+
+		/* update bitstream position */
+		buf += (bitsUsed + *bitOffset) >> 3;
+		*bitOffset = (bitsUsed + *bitOffset) & 0x07;
+		bitsLeft -= bitsUsed;
+	}
+
+	/* decode Huffman quads (if any) */
+	hi->nonZeroBound[ch] += DecodeHuffmanQuads(hi->huffDecBuf[ch] + rEnd[3], MAX_NSAMP - rEnd[3], sis->count1TableSelect, bitsLeft, buf, *bitOffset);
+
+	ASSERT(hi->nonZeroBound[ch] <= MAX_NSAMP);
+	for (i = hi->nonZeroBound[ch]; i < MAX_NSAMP; i++)
+		hi->huffDecBuf[ch][i] = 0;
+	
+	/* If bits used for 576 samples < huffBlockBits, then the extras are considered
+	 *  to be stuffing bits (throw away, but need to return correct bitstream position) 
+	 */
+	buf += (bitsLeft + *bitOffset) >> 3;
+	*bitOffset = (bitsLeft + *bitOffset) & 0x07;
+	
+	return (buf - startBuf);
+}
+

+ 755 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/hufftabs.c

@@ -0,0 +1,755 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * hufftabs.c - compressed Huffman code tables
+ **************************************************************************************/
+
+#include "coder.h"
+
+/* NOTE - regenerated tables to use shorts instead of ints 
+ *        (all needed data can fit in 16 bits - see below)
+ *
+ * format 0xABCD
+ *  A = length of codeword
+ *  B = y value
+ *  C = x value
+ *  D = number of sign bits (0, 1, or 2)
+ *
+ * to read a CW, the code reads maxbits from the stream (dep. on 
+ *   table index), but doesn't remove them from the bitstream reader
+ * then it gets the correct CW by direct lookup into the table
+ *   of length (2^maxbits) (more complicated for non-oneShot...)
+ * for CW's with hlen < maxbits, there are multiple entries in the 
+ *   table (extra bits are don't cares)
+ * the bitstream reader then "purges" (or removes) only the correct
+ *   number of bits for the chosen CW
+ *
+ * entries starting with F are special: D (signbits) is maxbits,
+ *   so the decoder always checks huffTableXX[0] first, gets the 
+ *   signbits, and reads that many bits from the bitstream
+ *   (sometimes it takes > 1 read to get the value, so maxbits is
+ *    can get updated by jumping to another value starting with 0xF)
+ * entries starting with 0 are also special: A = hlen = 0, rest of 
+ *   value is an offset to jump higher in the table (for tables of 
+ *   type loopNoLinbits or loopLinbits)
+ */
+
+/* store Huffman codes as one big table plus table of offsets, since some platforms
+ *   don't properly support table-of-tables (table of pointers to other const tables)
+ */
+const unsigned short huffTable[] = {
+	/* huffTable01[9] */
+	0xf003, 0x3112, 0x3101, 0x2011, 0x2011, 0x1000, 0x1000, 0x1000, 
+	0x1000, 
+
+	/* huffTable02[65] */
+	0xf006, 0x6222, 0x6201, 0x5212, 0x5212, 0x5122, 0x5122, 0x5021, 
+	0x5021, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 
+
+	/* huffTable03[65] */
+	0xf006, 0x6222, 0x6201, 0x5212, 0x5212, 0x5122, 0x5122, 0x5021, 
+	0x5021, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2101, 0x2101, 0x2101, 0x2101, 0x2101, 0x2101, 0x2101, 
+	0x2101, 0x2101, 0x2101, 0x2101, 0x2101, 0x2101, 0x2101, 0x2101, 
+	0x2101, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 
+	
+	/* huffTable05[257] */
+	0xf008, 0x8332, 0x8322, 0x7232, 0x7232, 0x6132, 0x6132, 0x6132, 
+	0x6132, 0x7312, 0x7312, 0x7301, 0x7301, 0x7031, 0x7031, 0x7222, 
+	0x7222, 0x6212, 0x6212, 0x6212, 0x6212, 0x6122, 0x6122, 0x6122, 
+	0x6122, 0x6201, 0x6201, 0x6201, 0x6201, 0x6021, 0x6021, 0x6021, 
+	0x6021, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 
+
+	/* huffTable06[129] */
+	0xf007, 0x7332, 0x7301, 0x6322, 0x6322, 0x6232, 0x6232, 0x6031, 
+	0x6031, 0x5312, 0x5312, 0x5312, 0x5312, 0x5132, 0x5132, 0x5132, 
+	0x5132, 0x5222, 0x5222, 0x5222, 0x5222, 0x5201, 0x5201, 0x5201, 
+	0x5201, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 
+	0x4212, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 
+	0x4122, 0x4021, 0x4021, 0x4021, 0x4021, 0x4021, 0x4021, 0x4021, 
+	0x4021, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 
+	0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 
+	0x3000, 
+
+	/* huffTable07[110] */
+	0xf006, 0x0041, 0x0052, 0x005b, 0x0060, 0x0063, 0x0068, 0x006b, 
+	0x6212, 0x5122, 0x5122, 0x6201, 0x6021, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0xf004, 0x4552, 0x4542, 0x4452, 0x4352, 0x3532, 0x3532, 
+	0x3442, 0x3442, 0x3522, 0x3522, 0x3252, 0x3252, 0x2512, 0x2512, 
+	0x2512, 0x2512, 0xf003, 0x2152, 0x2152, 0x3501, 0x3432, 0x2051, 
+	0x2051, 0x3342, 0x3332, 0xf002, 0x2422, 0x2242, 0x1412, 0x1412, 
+	0xf001, 0x1142, 0x1041, 0xf002, 0x2401, 0x2322, 0x2232, 0x2301, 
+	0xf001, 0x1312, 0x1132, 0xf001, 0x1031, 0x1222, 
+
+	/* huffTable08[280] */
+	0xf008, 0x0101, 0x010a, 0x010f, 0x8512, 0x8152, 0x0112, 0x0115, 
+	0x8422, 0x8242, 0x8412, 0x7142, 0x7142, 0x8401, 0x8041, 0x8322, 
+	0x8232, 0x8312, 0x8132, 0x8301, 0x8031, 0x6222, 0x6222, 0x6222, 
+	0x6222, 0x6201, 0x6201, 0x6201, 0x6201, 0x6021, 0x6021, 0x6021, 
+	0x6021, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 
+	0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 
+	0x4212, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 
+	0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 
+	0x4122, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 0x2112, 
+	0x2112, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0xf003, 0x3552, 0x3452, 0x2542, 0x2542, 0x1352, 0x1352, 
+	0x1352, 0x1352, 0xf002, 0x2532, 0x2442, 0x1522, 0x1522, 0xf001, 
+	0x1252, 0x1501, 0xf001, 0x1432, 0x1342, 0xf001, 0x1051, 0x1332, 
+
+	/* huffTable09[93] */
+	0xf006, 0x0041, 0x004a, 0x004f, 0x0052, 0x0057, 0x005a, 0x6412, 
+	0x6142, 0x6322, 0x6232, 0x5312, 0x5312, 0x5132, 0x5132, 0x6301, 
+	0x6031, 0x5222, 0x5222, 0x5201, 0x5201, 0x4212, 0x4212, 0x4212, 
+	0x4212, 0x4122, 0x4122, 0x4122, 0x4122, 0x4021, 0x4021, 0x4021, 
+	0x4021, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 
+	0x3000, 0xf003, 0x3552, 0x3542, 0x2532, 0x2532, 0x2352, 0x2352, 
+	0x3452, 0x3501, 0xf002, 0x2442, 0x2522, 0x2252, 0x2512, 0xf001, 
+	0x1152, 0x1432, 0xf002, 0x1342, 0x1342, 0x2051, 0x2401, 0xf001, 
+	0x1422, 0x1242, 0xf001, 0x1332, 0x1041, 
+
+	/* huffTable10[320] */
+	0xf008, 0x0101, 0x010a, 0x010f, 0x0118, 0x011b, 0x0120, 0x0125, 
+	0x8712, 0x8172, 0x012a, 0x012d, 0x0132, 0x8612, 0x8162, 0x8061, 
+	0x0137, 0x013a, 0x013d, 0x8412, 0x8142, 0x8041, 0x8322, 0x8232, 
+	0x8301, 0x7312, 0x7312, 0x7132, 0x7132, 0x7031, 0x7031, 0x7222, 
+	0x7222, 0x6212, 0x6212, 0x6212, 0x6212, 0x6122, 0x6122, 0x6122, 
+	0x6122, 0x6201, 0x6201, 0x6201, 0x6201, 0x6021, 0x6021, 0x6021, 
+	0x6021, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0xf003, 0x3772, 0x3762, 0x3672, 0x3752, 0x3572, 0x3662, 
+	0x2742, 0x2742, 0xf002, 0x2472, 0x2652, 0x2562, 0x2732, 0xf003, 
+	0x2372, 0x2372, 0x2642, 0x2642, 0x3552, 0x3452, 0x2362, 0x2362, 
+	0xf001, 0x1722, 0x1272, 0xf002, 0x2462, 0x2701, 0x1071, 0x1071, 
+	0xf002, 0x1262, 0x1262, 0x2542, 0x2532, 0xf002, 0x1601, 0x1601, 
+	0x2352, 0x2442, 0xf001, 0x1632, 0x1622, 0xf002, 0x2522, 0x2252, 
+	0x1512, 0x1512, 0xf002, 0x1152, 0x1152, 0x2432, 0x2342, 0xf001, 
+	0x1501, 0x1051, 0xf001, 0x1422, 0x1242, 0xf001, 0x1332, 0x1401, 
+
+	/* huffTable11[296] */
+	0xf008, 0x0101, 0x0106, 0x010f, 0x0114, 0x0117, 0x8722, 0x8272, 
+	0x011c, 0x7172, 0x7172, 0x8712, 0x8071, 0x8632, 0x8362, 0x8061, 
+	0x011f, 0x0122, 0x8512, 0x7262, 0x7262, 0x8622, 0x8601, 0x7612, 
+	0x7612, 0x7162, 0x7162, 0x8152, 0x8432, 0x8051, 0x0125, 0x8422, 
+	0x8242, 0x8412, 0x8142, 0x8401, 0x8041, 0x7322, 0x7322, 0x7232, 
+	0x7232, 0x6312, 0x6312, 0x6312, 0x6312, 0x6132, 0x6132, 0x6132, 
+	0x6132, 0x7301, 0x7301, 0x7031, 0x7031, 0x6222, 0x6222, 0x6222, 
+	0x6222, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 
+	0x5122, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 
+	0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 
+	0x4212, 0x5201, 0x5201, 0x5201, 0x5201, 0x5201, 0x5201, 0x5201, 
+	0x5201, 0x5021, 0x5021, 0x5021, 0x5021, 0x5021, 0x5021, 0x5021, 
+	0x5021, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 
+	0x2000, 0xf002, 0x2772, 0x2762, 0x2672, 0x2572, 0xf003, 0x2662, 
+	0x2662, 0x2742, 0x2742, 0x2472, 0x2472, 0x3752, 0x3552, 0xf002, 
+	0x2652, 0x2562, 0x1732, 0x1732, 0xf001, 0x1372, 0x1642, 0xf002, 
+	0x2542, 0x2452, 0x2532, 0x2352, 0xf001, 0x1462, 0x1701, 0xf001, 
+	0x1442, 0x1522, 0xf001, 0x1252, 0x1501, 0xf001, 0x1342, 0x1332, 
+
+	/* huffTable12[185] */
+	0xf007, 0x0081, 0x008a, 0x008f, 0x0092, 0x0097, 0x009a, 0x009d, 
+	0x00a2, 0x00a5, 0x00a8, 0x7622, 0x7262, 0x7162, 0x00ad, 0x00b0, 
+	0x00b3, 0x7512, 0x7152, 0x7432, 0x7342, 0x00b6, 0x7422, 0x7242, 
+	0x7412, 0x6332, 0x6332, 0x6142, 0x6142, 0x6322, 0x6322, 0x6232, 
+	0x6232, 0x7041, 0x7301, 0x6031, 0x6031, 0x5312, 0x5312, 0x5312, 
+	0x5312, 0x5132, 0x5132, 0x5132, 0x5132, 0x5222, 0x5222, 0x5222, 
+	0x5222, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 0x4212, 
+	0x4212, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 0x4122, 
+	0x4122, 0x5201, 0x5201, 0x5201, 0x5201, 0x5021, 0x5021, 0x5021, 
+	0x5021, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 
+	0x4000, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 0x3101, 
+	0x3101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0xf003, 0x3772, 0x3762, 0x2672, 0x2672, 0x2752, 0x2752, 
+	0x2572, 0x2572, 0xf002, 0x2662, 0x2742, 0x2472, 0x2562, 0xf001, 
+	0x1652, 0x1732, 0xf002, 0x2372, 0x2552, 0x1722, 0x1722, 0xf001, 
+	0x1272, 0x1642, 0xf001, 0x1462, 0x1712, 0xf002, 0x1172, 0x1172, 
+	0x2701, 0x2071, 0xf001, 0x1632, 0x1362, 0xf001, 0x1542, 0x1452, 
+	0xf002, 0x1442, 0x1442, 0x2601, 0x2501, 0xf001, 0x1612, 0x1061, 
+	0xf001, 0x1532, 0x1352, 0xf001, 0x1522, 0x1252, 0xf001, 0x1051, 
+	0x1401, 
+
+	/* huffTable13[497] */
+	0xf006, 0x0041, 0x0082, 0x00c3, 0x00e4, 0x0105, 0x0116, 0x011f, 
+	0x0130, 0x0139, 0x013e, 0x0143, 0x0146, 0x6212, 0x6122, 0x6201, 
+	0x6021, 0x4112, 0x4112, 0x4112, 0x4112, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0xf006, 0x0108, 0x0111, 0x011a, 0x0123, 0x012c, 0x0131, 
+	0x0136, 0x013f, 0x0144, 0x0147, 0x014c, 0x0151, 0x0156, 0x015b, 
+	0x6f12, 0x61f2, 0x60f1, 0x0160, 0x0163, 0x0166, 0x62e2, 0x0169, 
+	0x6e12, 0x61e2, 0x016c, 0x016f, 0x0172, 0x0175, 0x0178, 0x017b, 
+	0x66c2, 0x6d32, 0x017e, 0x6d22, 0x62d2, 0x6d12, 0x67b2, 0x0181, 
+	0x0184, 0x63c2, 0x0187, 0x6b42, 0x51d2, 0x51d2, 0x6d01, 0x60d1, 
+	0x6a82, 0x68a2, 0x6c42, 0x64c2, 0x6b62, 0x66b2, 0x5c32, 0x5c32, 
+	0x5c22, 0x5c22, 0x52c2, 0x52c2, 0x5b52, 0x5b52, 0x65b2, 0x6982, 
+	0x5c12, 0x5c12, 0xf006, 0x51c2, 0x51c2, 0x6892, 0x6c01, 0x50c1, 
+	0x50c1, 0x64b2, 0x6a62, 0x66a2, 0x6972, 0x5b32, 0x5b32, 0x53b2, 
+	0x53b2, 0x6882, 0x6a52, 0x5b22, 0x5b22, 0x65a2, 0x6962, 0x54a2, 
+	0x54a2, 0x6872, 0x6782, 0x5492, 0x5492, 0x6772, 0x6672, 0x42b2, 
+	0x42b2, 0x42b2, 0x42b2, 0x4b12, 0x4b12, 0x4b12, 0x4b12, 0x41b2, 
+	0x41b2, 0x41b2, 0x41b2, 0x5b01, 0x5b01, 0x50b1, 0x50b1, 0x5692, 
+	0x5692, 0x5a42, 0x5a42, 0x5a32, 0x5a32, 0x53a2, 0x53a2, 0x5952, 
+	0x5952, 0x5592, 0x5592, 0x4a22, 0x4a22, 0x4a22, 0x4a22, 0x42a2, 
+	0x42a2, 0x42a2, 0x42a2, 0xf005, 0x4a12, 0x4a12, 0x41a2, 0x41a2, 
+	0x5a01, 0x5862, 0x40a1, 0x40a1, 0x5682, 0x5942, 0x4392, 0x4392, 
+	0x5932, 0x5852, 0x5582, 0x5762, 0x4922, 0x4922, 0x4292, 0x4292, 
+	0x5752, 0x5572, 0x4832, 0x4832, 0x4382, 0x4382, 0x5662, 0x5742, 
+	0x5472, 0x5652, 0x5562, 0x5372, 0xf005, 0x3912, 0x3912, 0x3912, 
+	0x3912, 0x3192, 0x3192, 0x3192, 0x3192, 0x4901, 0x4901, 0x4091, 
+	0x4091, 0x4842, 0x4842, 0x4482, 0x4482, 0x4272, 0x4272, 0x5642, 
+	0x5462, 0x3822, 0x3822, 0x3822, 0x3822, 0x3282, 0x3282, 0x3282, 
+	0x3282, 0x3812, 0x3812, 0x3812, 0x3812, 0xf004, 0x4732, 0x4722, 
+	0x3712, 0x3712, 0x3172, 0x3172, 0x4552, 0x4701, 0x4071, 0x4632, 
+	0x4362, 0x4542, 0x4452, 0x4622, 0x4262, 0x4532, 0xf003, 0x2182, 
+	0x2182, 0x3801, 0x3081, 0x3612, 0x3162, 0x3601, 0x3061, 0xf004, 
+	0x4352, 0x4442, 0x3522, 0x3522, 0x3252, 0x3252, 0x3501, 0x3501, 
+	0x2512, 0x2512, 0x2512, 0x2512, 0x2152, 0x2152, 0x2152, 0x2152, 
+	0xf003, 0x3432, 0x3342, 0x3051, 0x3422, 0x3242, 0x3332, 0x2412, 
+	0x2412, 0xf002, 0x1142, 0x1142, 0x2401, 0x2041, 0xf002, 0x2322, 
+	0x2232, 0x1312, 0x1312, 0xf001, 0x1132, 0x1301, 0xf001, 0x1031, 
+	0x1222, 0xf003, 0x0082, 0x008b, 0x008e, 0x0091, 0x0094, 0x0097, 
+	0x3ce2, 0x3dd2, 0xf003, 0x0093, 0x3eb2, 0x3be2, 0x3f92, 0x39f2, 
+	0x3ae2, 0x3db2, 0x3bd2, 0xf003, 0x3f82, 0x38f2, 0x3cc2, 0x008d, 
+	0x3e82, 0x0090, 0x27f2, 0x27f2, 0xf003, 0x2ad2, 0x2ad2, 0x3da2, 
+	0x3cb2, 0x3bc2, 0x36f2, 0x2f62, 0x2f62, 0xf002, 0x28e2, 0x2f52, 
+	0x2d92, 0x29d2, 0xf002, 0x25f2, 0x27e2, 0x2ca2, 0x2bb2, 0xf003, 
+	0x2f42, 0x2f42, 0x24f2, 0x24f2, 0x3ac2, 0x36e2, 0x23f2, 0x23f2, 
+	0xf002, 0x1f32, 0x1f32, 0x2d82, 0x28d2, 0xf001, 0x1f22, 0x12f2, 
+	0xf002, 0x2e62, 0x2c92, 0x1f01, 0x1f01, 0xf002, 0x29c2, 0x2e52, 
+	0x1ba2, 0x1ba2, 0xf002, 0x2d72, 0x27d2, 0x1e42, 0x1e42, 0xf002, 
+	0x28c2, 0x26d2, 0x1e32, 0x1e32, 0xf002, 0x19b2, 0x19b2, 0x2b92, 
+	0x2aa2, 0xf001, 0x1ab2, 0x15e2, 0xf001, 0x14e2, 0x1c82, 0xf001, 
+	0x1d62, 0x13e2, 0xf001, 0x1e22, 0x1e01, 0xf001, 0x10e1, 0x1d52, 
+	0xf001, 0x15d2, 0x1c72, 0xf001, 0x17c2, 0x1d42, 0xf001, 0x1b82, 
+	0x18b2, 0xf001, 0x14d2, 0x1a92, 0xf001, 0x19a2, 0x1c62, 0xf001, 
+	0x13d2, 0x1b72, 0xf001, 0x1c52, 0x15c2, 0xf001, 0x1992, 0x1a72, 
+	0xf001, 0x17a2, 0x1792, 0xf003, 0x0023, 0x3df2, 0x2de2, 0x2de2, 
+	0x1ff2, 0x1ff2, 0x1ff2, 0x1ff2, 0xf001, 0x1fe2, 0x1fd2, 0xf001, 
+	0x1ee2, 0x1fc2, 0xf001, 0x1ed2, 0x1fb2, 0xf001, 0x1bf2, 0x1ec2, 
+	0xf002, 0x1cd2, 0x1cd2, 0x2fa2, 0x29e2, 0xf001, 0x1af2, 0x1dc2, 
+	0xf001, 0x1ea2, 0x1e92, 0xf001, 0x1f72, 0x1e72, 0xf001, 0x1ef2, 
+	0x1cf2, 
+
+	/* huffTable15[580] */
+	0xf008, 0x0101, 0x0122, 0x0143, 0x0154, 0x0165, 0x0176, 0x017f, 
+	0x0188, 0x0199, 0x01a2, 0x01ab, 0x01b4, 0x01bd, 0x01c2, 0x01cb, 
+	0x01d4, 0x01d9, 0x01de, 0x01e3, 0x01e8, 0x01ed, 0x01f2, 0x01f7, 
+	0x01fc, 0x0201, 0x0204, 0x0207, 0x020a, 0x020f, 0x0212, 0x0215, 
+	0x021a, 0x021d, 0x0220, 0x8192, 0x0223, 0x0226, 0x0229, 0x022c, 
+	0x022f, 0x8822, 0x8282, 0x8812, 0x8182, 0x0232, 0x0235, 0x0238, 
+	0x023b, 0x8722, 0x8272, 0x8462, 0x8712, 0x8552, 0x8172, 0x023e, 
+	0x8632, 0x8362, 0x8542, 0x8452, 0x8622, 0x8262, 0x8612, 0x0241, 
+	0x8532, 0x7162, 0x7162, 0x8352, 0x8442, 0x7522, 0x7522, 0x7252, 
+	0x7252, 0x7512, 0x7512, 0x7152, 0x7152, 0x8501, 0x8051, 0x7432, 
+	0x7432, 0x7342, 0x7342, 0x7422, 0x7422, 0x7242, 0x7242, 0x7332, 
+	0x7332, 0x6142, 0x6142, 0x6142, 0x6142, 0x7412, 0x7412, 0x7401, 
+	0x7401, 0x6322, 0x6322, 0x6322, 0x6322, 0x6232, 0x6232, 0x6232, 
+	0x6232, 0x7041, 0x7041, 0x7301, 0x7301, 0x6312, 0x6312, 0x6312, 
+	0x6312, 0x6132, 0x6132, 0x6132, 0x6132, 0x6031, 0x6031, 0x6031, 
+	0x6031, 0x5222, 0x5222, 0x5222, 0x5222, 0x5222, 0x5222, 0x5222, 
+	0x5222, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 
+	0x5212, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 
+	0x5122, 0x5201, 0x5201, 0x5201, 0x5201, 0x5201, 0x5201, 0x5201, 
+	0x5201, 0x5021, 0x5021, 0x5021, 0x5021, 0x5021, 0x5021, 0x5021, 
+	0x5021, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 0x3112, 
+	0x3112, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 
+	0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 
+	0x4011, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 
+	0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 
+	0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 
+	0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 
+	0x3000, 0xf005, 0x5ff2, 0x5fe2, 0x5ef2, 0x5fd2, 0x4ee2, 0x4ee2, 
+	0x5df2, 0x5fc2, 0x5cf2, 0x5ed2, 0x5de2, 0x5fb2, 0x4bf2, 0x4bf2, 
+	0x5ec2, 0x5ce2, 0x4dd2, 0x4dd2, 0x4fa2, 0x4fa2, 0x4af2, 0x4af2, 
+	0x4eb2, 0x4eb2, 0x4be2, 0x4be2, 0x4dc2, 0x4dc2, 0x4cd2, 0x4cd2, 
+	0x4f92, 0x4f92, 0xf005, 0x49f2, 0x49f2, 0x4ae2, 0x4ae2, 0x4db2, 
+	0x4db2, 0x4bd2, 0x4bd2, 0x4f82, 0x4f82, 0x48f2, 0x48f2, 0x4cc2, 
+	0x4cc2, 0x4e92, 0x4e92, 0x49e2, 0x49e2, 0x4f72, 0x4f72, 0x47f2, 
+	0x47f2, 0x4da2, 0x4da2, 0x4ad2, 0x4ad2, 0x4cb2, 0x4cb2, 0x4f62, 
+	0x4f62, 0x5ea2, 0x5f01, 0xf004, 0x3bc2, 0x3bc2, 0x36f2, 0x36f2, 
+	0x4e82, 0x48e2, 0x4f52, 0x4d92, 0x35f2, 0x35f2, 0x3e72, 0x3e72, 
+	0x37e2, 0x37e2, 0x3ca2, 0x3ca2, 0xf004, 0x3ac2, 0x3ac2, 0x3bb2, 
+	0x3bb2, 0x49d2, 0x4d82, 0x3f42, 0x3f42, 0x34f2, 0x34f2, 0x3f32, 
+	0x3f32, 0x33f2, 0x33f2, 0x38d2, 0x38d2, 0xf004, 0x36e2, 0x36e2, 
+	0x3f22, 0x3f22, 0x32f2, 0x32f2, 0x4e62, 0x40f1, 0x3f12, 0x3f12, 
+	0x31f2, 0x31f2, 0x3c92, 0x3c92, 0x39c2, 0x39c2, 0xf003, 0x3e52, 
+	0x3ba2, 0x3ab2, 0x35e2, 0x3d72, 0x37d2, 0x3e42, 0x34e2, 0xf003, 
+	0x3c82, 0x38c2, 0x3e32, 0x3d62, 0x36d2, 0x33e2, 0x3b92, 0x39b2, 
+	0xf004, 0x3e22, 0x3e22, 0x3aa2, 0x3aa2, 0x32e2, 0x32e2, 0x3e12, 
+	0x3e12, 0x31e2, 0x31e2, 0x4e01, 0x40e1, 0x3d52, 0x3d52, 0x35d2, 
+	0x35d2, 0xf003, 0x3c72, 0x37c2, 0x3d42, 0x3b82, 0x24d2, 0x24d2, 
+	0x38b2, 0x3a92, 0xf003, 0x39a2, 0x3c62, 0x36c2, 0x3d32, 0x23d2, 
+	0x23d2, 0x22d2, 0x22d2, 0xf003, 0x3d22, 0x3d01, 0x2d12, 0x2d12, 
+	0x2b72, 0x2b72, 0x27b2, 0x27b2, 0xf003, 0x21d2, 0x21d2, 0x3c52, 
+	0x30d1, 0x25c2, 0x25c2, 0x2a82, 0x2a82, 0xf002, 0x28a2, 0x2c42, 
+	0x24c2, 0x2b62, 0xf003, 0x26b2, 0x26b2, 0x3992, 0x3c01, 0x2c32, 
+	0x2c32, 0x23c2, 0x23c2, 0xf003, 0x2a72, 0x2a72, 0x27a2, 0x27a2, 
+	0x26a2, 0x26a2, 0x30c1, 0x3b01, 0xf002, 0x12c2, 0x12c2, 0x2c22, 
+	0x2b52, 0xf002, 0x25b2, 0x2c12, 0x2982, 0x2892, 0xf002, 0x21c2, 
+	0x2b42, 0x24b2, 0x2a62, 0xf002, 0x2b32, 0x2972, 0x13b2, 0x13b2, 
+	0xf002, 0x2792, 0x2882, 0x2b22, 0x2a52, 0xf002, 0x12b2, 0x12b2, 
+	0x25a2, 0x2b12, 0xf002, 0x11b2, 0x11b2, 0x20b1, 0x2962, 0xf002, 
+	0x2692, 0x2a42, 0x24a2, 0x2872, 0xf002, 0x2782, 0x2a32, 0x13a2, 
+	0x13a2, 0xf001, 0x1952, 0x1592, 0xf001, 0x1a22, 0x12a2, 0xf001, 
+	0x1a12, 0x11a2, 0xf002, 0x2a01, 0x20a1, 0x1862, 0x1862, 0xf001, 
+	0x1682, 0x1942, 0xf001, 0x1492, 0x1932, 0xf002, 0x1392, 0x1392, 
+	0x2772, 0x2901, 0xf001, 0x1852, 0x1582, 0xf001, 0x1922, 0x1762, 
+	0xf001, 0x1672, 0x1292, 0xf001, 0x1912, 0x1091, 0xf001, 0x1842, 
+	0x1482, 0xf001, 0x1752, 0x1572, 0xf001, 0x1832, 0x1382, 0xf001, 
+	0x1662, 0x1742, 0xf001, 0x1472, 0x1801, 0xf001, 0x1081, 0x1652, 
+	0xf001, 0x1562, 0x1732, 0xf001, 0x1372, 0x1642, 0xf001, 0x1701, 
+	0x1071, 0xf001, 0x1601, 0x1061, 
+
+	/* huffTable16[651] */
+	0xf008, 0x0101, 0x010a, 0x0113, 0x8ff2, 0x0118, 0x011d, 0x0120, 
+	0x82f2, 0x0131, 0x8f12, 0x81f2, 0x0134, 0x0145, 0x0156, 0x0167, 
+	0x0178, 0x0189, 0x019a, 0x01a3, 0x01ac, 0x01b5, 0x01be, 0x01c7, 
+	0x01d0, 0x01d9, 0x01de, 0x01e3, 0x01e6, 0x01eb, 0x01f0, 0x8152, 
+	0x01f3, 0x01f6, 0x01f9, 0x01fc, 0x8412, 0x8142, 0x01ff, 0x8322, 
+	0x8232, 0x7312, 0x7312, 0x7132, 0x7132, 0x8301, 0x8031, 0x7222, 
+	0x7222, 0x6212, 0x6212, 0x6212, 0x6212, 0x6122, 0x6122, 0x6122, 
+	0x6122, 0x6201, 0x6201, 0x6201, 0x6201, 0x6021, 0x6021, 0x6021, 
+	0x6021, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 0x3011, 
+	0x3011, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 
+	0x1000, 0xf003, 0x3fe2, 0x3ef2, 0x3fd2, 0x3df2, 0x3fc2, 0x3cf2, 
+	0x3fb2, 0x3bf2, 0xf003, 0x2fa2, 0x2fa2, 0x3af2, 0x3f92, 0x39f2, 
+	0x38f2, 0x2f82, 0x2f82, 0xf002, 0x2f72, 0x27f2, 0x2f62, 0x26f2, 
+	0xf002, 0x2f52, 0x25f2, 0x1f42, 0x1f42, 0xf001, 0x14f2, 0x13f2, 
+	0xf004, 0x10f1, 0x10f1, 0x10f1, 0x10f1, 0x10f1, 0x10f1, 0x10f1, 
+	0x10f1, 0x2f32, 0x2f32, 0x2f32, 0x2f32, 0x00e2, 0x00f3, 0x00fc, 
+	0x0105, 0xf001, 0x1f22, 0x1f01, 0xf004, 0x00fa, 0x00ff, 0x0104, 
+	0x0109, 0x010c, 0x0111, 0x0116, 0x0119, 0x011e, 0x0123, 0x0128, 
+	0x43e2, 0x012d, 0x0130, 0x0133, 0x0136, 0xf004, 0x0128, 0x012b, 
+	0x012e, 0x4d01, 0x0131, 0x0134, 0x0137, 0x4c32, 0x013a, 0x4c12, 
+	0x40c1, 0x013d, 0x32e2, 0x32e2, 0x4e22, 0x4e12, 0xf004, 0x43d2, 
+	0x4d22, 0x42d2, 0x41d2, 0x4b32, 0x012f, 0x3d12, 0x3d12, 0x44c2, 
+	0x4b62, 0x43c2, 0x47a2, 0x3c22, 0x3c22, 0x42c2, 0x45b2, 0xf004, 
+	0x41c2, 0x4c01, 0x4b42, 0x44b2, 0x4a62, 0x46a2, 0x33b2, 0x33b2, 
+	0x4a52, 0x45a2, 0x3b22, 0x3b22, 0x32b2, 0x32b2, 0x3b12, 0x3b12, 
+	0xf004, 0x31b2, 0x31b2, 0x4b01, 0x40b1, 0x4962, 0x4692, 0x4a42, 
+	0x44a2, 0x4872, 0x4782, 0x33a2, 0x33a2, 0x4a32, 0x4952, 0x3a22, 
+	0x3a22, 0xf004, 0x4592, 0x4862, 0x31a2, 0x31a2, 0x4682, 0x4772, 
+	0x3492, 0x3492, 0x4942, 0x4752, 0x3762, 0x3762, 0x22a2, 0x22a2, 
+	0x22a2, 0x22a2, 0xf003, 0x2a12, 0x2a12, 0x3a01, 0x30a1, 0x3932, 
+	0x3392, 0x3852, 0x3582, 0xf003, 0x2922, 0x2922, 0x2292, 0x2292, 
+	0x3672, 0x3901, 0x2912, 0x2912, 0xf003, 0x2192, 0x2192, 0x3091, 
+	0x3842, 0x3482, 0x3572, 0x3832, 0x3382, 0xf003, 0x3662, 0x3822, 
+	0x2282, 0x2282, 0x3742, 0x3472, 0x2812, 0x2812, 0xf003, 0x2182, 
+	0x2182, 0x2081, 0x2081, 0x3801, 0x3652, 0x2732, 0x2732, 0xf003, 
+	0x2372, 0x2372, 0x3562, 0x3642, 0x2722, 0x2722, 0x2272, 0x2272, 
+	0xf003, 0x3462, 0x3552, 0x2701, 0x2701, 0x1712, 0x1712, 0x1712, 
+	0x1712, 0xf002, 0x1172, 0x1172, 0x2071, 0x2632, 0xf002, 0x2362, 
+	0x2542, 0x2452, 0x2622, 0xf001, 0x1262, 0x1612, 0xf002, 0x1162, 
+	0x1162, 0x2601, 0x2061, 0xf002, 0x1352, 0x1352, 0x2532, 0x2442, 
+	0xf001, 0x1522, 0x1252, 0xf001, 0x1512, 0x1501, 0xf001, 0x1432, 
+	0x1342, 0xf001, 0x1051, 0x1422, 0xf001, 0x1242, 0x1332, 0xf001, 
+	0x1401, 0x1041, 0xf004, 0x4ec2, 0x0086, 0x3ed2, 0x3ed2, 0x39e2, 
+	0x39e2, 0x4ae2, 0x49d2, 0x2ee2, 0x2ee2, 0x2ee2, 0x2ee2, 0x3de2, 
+	0x3de2, 0x3be2, 0x3be2, 0xf003, 0x2eb2, 0x2eb2, 0x2dc2, 0x2dc2, 
+	0x3cd2, 0x3bd2, 0x2ea2, 0x2ea2, 0xf003, 0x2cc2, 0x2cc2, 0x3da2, 
+	0x3ad2, 0x3e72, 0x3ca2, 0x2ac2, 0x2ac2, 0xf003, 0x39c2, 0x3d72, 
+	0x2e52, 0x2e52, 0x1db2, 0x1db2, 0x1db2, 0x1db2, 0xf002, 0x1e92, 
+	0x1e92, 0x2cb2, 0x2bc2, 0xf002, 0x2e82, 0x28e2, 0x2d92, 0x27e2, 
+	0xf002, 0x2bb2, 0x2d82, 0x28d2, 0x2e62, 0xf001, 0x16e2, 0x1c92, 
+	0xf002, 0x2ba2, 0x2ab2, 0x25e2, 0x27d2, 0xf002, 0x1e42, 0x1e42, 
+	0x24e2, 0x2c82, 0xf001, 0x18c2, 0x1e32, 0xf002, 0x1d62, 0x1d62, 
+	0x26d2, 0x2b92, 0xf002, 0x29b2, 0x2aa2, 0x11e2, 0x11e2, 0xf002, 
+	0x14d2, 0x14d2, 0x28b2, 0x29a2, 0xf002, 0x1b72, 0x1b72, 0x27b2, 
+	0x20d1, 0xf001, 0x1e01, 0x10e1, 0xf001, 0x1d52, 0x15d2, 0xf001, 
+	0x1c72, 0x17c2, 0xf001, 0x1d42, 0x1b82, 0xf001, 0x1a92, 0x1c62, 
+	0xf001, 0x16c2, 0x1d32, 0xf001, 0x1c52, 0x15c2, 0xf001, 0x1a82, 
+	0x18a2, 0xf001, 0x1992, 0x1c42, 0xf001, 0x16b2, 0x1a72, 0xf001, 
+	0x1b52, 0x1982, 0xf001, 0x1892, 0x1972, 0xf001, 0x1792, 0x1882, 
+	0xf001, 0x1ce2, 0x1dd2, 
+
+	/* huffTable24[705] */
+	0xf009, 0x8fe2, 0x8fe2, 0x8ef2, 0x8ef2, 0x8fd2, 0x8fd2, 0x8df2, 
+	0x8df2, 0x8fc2, 0x8fc2, 0x8cf2, 0x8cf2, 0x8fb2, 0x8fb2, 0x8bf2, 
+	0x8bf2, 0x7af2, 0x7af2, 0x7af2, 0x7af2, 0x8fa2, 0x8fa2, 0x8f92, 
+	0x8f92, 0x79f2, 0x79f2, 0x79f2, 0x79f2, 0x78f2, 0x78f2, 0x78f2, 
+	0x78f2, 0x8f82, 0x8f82, 0x8f72, 0x8f72, 0x77f2, 0x77f2, 0x77f2, 
+	0x77f2, 0x7f62, 0x7f62, 0x7f62, 0x7f62, 0x76f2, 0x76f2, 0x76f2, 
+	0x76f2, 0x7f52, 0x7f52, 0x7f52, 0x7f52, 0x75f2, 0x75f2, 0x75f2, 
+	0x75f2, 0x7f42, 0x7f42, 0x7f42, 0x7f42, 0x74f2, 0x74f2, 0x74f2, 
+	0x74f2, 0x7f32, 0x7f32, 0x7f32, 0x7f32, 0x73f2, 0x73f2, 0x73f2, 
+	0x73f2, 0x7f22, 0x7f22, 0x7f22, 0x7f22, 0x72f2, 0x72f2, 0x72f2, 
+	0x72f2, 0x71f2, 0x71f2, 0x71f2, 0x71f2, 0x8f12, 0x8f12, 0x80f1, 
+	0x80f1, 0x9f01, 0x0201, 0x0206, 0x020b, 0x0210, 0x0215, 0x021a, 
+	0x021f, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 
+	0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 
+	0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 
+	0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 0x4ff2, 
+	0x4ff2, 0x0224, 0x0229, 0x0232, 0x0237, 0x023a, 0x023f, 0x0242, 
+	0x0245, 0x024a, 0x024d, 0x0250, 0x0253, 0x0256, 0x0259, 0x025c, 
+	0x025f, 0x0262, 0x0265, 0x0268, 0x026b, 0x026e, 0x0271, 0x0274, 
+	0x0277, 0x027a, 0x027d, 0x0280, 0x0283, 0x0288, 0x028b, 0x028e, 
+	0x0291, 0x0294, 0x0297, 0x029a, 0x029f, 0x94b2, 0x02a4, 0x02a7, 
+	0x02aa, 0x93b2, 0x9882, 0x02af, 0x92b2, 0x02b2, 0x02b5, 0x9692, 
+	0x94a2, 0x02b8, 0x9782, 0x9a32, 0x93a2, 0x9952, 0x9592, 0x9a22, 
+	0x92a2, 0x91a2, 0x9862, 0x9682, 0x9772, 0x9942, 0x9492, 0x9932, 
+	0x9392, 0x9852, 0x9582, 0x9922, 0x9762, 0x9672, 0x9292, 0x9912, 
+	0x9192, 0x9842, 0x9482, 0x9752, 0x9572, 0x9832, 0x9382, 0x9662, 
+	0x9822, 0x9282, 0x9812, 0x9742, 0x9472, 0x9182, 0x02bb, 0x9652, 
+	0x9562, 0x9712, 0x02be, 0x8372, 0x8372, 0x9732, 0x9722, 0x8272, 
+	0x8272, 0x8642, 0x8642, 0x8462, 0x8462, 0x8552, 0x8552, 0x8172, 
+	0x8172, 0x8632, 0x8632, 0x8362, 0x8362, 0x8542, 0x8542, 0x8452, 
+	0x8452, 0x8622, 0x8622, 0x8262, 0x8262, 0x8612, 0x8612, 0x8162, 
+	0x8162, 0x9601, 0x9061, 0x8532, 0x8532, 0x8352, 0x8352, 0x8442, 
+	0x8442, 0x8522, 0x8522, 0x8252, 0x8252, 0x8512, 0x8512, 0x9501, 
+	0x9051, 0x7152, 0x7152, 0x7152, 0x7152, 0x8432, 0x8432, 0x8342, 
+	0x8342, 0x7422, 0x7422, 0x7422, 0x7422, 0x7242, 0x7242, 0x7242, 
+	0x7242, 0x7332, 0x7332, 0x7332, 0x7332, 0x7412, 0x7412, 0x7412, 
+	0x7412, 0x7142, 0x7142, 0x7142, 0x7142, 0x8401, 0x8401, 0x8041, 
+	0x8041, 0x7322, 0x7322, 0x7322, 0x7322, 0x7232, 0x7232, 0x7232, 
+	0x7232, 0x6312, 0x6312, 0x6312, 0x6312, 0x6312, 0x6312, 0x6312, 
+	0x6312, 0x6132, 0x6132, 0x6132, 0x6132, 0x6132, 0x6132, 0x6132, 
+	0x6132, 0x7301, 0x7301, 0x7301, 0x7301, 0x7031, 0x7031, 0x7031, 
+	0x7031, 0x6222, 0x6222, 0x6222, 0x6222, 0x6222, 0x6222, 0x6222, 
+	0x6222, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 
+	0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 0x5212, 
+	0x5212, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 
+	0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 0x5122, 
+	0x5122, 0x6201, 0x6201, 0x6201, 0x6201, 0x6201, 0x6201, 0x6201, 
+	0x6201, 0x6021, 0x6021, 0x6021, 0x6021, 0x6021, 0x6021, 0x6021, 
+	0x6021, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 
+	0x4112, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 0x4101, 
+	0x4101, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 
+	0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 
+	0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 
+	0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 0x4011, 
+	0x4011, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 
+	0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 
+	0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 
+	0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 
+	0x4000, 0xf002, 0x2ee2, 0x2ed2, 0x2de2, 0x2ec2, 0xf002, 0x2ce2, 
+	0x2dd2, 0x2eb2, 0x2be2, 0xf002, 0x2dc2, 0x2cd2, 0x2ea2, 0x2ae2, 
+	0xf002, 0x2db2, 0x2bd2, 0x2cc2, 0x2e92, 0xf002, 0x29e2, 0x2da2, 
+	0x2ad2, 0x2cb2, 0xf002, 0x2bc2, 0x2e82, 0x28e2, 0x2d92, 0xf002, 
+	0x29d2, 0x2e72, 0x27e2, 0x2ca2, 0xf002, 0x2ac2, 0x2bb2, 0x2d82, 
+	0x28d2, 0xf003, 0x3e01, 0x30e1, 0x2d01, 0x2d01, 0x16e2, 0x16e2, 
+	0x16e2, 0x16e2, 0xf002, 0x2e62, 0x2c92, 0x19c2, 0x19c2, 0xf001, 
+	0x1e52, 0x1ab2, 0xf002, 0x15e2, 0x15e2, 0x2ba2, 0x2d72, 0xf001, 
+	0x17d2, 0x14e2, 0xf001, 0x1c82, 0x18c2, 0xf002, 0x2e42, 0x2e22, 
+	0x1e32, 0x1e32, 0xf001, 0x1d62, 0x16d2, 0xf001, 0x13e2, 0x1b92, 
+	0xf001, 0x19b2, 0x1aa2, 0xf001, 0x12e2, 0x1e12, 0xf001, 0x11e2, 
+	0x1d52, 0xf001, 0x15d2, 0x1c72, 0xf001, 0x17c2, 0x1d42, 0xf001, 
+	0x1b82, 0x18b2, 0xf001, 0x14d2, 0x1a92, 0xf001, 0x19a2, 0x1c62, 
+	0xf001, 0x16c2, 0x1d32, 0xf001, 0x13d2, 0x1d22, 0xf001, 0x12d2, 
+	0x1d12, 0xf001, 0x1b72, 0x17b2, 0xf001, 0x11d2, 0x1c52, 0xf001, 
+	0x15c2, 0x1a82, 0xf001, 0x18a2, 0x1992, 0xf001, 0x1c42, 0x14c2, 
+	0xf001, 0x1b62, 0x16b2, 0xf002, 0x20d1, 0x2c01, 0x1c32, 0x1c32, 
+	0xf001, 0x13c2, 0x1a72, 0xf001, 0x17a2, 0x1c22, 0xf001, 0x12c2, 
+	0x1b52, 0xf001, 0x15b2, 0x1c12, 0xf001, 0x1982, 0x1892, 0xf001, 
+	0x11c2, 0x1b42, 0xf002, 0x20c1, 0x2b01, 0x1b32, 0x1b32, 0xf002, 
+	0x20b1, 0x2a01, 0x1a12, 0x1a12, 0xf001, 0x1a62, 0x16a2, 0xf001, 
+	0x1972, 0x1792, 0xf002, 0x20a1, 0x2901, 0x1091, 0x1091, 0xf001, 
+	0x1b22, 0x1a52, 0xf001, 0x15a2, 0x1b12, 0xf001, 0x11b2, 0x1962, 
+	0xf001, 0x1a42, 0x1872, 0xf001, 0x1801, 0x1081, 0xf001, 0x1701, 
+	0x1071, 
+};
+
+#define HUFF_OFFSET_01	 0
+#define HUFF_OFFSET_02	(  9 + HUFF_OFFSET_01)
+#define HUFF_OFFSET_03	( 65 + HUFF_OFFSET_02)
+#define HUFF_OFFSET_05	( 65 + HUFF_OFFSET_03)
+#define HUFF_OFFSET_06	(257 + HUFF_OFFSET_05)
+#define HUFF_OFFSET_07	(129 + HUFF_OFFSET_06)
+#define HUFF_OFFSET_08	(110 + HUFF_OFFSET_07)
+#define HUFF_OFFSET_09	(280 + HUFF_OFFSET_08)
+#define HUFF_OFFSET_10	( 93 + HUFF_OFFSET_09)
+#define HUFF_OFFSET_11	(320 + HUFF_OFFSET_10)
+#define HUFF_OFFSET_12	(296 + HUFF_OFFSET_11)
+#define HUFF_OFFSET_13	(185 + HUFF_OFFSET_12)
+#define HUFF_OFFSET_15	(497 + HUFF_OFFSET_13)
+#define HUFF_OFFSET_16	(580 + HUFF_OFFSET_15)
+#define HUFF_OFFSET_24	(651 + HUFF_OFFSET_16)
+
+const int huffTabOffset[HUFF_PAIRTABS] = {
+	0,          
+	HUFF_OFFSET_01,
+	HUFF_OFFSET_02,
+	HUFF_OFFSET_03,
+	0,          
+	HUFF_OFFSET_05,
+	HUFF_OFFSET_06,
+	HUFF_OFFSET_07,
+	HUFF_OFFSET_08,
+	HUFF_OFFSET_09,
+	HUFF_OFFSET_10,
+	HUFF_OFFSET_11,
+	HUFF_OFFSET_12,
+	HUFF_OFFSET_13,
+	0,          
+	HUFF_OFFSET_15,
+	HUFF_OFFSET_16,
+	HUFF_OFFSET_16,
+	HUFF_OFFSET_16,
+	HUFF_OFFSET_16,
+	HUFF_OFFSET_16,
+	HUFF_OFFSET_16,
+	HUFF_OFFSET_16,
+	HUFF_OFFSET_16,
+	HUFF_OFFSET_24,
+	HUFF_OFFSET_24,
+	HUFF_OFFSET_24,
+	HUFF_OFFSET_24,
+	HUFF_OFFSET_24,
+	HUFF_OFFSET_24,
+	HUFF_OFFSET_24,
+	HUFF_OFFSET_24,
+};
+
+const HuffTabLookup huffTabLookup[HUFF_PAIRTABS] = {
+	{ 0,  noBits },
+	{ 0,  oneShot },
+	{ 0,  oneShot },
+	{ 0,  oneShot },
+	{ 0,  invalidTab },
+	{ 0,  oneShot },
+	{ 0,  oneShot },
+	{ 0,  loopNoLinbits },
+	{ 0,  loopNoLinbits },
+	{ 0,  loopNoLinbits },
+	{ 0,  loopNoLinbits },
+	{ 0,  loopNoLinbits },
+	{ 0,  loopNoLinbits },
+	{ 0,  loopNoLinbits },
+	{ 0,  invalidTab },
+	{ 0,  loopNoLinbits },
+	{ 1,  loopLinbits },
+	{ 2,  loopLinbits },
+	{ 3,  loopLinbits },
+	{ 4,  loopLinbits },
+	{ 6,  loopLinbits },
+	{ 8,  loopLinbits },
+	{ 10, loopLinbits },
+	{ 13, loopLinbits },
+	{ 4,  loopLinbits },
+	{ 5,  loopLinbits },
+	{ 6,  loopLinbits },
+	{ 7,  loopLinbits },
+	{ 8,  loopLinbits },
+	{ 9,  loopLinbits },
+	{ 11, loopLinbits },
+	{ 13, loopLinbits },
+};
+
+/* tables for quadruples
+ * format 0xAB
+ *  A = length of codeword
+ *  B = codeword
+ */
+const unsigned char quadTable[64+16] = {
+	/* table A */
+	0x6b, 0x6f, 0x6d, 0x6e, 0x67, 0x65, 0x59, 0x59, 
+	0x56, 0x56, 0x53, 0x53, 0x5a, 0x5a, 0x5c, 0x5c, 
+	0x42, 0x42, 0x42, 0x42, 0x41, 0x41, 0x41, 0x41, 
+	0x44, 0x44, 0x44, 0x44, 0x48, 0x48, 0x48, 0x48, 
+	0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 
+	0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 
+	0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 
+	0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 
+	/* table B */
+	0x4f, 0x4e, 0x4d, 0x4c, 0x4b, 0x4a, 0x49, 0x48, 
+	0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 
+};
+
+const int quadTabOffset[2] = {0, 64};
+const int quadTabMaxBits[2] = {6, 4};

+ 779 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/imdct.c

@@ -0,0 +1,779 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * imdct.c - antialias, inverse transform (short/long/mixed), windowing, 
+ *             overlap-add, frequency inversion
+ **************************************************************************************/
+
+#include "coder.h"
+#include "assembly.h"
+
+/**************************************************************************************
+ * Function:    AntiAlias
+ *
+ * Description: smooth transition across DCT block boundaries (every 18 coefficients)
+ *
+ * Inputs:      vector of dequantized coefficients, length = (nBfly+1) * 18
+ *              number of "butterflies" to perform (one butterfly means one
+ *                inter-block smoothing operation)
+ *
+ * Outputs:     updated coefficient vector x
+ *
+ * Return:      none
+ *
+ * Notes:       weighted average of opposite bands (pairwise) from the 8 samples 
+ *                before and after each block boundary
+ *              nBlocks = (nonZeroBound + 7) / 18, since nZB is the first ZERO sample 
+ *                above which all other samples are also zero
+ *              max gain per sample = 1.372
+ *                MAX(i) (abs(csa[i][0]) + abs(csa[i][1]))
+ *              bits gained = 0
+ *              assume at least 1 guard bit in x[] to avoid overflow
+ *                (should be guaranteed from dequant, and max gain from stproc * max 
+ *                 gain from AntiAlias < 2.0)
+ **************************************************************************************/
+static void AntiAlias(int *x, int nBfly)
+{
+	int k, a0, b0, c0, c1;
+	const int *c;
+
+	/* csa = Q31 */
+	for (k = nBfly; k > 0; k--) {
+		c = csa[0];
+		x += 18;
+
+		a0 = x[-1];			c0 = *c;	c++;	b0 = x[0];		c1 = *c;	c++;
+		x[-1] = (MULSHIFT32(c0, a0) - MULSHIFT32(c1, b0)) << 1;	
+		x[0] =  (MULSHIFT32(c0, b0) + MULSHIFT32(c1, a0)) << 1;
+
+		a0 = x[-2];			c0 = *c;	c++;	b0 = x[1];		c1 = *c;	c++;
+		x[-2] = (MULSHIFT32(c0, a0) - MULSHIFT32(c1, b0)) << 1;	
+		x[1] =  (MULSHIFT32(c0, b0) + MULSHIFT32(c1, a0)) << 1;
+		
+		a0 = x[-3];			c0 = *c;	c++;	b0 = x[2];		c1 = *c;	c++;
+		x[-3] = (MULSHIFT32(c0, a0) - MULSHIFT32(c1, b0)) << 1;	
+		x[2] =  (MULSHIFT32(c0, b0) + MULSHIFT32(c1, a0)) << 1;
+
+		a0 = x[-4];			c0 = *c;	c++;	b0 = x[3];		c1 = *c;	c++;
+		x[-4] = (MULSHIFT32(c0, a0) - MULSHIFT32(c1, b0)) << 1;	
+		x[3] =  (MULSHIFT32(c0, b0) + MULSHIFT32(c1, a0)) << 1;
+
+		a0 = x[-5];			c0 = *c;	c++;	b0 = x[4];		c1 = *c;	c++;
+		x[-5] = (MULSHIFT32(c0, a0) - MULSHIFT32(c1, b0)) << 1;	
+		x[4] =  (MULSHIFT32(c0, b0) + MULSHIFT32(c1, a0)) << 1;
+
+		a0 = x[-6];			c0 = *c;	c++;	b0 = x[5];		c1 = *c;	c++;
+		x[-6] = (MULSHIFT32(c0, a0) - MULSHIFT32(c1, b0)) << 1;	
+		x[5] =  (MULSHIFT32(c0, b0) + MULSHIFT32(c1, a0)) << 1;
+
+		a0 = x[-7];			c0 = *c;	c++;	b0 = x[6];		c1 = *c;	c++;
+		x[-7] = (MULSHIFT32(c0, a0) - MULSHIFT32(c1, b0)) << 1;	
+		x[6] =  (MULSHIFT32(c0, b0) + MULSHIFT32(c1, a0)) << 1;
+
+		a0 = x[-8];			c0 = *c;	c++;	b0 = x[7];		c1 = *c;	c++;
+		x[-8] = (MULSHIFT32(c0, a0) - MULSHIFT32(c1, b0)) << 1;	
+		x[7] =  (MULSHIFT32(c0, b0) + MULSHIFT32(c1, a0)) << 1;
+	}
+}
+
+/**************************************************************************************
+ * Function:    WinPrevious
+ *
+ * Description: apply specified window to second half of previous IMDCT (overlap part)
+ *
+ * Inputs:      vector of 9 coefficients (xPrev)
+ *
+ * Outputs:     18 windowed output coefficients (gain 1 integer bit)
+ *              window type (0, 1, 2, 3)
+ *
+ * Return:      none
+ * 
+ * Notes:       produces 9 output samples from 18 input samples via symmetry
+ *              all blocks gain at least 1 guard bit via window (long blocks get extra
+ *                sign bit, short blocks can have one addition but max gain < 1.0)
+ **************************************************************************************/
+static void WinPrevious(int *xPrev, int *xPrevWin, int btPrev)
+{
+	int i, x, *xp, *xpwLo, *xpwHi, wLo, wHi;
+	const int *wpLo, *wpHi;
+
+	xp = xPrev;
+	/* mapping (see IMDCT12x3): xPrev[0-2] = sum[6-8], xPrev[3-8] = sum[12-17] */
+	if (btPrev == 2) {
+		/* this could be reordered for minimum loads/stores */
+		wpLo = imdctWin[btPrev];
+		xPrevWin[ 0] = MULSHIFT32(wpLo[ 6], xPrev[2]) + MULSHIFT32(wpLo[0], xPrev[6]);
+		xPrevWin[ 1] = MULSHIFT32(wpLo[ 7], xPrev[1]) + MULSHIFT32(wpLo[1], xPrev[7]);
+		xPrevWin[ 2] = MULSHIFT32(wpLo[ 8], xPrev[0]) + MULSHIFT32(wpLo[2], xPrev[8]);
+		xPrevWin[ 3] = MULSHIFT32(wpLo[ 9], xPrev[0]) + MULSHIFT32(wpLo[3], xPrev[8]);
+		xPrevWin[ 4] = MULSHIFT32(wpLo[10], xPrev[1]) + MULSHIFT32(wpLo[4], xPrev[7]);
+		xPrevWin[ 5] = MULSHIFT32(wpLo[11], xPrev[2]) + MULSHIFT32(wpLo[5], xPrev[6]);
+		xPrevWin[ 6] = MULSHIFT32(wpLo[ 6], xPrev[5]);
+		xPrevWin[ 7] = MULSHIFT32(wpLo[ 7], xPrev[4]);
+		xPrevWin[ 8] = MULSHIFT32(wpLo[ 8], xPrev[3]);
+		xPrevWin[ 9] = MULSHIFT32(wpLo[ 9], xPrev[3]);
+		xPrevWin[10] = MULSHIFT32(wpLo[10], xPrev[4]);
+		xPrevWin[11] = MULSHIFT32(wpLo[11], xPrev[5]);
+		xPrevWin[12] = xPrevWin[13] = xPrevWin[14] = xPrevWin[15] = xPrevWin[16] = xPrevWin[17] = 0;
+	} else {
+		/* use ARM-style pointers (*ptr++) so that ADS compiles well */
+		wpLo = imdctWin[btPrev] + 18;
+		wpHi = wpLo + 17;
+		xpwLo = xPrevWin;
+		xpwHi = xPrevWin + 17;
+		for (i = 9; i > 0; i--) {
+			x = *xp++;	wLo = *wpLo++;	wHi = *wpHi--;
+			*xpwLo++ = MULSHIFT32(wLo, x);
+			*xpwHi-- = MULSHIFT32(wHi, x);
+		}
+	}
+}
+
+/**************************************************************************************
+ * Function:    FreqInvertRescale
+ *
+ * Description: do frequency inversion (odd samples of odd blocks) and rescale 
+ *                if necessary (extra guard bits added before IMDCT)
+ *
+ * Inputs:      output vector y (18 new samples, spaced NBANDS apart)
+ *              previous sample vector xPrev (9 samples)
+ *              index of current block
+ *              number of extra shifts added before IMDCT (usually 0)
+ *
+ * Outputs:     inverted and rescaled (as necessary) outputs
+ *              rescaled (as necessary) previous samples
+ *
+ * Return:      updated mOut (from new outputs y)
+ **************************************************************************************/
+static int FreqInvertRescale(int *y, int *xPrev, int blockIdx, int es)
+{
+	int i, d, mOut;
+	int y0, y1, y2, y3, y4, y5, y6, y7, y8;
+
+	if (es == 0) {
+		/* fast case - frequency invert only (no rescaling) - can fuse into overlap-add for speed, if desired */
+		if (blockIdx & 0x01) {
+			y += NBANDS;
+			y0 = *y;	y += 2*NBANDS;
+			y1 = *y;	y += 2*NBANDS;
+			y2 = *y;	y += 2*NBANDS;
+			y3 = *y;	y += 2*NBANDS;
+			y4 = *y;	y += 2*NBANDS;
+			y5 = *y;	y += 2*NBANDS;
+			y6 = *y;	y += 2*NBANDS;
+			y7 = *y;	y += 2*NBANDS;
+			y8 = *y;	y += 2*NBANDS;
+
+			y -= 18*NBANDS;
+			*y = -y0;	y += 2*NBANDS;
+			*y = -y1;	y += 2*NBANDS;
+			*y = -y2;	y += 2*NBANDS;
+			*y = -y3;	y += 2*NBANDS;
+			*y = -y4;	y += 2*NBANDS;
+			*y = -y5;	y += 2*NBANDS;
+			*y = -y6;	y += 2*NBANDS;
+			*y = -y7;	y += 2*NBANDS;
+			*y = -y8;	y += 2*NBANDS;
+		}
+		return 0;
+	} else {
+		/* undo pre-IMDCT scaling, clipping if necessary */
+		mOut = 0;
+		if (blockIdx & 0x01) {
+			/* frequency invert */
+			for (i = 0; i < 18; i+=2) {
+				d = *y;		CLIP_2N(d, 31 - es);	*y = d << es;	mOut |= FASTABS(*y);	y += NBANDS;
+				d = -*y;	CLIP_2N(d, 31 - es);	*y = d << es;	mOut |= FASTABS(*y);	y += NBANDS;
+				d = *xPrev;	CLIP_2N(d, 31 - es);	*xPrev++ = d << es;
+			}
+		} else {
+			for (i = 0; i < 18; i+=2) {
+				d = *y;		CLIP_2N(d, 31 - es);	*y = d << es;	mOut |= FASTABS(*y);	y += NBANDS;
+				d = *y;		CLIP_2N(d, 31 - es);	*y = d << es;	mOut |= FASTABS(*y);	y += NBANDS;
+				d = *xPrev;	CLIP_2N(d, 31 - es);	*xPrev++ = d << es;
+			}
+		}
+		return mOut;
+	}
+}
+
+/* format = Q31
+ * #define M_PI 3.14159265358979323846
+ * double u = 2.0 * M_PI / 9.0;
+ * float c0 = sqrt(3.0) / 2.0; 
+ * float c1 = cos(u);          
+ * float c2 = cos(2*u);        
+ * float c3 = sin(u);          
+ * float c4 = sin(2*u);
+ */
+static const int c9_0 = 0x6ed9eba1;
+static const int c9_1 = 0x620dbe8b;
+static const int c9_2 = 0x163a1a7e;
+static const int c9_3 = 0x5246dd49;
+static const int c9_4 = 0x7e0e2e32;
+
+/* format = Q31
+ * cos(((0:8) + 0.5) * (pi/18)) 
+ */
+static const int c18[9] = {
+	0x7f834ed0, 0x7ba3751d, 0x7401e4c1, 0x68d9f964, 0x5a82799a, 0x496af3e2, 0x36185aee, 0x2120fb83, 0x0b27eb5c, 
+};
+
+/* require at least 3 guard bits in x[] to ensure no overflow */
+static __inline void idct9(int *x)
+{
+	int a1, a2, a3, a4, a5, a6, a7, a8, a9;
+	int a10, a11, a12, a13, a14, a15, a16, a17, a18;
+	int a19, a20, a21, a22, a23, a24, a25, a26, a27;
+	int m1, m3, m5, m6, m7, m8, m9, m10, m11, m12;
+	int x0, x1, x2, x3, x4, x5, x6, x7, x8;
+
+	x0 = x[0]; x1 = x[1]; x2 = x[2]; x3 = x[3]; x4 = x[4];
+	x5 = x[5]; x6 = x[6]; x7 = x[7]; x8 = x[8];
+
+	a1 = x0 - x6;
+	a2 = x1 - x5;
+	a3 = x1 + x5;
+	a4 = x2 - x4;
+	a5 = x2 + x4;
+	a6 = x2 + x8;
+	a7 = x1 + x7;
+
+	a8 = a6 - a5;		/* ie x[8] - x[4] */
+	a9 = a3 - a7;		/* ie x[5] - x[7] */
+	a10 = a2 - x7;		/* ie x[1] - x[5] - x[7] */
+	a11 = a4 - x8;		/* ie x[2] - x[4] - x[8] */
+
+	/* do the << 1 as constant shifts where mX is actually used (free, no stall or extra inst.) */
+	m1 =  MULSHIFT32(c9_0, x3);
+	m3 =  MULSHIFT32(c9_0, a10);
+	m5 =  MULSHIFT32(c9_1, a5);
+	m6 =  MULSHIFT32(c9_2, a6);
+	m7 =  MULSHIFT32(c9_1, a8);
+	m8 =  MULSHIFT32(c9_2, a5);
+	m9 =  MULSHIFT32(c9_3, a9);
+	m10 = MULSHIFT32(c9_4, a7);
+	m11 = MULSHIFT32(c9_3, a3);
+	m12 = MULSHIFT32(c9_4, a9);
+
+	a12 = x[0] +  (x[6] >> 1);
+	a13 = a12  +  (  m1 << 1);
+	a14 = a12  -  (  m1 << 1);
+	a15 = a1   +  ( a11 >> 1);
+	a16 = ( m5 << 1) + (m6 << 1);
+	a17 = ( m7 << 1) - (m8 << 1);
+	a18 = a16 + a17;
+	a19 = ( m9 << 1) + (m10 << 1);
+	a20 = (m11 << 1) - (m12 << 1);
+
+	a21 = a20 - a19;
+	a22 = a13 + a16;
+	a23 = a14 + a16;
+	a24 = a14 + a17;
+	a25 = a13 + a17;
+	a26 = a14 - a18;
+	a27 = a13 - a18;
+
+	x0 = a22 + a19;			x[0] = x0;
+	x1 = a15 + (m3 << 1);	x[1] = x1;
+	x2 = a24 + a20;			x[2] = x2;
+	x3 = a26 - a21;			x[3] = x3;
+	x4 = a1 - a11;			x[4] = x4;
+	x5 = a27 + a21;			x[5] = x5;
+	x6 = a25 - a20;			x[6] = x6;
+	x7 = a15 - (m3 << 1);	x[7] = x7;
+	x8 = a23 - a19;			x[8] = x8;
+}
+
+/* let c(j) = cos(M_PI/36 * ((j)+0.5)), s(j) = sin(M_PI/36 * ((j)+0.5))
+ * then fastWin[2*j+0] = c(j)*(s(j) + c(j)), j = [0, 8]
+ *      fastWin[2*j+1] = c(j)*(s(j) - c(j))
+ * format = Q30
+ */
+static const int fastWin36[18] = {
+	0x42aace8b, 0xc2e92724, 0x47311c28, 0xc95f619a, 0x4a868feb, 0xd0859d8c,
+	0x4c913b51, 0xd8243ea0, 0x4d413ccc, 0xe0000000, 0x4c913b51, 0xe7dbc161,
+	0x4a868feb, 0xef7a6275, 0x47311c28, 0xf6a09e67, 0x42aace8b, 0xfd16d8dd,
+};
+
+/**************************************************************************************
+ * Function:    IMDCT36
+ *
+ * Description: 36-point modified DCT, with windowing and overlap-add (50% overlap)
+ *
+ * Inputs:      vector of 18 coefficients (N/2 inputs produces N outputs, by symmetry)
+ *              overlap part of last IMDCT (9 samples - see output comments)
+ *              window type (0,1,2,3) of current and previous block
+ *              current block index (for deciding whether to do frequency inversion)
+ *              number of guard bits in input vector
+ *
+ * Outputs:     18 output samples, after windowing and overlap-add with last frame
+ *              second half of (unwindowed) 36-point IMDCT - save for next time
+ *                only save 9 xPrev samples, using symmetry (see WinPrevious())
+ *
+ * Notes:       this is Ken's hyper-fast algorithm, including symmetric sin window
+ *                optimization, if applicable
+ *              total number of multiplies, general case: 
+ *                2*10 (idct9) + 9 (last stage imdct) + 36 (for windowing) = 65
+ *              total number of multiplies, btCurr == 0 && btPrev == 0:
+ *                2*10 (idct9) + 9 (last stage imdct) + 18 (for windowing) = 47
+ *
+ *              blockType == 0 is by far the most common case, so it should be
+ *                possible to use the fast path most of the time
+ *              this is the fastest known algorithm for performing 
+ *                long IMDCT + windowing + overlap-add in MP3
+ *
+ * Return:      mOut (OR of abs(y) for all y calculated here)
+ *
+ * TODO:        optimize for ARM (reorder window coefs, ARM-style pointers in C, 
+ *                inline asm may or may not be helpful)
+ **************************************************************************************/
+static int IMDCT36(int *xCurr, int *xPrev, int *y, int btCurr, int btPrev, int blockIdx, int gb)
+{
+	int i, es, xBuf[18], xPrevWin[18];
+	int acc1, acc2, s, d, t, mOut;
+	int xo, xe, c, *xp, yLo, yHi;
+	const int *cp, *wp;
+
+	acc1 = acc2 = 0;
+	xCurr += 17;
+
+	/* 7 gb is always adequate for antialias + accumulator loop + idct9 */
+	if (gb < 7) {
+		/* rarely triggered - 5% to 10% of the time on normal clips (with Q25 input) */
+		es = 7 - gb;
+		for (i = 8; i >= 0; i--) {	
+			acc1 = ((*xCurr--) >> es) - acc1;
+			acc2 = acc1 - acc2;
+			acc1 = ((*xCurr--) >> es) - acc1;
+			xBuf[i+9] = acc2;	/* odd */
+			xBuf[i+0] = acc1;	/* even */
+			xPrev[i] >>= es;
+		}
+	} else {
+		es = 0;
+		/* max gain = 18, assume adequate guard bits */
+		for (i = 8; i >= 0; i--) {	
+			acc1 = (*xCurr--) - acc1;
+			acc2 = acc1 - acc2;
+			acc1 = (*xCurr--) - acc1;
+			xBuf[i+9] = acc2;	/* odd */
+			xBuf[i+0] = acc1;	/* even */
+		}
+	}
+	/* xEven[0] and xOdd[0] scaled by 0.5 */
+	xBuf[9] >>= 1;
+	xBuf[0] >>= 1;
+
+	/* do 9-point IDCT on even and odd */
+	idct9(xBuf+0);	/* even */
+	idct9(xBuf+9);	/* odd */
+
+	xp = xBuf + 8;
+	cp = c18 + 8;
+	mOut = 0;
+	if (btPrev == 0 && btCurr == 0) {
+		/* fast path - use symmetry of sin window to reduce windowing multiplies to 18 (N/2) */
+		wp = fastWin36;
+		for (i = 0; i < 9; i++) {
+			/* do ARM-style pointer arithmetic (i still needed for y[] indexing - compiler spills if 2 y pointers) */
+			c = *cp--;	xo = *(xp + 9);		xe = *xp--;
+			/* gain 2 int bits here */
+			xo = MULSHIFT32(c, xo);			/* 2*c18*xOdd (mul by 2 implicit in scaling)  */
+			xe >>= 2;
+
+			s = -(*xPrev);		/* sum from last block (always at least 2 guard bits) */
+			d = -(xe - xo);		/* gain 2 int bits, don't shift xo (effective << 1 to eat sign bit, << 1 for mul by 2) */
+			(*xPrev++) = xe + xo;			/* symmetry - xPrev[i] = xPrev[17-i] for long blocks */
+			t = s - d;
+
+			yLo = (d + (MULSHIFT32(t, *wp++) << 2));
+			yHi = (s + (MULSHIFT32(t, *wp++) << 2));
+			y[(i)*NBANDS]    = 	yLo;
+			y[(17-i)*NBANDS] =  yHi;
+			mOut |= FASTABS(yLo);
+			mOut |= FASTABS(yHi);
+		}
+	} else {
+		/* slower method - either prev or curr is using window type != 0 so do full 36-point window 
+		 * output xPrevWin has at least 3 guard bits (xPrev has 2, gain 1 in WinPrevious)
+		 */
+		WinPrevious(xPrev, xPrevWin, btPrev);
+
+		wp = imdctWin[btCurr];
+		for (i = 0; i < 9; i++) {
+			c = *cp--;	xo = *(xp + 9);		xe = *xp--;
+			/* gain 2 int bits here */
+			xo = MULSHIFT32(c, xo);			/* 2*c18*xOdd (mul by 2 implicit in scaling)  */
+			xe >>= 2;
+
+			d = xe - xo;
+			(*xPrev++) = xe + xo;	/* symmetry - xPrev[i] = xPrev[17-i] for long blocks */
+			
+			yLo = (xPrevWin[i]    + MULSHIFT32(d, wp[i])) << 2;
+			yHi = (xPrevWin[17-i] + MULSHIFT32(d, wp[17-i])) << 2;
+			y[(i)*NBANDS]    = yLo;
+			y[(17-i)*NBANDS] = yHi;
+			mOut |= FASTABS(yLo);
+			mOut |= FASTABS(yHi);
+		}
+	}
+
+	xPrev -= 9;
+	mOut |= FreqInvertRescale(y, xPrev, blockIdx, es);
+
+	return mOut;
+}
+
+static const int c3_0 = 0x6ed9eba1;	/* format = Q31, cos(pi/6) */
+static const int c6[3] = { 0x7ba3751d, 0x5a82799a, 0x2120fb83 };	/* format = Q31, cos(((0:2) + 0.5) * (pi/6)) */
+
+/* 12-point inverse DCT, used in IMDCT12x3() 
+ * 4 input guard bits will ensure no overflow
+ */
+static __inline void imdct12 (int *x, int *out)
+{
+	int a0, a1, a2;
+	int x0, x1, x2, x3, x4, x5;
+
+	x0 = *x;	x+=3;	x1 = *x;	x+=3;
+	x2 = *x;	x+=3;	x3 = *x;	x+=3;
+	x4 = *x;	x+=3;	x5 = *x;	x+=3;
+
+	x4 -= x5;
+	x3 -= x4;
+	x2 -= x3;
+	x3 -= x5;
+	x1 -= x2;
+	x0 -= x1;
+	x1 -= x3;
+
+	x0 >>= 1;
+	x1 >>= 1;
+
+	a0 = MULSHIFT32(c3_0, x2) << 1;
+	a1 = x0 + (x4 >> 1);
+	a2 = x0 - x4;
+	x0 = a1 + a0;
+	x2 = a2;
+	x4 = a1 - a0;
+
+	a0 = MULSHIFT32(c3_0, x3) << 1;
+	a1 = x1 + (x5 >> 1);
+	a2 = x1 - x5;
+
+	/* cos window odd samples, mul by 2, eat sign bit */
+	x1 = MULSHIFT32(c6[0], a1 + a0) << 2;			
+	x3 = MULSHIFT32(c6[1], a2) << 2;
+	x5 = MULSHIFT32(c6[2], a1 - a0) << 2;
+
+	*out = x0 + x1;	out++;
+	*out = x2 + x3;	out++;
+	*out = x4 + x5;	out++;
+	*out = x4 - x5;	out++;
+	*out = x2 - x3;	out++;
+	*out = x0 - x1;
+}
+
+/**************************************************************************************
+ * Function:    IMDCT12x3
+ *
+ * Description: three 12-point modified DCT's for short blocks, with windowing,
+ *                short block concatenation, and overlap-add
+ *
+ * Inputs:      3 interleaved vectors of 6 samples each 
+ *                (block0[0], block1[0], block2[0], block0[1], block1[1]....)
+ *              overlap part of last IMDCT (9 samples - see output comments)
+ *              window type (0,1,2,3) of previous block
+ *              current block index (for deciding whether to do frequency inversion)
+ *              number of guard bits in input vector
+ *
+ * Outputs:     updated sample vector x, net gain of 1 integer bit
+ *              second half of (unwindowed) IMDCT's - save for next time
+ *                only save 9 xPrev samples, using symmetry (see WinPrevious())
+ *
+ * Return:      mOut (OR of abs(y) for all y calculated here)
+ *
+ * TODO:        optimize for ARM
+ **************************************************************************************/
+static int IMDCT12x3(int *xCurr, int *xPrev, int *y, int btPrev, int blockIdx, int gb)
+{
+	int i, es, mOut, yLo, xBuf[18], xPrevWin[18];	/* need temp buffer for reordering short blocks */
+	const int *wp;
+
+	es = 0;
+	/* 7 gb is always adequate for accumulator loop + idct12 + window + overlap */
+	if (gb < 7) {
+		es = 7 - gb;
+		for (i = 0; i < 18; i+=2) {
+			xCurr[i+0] >>= es;
+			xCurr[i+1] >>= es;
+			*xPrev++ >>= es;
+		}
+		xPrev -= 9;
+	}
+
+	/* requires 4 input guard bits for each imdct12 */
+	imdct12(xCurr + 0, xBuf + 0);
+	imdct12(xCurr + 1, xBuf + 6);
+	imdct12(xCurr + 2, xBuf + 12);
+
+	/* window previous from last time */
+	WinPrevious(xPrev, xPrevWin, btPrev);
+
+	/* could unroll this for speed, minimum loads (short blocks usually rare, so doesn't make much overall difference) 
+	 * xPrevWin[i] << 2 still has 1 gb always, max gain of windowed xBuf stuff also < 1.0 and gain the sign bit
+	 * so y calculations won't overflow
+	 */
+	wp = imdctWin[2];
+	mOut = 0;
+	for (i = 0; i < 3; i++) {
+		yLo = (xPrevWin[ 0+i] << 2);
+		mOut |= FASTABS(yLo);	y[( 0+i)*NBANDS] = yLo;
+		yLo = (xPrevWin[ 3+i] << 2);
+		mOut |= FASTABS(yLo);	y[( 3+i)*NBANDS] = yLo;
+		yLo = (xPrevWin[ 6+i] << 2) + (MULSHIFT32(wp[0+i], xBuf[3+i]));	
+		mOut |= FASTABS(yLo);	y[( 6+i)*NBANDS] = yLo;
+		yLo = (xPrevWin[ 9+i] << 2) + (MULSHIFT32(wp[3+i], xBuf[5-i]));	
+		mOut |= FASTABS(yLo);	y[( 9+i)*NBANDS] = yLo;
+		yLo = (xPrevWin[12+i] << 2) + (MULSHIFT32(wp[6+i], xBuf[2-i]) + MULSHIFT32(wp[0+i], xBuf[(6+3)+i]));	
+		mOut |= FASTABS(yLo);	y[(12+i)*NBANDS] = yLo;
+		yLo = (xPrevWin[15+i] << 2) + (MULSHIFT32(wp[9+i], xBuf[0+i]) + MULSHIFT32(wp[3+i], xBuf[(6+5)-i]));	
+		mOut |= FASTABS(yLo);	y[(15+i)*NBANDS] = yLo;
+	}
+
+	/* save previous (unwindowed) for overlap - only need samples 6-8, 12-17 */
+	for (i = 6; i < 9; i++)
+		*xPrev++ = xBuf[i] >> 2;
+	for (i = 12; i < 18; i++)
+		*xPrev++ = xBuf[i] >> 2;
+
+	xPrev -= 9;
+	mOut |= FreqInvertRescale(y, xPrev, blockIdx, es);
+
+	return mOut;
+}
+
+/**************************************************************************************
+ * Function:    HybridTransform
+ *
+ * Description: IMDCT's, windowing, and overlap-add on long/short/mixed blocks
+ *
+ * Inputs:      vector of input coefficients, length = nBlocksTotal * 18)
+ *              vector of overlap samples from last time, length = nBlocksPrev * 9)
+ *              buffer for output samples, length = MAXNSAMP
+ *              SideInfoSub struct for this granule/channel
+ *              BlockCount struct with necessary info
+ *                number of non-zero input and overlap blocks
+ *                number of long blocks in input vector (rest assumed to be short blocks)
+ *                number of blocks which use long window (type) 0 in case of mixed block
+ *                  (bc->currWinSwitch, 0 for non-mixed blocks)
+ *
+ * Outputs:     transformed, windowed, and overlapped sample buffer
+ *              does frequency inversion on odd blocks
+ *              updated buffer of samples for overlap
+ *
+ * Return:      number of non-zero IMDCT blocks calculated in this call
+ *                (including overlap-add)
+ *
+ * TODO:        examine mixedBlock/winSwitch logic carefully (test he_mode.bit)
+ **************************************************************************************/
+static int HybridTransform(int *xCurr, int *xPrev, int y[BLOCK_SIZE][NBANDS], SideInfoSub *sis, BlockCount *bc)
+{
+	int xPrevWin[18], currWinIdx, prevWinIdx;
+	int i, j, nBlocksOut, nonZero, mOut;
+	int fiBit, xp;
+
+	ASSERT(bc->nBlocksLong  <= NBANDS);
+	ASSERT(bc->nBlocksTotal <= NBANDS);
+	ASSERT(bc->nBlocksPrev  <= NBANDS);
+
+	mOut = 0;
+
+	/* do long blocks, if any */
+	for(i = 0; i < bc->nBlocksLong; i++) {
+		/* currWinIdx picks the right window for long blocks (if mixed, long blocks use window type 0) */
+		currWinIdx = sis->blockType;
+		if (sis->mixedBlock && i < bc->currWinSwitch) 
+			currWinIdx = 0;
+
+		prevWinIdx = bc->prevType;
+		if (i < bc->prevWinSwitch)
+			 prevWinIdx = 0;
+
+		/* do 36-point IMDCT, including windowing and overlap-add */
+		mOut |= IMDCT36(xCurr, xPrev, &(y[0][i]), currWinIdx, prevWinIdx, i, bc->gbIn);
+		xCurr += 18;
+		xPrev += 9;
+	}
+
+	/* do short blocks (if any) */
+	for (   ; i < bc->nBlocksTotal; i++) {
+		ASSERT(sis->blockType == 2);
+
+		prevWinIdx = bc->prevType;
+		if (i < bc->prevWinSwitch)
+			 prevWinIdx = 0;
+		
+		mOut |= IMDCT12x3(xCurr, xPrev, &(y[0][i]), prevWinIdx, i, bc->gbIn);
+		xCurr += 18;
+		xPrev += 9;
+	}
+	nBlocksOut = i;
+	
+	/* window and overlap prev if prev longer that current */
+	for (   ; i < bc->nBlocksPrev; i++) {
+		prevWinIdx = bc->prevType;
+		if (i < bc->prevWinSwitch)
+			 prevWinIdx = 0;
+		WinPrevious(xPrev, xPrevWin, prevWinIdx);
+
+		nonZero = 0;
+		fiBit = i << 31;
+		for (j = 0; j < 9; j++) {
+			xp = xPrevWin[2*j+0] << 2;	/* << 2 temp for scaling */
+			nonZero |= xp;
+			y[2*j+0][i] = xp;
+			mOut |= FASTABS(xp);
+
+			/* frequency inversion on odd blocks/odd samples (flip sign if i odd, j odd) */
+			xp = xPrevWin[2*j+1] << 2;
+			xp = (xp ^ (fiBit >> 31)) + (i & 0x01);	
+			nonZero |= xp;
+			y[2*j+1][i] = xp;
+			mOut |= FASTABS(xp);
+
+			xPrev[j] = 0;
+		}
+		xPrev += 9;
+		if (nonZero)
+			nBlocksOut = i;
+	}
+	
+	/* clear rest of blocks */
+	for (   ; i < 32; i++) {
+		for (j = 0; j < 18; j++) 
+			y[j][i] = 0;
+	}
+
+	bc->gbOut = CLZ(mOut) - 1;
+
+	return nBlocksOut;
+}
+
+/**************************************************************************************
+ * Function:    IMDCT
+ *
+ * Description: do alias reduction, inverse MDCT, overlap-add, and frequency inversion
+ *
+ * Inputs:      MP3DecInfo structure filled by UnpackFrameHeader(), UnpackSideInfo(),
+ *                UnpackScaleFactors(), and DecodeHuffman() (for this granule, channel)
+ *                includes PCM samples in overBuf (from last call to IMDCT) for OLA
+ *              index of current granule and channel
+ *
+ * Outputs:     PCM samples in outBuf, for input to subband transform
+ *              PCM samples in overBuf, for OLA next time
+ *              updated hi->nonZeroBound index for this channel
+ *
+ * Return:      0 on success,  -1 if null input pointers
+ **************************************************************************************/
+int IMDCT(MP3DecInfo *mp3DecInfo, int gr, int ch)
+{
+	int nBfly, blockCutoff;
+	FrameHeader *fh;
+	SideInfo *si;
+	HuffmanInfo *hi;
+	IMDCTInfo *mi;
+	BlockCount bc;
+
+	/* validate pointers */
+	if (!mp3DecInfo || !mp3DecInfo->FrameHeaderPS || !mp3DecInfo->SideInfoPS || 
+		!mp3DecInfo->HuffmanInfoPS || !mp3DecInfo->IMDCTInfoPS)
+		return -1;
+
+	/* si is an array of up to 4 structs, stored as gr0ch0, gr0ch1, gr1ch0, gr1ch1 */
+	fh = (FrameHeader *)(mp3DecInfo->FrameHeaderPS);
+	si = (SideInfo *)(mp3DecInfo->SideInfoPS);
+	hi = (HuffmanInfo*)(mp3DecInfo->HuffmanInfoPS);
+	mi = (IMDCTInfo *)(mp3DecInfo->IMDCTInfoPS);
+
+	/* anti-aliasing done on whole long blocks only
+	 * for mixed blocks, nBfly always 1, except 3 for 8 kHz MPEG 2.5 (see sfBandTab) 
+     *   nLongBlocks = number of blocks with (possibly) non-zero power 
+	 *   nBfly = number of butterflies to do (nLongBlocks - 1, unless no long blocks)
+	 */
+	blockCutoff = fh->sfBand->l[(fh->ver == MPEG1 ? 8 : 6)] / 18;	/* same as 3* num short sfb's in spec */
+	if (si->sis[gr][ch].blockType != 2) {
+		/* all long transforms */
+		bc.nBlocksLong = MIN((hi->nonZeroBound[ch] + 7) / 18 + 1, 32);	
+		nBfly = bc.nBlocksLong - 1;
+	} else if (si->sis[gr][ch].blockType == 2 && si->sis[gr][ch].mixedBlock) {
+		/* mixed block - long transforms until cutoff, then short transforms */
+		bc.nBlocksLong = blockCutoff;	
+		nBfly = bc.nBlocksLong - 1;
+	} else {
+		/* all short transforms */
+		bc.nBlocksLong = 0;
+		nBfly = 0;
+	}
+ 
+	AntiAlias(hi->huffDecBuf[ch], nBfly);
+	hi->nonZeroBound[ch] = MAX(hi->nonZeroBound[ch], (nBfly * 18) + 8);
+
+	ASSERT(hi->nonZeroBound[ch] <= MAX_NSAMP);
+
+	/* for readability, use a struct instead of passing a million parameters to HybridTransform() */
+	bc.nBlocksTotal = (hi->nonZeroBound[ch] + 17) / 18;
+	bc.nBlocksPrev = mi->numPrevIMDCT[ch];
+	bc.prevType = mi->prevType[ch];
+	bc.prevWinSwitch = mi->prevWinSwitch[ch];
+	bc.currWinSwitch = (si->sis[gr][ch].mixedBlock ? blockCutoff : 0);	/* where WINDOW switches (not nec. transform) */
+	bc.gbIn = hi->gb[ch];
+
+	mi->numPrevIMDCT[ch] = HybridTransform(hi->huffDecBuf[ch], mi->overBuf[ch], mi->outBuf[ch], &si->sis[gr][ch], &bc);
+	mi->prevType[ch] = si->sis[gr][ch].blockType;
+	mi->prevWinSwitch[ch] = bc.currWinSwitch;		/* 0 means not a mixed block (either all short or all long) */
+	mi->gb[ch] = bc.gbOut;
+
+	ASSERT(mi->numPrevIMDCT[ch] <= NBANDS);
+
+	/* output has gained 2 int bits */
+	return 0;
+}

+ 295 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/polyphase.c

@@ -0,0 +1,295 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * polyphase.c - final stage of subband transform (polyphase synthesis filter)
+ *
+ * This is the C reference version using __int64
+ * Look in the appropriate subdirectories for optimized asm implementations 
+ *   (e.g. arm/asmpoly.s)
+ **************************************************************************************/
+
+#include "coder.h"
+#include "assembly.h"
+
+/* input to Polyphase = Q(DQ_FRACBITS_OUT-2), gain 2 bits in convolution
+ *  we also have the implicit bias of 2^15 to add back, so net fraction bits = 
+ *    DQ_FRACBITS_OUT - 2 - 2 - 15
+ *  (see comment on Dequantize() for more info)
+ */
+#define DEF_NFRACBITS	(DQ_FRACBITS_OUT - 2 - 2 - 15)	
+#define CSHIFT	12	/* coefficients have 12 leading sign bits for early-terminating mulitplies */
+
+static __inline short ClipToShort(int x, int fracBits)
+{
+	int sign;
+	
+	/* assumes you've already rounded (x += (1 << (fracBits-1))) */
+	x >>= fracBits;
+	
+	/* Ken's trick: clips to [-32768, 32767] */
+	sign = x >> 31;
+	if (sign != (x >> 15))
+		x = sign ^ ((1 << 15) - 1);
+
+	return (short)x;
+}
+
+#define MC0M(x)	{ \
+	c1 = *coef;		coef++;		c2 = *coef;		coef++; \
+	vLo = *(vb1+(x));			vHi = *(vb1+(23-(x))); \
+	sum1L = MADD64(sum1L, vLo,  c1);	sum1L = MADD64(sum1L, vHi, -c2); \
+}
+
+#define MC1M(x)	{ \
+	c1 = *coef;		coef++; \
+	vLo = *(vb1+(x)); \
+	sum1L = MADD64(sum1L, vLo,  c1); \
+}
+
+#define MC2M(x)	{ \
+		c1 = *coef;		coef++;		c2 = *coef;		coef++; \
+		vLo = *(vb1+(x));	vHi = *(vb1+(23-(x))); \
+		sum1L = MADD64(sum1L, vLo,  c1);	sum2L = MADD64(sum2L, vLo,  c2); \
+		sum1L = MADD64(sum1L, vHi, -c2);	sum2L = MADD64(sum2L, vHi,  c1); \
+}
+
+/**************************************************************************************
+ * Function:    PolyphaseMono
+ *
+ * Description: filter one subband and produce 32 output PCM samples for one channel
+ *
+ * Inputs:      pointer to PCM output buffer
+ *              number of "extra shifts" (vbuf format = Q(DQ_FRACBITS_OUT-2))
+ *              pointer to start of vbuf (preserved from last call)
+ *              start of filter coefficient table (in proper, shuffled order)
+ *              no minimum number of guard bits is required for input vbuf 
+ *                (see additional scaling comments below)
+ *
+ * Outputs:     32 samples of one channel of decoded PCM data, (i.e. Q16.0)
+ *
+ * Return:      none
+ *
+ * TODO:        add 32-bit version for platforms where 64-bit mul-acc is not supported
+ *                (note max filter gain - see polyCoef[] comments)
+ **************************************************************************************/
+void PolyphaseMono(short *pcm, int *vbuf, const int *coefBase)
+{	
+	int i;
+	const int *coef;
+	int *vb1;
+	int vLo, vHi, c1, c2;
+	Word64 sum1L, sum2L, rndVal;
+
+	rndVal = (Word64)( 1 << (DEF_NFRACBITS - 1 + (32 - CSHIFT)) );
+
+	/* special case, output sample 0 */
+	coef = coefBase;
+	vb1 = vbuf;
+	sum1L = rndVal;
+
+	MC0M(0)
+	MC0M(1)
+	MC0M(2)
+	MC0M(3)
+	MC0M(4)
+	MC0M(5)
+	MC0M(6)
+	MC0M(7)
+
+	*(pcm + 0) = ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS);
+
+	/* special case, output sample 16 */
+	coef = coefBase + 256;
+	vb1 = vbuf + 64*16;
+	sum1L = rndVal;
+
+	MC1M(0)
+	MC1M(1)
+	MC1M(2)
+	MC1M(3)
+	MC1M(4)
+	MC1M(5)
+	MC1M(6)
+	MC1M(7)
+
+	*(pcm + 16) = ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS);
+
+	/* main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17 */
+	coef = coefBase + 16;
+	vb1 = vbuf + 64;
+	pcm++;
+
+	/* right now, the compiler creates bad asm from this... */
+	for (i = 15; i > 0; i--) {
+		sum1L = sum2L = rndVal;
+
+		MC2M(0)
+		MC2M(1)
+		MC2M(2)
+		MC2M(3)
+		MC2M(4)
+		MC2M(5)
+		MC2M(6)
+		MC2M(7)
+
+		vb1 += 64;
+		*(pcm)       = ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS);
+		*(pcm + 2*i) = ClipToShort((int)SAR64(sum2L, (32-CSHIFT)), DEF_NFRACBITS);
+		pcm++;
+	}
+}
+
+#define MC0S(x)	{ \
+	c1 = *coef;		coef++;		c2 = *coef;		coef++; \
+	vLo = *(vb1+(x));		vHi = *(vb1+(23-(x))); \
+	sum1L = MADD64(sum1L, vLo,  c1);	sum1L = MADD64(sum1L, vHi, -c2); \
+	vLo = *(vb1+32+(x));	vHi = *(vb1+32+(23-(x))); \
+	sum1R = MADD64(sum1R, vLo,  c1);	sum1R = MADD64(sum1R, vHi, -c2); \
+}
+
+#define MC1S(x)	{ \
+	c1 = *coef;		coef++; \
+	vLo = *(vb1+(x)); \
+	sum1L = MADD64(sum1L, vLo,  c1); \
+	vLo = *(vb1+32+(x)); \
+	sum1R = MADD64(sum1R, vLo,  c1); \
+}
+
+#define MC2S(x)	{ \
+		c1 = *coef;		coef++;		c2 = *coef;		coef++; \
+		vLo = *(vb1+(x));	vHi = *(vb1+(23-(x))); \
+		sum1L = MADD64(sum1L, vLo,  c1);	sum2L = MADD64(sum2L, vLo,  c2); \
+		sum1L = MADD64(sum1L, vHi, -c2);	sum2L = MADD64(sum2L, vHi,  c1); \
+		vLo = *(vb1+32+(x));	vHi = *(vb1+32+(23-(x))); \
+		sum1R = MADD64(sum1R, vLo,  c1);	sum2R = MADD64(sum2R, vLo,  c2); \
+		sum1R = MADD64(sum1R, vHi, -c2);	sum2R = MADD64(sum2R, vHi,  c1); \
+}
+
+/**************************************************************************************
+ * Function:    PolyphaseStereo
+ *
+ * Description: filter one subband and produce 32 output PCM samples for each channel
+ *
+ * Inputs:      pointer to PCM output buffer
+ *              number of "extra shifts" (vbuf format = Q(DQ_FRACBITS_OUT-2))
+ *              pointer to start of vbuf (preserved from last call)
+ *              start of filter coefficient table (in proper, shuffled order)
+ *              no minimum number of guard bits is required for input vbuf 
+ *                (see additional scaling comments below)
+ *
+ * Outputs:     32 samples of two channels of decoded PCM data, (i.e. Q16.0)
+ *
+ * Return:      none
+ *
+ * Notes:       interleaves PCM samples LRLRLR...
+ *
+ * TODO:        add 32-bit version for platforms where 64-bit mul-acc is not supported
+ **************************************************************************************/
+void PolyphaseStereo(short *pcm, int *vbuf, const int *coefBase)
+{
+	int i;
+	const int *coef;
+	int *vb1;
+	int vLo, vHi, c1, c2;
+	Word64 sum1L, sum2L, sum1R, sum2R, rndVal;
+
+	rndVal = (Word64)( 1 << (DEF_NFRACBITS - 1 + (32 - CSHIFT)) );
+
+	/* special case, output sample 0 */
+	coef = coefBase;
+	vb1 = vbuf;
+	sum1L = sum1R = rndVal;
+
+	MC0S(0)
+	MC0S(1)
+	MC0S(2)
+	MC0S(3)
+	MC0S(4)
+	MC0S(5)
+	MC0S(6)
+	MC0S(7)
+
+	*(pcm + 0) = ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS);
+	*(pcm + 1) = ClipToShort((int)SAR64(sum1R, (32-CSHIFT)), DEF_NFRACBITS);
+
+	/* special case, output sample 16 */
+	coef = coefBase + 256;
+	vb1 = vbuf + 64*16;
+	sum1L = sum1R = rndVal;
+
+	MC1S(0)
+	MC1S(1)
+	MC1S(2)
+	MC1S(3)
+	MC1S(4)
+	MC1S(5)
+	MC1S(6)
+	MC1S(7)
+
+	*(pcm + 2*16 + 0) = ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS);
+	*(pcm + 2*16 + 1) = ClipToShort((int)SAR64(sum1R, (32-CSHIFT)), DEF_NFRACBITS);
+
+	/* main convolution loop: sum1L = samples 1, 2, 3, ... 15   sum2L = samples 31, 30, ... 17 */
+	coef = coefBase + 16;
+	vb1 = vbuf + 64;
+	pcm += 2;
+
+	/* right now, the compiler creates bad asm from this... */
+	for (i = 15; i > 0; i--) {
+		sum1L = sum2L = rndVal;
+		sum1R = sum2R = rndVal;
+
+		MC2S(0)
+		MC2S(1)
+		MC2S(2)
+		MC2S(3)
+		MC2S(4)
+		MC2S(5)
+		MC2S(6)
+		MC2S(7)
+
+		vb1 += 64;
+		*(pcm + 0)         = ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS);
+		*(pcm + 1)         = ClipToShort((int)SAR64(sum1R, (32-CSHIFT)), DEF_NFRACBITS);
+		*(pcm + 2*2*i + 0) = ClipToShort((int)SAR64(sum2L, (32-CSHIFT)), DEF_NFRACBITS);
+		*(pcm + 2*2*i + 1) = ClipToShort((int)SAR64(sum2R, (32-CSHIFT)), DEF_NFRACBITS);
+		pcm += 2;
+	}
+}

+ 30 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/LICENSE.txt

@@ -0,0 +1,30 @@
+ Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.  
+        
+ The contents of this directory, and (except where otherwise
+ indicated) the directories included within this directory, are
+ subject to the current version of the RealNetworks Public Source
+ License (the "RPSL") available at RPSL.txt in this directory, unless
+ you have licensed the directory under the current version of the
+ RealNetworks Community Source License (the "RCSL") available at
+ RCSL.txt in this directory, in which case the RCSL will apply. You
+ may also obtain the license terms directly from RealNetworks.  You
+ may not use the files in this directory except in compliance with the
+ RPSL or, if you have a valid RCSL with RealNetworks applicable to
+ this directory, the RCSL.  Please see the applicable RPSL or RCSL for
+ the rights, obligations and limitations governing use of the contents
+ of the directory.
+ 
+ This directory is part of the Helix DNA Technology. RealNetworks is
+ the developer of the Original Code and owns the copyrights in the
+ portions it created.
+   
+ This directory, and the directories included with this directory, are
+ distributed and made available on an 'AS IS' basis, WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY
+ DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ QUIET ENJOYMENT OR NON-INFRINGEMENT.
+  
+ Technology Compatibility Kit Test Suite(s) Location:  
+    http://www.helixcommunity.org/content/tck  
+

+ 948 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/RCSL.txt

@@ -0,0 +1,948 @@
+The RCSL is made up of a base agreement and a few Attachments.
+
+For Research and Development use, you agree to the terms of the
+RCSL R&D License (base RCSL and Attachments A, B, and C) 
+
+For Commercial Use (either distribution or internal commercial
+deployment) of the Helix DNA with or without support for RealNetworks'
+RealAudio and RealVideo Add-on Technology, you agree to the
+terms of the same RCSL R&D license
+and execute one or more additional Commercial Use License attachments
+<see http://www.helixcommunity.org/content/rcsl-attachments>.
+
+------------------------------------------------------------------------
+
+
+    REALNETWORKS COMMUNITY SOURCE LICENSE
+
+Version 1.2 (Rev. Date: January 22, 2003).
+
+
+  RECITALS
+
+Original Contributor has developed Specifications, Source Code
+implementations and Executables of certain Technology; and
+
+Original Contributor desires to license the Technology to a large
+community to facilitate research, innovation and product development
+while maintaining compatibility of such products with the Technology as
+delivered by Original Contributor; and
+
+Original Contributor desires to license certain Trademarks for the
+purpose of branding products that are compatible with the relevant
+Technology delivered by Original Contributor; and
+
+You desire to license the Technology and possibly certain Trademarks
+from Original Contributor on the terms and conditions specified in this
+License.
+
+In consideration for the mutual covenants contained herein, You and
+Original Contributor agree as follows:
+
+
+  AGREEMENT
+
+*1. Introduction.*
+
+The RealNetworks Community Source License ("RCSL") and effective
+attachments ("License") may include five distinct licenses:
+
+i) Research Use license -- License plus Attachments A, B and C only.
+
+ii) Commercial Use and Trademark License, which may be for Internal
+Deployment Use or external distribution, or both -- License plus
+Attachments A, B, C, and D.
+
+iii) Technology Compatibility Kit (TCK) license -- Attachment C.
+
+iv) Add-On Technology License (Executable) Commercial Use License
+-Attachment F.
+
+v) Add-On Technology Source Code Porting and Optimization
+License-Attachment G.
+
+The Research Use license is effective when You click and accept this
+License. The TCK is effective when You click and accept this License,
+unless otherwise specified in the TCK attachments. The Commercial Use
+and Trademark, Add-On Technology License, and the Add-On Technology
+Source Code Porting and Optimization licenses must each be signed by You
+and Original Contributor to become effective. Once effective, these
+licenses and the associated requirements and responsibilities are
+cumulative. Capitalized terms used in this License are defined in the
+Glossary.
+
+*2. License Grants.*
+
+2.1 Original Contributor Grant.
+
+Subject to Your compliance with Sections 3, 8.10 and Attachment A of
+this License, Original Contributor grants to You a worldwide,
+royalty-free, non-exclusive license, to the extent of Original
+Contributor's Intellectual Property Rights covering the Original Code,
+Upgraded Code and Specifications, to do the following:
+
+(a) Research Use License:
+
+(i) use, reproduce and modify the Original Code, Upgraded Code and
+Specifications to create Modifications and Reformatted Specifications
+for Research Use by You;
+
+(ii) publish and display Original Code, Upgraded Code and Specifications
+with, or as part of Modifications, as permitted under Section 3.1(b) below;
+
+(iii) reproduce and distribute copies of Original Code and Upgraded Code
+to Licensees and students for Research Use by You;
+
+(iv) compile, reproduce and distribute Original Code and Upgraded Code
+in Executable form, and Reformatted Specifications to anyone for
+Research Use by You.
+
+(b) Other than the licenses expressly granted in this License, Original
+Contributor retains all right, title, and interest in Original Code and
+Upgraded Code and Specifications.
+
+2.2 Your Grants.
+
+(a) To Other Licensees. You hereby grant to each Licensee a license to
+Your Error Corrections and Shared Modifications, of the same scope and
+extent as Original Contributor's licenses under Section 2.1 a) above
+relative to Research Use and Attachment D relative to Commercial Use.
+
+(b) To Original Contributor. You hereby grant to Original Contributor a
+worldwide, royalty-free, non-exclusive, perpetual and irrevocable
+license, to the extent of Your Intellectual Property Rights covering
+Your Error Corrections, Shared Modifications and Reformatted
+Specifications, to use, reproduce, modify, display and distribute Your
+Error Corrections, Shared Modifications and Reformatted Specifications,
+in any form, including the right to sublicense such rights through
+multiple tiers of distribution.
+
+(c) Other than the licenses expressly granted in Sections 2.2(a) and (b)
+above, and the restrictions set forth in Section 3.1(d)(iv) below, You
+retain all right, title, and interest in Your Error Corrections, Shared
+Modifications and Reformatted Specifications.
+
+2.3 Contributor Modifications.
+
+You may use, reproduce, modify, display and distribute Contributor Error
+Corrections, Shared Modifications and Reformatted Specifications,
+obtained by You under this License, to the same scope and extent as with
+Original Code, Upgraded Code and Specifications.
+
+2.4 Subcontracting.
+
+You may deliver the Source Code of Covered Code to other Licensees
+having at least a Research Use license, for the sole purpose of
+furnishing development services to You in connection with Your rights
+granted in this License. All such Licensees must execute appropriate
+documents with respect to such work consistent with the terms of this
+License, and acknowledging their work-made-for-hire status or assigning
+exclusive right to the work product and associated Intellectual Property
+Rights to You.
+
+*3. Requirements and Responsibilities*.
+
+3.1 Research Use License.
+
+As a condition of exercising the rights granted under Section 2.1(a)
+above, You agree to comply with the following:
+
+(a) Your Contribution to the Community. All Error Corrections and Shared
+Modifications which You create or contribute to are automatically
+subject to the licenses granted under Section 2.2 above. You are
+encouraged to license all of Your other Modifications under Section 2.2
+as Shared Modifications, but are not required to do so. You agree to
+notify Original Contributor of any errors in the Specification.
+
+(b) Source Code Availability. You agree to provide all Your Error
+Corrections to Original Contributor as soon as reasonably practicable
+and, in any event, prior to Internal Deployment Use or Commercial Use,
+if applicable. Original Contributor may, at its discretion, post Source
+Code for Your Error Corrections and Shared Modifications on the
+Community Webserver. You may also post Error Corrections and Shared
+Modifications on a web-server of Your choice; provided, that You must
+take reasonable precautions to ensure that only Licensees have access to
+such Error Corrections and Shared Modifications. Such precautions shall
+include, without limitation, a password protection scheme limited to
+Licensees and a click-on, download certification of Licensee status
+required of those attempting to download from the server. An example of
+an acceptable certification is attached as Attachment A-2.
+
+(c) Notices. All Error Corrections and Shared Modifications You create
+or contribute to must include a file documenting the additions and
+changes You made and the date of such additions and changes. You must
+also include the notice set forth in Attachment A-1 in the file header.
+If it is not possible to put the notice in a particular Source Code file
+due to its structure, then You must include the notice in a location
+(such as a relevant directory file), where a recipient would be most
+likely to look for such a notice.
+
+(d) Redistribution.
+
+(i) Source. Covered Code may be distributed in Source Code form only to
+another Licensee (except for students as provided below). You may not
+offer or impose any terms on any Covered Code that alter the rights,
+requirements, or responsibilities of such Licensee. You may distribute
+Covered Code to students for use in connection with their course work
+and research projects undertaken at accredited educational institutions.
+Such students need not be Licensees, but must be given a copy of the
+notice set forth in Attachment A-3 and such notice must also be included
+in a file header or prominent location in the Source Code made available
+to such students.
+
+(ii) Executable. You may distribute Executable version(s) of Covered
+Code to Licensees and other third parties only for the purpose of
+evaluation and comment in connection with Research Use by You and under
+a license of Your choice, but which limits use of such Executable
+version(s) of Covered Code only to that purpose.
+
+(iii) Modified Class, Interface and Package Naming. In connection with
+Research Use by You only, You may use Original Contributor's class,
+Interface and package names only to accurately reference or invoke the
+Source Code files You modify. Original Contributor grants to You a
+limited license to the extent necessary for such purposes.
+
+(iv) You expressly agree that any distribution, in whole or in part, of
+Modifications developed by You shall only be done pursuant to the terms
+and conditions of this License.
+
+(e) Extensions.
+
+(i) Covered Code. You may not include any Source Code of Community Code
+in any Extensions. You may include the compiled Header Files of
+Community Code in an Extension provided that Your use of the Covered
+Code, including Heading Files, complies with the Commercial Use License,
+the TCK and all other terms of this License.
+
+(ii) Publication. No later than the date on which You first distribute
+such Extension for Commercial Use, You must publish to the industry, on
+a non-confidential basis and free of all copyright restrictions with
+respect to reproduction and use, an accurate and current specification
+for any Extension. In addition, You must make available an appropriate
+test suite, pursuant to the same rights as the specification,
+sufficiently detailed to allow any third party reasonably skilled in the
+technology to produce implementations of the Extension compatible with
+the specification. Such test suites must be made available as soon as
+reasonably practicable but, in no event, later than ninety (90) days
+after Your first Commercial Use of the Extension. You must use
+reasonable efforts to promptly clarify and correct the specification and
+the test suite upon written request by Original Contributor.
+
+(iii) Open. You agree to refrain from enforcing any Intellectual
+Property Rights You may have covering any interface(s) of Your
+Extension, which would prevent the implementation of such interface(s)
+by Original Contributor or any Licensee. This obligation does not
+prevent You from enforcing any Intellectual Property Right You have that
+would otherwise be infringed by an implementation of Your Extension.
+
+(iv) Interface Modifications and Naming. You may not modify or add to
+the GUID space * * "xxxxxxxx-0901-11d1-8B06-00A024406D59" or any other
+GUID space designated by Original Contributor. You may not modify any
+Interface prefix provided with the Covered Code or any other prefix
+designated by Original Contributor.* *
+
+* *
+
+(f) You agree that any Specifications provided to You by Original
+Contributor are confidential and proprietary information of Original
+Contributor. You must maintain the confidentiality of the Specifications
+and may not disclose them to any third party without Original
+Contributor's prior written consent. You may only use the Specifications
+under the terms of this License and only for the purpose of implementing
+the terms of this License with respect to Covered Code. You agree not
+use, copy or distribute any such Specifications except as provided in
+writing by Original Contributor.
+
+3.2 Commercial Use License.
+
+You may not make Commercial Use of any Covered Code unless You and
+Original Contributor have executed a copy of the Commercial Use and
+Trademark License attached as Attachment D.
+
+*4. Versions of the License.*
+
+4.1 License Versions.
+
+Original Contributor may publish revised versions of the License from
+time to time. Each version will be given a distinguishing version number.
+
+4.2 Effect.
+
+Once a particular version of Covered Code has been provided under a
+version of the License, You may always continue to use such Covered Code
+under the terms of that version of the License. You may also choose to
+use such Covered Code under the terms of any subsequent version of the
+License. No one other than Original Contributor has the right to
+promulgate License versions.
+
+4.3 Multiple-Licensed Code.
+
+Original Contributor may designate portions of the Covered Code as
+"Multiple-Licensed." "Multiple-Licensed" means that the Original
+Contributor permits You to utilize those designated portions of the
+Covered Code under Your choice of this License or the alternative
+license(s), if any, specified by the Original Contributor in an
+Attachment to this License.
+
+*5. Disclaimer of Warranty.*
+
+5.1 COVERED CODE PROVIDED AS IS.
+
+COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," WITHOUT WARRANTY OF
+ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
+WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT
+FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE
+RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED CODE UNDER
+THIS LICENSE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
+OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER
+EXCEPT SUBJECT TO THIS DISCLAIMER.
+
+5.2 Not Designed for High Risk Activities.
+
+You acknowledge that Original Code, Upgraded Code and Specifications are
+not designed or intended for use in high risk activities including, but
+not limited to: (i) on-line control of aircraft, air traffic, aircraft
+navigation or aircraft communications; or (ii) in the design,
+construction, operation or maintenance of any nuclear facility. Original
+Contributor disclaims any express or implied warranty of fitness for
+such uses.
+
+*6. Termination.*
+
+6.1 By You.
+
+You may terminate this Research Use license at anytime by providing
+written notice to Original Contributor.
+
+6.2 By Original Contributor.
+
+This License and the rights granted hereunder will terminate:
+
+(i) automatically if You fail to comply with the terms of this License
+and fail to cure such breach within 30 days of receipt of written notice
+of the breach;
+
+(ii) immediately in the event of circumstances specified in Sections 7.1
+and 8.4; or
+
+(iii) at Original Contributor's discretion upon any action initiated by
+You (including by cross-claim or counter claim) alleging that use or
+distribution by Original Contributor or any Licensee, of Original Code,
+Upgraded Code, Error Corrections, Shared Modifications or Specifications
+infringe a patent owned or controlled by You.
+
+6.3 Effective of Termination.
+
+Upon termination, You agree to discontinue use of and destroy all copies
+of Covered Code in Your possession. All sublicenses to the Covered Code
+which You have properly granted shall survive any termination of this
+License. Provisions that, by their nature, should remain in effect
+beyond the termination of this License shall survive including, without
+limitation, Sections 2.2, 3, 5, 7 and 8.
+
+6.4 No Compensation.
+
+Each party waives and releases the other from any claim to compensation
+or indemnity for permitted or lawful termination of the business
+relationship established by this License.
+
+*7. Liability.*
+
+7.1 Infringement. Should any of the Original Code, Upgraded Code, TCK or
+Specifications ("Materials") become the subject of a claim of
+infringement, Original Contributor may, at its sole option, (i) attempt
+to procure the rights necessary for You to continue using the Materials,
+(ii) modify the Materials so that they are no longer infringing, or
+(iii) terminate Your right to use the Materials, immediately upon
+written notice, and refund to You the amount, if any, having then
+actually been paid by You to Original Contributor for the Original Code,
+Upgraded Code and TCK, depreciated on a straight line, five year basis.
+
+7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY APPLICABLE
+LAW, ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR CLAIMS RELATING TO THIS
+LICENSE, WHETHER FOR BREACH OR IN TORT, SHALL BE LIMITED TO ONE HUNDRED
+PERCENT (100%) OF THE AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO
+ORIGINAL CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE PARTICULAR
+ITEMS GIVING RISE TO SUCH CLAIM, IF ANY, DURING THE TWELVE MONTHS
+PRECEDING THE CLAIMED BREACH. IN NO EVENT WILL YOU (RELATIVE TO YOUR
+SHARED MODIFICATIONS OR ERROR CORRECTIONS) OR ORIGINAL CONTRIBUTOR BE
+LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR RISING OUT OF THIS LICENSE (INCLUDING,
+WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER ECONOMIC
+ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF LIABILITY, WHETHER IN
+AN ACTION FOR CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE)
+OR OTHERWISE, WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE
+FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY.
+
+*8. Miscellaneous.*
+
+8.1 Trademark.
+
+You shall not use any Trademark unless You and Original Contributor
+execute a copy of the Commercial Use and Trademark License Agreement
+attached hereto as Attachment D. Except as expressly provided in the
+License, You are granted no right, title or license to, or interest in,
+any Trademarks. Whether or not You and Original Contributor enter into
+the Trademark License, You agree not to (i) challenge Original
+Contributor's ownership or use of Trademarks; (ii) attempt to register
+any Trademarks, or any mark or logo substantially similar thereto; or
+(iii) incorporate any Trademarks into Your own trademarks, product
+names, service marks, company names, or domain names.
+
+8.2 Integration.
+
+This License represents the complete agreement concerning the subject
+matter hereof.
+
+8.3 Assignment.
+
+Original Contributor may assign this License, and its rights and
+obligations hereunder, in its sole discretion. You may assign the
+Research Use portions of this License and the TCK license to a third
+party upon prior written notice to Original Contributor (which may be
+provided electronically via the Community Web-Server). You may not
+assign the Commercial Use and Trademark license, the Add-On Technology
+License, or the Add-On Technology Source Code Porting License, including
+by way of merger (regardless of whether You are the surviving entity) or
+acquisition, without Original Contributor's prior written consent.
+
+8.4 Severability.
+
+If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. Notwithstanding the foregoing, if You are prohibited by law
+from fully and specifically complying with Sections 2.2 or 3, this
+License will immediately terminate and You must immediately discontinue
+any use of Covered Code.
+
+8.5 Governing Law.
+
+This License shall be governed by the laws of the United States and the
+State of Washington, as applied to contracts entered into and to be
+performed in Washington between Washington residents. The application of
+the United Nations Convention on Contracts for the International Sale of
+Goods is expressly excluded. You agree that the state and federal courts
+located in Seattle, Washington have exclusive jurisdiction over any
+claim relating to the License, including contract and tort claims.
+
+8.6 Dispute Resolution.
+
+a) Arbitration. Any dispute arising out of or relating to this License
+shall be finally settled by arbitration as set out herein, except that
+either party may bring any action, in a court of competent jurisdiction
+(which jurisdiction shall be exclusive), with respect to any dispute
+relating to such party's Intellectual Property Rights or with respect to
+Your compliance with the TCK license. Arbitration shall be administered:
+(i) by the American Arbitration Association (AAA), (ii) in accordance
+with the rules of the United Nations Commission on International Trade
+Law (UNCITRAL) (the "Rules") in effect at the time of arbitration as
+modified herein; and (iii) the arbitrator will apply the substantive
+laws of Washington and the United States. Judgment upon the award
+rendered by the arbitrator may be entered in any court having
+jurisdiction to enforce such award.
+
+b) Arbitration language, venue and damages. All arbitration proceedings
+shall be conducted in English by a single arbitrator selected in
+accordance with the Rules, who must be fluent in English and be either a
+retired judge or practicing attorney having at least ten (10) years
+litigation experience and be reasonably familiar with the technology
+matters relative to the dispute. Unless otherwise agreed, arbitration
+venue shall be in Seattle, Washington. The arbitrator may award monetary
+damages only and nothing shall preclude either party from seeking
+provisional or emergency relief from a court of competent jurisdiction.
+The arbitrator shall have no authority to award damages in excess of
+those permitted in this License and any such award in excess is void.
+All awards will be payable in U.S. dollars and may include, for the
+prevailing party (i) pre-judgment award interest, (ii) reasonable
+attorneys' fees incurred in connection with the arbitration, and (iii)
+reasonable costs and expenses incurred in enforcing the award. The
+arbitrator will order each party to produce identified documents and
+respond to no more than twenty-five single question interrogatories.
+
+8.7 Construction.
+
+Any law or regulation, which provides that the language of a contract
+shall be construed against the drafter, shall not apply to this License.
+
+8.8 U.S. Government End Users.
+
+The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software"
+and "commercial computer software documentation," as such terms are used
+in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
+48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
+End Users acquire Covered Code with only those rights set forth herein.
+You agree to pass this notice to our licensees.
+
+8.9 Marketing Activities.
+
+Licensee hereby grants Original Contributor a non-exclusive,
+non-transferable, limited license to use the Licensee's company name and
+logo ("Licensee Marks") in any presentations, press releases, or
+marketing materials solely for the purpose of identifying Licensee as a
+member of the Helix Community. Licensee shall provide samples of
+Licensee Marks to Original Contributor upon request by Original
+Contributor. Original Contributor acknowledges that the Licensee Marks
+are the trademarks of Licensee. Original Contributor shall not use the
+Licensee Marks in a way that may imply that Original Contributor is an
+agency or branch of Licensee. Original Contributor understands and
+agrees that the use of any Licensee Marks in connection with this
+Agreement shall not create any right, title or interest, in, or to the
+Licensee Marks or any Licensee trademarks and that all such use and
+goodwill associated with any such trademarks will inure to the benefit
+of Licensee. Further the Original Contributor will stop usage of the
+Licensee Marks upon Licensee's request.
+
+8.10 Press Announcements.
+
+You may make press announcements or other public statements regarding
+this License without the prior written consent of the Original
+Contributor, if Your statement is limited to announcing the licensing of
+the Covered Code or the availability of Your Product and its
+compatibility with the Covered Code. All other public announcements
+regarding this license require the prior written consent of the Original
+Contributor. Consent requests are welcome at press@helixcommunity.org.
+
+8.11 International Use.
+
+a) Export/Import laws. Covered Code is subject to U.S. export control
+laws and may be subject to export or import regulations in other
+countries. Each party agrees to comply strictly with all such laws and
+regulations and acknowledges their responsibility to obtain such
+licenses to export, re-export, or import as may be required. You agree
+to pass these obligations to Your licensees.
+
+b) Intellectual Property Protection. Due to limited intellectual
+property protection and enforcement in certain countries, You agree not
+to redistribute the Original Code, Upgraded Code, TCK and Specifications
+to any country on the list of restricted countries on the Community Web
+Server.
+
+8.12 Language.
+
+This License is in the English language only, which language shall be
+controlling in all respects, and all versions of this License in any
+other language shall be for accommodation only and shall not be binding
+on the parties to this License. All communications and notices made or
+given pursuant to this License, and all documentation and support to be
+provided, unless otherwise noted, shall be in the English language.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH REALNETWORKS, INC. IF YOU ARE AGREEING
+TO THIS LICENSE ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE
+AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER YOU ARE ACTING
+ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, YOU MUST BE OF MAJORITY
+AGE AND BE OTHERWISE COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT
+MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND
+CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO EXIT.
+
+
+    GLOSSARY
+
+1. *"Added Value"* means code which:
+
+(i) has a principal purpose which is substantially different from that
+of the stand-alone Technology;
+
+(ii) represents a significant functional and value enhancement to the
+Technology;
+
+(iii) operates in conjunction with the Technology; and
+
+(iv) is not marketed as a technology which replaces or substitutes for
+the Technology
+
+2. "*Applicable Patent Rights*" mean: (a) in the case where Original
+Contributor is the grantor of rights, claims of patents that (i) are now
+or hereafter acquired, owned by or assigned to Original Contributor and
+(ii) are necessarily infringed by using or making the Original Code or
+Upgraded Code, including Modifications provided by Original Contributor,
+alone and not in combination with other software or hardware; and (b) in
+the case where Licensee is the grantor of rights, claims of patents that
+(i) are now or hereafter acquired, owned by or assigned to Licensee and
+(ii) are infringed (directly or indirectly) by using or making
+Licensee's Modifications or Error Corrections, taken alone or in
+combination with Covered Code.
+
+3. "*Application Programming Interfaces (APIs)"* means the interfaces,
+associated header files, service provider interfaces, and protocols that
+enable a device, application, Operating System, or other program to
+obtain services from or make requests of (or provide services in
+response to requests from) other programs, and to use, benefit from, or
+rely on the resources, facilities, and capabilities of the relevant
+programs using the APIs. APIs includes the technical documentation
+describing the APIs, the Source Code constituting the API, and any
+Header Files used with the APIs.
+
+4. "*Commercial Use*" means any use (internal or external), copying,
+sublicensing or distribution (internal or external), directly or
+indirectly of Covered Code by You other than Your Research Use of
+Covered Code within Your business or organization or in conjunction with
+other Licensees with equivalent Research Use rights. Commercial Use
+includes any use of the Covered Code for direct or indirect commercial
+or strategic gain, advantage or other business purpose. Any Commercial
+Use requires execution of Attachment D by You and Original Contributor.
+
+5. "*Community Code*" means the Original Code, Upgraded Code, Error
+Corrections, Shared Modifications, or any combination thereof.
+
+6. "*Community Webserver(s)"* means the webservers designated by
+Original Contributor for access to the Original Code, Upgraded Code, TCK
+and Specifications and for posting Error Corrections and Shared
+Modifications.
+
+7. "*Compliant Covered Code*" means Covered Code that complies with the
+requirements of the TCK.
+
+8. "*Contributor*" means each Licensee that creates or contributes to
+the creation of any Error Correction or Shared Modification.
+
+9. "*Covered Code*" means the Original Code, Upgraded Code,
+Modifications, or any combination thereof.
+
+10. "*Error Correction*" means any change made to Community Code which
+conforms to the Specification and corrects the adverse effect of a
+failure of Community Code to perform any function set forth in or
+required by the Specifications.
+
+11. "*Executable*" means Covered Code that has been converted from
+Source Code to the preferred form for execution by a computer or digital
+processor (e.g. binary form).
+
+12. "*Extension(s)"* means any additional Interfaces developed by or for
+You which: (i) are designed for use with the Technology; (ii) constitute
+an API for a library of computing functions or services; and (iii) are
+disclosed or otherwise made available to third party software developers
+for the purpose of developing software which invokes such additional
+Interfaces. The foregoing shall not apply to software developed by Your
+subcontractors to be exclusively used by You.
+
+13. "*Header File(s)"* means that portion of the Source Code that
+provides the names and types of member functions, data members, class
+definitions, and interface definitions necessary to implement the APIs
+for the Covered Code. Header Files include, files specifically
+designated by Original Contributor as Header Files. Header Files do not
+include the code necessary to implement the functionality underlying the
+Interface.
+
+14. *"Helix DNA Server Technology"* means the program(s) that implement
+the Helix Universal Server streaming engine for the Technology as
+defined in the Specification.
+
+15. *"Helix DNA Client Technology"* means the Covered Code that
+implements the RealOne Player engine as defined in the Specification.
+
+16. *"Helix DNA Producer Technology"* means the Covered Code that
+implements the Helix Producer engine as defined in the Specification.
+
+17. *"Helix DNA Technology"* means the Helix DNA Server Technology, the
+Helix DNA Client Technology, the Helix DNA Producer Technology and other
+Helix technologies designated by Original Contributor.
+
+18. "*Intellectual Property Rights*" means worldwide statutory and
+common law rights associated solely with (i) Applicable Patent Rights;
+(ii) works of authorship including copyrights, copyright applications,
+copyright registrations and "moral rights"; (iii) the protection of
+trade and industrial secrets and confidential information; and (iv)
+divisions, continuations, renewals, and re-issuances of the foregoing
+now existing or acquired in the future.
+
+19. *"Interface*" means interfaces, functions, properties, class
+definitions, APIs, Header Files, GUIDs, V-Tables, and/or protocols
+allowing one piece of software, firmware or hardware to communicate or
+interoperate with another piece of software, firmware or hardware.
+
+20. "*Internal Deployment Use*" means use of Compliant Covered Code
+(excluding Research Use) within Your business or organization only by
+Your employees and/or agents on behalf of Your business or organization,
+but not to provide services, including content distribution, to third
+parties, subject to execution of Attachment D by You and Original
+Contributor, if required.
+
+21. "*Licensee*" means any party that has entered into and has in effect
+a version of this License with Original Contributor.
+
+22. "*MIME type*" means a description of what type of media or other
+content is in a file, including by way of example but not limited to
+'audio/x-pn-realaudio-plugin.'
+
+23. "*Modification(s)"* means (i) any addition to, deletion from and/or
+change to the substance and/or structure of the Covered Code, including
+Interfaces; (ii) the combination of any Covered Code and any previous
+Modifications; (iii) any new file or other representation of computer
+program statements that contains any portion of Covered Code; and/or
+(iv) any new Source Code implementing any portion of the Specifications.
+
+24. "*MP3 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Picture Experts Group known as MPEG-1 Audio Layer-3 or MP3,
+including but not limited to all past and future versions, profiles,
+extensions, parts and amendments relating to the MP3 specification.
+
+25. "*MPEG-4 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Pictures Experts Group known as MPEG-4, including but not
+limited to all past and future versions, profiles, extensions, parts and
+amendments relating to the MPEG-4 specification.
+
+26. "*Original Code*" means the initial Source Code for the Technology
+as described on the Community Web Server.
+
+27. "*Original Contributor*" means RealNetworks, Inc., its affiliates
+and its successors and assigns.
+
+28. "*Original Contributor MIME Type*" means the MIME registry, browser
+preferences, or local file/protocol associations invoking any Helix DNA
+Client-based application, including the RealOne Player, for playback of
+RealAudio, RealVideo, other RealMedia MIME types or datatypes (e.g.,
+.ram, .rnx, .rpm, .ra, .rm, .rp, .rt, .rf, .prx, .mpe, .rmp, .rmj, .rav,
+.rjs, .rmx, .rjt, .rms), and any other Original Contributor-specific or
+proprietary MIME types that Original Contributor may introduce in the
+future.
+
+29. "*Personal Use*" means use of Covered Code by an individual solely
+for his or her personal, private and non-commercial purposes. An
+individual's use of Covered Code in his or her capacity as an officer,
+employee, member, independent contractor or agent of a corporation,
+business or organization (commercial or non-commercial) does not qualify
+as Personal Use.
+
+30. "*RealMedia File Format*" means the file format designed and
+developed by RealNetworks for storing multimedia data and used to store
+RealAudio and RealVideo encoded streams. Valid RealMedia File Format
+extensions include: .rm, .rmj, .rmc, .rmvb, .rms.
+
+31. "*RCSL Webpage*" means the RealNetworks Community Source License
+webpage located at https://www.helixcommunity.org/content/rcsl or such
+other URL that Original Contributor may designate from time to time.
+
+32. "*Reformatted Specifications*" means any revision to the
+Specifications which translates or reformats the Specifications (as for
+example in connection with Your documentation) but which does not alter,
+subset or superset * *the functional or operational aspects of the
+Specifications.
+
+33. "*Research Use*" means use and distribution of Covered Code only for
+Your Personal Use, research or development use and expressly excludes
+Internal Deployment Use and Commercial Use. Research Use also includes
+use of Covered Code to teach individuals how to use Covered Code.
+
+34. "*Shared Modifications*" means Modifications that You distribute or
+use for a Commercial Use, in addition to any Modifications provided by
+You, at Your option, pursuant to Section 2.2, or received by You from a
+Contributor pursuant to Section 2.3.
+
+35. "*Source Code*" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control
+compilation and installation of an Executable, or source code
+differential comparisons against either the Original Code or another
+well known, available Covered Code of the Contributor's choice. The
+Source Code can be in a compressed or archival form, provided the
+appropriate decompression or de-archiving software is widely available
+for no charge.
+
+36. "*Specifications*" means the specifications for the Technology and
+other documentation, as designated on the Community Web Server, as may
+be revised by Original Contributor from time to time.
+
+37. "*Trademarks*" means Original Contributor's trademarks and logos,
+including, but not limited to, RealNetworks, RealAudio, RealVideo,
+RealOne, RealSystem, SureStream, Helix, Helix DNA and other trademarks
+whether now used or adopted in the future.
+
+38. "*Technology*" means the technology described in Attachment B, and
+Upgrades.
+
+39. "*Technology Compatibility Kit"* or *"TCK*" means the test programs,
+procedures, acceptance criteria and/or other requirements, designated by
+Original Contributor for use in verifying compliance of Covered Code
+with the Specifications, in conjunction with the Original Code and
+Upgraded Code. Original Contributor may, in its sole discretion and from
+time to time, revise a TCK to correct errors and/or omissions and in
+connection with Upgrades.
+
+40. "*Upgrade(s)"* means new versions of Technology designated
+exclusively by Original Contributor as an "Upgrade" and released by
+Original Contributor from time to time under the terms of the License.
+
+41. "*Upgraded Code*" means the Source Code and/or Executables for
+Upgrades, possibly including Modifications made by Contributors.
+
+42. *"User's Guide"* means the users guide for the TCK which Original
+Contributor makes available to You to provide direction in how to run
+the TCK and properly interpret the results, as may be revised by
+Original Contributor from time to time.
+
+43. "*You(r)*" means an individual, or a legal entity acting by and
+through an individual or individuals, exercising rights either under
+this License or under a future version of this License issued pursuant
+to Section 4.1. For legal entities, "You(r)" includes any entity that by
+majority voting interest controls, is controlled by, or is under common
+control with You.
+
+44. "*Your Products*" means any (i) hardware products You distribute
+integrating the Covered Code; (ii) any software products You distribute
+with the Covered Code that utilize the APIs of the Covered Code; or
+(iii) any services You provide using the Covered Code.
+
+
+  ATTACHMENT A
+
+REQUIRED NOTICES
+
+
+    ATTACHMENT A-1
+
+REQUIRED IN ALL CASES
+
+Notice to be included in header file of all Error Corrections and Shared
+Modifications:
+
+Portions Copyright 1994-2003 © RealNetworks, Inc. All rights reserved.
+
+The contents of this file, and the files included with this file, are
+subject to the current version of RealNetworks Community Source License
+Version 1.1 (the "License"). You may not use this file except in
+compliance with the License executed by both You and RealNetworks. You
+may obtain a copy of the License at *
+https://www.helixcommunity.org/content/rcsl.* You may also obtain a copy
+of the License by contacting RealNetworks directly. Please see the
+License for the rights, obligations and limitations governing use of the
+contents of the file.
+
+This file is part of the Helix DNA technology. RealNetworks, Inc., is
+the developer of the Original code and owns the copyrights in the
+portions it created.
+
+This file, and the files included with this file, are distributed on an
+'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
+LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s):
+
+_______________________________________________
+
+Technology Compatibility Kit Test Suite(s) Location:
+
+________________________________
+
+
+    ATTACHMENT A-2
+
+SAMPLE LICENSEE CERTIFICATION
+
+"By clicking the `Agree' button below, You certify that You are a
+Licensee in good standing under the RealNetworks Community Source
+License, ("License") and that Your access, use and distribution of code
+and information You may obtain at this site is subject to the License.
+If You are not a Licensee under the RealNetworks Community Source
+License You agree not to download, copy or use the Helix DNA technology.
+
+
+    ATTACHMENT A-3
+
+REQUIRED STUDENT NOTIFICATION
+
+"This software and related documentation has been obtained by Your
+educational institution subject to the RealNetworks Community Source
+License. You have been provided access to the software and related
+documentation for use only in connection with your course work and
+research activities as a matriculated student of Your educational
+institution. Any other use is expressly prohibited.
+
+THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIAL OF
+REALNETWORKS, INC, WHICH ARE PROTECTED BY VARIOUS INTELLECTUAL PROPERTY
+RIGHTS.
+
+You may not use this file except in compliance with the License. You may
+obtain a copy of the License on the web at
+https://www.helixcommunity.org/content/rcsl.
+
+*
+*
+
+
+  ATTACHMENT B
+
+Description of Technology
+
+Helix DNA, which consists of Helix DNA Client, Helix DNA Server and
+Helix DNA Producer.
+
+Description of "Technology"
+
+Helix DNA Technology v1.0 as described on the Community Web Server.
+
+
+  ATTACHMENT C
+
+TECHNOLOGY COMPATIBILITY KIT LICENSE
+
+The following license is effective for the *Helix DNA* Technology
+Compatibility Kit - as described on the Community Web Server. The
+Technology Compatibility Kit(s) for the Technology specified in
+Attachment B may be accessed at the Community Web Server.
+
+1. TCK License.
+
+1.1 Grants to use TCK
+
+Subject to the terms and restrictions set forth below and the
+RealNetworks Community Source License, and the Research Use license,
+Original Contributor grants to You a worldwide, non-exclusive,
+non-transferable license, to the extent of Original Contributor's
+Intellectual Property Rights in the TCK (without the right to
+sublicense), to use the TCK to develop and test Covered Code.
+
+1.2 TCK Use Restrictions.
+
+You are not authorized to create derivative works of the TCK or use the
+TCK to test any implementation of the Specification that is not Covered
+Code. You may not publish Your test results or make claims of
+comparative compatibility with respect to other implementations of the
+Specification. In consideration for the license grant in Section 1.1
+above You agree not to develop Your own tests that are intended to
+validate conformation with the Specification.
+
+2. Test Results.
+
+You agree to provide to Original Contributor or the third party test
+facility if applicable, Your test results that demonstrate that Covered
+Code is Compliant Covered Code and that Original Contributor may publish
+or otherwise distribute such test results.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH THE ORIGINAL CONTRIBUTOR, REALNETWORKS,
+INC. IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY, YOU
+REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE.
+WHETHER YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY,
+YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE COMPETENT TO ENTER INTO
+CONTRACTS. IF YOU DO NOT MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY
+OF THE TERMS AND CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON
+TO EXIT.
+
+*ACCEPT / REJECT
+*
+
+*
+*
+
+*To agree to the R&D/academic terms of this license, please register
+<https://www.helixcommunity.org/2002/intro/why-register> on the site --
+you will then be given a chance to agree to the clickwrap RCSL
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+R&D License
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+and gain access to the RCSL-licensed source code.  To build or deploy
+commercial applications based on the RCSL, you will need to agree to the
+Commercial Use license attachments
+<https://www.helixcommunity.org/content/rcsl-attachments>*
+
+
+

+ 518 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/RPSL.txt

@@ -0,0 +1,518 @@
+RealNetworks Public Source License Version 1.0
+(Rev. Date October 28, 2002)
+
+1. General Definitions. This License applies to any program or other work which
+RealNetworks, Inc., or any other entity that elects to use this license,
+("Licensor") makes publicly available and which contains a notice placed by
+Licensor identifying such program or work as "Original Code" and stating that it
+is subject to the terms of this RealNetworks Public Source License version 1.0
+(or subsequent version thereof) ("License"). You are not required to accept this
+License. However, nothing else grants You permission to use, copy, modify or
+distribute the software or its derivative works. These actions are prohibited by
+law if You do not accept this License. Therefore, by modifying, copying or
+distributing the software (or any work based on the software), You indicate your
+acceptance of this License to do so, and all its terms and conditions. In
+addition, you agree to the terms of this License by clicking the Accept button
+or downloading the software. As used in this License:
+
+1.1 "Applicable Patent Rights" mean: (a) in the case where Licensor is the
+grantor of rights, claims of patents that (i) are now or hereafter acquired,
+owned by or assigned to Licensor and (ii) are necessarily infringed by using or
+making the Original Code alone and not in combination with other software or
+hardware; and (b) in the case where You are the grantor of rights, claims of
+patents that (i) are now or hereafter acquired, owned by or assigned to You and
+(ii) are infringed (directly or indirectly) by using or making Your
+Modifications, taken alone or in combination with Original Code.
+
+1.2 "Compatible Source License" means any one of the licenses listed on Exhibit
+B or at https://www.helixcommunity.org/content/complicense or other licenses
+specifically identified by Licensor in writing. Notwithstanding any term to the
+contrary in any Compatible Source License, any code covered by any Compatible
+Source License that is used with Covered Code must be made readily available in
+Source Code format for royalty-free use under the terms of the Compatible Source
+License or this License.
+
+1.3 "Contributor" means any person or entity that creates or contributes to the
+creation of Modifications.
+
+1.4 "Covered Code" means the Original Code, Modifications, the combination of
+Original Code and any Modifications, and/or any respective portions thereof.
+
+1.5 "Deploy" means to use, sublicense or distribute Covered Code other than for
+Your internal research and development (R&D) and/or Personal Use, and includes
+without limitation, any and all internal use or distribution of Covered Code
+within Your business or organization except for R&D use and/or Personal Use, as
+well as direct or indirect sublicensing or distribution of Covered Code by You
+to any third party in any form or manner.
+
+1.6 "Derivative Work" means either the Covered Code or any derivative work under
+United States copyright law, and including any work containing or including any
+portion of the Covered Code or Modifications, either verbatim or with
+modifications and/or translated into another language. Derivative Work also
+includes any work which combines any portion of Covered Code or Modifications
+with code not otherwise governed by the terms of this License.
+
+1.7 "Externally Deploy" means to Deploy the Covered Code in any way that may be
+accessed or used by anyone other than You, used to provide any services to
+anyone other than You, or used in any way to deliver any content to anyone other
+than You, whether the Covered Code is distributed to those parties, made
+available as an application intended for use over a computer network, or used to
+provide services or otherwise deliver content to anyone other than You.
+
+1.8. "Interface" means interfaces, functions, properties, class definitions,
+APIs, header files, GUIDs, V-Tables, and/or protocols allowing one piece of
+software, firmware or hardware to communicate or interoperate with another piece
+of software, firmware or hardware.
+
+1.9 "Modifications" mean any addition to, deletion from, and/or change to, the
+substance and/or structure of the Original Code, any previous Modifications, the
+combination of Original Code and any previous Modifications, and/or any
+respective portions thereof. When code is released as a series of files, a
+Modification is: (a) any addition to or deletion from the contents of a file
+containing Covered Code; and/or (b) any new file or other representation of
+computer program statements that contains any part of Covered Code.
+
+1.10 "Original Code" means (a) the Source Code of a program or other work as
+originally made available by Licensor under this License, including the Source
+Code of any updates or upgrades to such programs or works made available by
+Licensor under this License, and that has been expressly identified by Licensor
+as such in the header file(s) of such work; and (b) the object code compiled
+from such Source Code and originally made available by Licensor under this
+License.
+
+1.11 "Personal Use" means use of Covered Code by an individual solely for his or
+her personal, private and non-commercial purposes. An individual's use of
+Covered Code in his or her capacity as an officer, employee, member, independent
+contractor or agent of a corporation, business or organization (commercial or
+non-commercial) does not qualify as Personal Use.
+
+1.12 "Source Code" means the human readable form of a program or other work that
+is suitable for making modifications to it, including all modules it contains,
+plus any associated interface definition files, scripts used to control
+compilation and installation of an executable (object code).
+
+1.13 "You" or "Your" means an individual or a legal entity exercising rights
+under this License. For legal entities, "You" or "Your" includes any entity
+which controls, is controlled by, or is under common control with, You, where
+"control" means (a) the power, direct or indirect, to cause the direction or
+management of such entity, whether by contract or otherwise, or (b) ownership of
+fifty percent (50%) or more of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Permitted Uses; Conditions & Restrictions. Subject to the terms and
+conditions of this License, Licensor hereby grants You, effective on the date
+You accept this License (via downloading or using Covered Code or otherwise
+indicating your acceptance of this License), a worldwide, royalty-free,
+non-exclusive copyright license, to the extent of Licensor's copyrights cover
+the Original Code, to do the following:
+
+2.1 You may reproduce, display, perform, modify and Deploy Covered Code,
+provided that in each instance:
+
+(a) You must retain and reproduce in all copies of Original Code the copyright
+and other proprietary notices and disclaimers of Licensor as they appear in the
+Original Code, and keep intact all notices in the Original Code that refer to
+this License;
+
+(b) You must include a copy of this License with every copy of Source Code of
+Covered Code and documentation You distribute, and You may not offer or impose
+any terms on such Source Code that alter or restrict this License or the
+recipients' rights hereunder, except as permitted under Section 6;
+
+(c) You must duplicate, to the extent it does not already exist, the notice in
+Exhibit A in each file of the Source Code of all Your Modifications, and cause
+the modified files to carry prominent notices stating that You changed the files
+and the date of any change;
+
+(d) You must make Source Code of all Your Externally Deployed Modifications
+publicly available under the terms of this License, including the license grants
+set forth in Section 3 below, for as long as you Deploy the Covered Code or
+twelve (12) months from the date of initial Deployment, whichever is longer. You
+should preferably distribute the Source Code of Your Deployed Modifications
+electronically (e.g. download from a web site); and
+
+(e) if You Deploy Covered Code in object code, executable form only, You must
+include a prominent notice, in the code itself as well as in related
+documentation, stating that Source Code of the Covered Code is available under
+the terms of this License with information on how and where to obtain such
+Source Code. You must also include the Object Code Notice set forth in Exhibit A
+in the "about" box or other appropriate place where other copyright notices are
+placed, including any packaging materials.
+
+2.2 You expressly acknowledge and agree that although Licensor and each
+Contributor grants the licenses to their respective portions of the Covered Code
+set forth herein, no assurances are provided by Licensor or any Contributor that
+the Covered Code does not infringe the patent or other intellectual property
+rights of any other entity. Licensor and each Contributor disclaim any liability
+to You for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, You hereby assume sole responsibility to
+secure any other intellectual property rights needed, if any. For example, if a
+third party patent license is required to allow You to make, use, sell, import
+or offer for sale the Covered Code, it is Your responsibility to acquire such
+license(s).
+
+2.3 Subject to the terms and conditions of this License, Licensor hereby grants
+You, effective on the date You accept this License (via downloading or using
+Covered Code or otherwise indicating your acceptance of this License), a
+worldwide, royalty-free, perpetual, non-exclusive patent license under
+Licensor's Applicable Patent Rights to make, use, sell, offer for sale and
+import the Covered Code, provided that in each instance you comply with the
+terms of this License.
+
+3. Your Grants. In consideration of, and as a condition to, the licenses granted
+to You under this License:
+
+(a) You grant to Licensor and all third parties a non-exclusive, perpetual,
+irrevocable, royalty free license under Your Applicable Patent Rights and other
+intellectual property rights owned or controlled by You, to make, sell, offer
+for sale, use, import, reproduce, display, perform, modify, distribute and
+Deploy Your Modifications of the same scope and extent as Licensor's licenses
+under Sections 2.1 and 2.2; and
+
+(b) You grant to Licensor and its subsidiaries a non-exclusive, worldwide,
+royalty-free, perpetual and irrevocable license, under Your Applicable Patent
+Rights and other intellectual property rights owned or controlled by You, to
+make, use, sell, offer for sale, import, reproduce, display, perform,
+distribute, modify or have modified (for Licensor and/or its subsidiaries),
+sublicense and distribute Your Modifications, in any form and for any purpose,
+through multiple tiers of distribution.
+
+(c) You agree not use any information derived from Your use and review of the
+Covered Code, including but not limited to any algorithms or inventions that may
+be contained in the Covered Code, for the purpose of asserting any of Your
+patent rights, or assisting a third party to assert any of its patent rights,
+against Licensor or any Contributor.
+
+4. Derivative Works. You may create a Derivative Work by combining Covered Code
+with other code not otherwise governed by the terms of this License and
+distribute the Derivative Work as an integrated product. In each such instance,
+You must make sure the requirements of this License are fulfilled for the
+Covered Code or any portion thereof, including all Modifications.
+
+4.1 You must cause any Derivative Work that you distribute, publish or
+Externally Deploy, that in whole or in part contains or is derived from the
+Covered Code or any part thereof, to be licensed as a whole at no charge to all
+third parties under the terms of this License and no other license except as
+provided in Section 4.2. You also must make Source Code available for the
+Derivative Work under the same terms as Modifications, described in Sections 2
+and 3, above.
+
+4.2 Compatible Source Licenses. Software modules that have been independently
+developed without any use of Covered Code and which contain no portion of the
+Covered Code, Modifications or other Derivative Works, but are used or combined
+in any way wtih the Covered Code or any Derivative Work to form a larger
+Derivative Work, are exempt from the conditions described in Section 4.1 but
+only to the extent that: the software module, including any software that is
+linked to, integrated with, or part of the same applications as, the software
+module by any method must be wholly subject to one of the Compatible Source
+Licenses. Notwithstanding the foregoing, all Covered Code must be subject to the
+terms of this License. Thus, the entire Derivative Work must be licensed under a
+combination of the RPSL (for Covered Code) and a Compatible Source License for
+any independently developed software modules within the Derivative Work. The
+foregoing requirement applies even if the Compatible Source License would
+ordinarily allow the software module to link with, or form larger works with,
+other software that is not subject to the Compatible Source License. For
+example, although the Mozilla Public License v1.1 allows Mozilla code to be
+combined with proprietary software that is not subject to the MPL, if
+MPL-licensed code is used with Covered Code the MPL-licensed code could not be
+combined or linked with any code not governed by the MPL. The general intent of
+this section 4.2 is to enable use of Covered Code with applications that are
+wholly subject to an acceptable open source license. You are responsible for
+determining whether your use of software with Covered Code is allowed under Your
+license to such software.
+
+4.3 Mere aggregation of another work not based on the Covered Code with the
+Covered Code (or with a work based on the Covered Code) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License. If You deliver the Covered Code for combination and/or integration with
+an application previously provided by You (for example, via automatic updating
+technology), such combination and/or integration constitutes a Derivative Work
+subject to the terms of this License.
+
+5. Exclusions From License Grant. Nothing in this License shall be deemed to
+grant any rights to trademarks, copyrights, patents, trade secrets or any other
+intellectual property of Licensor or any Contributor except as expressly stated
+herein. No right is granted to the trademarks of Licensor or any Contributor
+even if such marks are included in the Covered Code. Nothing in this License
+shall be interpreted to prohibit Licensor from licensing under different terms
+from this License any code that Licensor otherwise would have a right to
+license. Modifications, Derivative Works and/or any use or combination of
+Covered Code with other technology provided by Licensor or third parties may
+require additional patent licenses from Licensor which Licensor may grant in its
+sole discretion. No patent license is granted separate from the Original Code or
+combinations of the Original Code with other software or hardware.
+
+5.1. Trademarks. This License does not grant any rights to use the trademarks or
+trade names owned by Licensor ("Licensor Marks" defined in Exhibit C) or to any
+trademark or trade name belonging to any Contributor. No Licensor Marks may be
+used to endorse or promote products derived from the Original Code other than as
+permitted by the Licensor Trademark Policy defined in Exhibit C.
+
+6. Additional Terms. You may choose to offer, and to charge a fee for, warranty,
+support, indemnity or liability obligations and/or other rights consistent with
+the scope of the license granted herein ("Additional Terms") to one or more
+recipients of Covered Code. However, You may do so only on Your own behalf and
+as Your sole responsibility, and not on behalf of Licensor or any Contributor.
+You must obtain the recipient's agreement that any such Additional Terms are
+offered by You alone, and You hereby agree to indemnify, defend and hold
+Licensor and every Contributor harmless for any liability incurred by or claims
+asserted against Licensor or such Contributor by reason of any such Additional
+Terms.
+
+7. Versions of the License. Licensor may publish revised and/or new versions of
+this License from time to time. Each version will be given a distinguishing
+version number. Once Original Code has been published under a particular version
+of this License, You may continue to use it under the terms of that version. You
+may also choose to use such Original Code under the terms of any subsequent
+version of this License published by Licensor. No one other than Licensor has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in part
+pre-release, untested, or not fully tested works. The Covered Code may contain
+errors that could cause failures or loss of data, and may be incomplete or
+contain inaccuracies. You expressly acknowledge and agree that use of the
+Covered Code, or any portion thereof, is at Your sole and entire risk. THE
+COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
+ANY KIND AND LICENSOR AND LICENSOR'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS
+"LICENSOR" FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY
+DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF
+SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET
+ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. LICENSOR AND EACH
+CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE
+COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR
+REQUIREMENTS, THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
+ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO ORAL OR
+WRITTEN DOCUMENTATION, INFORMATION OR ADVICE GIVEN BY LICENSOR, A LICENSOR
+AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY. You
+acknowledge that the Covered Code is not intended for use in high risk
+activities, including, but not limited to, the design, construction, operation
+or maintenance of nuclear facilities, aircraft navigation, aircraft
+communication systems, or air traffic control machines in which case the failure
+of the Covered Code could lead to death, personal injury, or severe physical or
+environmental damage. Licensor disclaims any express or implied warranty of
+fitness for such uses.
+
+9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
+SHALL LICENSOR OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR
+YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER
+UNDER A THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE OR STRICT
+LIABILITY), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF LICENSOR OR SUCH
+CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND
+NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. SOME
+JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF INCIDENTAL OR
+CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event
+shall Licensor's total liability to You for all damages (other than as may be
+required by applicable law) under this License exceed the amount of ten dollars
+($10.00).
+
+10. Ownership. Subject to the licenses granted under this License, each
+Contributor retains all rights, title and interest in and to any Modifications
+made by such Contributor. Licensor retains all rights, title and interest in and
+to the Original Code and any Modifications made by or on behalf of Licensor
+("Licensor Modifications"), and such Licensor Modifications will not be
+automatically subject to this License. Licensor may, at its sole discretion,
+choose to license such Licensor Modifications under this License, or on
+different terms from those contained in this License or may choose not to
+license them at all.
+
+11. Termination. 
+
+11.1 Term and Termination. The term of this License is perpetual unless
+terminated as provided below. This License and the rights granted hereunder will
+terminate:
+
+(a) automatically without notice from Licensor if You fail to comply with any
+term(s) of this License and fail to cure such breach within 30 days of becoming
+aware of such breach;
+
+(b) immediately in the event of the circumstances described in Section 12.5(b);
+or
+
+(c) automatically without notice from Licensor if You, at any time during the
+term of this License, commence an action for patent infringement against
+Licensor (including by cross-claim or counter claim in a lawsuit);
+
+(d) upon written notice from Licensor if You, at any time during the term of
+this License, commence an action for patent infringement against any third party
+alleging that the Covered Code itself (excluding combinations with other
+software or hardware) infringes any patent (including by cross-claim or counter
+claim in a lawsuit).
+
+11.2 Effect of Termination. Upon termination, You agree to immediately stop any
+further use, reproduction, modification, sublicensing and distribution of the
+Covered Code and to destroy all copies of the Covered Code that are in your
+possession or control. All sublicenses to the Covered Code which have been
+properly granted prior to termination shall survive any termination of this
+License. Provisions which, by their nature, should remain in effect beyond the
+termination of this License shall survive, including but not limited to Sections
+3, 5, 8, 9, 10, 11, 12.2 and 13. No party will be liable to any other for
+compensation, indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this License will
+be without prejudice to any other right or remedy of any party.
+
+12. Miscellaneous.
+
+12.1 Government End Users. The Covered Code is a "commercial item" as defined in
+FAR 2.101. Government software and technical data rights in the Covered Code
+include only those rights customarily provided to the public as defined in this
+License. This customary commercial license in technical data and software is
+provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
+Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
+Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
+or Computer Software Documentation). Accordingly, all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+12.2 Relationship of Parties. This License will not be construed as creating an
+agency, partnership, joint venture or any other form of legal association
+between or among You, Licensor or any Contributor, and You will not represent to
+the contrary, whether expressly, by implication, appearance or otherwise.
+
+12.3 Independent Development. Nothing in this License will impair Licensor's
+right to acquire, license, develop, have others develop for it, market and/or
+distribute technology or products that perform the same or similar functions as,
+or otherwise compete with, Modifications, Derivative Works, technology or
+products that You may develop, produce, market or distribute.
+
+12.4 Waiver; Construction. Failure by Licensor or any Contributor to enforce any
+provision of this License will not be deemed a waiver of future enforcement of
+that or any other provision. Any law or regulation which provides that the
+language of a contract shall be construed against the drafter will not apply to
+this License.
+
+12.5 Severability. (a) If for any reason a court of competent jurisdiction finds
+any provision of this License, or portion thereof, to be unenforceable, that
+provision of the License will be enforced to the maximum extent permissible so
+as to effect the economic benefits and intent of the parties, and the remainder
+of this License will continue in full force and effect. (b) Notwithstanding the
+foregoing, if applicable law prohibits or restricts You from fully and/or
+specifically complying with Sections 2 and/or 3 or prevents the enforceability
+of either of those Sections, this License will immediately terminate and You
+must immediately discontinue any use of the Covered Code and destroy all copies
+of it that are in your possession or control.
+
+12.6 Dispute Resolution. Any litigation or other dispute resolution between You
+and Licensor relating to this License shall take place in the Seattle,
+Washington, and You and Licensor hereby consent to the personal jurisdiction of,
+and venue in, the state and federal courts within that District with respect to
+this License. The application of the United Nations Convention on Contracts for
+the International Sale of Goods is expressly excluded.
+
+12.7 Export/Import Laws. This software is subject to all export and import laws
+and restrictions and regulations of the country in which you receive the Covered
+Code and You are solely responsible for ensuring that You do not export,
+re-export or import the Covered Code or any direct product thereof in violation
+of any such restrictions, laws or regulations, or without all necessary
+authorizations.
+
+12.8 Entire Agreement; Governing Law. This License constitutes the entire
+agreement between the parties with respect to the subject matter hereof. This
+License shall be governed by the laws of the United States and the State of
+Washington.
+
+Where You are located in the province of Quebec, Canada, the following clause
+applies: The parties hereby confirm that they have requested that this License
+and all related documents be drafted in English. Les parties ont exig&eacute;
+que le pr&eacute;sent contrat et tous les documents connexes soient
+r&eacute;dig&eacute;s en anglais.
+
+								EXHIBIT A.  
+
+"Copyright &copy; 1995-2002
+RealNetworks, Inc. and/or its licensors. All Rights Reserved.
+
+The contents of this file, and the files included with this file, are subject to
+the current version of the RealNetworks Public Source License Version 1.0 (the
+"RPSL") available at https://www.helixcommunity.org/content/rpsl unless you have
+licensed the file under the RealNetworks Community Source License Version 1.0
+(the "RCSL") available at https://www.helixcommunity.org/content/rcsl, in which
+case the RCSL will apply. You may also obtain the license terms directly from
+RealNetworks. You may not use this file except in compliance with the RPSL or,
+if you have a valid RCSL with RealNetworks applicable to this file, the RCSL.
+Please see the applicable RPSL or RCSL for the rights, obligations and
+limitations governing use of the contents of the file.
+
+This file is part of the Helix DNA Technology. RealNetworks is the developer of
+the Original code and owns the copyrights in the portions it created.
+
+This file, and the files included with this file, is distributed and made
+available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
+IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING
+WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s): ____________________________________ 
+
+Technology Compatibility Kit Test
+Suite(s) Location (if licensed under the RCSL): ______________________________ 
+
+Object Code Notice: Helix DNA Client technology included. Copyright (c)
+RealNetworks, Inc., 1995-2002. All rights reserved.
+
+
+								EXHIBIT B 
+
+Compatible Source Licenses for the RealNetworks Public Source License. The
+following list applies to the most recent version of the license as of October
+25, 2002, unless otherwise indicated.
+
+* Academic Free License
+* Apache Software License
+* Apple Public Source License
+* Artistic license
+* Attribution Assurance Licenses
+* BSD license
+* Common Public License (1)
+* Eiffel Forum License
+* GNU General Public License (GPL) (1)
+* GNU Library or "Lesser" General Public License (LGPL) (1)
+* IBM Public License
+* Intel Open Source License
+* Jabber Open Source License
+* MIT license
+* MITRE Collaborative Virtual Workspace License (CVW License)
+* Motosoto License
+* Mozilla Public License 1.0 (MPL)
+* Mozilla Public License 1.1 (MPL)
+* Nokia Open Source License
+* Open Group Test Suite License
+* Python Software Foundation License
+* Ricoh Source Code Public License
+* Sun Industry Standards Source License (SISSL)
+* Sun Public License
+* University of Illinois/NCSA Open Source License
+* Vovida Software License v. 1.0
+* W3C License
+* X.Net License
+* Zope Public License
+* zlib/libpng license
+
+(1) Note: because this license contains certain reciprocal licensing terms that
+purport to extend to independently developed code, You may be prohibited under
+the terms of this otherwise compatible license from using code licensed under
+its terms with Covered Code because Covered Code may only be licensed under the
+RealNetworks Public Source License. Any attempt to apply non RPSL license terms,
+including without limitation the GPL, to Covered Code is expressly forbidden.
+You are responsible for ensuring that Your use of Compatible Source Licensed
+code does not violate either the RPSL or the Compatible Source License.
+
+The latest version of this list can be found at:
+https://www.helixcommunity.org/content/complicense
+
+								EXHIBIT C 
+
+RealNetworks' Trademark policy.  
+
+RealNetworks defines the following trademarks collectively as "Licensor
+Trademarks": "RealNetworks", "RealPlayer", "RealJukebox", "RealSystem",
+"RealAudio", "RealVideo", "RealOne Player", "RealMedia", "Helix" or any other
+trademarks or trade names belonging to RealNetworks.
+
+RealNetworks "Licensor Trademark Policy" forbids any use of Licensor Trademarks
+except as permitted by and in strict compliance at all times with RealNetworks'
+third party trademark usage guidelines which are posted at
+http://www.realnetworks.com/info/helixlogo.html.
+

BIN
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/mp3dec.mcp


BIN
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armads/testwrap.mcp


+ 30 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/LICENSE.txt

@@ -0,0 +1,30 @@
+ Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.  
+        
+ The contents of this directory, and (except where otherwise
+ indicated) the directories included within this directory, are
+ subject to the current version of the RealNetworks Public Source
+ License (the "RPSL") available at RPSL.txt in this directory, unless
+ you have licensed the directory under the current version of the
+ RealNetworks Community Source License (the "RCSL") available at
+ RCSL.txt in this directory, in which case the RCSL will apply. You
+ may also obtain the license terms directly from RealNetworks.  You
+ may not use the files in this directory except in compliance with the
+ RPSL or, if you have a valid RCSL with RealNetworks applicable to
+ this directory, the RCSL.  Please see the applicable RPSL or RCSL for
+ the rights, obligations and limitations governing use of the contents
+ of the directory.
+ 
+ This directory is part of the Helix DNA Technology. RealNetworks is
+ the developer of the Original Code and owns the copyrights in the
+ portions it created.
+   
+ This directory, and the directories included with this directory, are
+ distributed and made available on an 'AS IS' basis, WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY
+ DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ QUIET ENJOYMENT OR NON-INFRINGEMENT.
+  
+ Technology Compatibility Kit Test Suite(s) Location:  
+    http://www.helixcommunity.org/content/tck  
+

+ 948 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/RCSL.txt

@@ -0,0 +1,948 @@
+The RCSL is made up of a base agreement and a few Attachments.
+
+For Research and Development use, you agree to the terms of the
+RCSL R&D License (base RCSL and Attachments A, B, and C) 
+
+For Commercial Use (either distribution or internal commercial
+deployment) of the Helix DNA with or without support for RealNetworks'
+RealAudio and RealVideo Add-on Technology, you agree to the
+terms of the same RCSL R&D license
+and execute one or more additional Commercial Use License attachments
+<see http://www.helixcommunity.org/content/rcsl-attachments>.
+
+------------------------------------------------------------------------
+
+
+    REALNETWORKS COMMUNITY SOURCE LICENSE
+
+Version 1.2 (Rev. Date: January 22, 2003).
+
+
+  RECITALS
+
+Original Contributor has developed Specifications, Source Code
+implementations and Executables of certain Technology; and
+
+Original Contributor desires to license the Technology to a large
+community to facilitate research, innovation and product development
+while maintaining compatibility of such products with the Technology as
+delivered by Original Contributor; and
+
+Original Contributor desires to license certain Trademarks for the
+purpose of branding products that are compatible with the relevant
+Technology delivered by Original Contributor; and
+
+You desire to license the Technology and possibly certain Trademarks
+from Original Contributor on the terms and conditions specified in this
+License.
+
+In consideration for the mutual covenants contained herein, You and
+Original Contributor agree as follows:
+
+
+  AGREEMENT
+
+*1. Introduction.*
+
+The RealNetworks Community Source License ("RCSL") and effective
+attachments ("License") may include five distinct licenses:
+
+i) Research Use license -- License plus Attachments A, B and C only.
+
+ii) Commercial Use and Trademark License, which may be for Internal
+Deployment Use or external distribution, or both -- License plus
+Attachments A, B, C, and D.
+
+iii) Technology Compatibility Kit (TCK) license -- Attachment C.
+
+iv) Add-On Technology License (Executable) Commercial Use License
+-Attachment F.
+
+v) Add-On Technology Source Code Porting and Optimization
+License-Attachment G.
+
+The Research Use license is effective when You click and accept this
+License. The TCK is effective when You click and accept this License,
+unless otherwise specified in the TCK attachments. The Commercial Use
+and Trademark, Add-On Technology License, and the Add-On Technology
+Source Code Porting and Optimization licenses must each be signed by You
+and Original Contributor to become effective. Once effective, these
+licenses and the associated requirements and responsibilities are
+cumulative. Capitalized terms used in this License are defined in the
+Glossary.
+
+*2. License Grants.*
+
+2.1 Original Contributor Grant.
+
+Subject to Your compliance with Sections 3, 8.10 and Attachment A of
+this License, Original Contributor grants to You a worldwide,
+royalty-free, non-exclusive license, to the extent of Original
+Contributor's Intellectual Property Rights covering the Original Code,
+Upgraded Code and Specifications, to do the following:
+
+(a) Research Use License:
+
+(i) use, reproduce and modify the Original Code, Upgraded Code and
+Specifications to create Modifications and Reformatted Specifications
+for Research Use by You;
+
+(ii) publish and display Original Code, Upgraded Code and Specifications
+with, or as part of Modifications, as permitted under Section 3.1(b) below;
+
+(iii) reproduce and distribute copies of Original Code and Upgraded Code
+to Licensees and students for Research Use by You;
+
+(iv) compile, reproduce and distribute Original Code and Upgraded Code
+in Executable form, and Reformatted Specifications to anyone for
+Research Use by You.
+
+(b) Other than the licenses expressly granted in this License, Original
+Contributor retains all right, title, and interest in Original Code and
+Upgraded Code and Specifications.
+
+2.2 Your Grants.
+
+(a) To Other Licensees. You hereby grant to each Licensee a license to
+Your Error Corrections and Shared Modifications, of the same scope and
+extent as Original Contributor's licenses under Section 2.1 a) above
+relative to Research Use and Attachment D relative to Commercial Use.
+
+(b) To Original Contributor. You hereby grant to Original Contributor a
+worldwide, royalty-free, non-exclusive, perpetual and irrevocable
+license, to the extent of Your Intellectual Property Rights covering
+Your Error Corrections, Shared Modifications and Reformatted
+Specifications, to use, reproduce, modify, display and distribute Your
+Error Corrections, Shared Modifications and Reformatted Specifications,
+in any form, including the right to sublicense such rights through
+multiple tiers of distribution.
+
+(c) Other than the licenses expressly granted in Sections 2.2(a) and (b)
+above, and the restrictions set forth in Section 3.1(d)(iv) below, You
+retain all right, title, and interest in Your Error Corrections, Shared
+Modifications and Reformatted Specifications.
+
+2.3 Contributor Modifications.
+
+You may use, reproduce, modify, display and distribute Contributor Error
+Corrections, Shared Modifications and Reformatted Specifications,
+obtained by You under this License, to the same scope and extent as with
+Original Code, Upgraded Code and Specifications.
+
+2.4 Subcontracting.
+
+You may deliver the Source Code of Covered Code to other Licensees
+having at least a Research Use license, for the sole purpose of
+furnishing development services to You in connection with Your rights
+granted in this License. All such Licensees must execute appropriate
+documents with respect to such work consistent with the terms of this
+License, and acknowledging their work-made-for-hire status or assigning
+exclusive right to the work product and associated Intellectual Property
+Rights to You.
+
+*3. Requirements and Responsibilities*.
+
+3.1 Research Use License.
+
+As a condition of exercising the rights granted under Section 2.1(a)
+above, You agree to comply with the following:
+
+(a) Your Contribution to the Community. All Error Corrections and Shared
+Modifications which You create or contribute to are automatically
+subject to the licenses granted under Section 2.2 above. You are
+encouraged to license all of Your other Modifications under Section 2.2
+as Shared Modifications, but are not required to do so. You agree to
+notify Original Contributor of any errors in the Specification.
+
+(b) Source Code Availability. You agree to provide all Your Error
+Corrections to Original Contributor as soon as reasonably practicable
+and, in any event, prior to Internal Deployment Use or Commercial Use,
+if applicable. Original Contributor may, at its discretion, post Source
+Code for Your Error Corrections and Shared Modifications on the
+Community Webserver. You may also post Error Corrections and Shared
+Modifications on a web-server of Your choice; provided, that You must
+take reasonable precautions to ensure that only Licensees have access to
+such Error Corrections and Shared Modifications. Such precautions shall
+include, without limitation, a password protection scheme limited to
+Licensees and a click-on, download certification of Licensee status
+required of those attempting to download from the server. An example of
+an acceptable certification is attached as Attachment A-2.
+
+(c) Notices. All Error Corrections and Shared Modifications You create
+or contribute to must include a file documenting the additions and
+changes You made and the date of such additions and changes. You must
+also include the notice set forth in Attachment A-1 in the file header.
+If it is not possible to put the notice in a particular Source Code file
+due to its structure, then You must include the notice in a location
+(such as a relevant directory file), where a recipient would be most
+likely to look for such a notice.
+
+(d) Redistribution.
+
+(i) Source. Covered Code may be distributed in Source Code form only to
+another Licensee (except for students as provided below). You may not
+offer or impose any terms on any Covered Code that alter the rights,
+requirements, or responsibilities of such Licensee. You may distribute
+Covered Code to students for use in connection with their course work
+and research projects undertaken at accredited educational institutions.
+Such students need not be Licensees, but must be given a copy of the
+notice set forth in Attachment A-3 and such notice must also be included
+in a file header or prominent location in the Source Code made available
+to such students.
+
+(ii) Executable. You may distribute Executable version(s) of Covered
+Code to Licensees and other third parties only for the purpose of
+evaluation and comment in connection with Research Use by You and under
+a license of Your choice, but which limits use of such Executable
+version(s) of Covered Code only to that purpose.
+
+(iii) Modified Class, Interface and Package Naming. In connection with
+Research Use by You only, You may use Original Contributor's class,
+Interface and package names only to accurately reference or invoke the
+Source Code files You modify. Original Contributor grants to You a
+limited license to the extent necessary for such purposes.
+
+(iv) You expressly agree that any distribution, in whole or in part, of
+Modifications developed by You shall only be done pursuant to the terms
+and conditions of this License.
+
+(e) Extensions.
+
+(i) Covered Code. You may not include any Source Code of Community Code
+in any Extensions. You may include the compiled Header Files of
+Community Code in an Extension provided that Your use of the Covered
+Code, including Heading Files, complies with the Commercial Use License,
+the TCK and all other terms of this License.
+
+(ii) Publication. No later than the date on which You first distribute
+such Extension for Commercial Use, You must publish to the industry, on
+a non-confidential basis and free of all copyright restrictions with
+respect to reproduction and use, an accurate and current specification
+for any Extension. In addition, You must make available an appropriate
+test suite, pursuant to the same rights as the specification,
+sufficiently detailed to allow any third party reasonably skilled in the
+technology to produce implementations of the Extension compatible with
+the specification. Such test suites must be made available as soon as
+reasonably practicable but, in no event, later than ninety (90) days
+after Your first Commercial Use of the Extension. You must use
+reasonable efforts to promptly clarify and correct the specification and
+the test suite upon written request by Original Contributor.
+
+(iii) Open. You agree to refrain from enforcing any Intellectual
+Property Rights You may have covering any interface(s) of Your
+Extension, which would prevent the implementation of such interface(s)
+by Original Contributor or any Licensee. This obligation does not
+prevent You from enforcing any Intellectual Property Right You have that
+would otherwise be infringed by an implementation of Your Extension.
+
+(iv) Interface Modifications and Naming. You may not modify or add to
+the GUID space * * "xxxxxxxx-0901-11d1-8B06-00A024406D59" or any other
+GUID space designated by Original Contributor. You may not modify any
+Interface prefix provided with the Covered Code or any other prefix
+designated by Original Contributor.* *
+
+* *
+
+(f) You agree that any Specifications provided to You by Original
+Contributor are confidential and proprietary information of Original
+Contributor. You must maintain the confidentiality of the Specifications
+and may not disclose them to any third party without Original
+Contributor's prior written consent. You may only use the Specifications
+under the terms of this License and only for the purpose of implementing
+the terms of this License with respect to Covered Code. You agree not
+use, copy or distribute any such Specifications except as provided in
+writing by Original Contributor.
+
+3.2 Commercial Use License.
+
+You may not make Commercial Use of any Covered Code unless You and
+Original Contributor have executed a copy of the Commercial Use and
+Trademark License attached as Attachment D.
+
+*4. Versions of the License.*
+
+4.1 License Versions.
+
+Original Contributor may publish revised versions of the License from
+time to time. Each version will be given a distinguishing version number.
+
+4.2 Effect.
+
+Once a particular version of Covered Code has been provided under a
+version of the License, You may always continue to use such Covered Code
+under the terms of that version of the License. You may also choose to
+use such Covered Code under the terms of any subsequent version of the
+License. No one other than Original Contributor has the right to
+promulgate License versions.
+
+4.3 Multiple-Licensed Code.
+
+Original Contributor may designate portions of the Covered Code as
+"Multiple-Licensed." "Multiple-Licensed" means that the Original
+Contributor permits You to utilize those designated portions of the
+Covered Code under Your choice of this License or the alternative
+license(s), if any, specified by the Original Contributor in an
+Attachment to this License.
+
+*5. Disclaimer of Warranty.*
+
+5.1 COVERED CODE PROVIDED AS IS.
+
+COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," WITHOUT WARRANTY OF
+ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
+WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT
+FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE
+RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED CODE UNDER
+THIS LICENSE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
+OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER
+EXCEPT SUBJECT TO THIS DISCLAIMER.
+
+5.2 Not Designed for High Risk Activities.
+
+You acknowledge that Original Code, Upgraded Code and Specifications are
+not designed or intended for use in high risk activities including, but
+not limited to: (i) on-line control of aircraft, air traffic, aircraft
+navigation or aircraft communications; or (ii) in the design,
+construction, operation or maintenance of any nuclear facility. Original
+Contributor disclaims any express or implied warranty of fitness for
+such uses.
+
+*6. Termination.*
+
+6.1 By You.
+
+You may terminate this Research Use license at anytime by providing
+written notice to Original Contributor.
+
+6.2 By Original Contributor.
+
+This License and the rights granted hereunder will terminate:
+
+(i) automatically if You fail to comply with the terms of this License
+and fail to cure such breach within 30 days of receipt of written notice
+of the breach;
+
+(ii) immediately in the event of circumstances specified in Sections 7.1
+and 8.4; or
+
+(iii) at Original Contributor's discretion upon any action initiated by
+You (including by cross-claim or counter claim) alleging that use or
+distribution by Original Contributor or any Licensee, of Original Code,
+Upgraded Code, Error Corrections, Shared Modifications or Specifications
+infringe a patent owned or controlled by You.
+
+6.3 Effective of Termination.
+
+Upon termination, You agree to discontinue use of and destroy all copies
+of Covered Code in Your possession. All sublicenses to the Covered Code
+which You have properly granted shall survive any termination of this
+License. Provisions that, by their nature, should remain in effect
+beyond the termination of this License shall survive including, without
+limitation, Sections 2.2, 3, 5, 7 and 8.
+
+6.4 No Compensation.
+
+Each party waives and releases the other from any claim to compensation
+or indemnity for permitted or lawful termination of the business
+relationship established by this License.
+
+*7. Liability.*
+
+7.1 Infringement. Should any of the Original Code, Upgraded Code, TCK or
+Specifications ("Materials") become the subject of a claim of
+infringement, Original Contributor may, at its sole option, (i) attempt
+to procure the rights necessary for You to continue using the Materials,
+(ii) modify the Materials so that they are no longer infringing, or
+(iii) terminate Your right to use the Materials, immediately upon
+written notice, and refund to You the amount, if any, having then
+actually been paid by You to Original Contributor for the Original Code,
+Upgraded Code and TCK, depreciated on a straight line, five year basis.
+
+7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY APPLICABLE
+LAW, ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR CLAIMS RELATING TO THIS
+LICENSE, WHETHER FOR BREACH OR IN TORT, SHALL BE LIMITED TO ONE HUNDRED
+PERCENT (100%) OF THE AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO
+ORIGINAL CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE PARTICULAR
+ITEMS GIVING RISE TO SUCH CLAIM, IF ANY, DURING THE TWELVE MONTHS
+PRECEDING THE CLAIMED BREACH. IN NO EVENT WILL YOU (RELATIVE TO YOUR
+SHARED MODIFICATIONS OR ERROR CORRECTIONS) OR ORIGINAL CONTRIBUTOR BE
+LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR RISING OUT OF THIS LICENSE (INCLUDING,
+WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER ECONOMIC
+ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF LIABILITY, WHETHER IN
+AN ACTION FOR CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE)
+OR OTHERWISE, WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE
+FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY.
+
+*8. Miscellaneous.*
+
+8.1 Trademark.
+
+You shall not use any Trademark unless You and Original Contributor
+execute a copy of the Commercial Use and Trademark License Agreement
+attached hereto as Attachment D. Except as expressly provided in the
+License, You are granted no right, title or license to, or interest in,
+any Trademarks. Whether or not You and Original Contributor enter into
+the Trademark License, You agree not to (i) challenge Original
+Contributor's ownership or use of Trademarks; (ii) attempt to register
+any Trademarks, or any mark or logo substantially similar thereto; or
+(iii) incorporate any Trademarks into Your own trademarks, product
+names, service marks, company names, or domain names.
+
+8.2 Integration.
+
+This License represents the complete agreement concerning the subject
+matter hereof.
+
+8.3 Assignment.
+
+Original Contributor may assign this License, and its rights and
+obligations hereunder, in its sole discretion. You may assign the
+Research Use portions of this License and the TCK license to a third
+party upon prior written notice to Original Contributor (which may be
+provided electronically via the Community Web-Server). You may not
+assign the Commercial Use and Trademark license, the Add-On Technology
+License, or the Add-On Technology Source Code Porting License, including
+by way of merger (regardless of whether You are the surviving entity) or
+acquisition, without Original Contributor's prior written consent.
+
+8.4 Severability.
+
+If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. Notwithstanding the foregoing, if You are prohibited by law
+from fully and specifically complying with Sections 2.2 or 3, this
+License will immediately terminate and You must immediately discontinue
+any use of Covered Code.
+
+8.5 Governing Law.
+
+This License shall be governed by the laws of the United States and the
+State of Washington, as applied to contracts entered into and to be
+performed in Washington between Washington residents. The application of
+the United Nations Convention on Contracts for the International Sale of
+Goods is expressly excluded. You agree that the state and federal courts
+located in Seattle, Washington have exclusive jurisdiction over any
+claim relating to the License, including contract and tort claims.
+
+8.6 Dispute Resolution.
+
+a) Arbitration. Any dispute arising out of or relating to this License
+shall be finally settled by arbitration as set out herein, except that
+either party may bring any action, in a court of competent jurisdiction
+(which jurisdiction shall be exclusive), with respect to any dispute
+relating to such party's Intellectual Property Rights or with respect to
+Your compliance with the TCK license. Arbitration shall be administered:
+(i) by the American Arbitration Association (AAA), (ii) in accordance
+with the rules of the United Nations Commission on International Trade
+Law (UNCITRAL) (the "Rules") in effect at the time of arbitration as
+modified herein; and (iii) the arbitrator will apply the substantive
+laws of Washington and the United States. Judgment upon the award
+rendered by the arbitrator may be entered in any court having
+jurisdiction to enforce such award.
+
+b) Arbitration language, venue and damages. All arbitration proceedings
+shall be conducted in English by a single arbitrator selected in
+accordance with the Rules, who must be fluent in English and be either a
+retired judge or practicing attorney having at least ten (10) years
+litigation experience and be reasonably familiar with the technology
+matters relative to the dispute. Unless otherwise agreed, arbitration
+venue shall be in Seattle, Washington. The arbitrator may award monetary
+damages only and nothing shall preclude either party from seeking
+provisional or emergency relief from a court of competent jurisdiction.
+The arbitrator shall have no authority to award damages in excess of
+those permitted in this License and any such award in excess is void.
+All awards will be payable in U.S. dollars and may include, for the
+prevailing party (i) pre-judgment award interest, (ii) reasonable
+attorneys' fees incurred in connection with the arbitration, and (iii)
+reasonable costs and expenses incurred in enforcing the award. The
+arbitrator will order each party to produce identified documents and
+respond to no more than twenty-five single question interrogatories.
+
+8.7 Construction.
+
+Any law or regulation, which provides that the language of a contract
+shall be construed against the drafter, shall not apply to this License.
+
+8.8 U.S. Government End Users.
+
+The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software"
+and "commercial computer software documentation," as such terms are used
+in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
+48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
+End Users acquire Covered Code with only those rights set forth herein.
+You agree to pass this notice to our licensees.
+
+8.9 Marketing Activities.
+
+Licensee hereby grants Original Contributor a non-exclusive,
+non-transferable, limited license to use the Licensee's company name and
+logo ("Licensee Marks") in any presentations, press releases, or
+marketing materials solely for the purpose of identifying Licensee as a
+member of the Helix Community. Licensee shall provide samples of
+Licensee Marks to Original Contributor upon request by Original
+Contributor. Original Contributor acknowledges that the Licensee Marks
+are the trademarks of Licensee. Original Contributor shall not use the
+Licensee Marks in a way that may imply that Original Contributor is an
+agency or branch of Licensee. Original Contributor understands and
+agrees that the use of any Licensee Marks in connection with this
+Agreement shall not create any right, title or interest, in, or to the
+Licensee Marks or any Licensee trademarks and that all such use and
+goodwill associated with any such trademarks will inure to the benefit
+of Licensee. Further the Original Contributor will stop usage of the
+Licensee Marks upon Licensee's request.
+
+8.10 Press Announcements.
+
+You may make press announcements or other public statements regarding
+this License without the prior written consent of the Original
+Contributor, if Your statement is limited to announcing the licensing of
+the Covered Code or the availability of Your Product and its
+compatibility with the Covered Code. All other public announcements
+regarding this license require the prior written consent of the Original
+Contributor. Consent requests are welcome at press@helixcommunity.org.
+
+8.11 International Use.
+
+a) Export/Import laws. Covered Code is subject to U.S. export control
+laws and may be subject to export or import regulations in other
+countries. Each party agrees to comply strictly with all such laws and
+regulations and acknowledges their responsibility to obtain such
+licenses to export, re-export, or import as may be required. You agree
+to pass these obligations to Your licensees.
+
+b) Intellectual Property Protection. Due to limited intellectual
+property protection and enforcement in certain countries, You agree not
+to redistribute the Original Code, Upgraded Code, TCK and Specifications
+to any country on the list of restricted countries on the Community Web
+Server.
+
+8.12 Language.
+
+This License is in the English language only, which language shall be
+controlling in all respects, and all versions of this License in any
+other language shall be for accommodation only and shall not be binding
+on the parties to this License. All communications and notices made or
+given pursuant to this License, and all documentation and support to be
+provided, unless otherwise noted, shall be in the English language.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH REALNETWORKS, INC. IF YOU ARE AGREEING
+TO THIS LICENSE ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE
+AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER YOU ARE ACTING
+ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, YOU MUST BE OF MAJORITY
+AGE AND BE OTHERWISE COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT
+MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND
+CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO EXIT.
+
+
+    GLOSSARY
+
+1. *"Added Value"* means code which:
+
+(i) has a principal purpose which is substantially different from that
+of the stand-alone Technology;
+
+(ii) represents a significant functional and value enhancement to the
+Technology;
+
+(iii) operates in conjunction with the Technology; and
+
+(iv) is not marketed as a technology which replaces or substitutes for
+the Technology
+
+2. "*Applicable Patent Rights*" mean: (a) in the case where Original
+Contributor is the grantor of rights, claims of patents that (i) are now
+or hereafter acquired, owned by or assigned to Original Contributor and
+(ii) are necessarily infringed by using or making the Original Code or
+Upgraded Code, including Modifications provided by Original Contributor,
+alone and not in combination with other software or hardware; and (b) in
+the case where Licensee is the grantor of rights, claims of patents that
+(i) are now or hereafter acquired, owned by or assigned to Licensee and
+(ii) are infringed (directly or indirectly) by using or making
+Licensee's Modifications or Error Corrections, taken alone or in
+combination with Covered Code.
+
+3. "*Application Programming Interfaces (APIs)"* means the interfaces,
+associated header files, service provider interfaces, and protocols that
+enable a device, application, Operating System, or other program to
+obtain services from or make requests of (or provide services in
+response to requests from) other programs, and to use, benefit from, or
+rely on the resources, facilities, and capabilities of the relevant
+programs using the APIs. APIs includes the technical documentation
+describing the APIs, the Source Code constituting the API, and any
+Header Files used with the APIs.
+
+4. "*Commercial Use*" means any use (internal or external), copying,
+sublicensing or distribution (internal or external), directly or
+indirectly of Covered Code by You other than Your Research Use of
+Covered Code within Your business or organization or in conjunction with
+other Licensees with equivalent Research Use rights. Commercial Use
+includes any use of the Covered Code for direct or indirect commercial
+or strategic gain, advantage or other business purpose. Any Commercial
+Use requires execution of Attachment D by You and Original Contributor.
+
+5. "*Community Code*" means the Original Code, Upgraded Code, Error
+Corrections, Shared Modifications, or any combination thereof.
+
+6. "*Community Webserver(s)"* means the webservers designated by
+Original Contributor for access to the Original Code, Upgraded Code, TCK
+and Specifications and for posting Error Corrections and Shared
+Modifications.
+
+7. "*Compliant Covered Code*" means Covered Code that complies with the
+requirements of the TCK.
+
+8. "*Contributor*" means each Licensee that creates or contributes to
+the creation of any Error Correction or Shared Modification.
+
+9. "*Covered Code*" means the Original Code, Upgraded Code,
+Modifications, or any combination thereof.
+
+10. "*Error Correction*" means any change made to Community Code which
+conforms to the Specification and corrects the adverse effect of a
+failure of Community Code to perform any function set forth in or
+required by the Specifications.
+
+11. "*Executable*" means Covered Code that has been converted from
+Source Code to the preferred form for execution by a computer or digital
+processor (e.g. binary form).
+
+12. "*Extension(s)"* means any additional Interfaces developed by or for
+You which: (i) are designed for use with the Technology; (ii) constitute
+an API for a library of computing functions or services; and (iii) are
+disclosed or otherwise made available to third party software developers
+for the purpose of developing software which invokes such additional
+Interfaces. The foregoing shall not apply to software developed by Your
+subcontractors to be exclusively used by You.
+
+13. "*Header File(s)"* means that portion of the Source Code that
+provides the names and types of member functions, data members, class
+definitions, and interface definitions necessary to implement the APIs
+for the Covered Code. Header Files include, files specifically
+designated by Original Contributor as Header Files. Header Files do not
+include the code necessary to implement the functionality underlying the
+Interface.
+
+14. *"Helix DNA Server Technology"* means the program(s) that implement
+the Helix Universal Server streaming engine for the Technology as
+defined in the Specification.
+
+15. *"Helix DNA Client Technology"* means the Covered Code that
+implements the RealOne Player engine as defined in the Specification.
+
+16. *"Helix DNA Producer Technology"* means the Covered Code that
+implements the Helix Producer engine as defined in the Specification.
+
+17. *"Helix DNA Technology"* means the Helix DNA Server Technology, the
+Helix DNA Client Technology, the Helix DNA Producer Technology and other
+Helix technologies designated by Original Contributor.
+
+18. "*Intellectual Property Rights*" means worldwide statutory and
+common law rights associated solely with (i) Applicable Patent Rights;
+(ii) works of authorship including copyrights, copyright applications,
+copyright registrations and "moral rights"; (iii) the protection of
+trade and industrial secrets and confidential information; and (iv)
+divisions, continuations, renewals, and re-issuances of the foregoing
+now existing or acquired in the future.
+
+19. *"Interface*" means interfaces, functions, properties, class
+definitions, APIs, Header Files, GUIDs, V-Tables, and/or protocols
+allowing one piece of software, firmware or hardware to communicate or
+interoperate with another piece of software, firmware or hardware.
+
+20. "*Internal Deployment Use*" means use of Compliant Covered Code
+(excluding Research Use) within Your business or organization only by
+Your employees and/or agents on behalf of Your business or organization,
+but not to provide services, including content distribution, to third
+parties, subject to execution of Attachment D by You and Original
+Contributor, if required.
+
+21. "*Licensee*" means any party that has entered into and has in effect
+a version of this License with Original Contributor.
+
+22. "*MIME type*" means a description of what type of media or other
+content is in a file, including by way of example but not limited to
+'audio/x-pn-realaudio-plugin.'
+
+23. "*Modification(s)"* means (i) any addition to, deletion from and/or
+change to the substance and/or structure of the Covered Code, including
+Interfaces; (ii) the combination of any Covered Code and any previous
+Modifications; (iii) any new file or other representation of computer
+program statements that contains any portion of Covered Code; and/or
+(iv) any new Source Code implementing any portion of the Specifications.
+
+24. "*MP3 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Picture Experts Group known as MPEG-1 Audio Layer-3 or MP3,
+including but not limited to all past and future versions, profiles,
+extensions, parts and amendments relating to the MP3 specification.
+
+25. "*MPEG-4 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Pictures Experts Group known as MPEG-4, including but not
+limited to all past and future versions, profiles, extensions, parts and
+amendments relating to the MPEG-4 specification.
+
+26. "*Original Code*" means the initial Source Code for the Technology
+as described on the Community Web Server.
+
+27. "*Original Contributor*" means RealNetworks, Inc., its affiliates
+and its successors and assigns.
+
+28. "*Original Contributor MIME Type*" means the MIME registry, browser
+preferences, or local file/protocol associations invoking any Helix DNA
+Client-based application, including the RealOne Player, for playback of
+RealAudio, RealVideo, other RealMedia MIME types or datatypes (e.g.,
+.ram, .rnx, .rpm, .ra, .rm, .rp, .rt, .rf, .prx, .mpe, .rmp, .rmj, .rav,
+.rjs, .rmx, .rjt, .rms), and any other Original Contributor-specific or
+proprietary MIME types that Original Contributor may introduce in the
+future.
+
+29. "*Personal Use*" means use of Covered Code by an individual solely
+for his or her personal, private and non-commercial purposes. An
+individual's use of Covered Code in his or her capacity as an officer,
+employee, member, independent contractor or agent of a corporation,
+business or organization (commercial or non-commercial) does not qualify
+as Personal Use.
+
+30. "*RealMedia File Format*" means the file format designed and
+developed by RealNetworks for storing multimedia data and used to store
+RealAudio and RealVideo encoded streams. Valid RealMedia File Format
+extensions include: .rm, .rmj, .rmc, .rmvb, .rms.
+
+31. "*RCSL Webpage*" means the RealNetworks Community Source License
+webpage located at https://www.helixcommunity.org/content/rcsl or such
+other URL that Original Contributor may designate from time to time.
+
+32. "*Reformatted Specifications*" means any revision to the
+Specifications which translates or reformats the Specifications (as for
+example in connection with Your documentation) but which does not alter,
+subset or superset * *the functional or operational aspects of the
+Specifications.
+
+33. "*Research Use*" means use and distribution of Covered Code only for
+Your Personal Use, research or development use and expressly excludes
+Internal Deployment Use and Commercial Use. Research Use also includes
+use of Covered Code to teach individuals how to use Covered Code.
+
+34. "*Shared Modifications*" means Modifications that You distribute or
+use for a Commercial Use, in addition to any Modifications provided by
+You, at Your option, pursuant to Section 2.2, or received by You from a
+Contributor pursuant to Section 2.3.
+
+35. "*Source Code*" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control
+compilation and installation of an Executable, or source code
+differential comparisons against either the Original Code or another
+well known, available Covered Code of the Contributor's choice. The
+Source Code can be in a compressed or archival form, provided the
+appropriate decompression or de-archiving software is widely available
+for no charge.
+
+36. "*Specifications*" means the specifications for the Technology and
+other documentation, as designated on the Community Web Server, as may
+be revised by Original Contributor from time to time.
+
+37. "*Trademarks*" means Original Contributor's trademarks and logos,
+including, but not limited to, RealNetworks, RealAudio, RealVideo,
+RealOne, RealSystem, SureStream, Helix, Helix DNA and other trademarks
+whether now used or adopted in the future.
+
+38. "*Technology*" means the technology described in Attachment B, and
+Upgrades.
+
+39. "*Technology Compatibility Kit"* or *"TCK*" means the test programs,
+procedures, acceptance criteria and/or other requirements, designated by
+Original Contributor for use in verifying compliance of Covered Code
+with the Specifications, in conjunction with the Original Code and
+Upgraded Code. Original Contributor may, in its sole discretion and from
+time to time, revise a TCK to correct errors and/or omissions and in
+connection with Upgrades.
+
+40. "*Upgrade(s)"* means new versions of Technology designated
+exclusively by Original Contributor as an "Upgrade" and released by
+Original Contributor from time to time under the terms of the License.
+
+41. "*Upgraded Code*" means the Source Code and/or Executables for
+Upgrades, possibly including Modifications made by Contributors.
+
+42. *"User's Guide"* means the users guide for the TCK which Original
+Contributor makes available to You to provide direction in how to run
+the TCK and properly interpret the results, as may be revised by
+Original Contributor from time to time.
+
+43. "*You(r)*" means an individual, or a legal entity acting by and
+through an individual or individuals, exercising rights either under
+this License or under a future version of this License issued pursuant
+to Section 4.1. For legal entities, "You(r)" includes any entity that by
+majority voting interest controls, is controlled by, or is under common
+control with You.
+
+44. "*Your Products*" means any (i) hardware products You distribute
+integrating the Covered Code; (ii) any software products You distribute
+with the Covered Code that utilize the APIs of the Covered Code; or
+(iii) any services You provide using the Covered Code.
+
+
+  ATTACHMENT A
+
+REQUIRED NOTICES
+
+
+    ATTACHMENT A-1
+
+REQUIRED IN ALL CASES
+
+Notice to be included in header file of all Error Corrections and Shared
+Modifications:
+
+Portions Copyright 1994-2003 © RealNetworks, Inc. All rights reserved.
+
+The contents of this file, and the files included with this file, are
+subject to the current version of RealNetworks Community Source License
+Version 1.1 (the "License"). You may not use this file except in
+compliance with the License executed by both You and RealNetworks. You
+may obtain a copy of the License at *
+https://www.helixcommunity.org/content/rcsl.* You may also obtain a copy
+of the License by contacting RealNetworks directly. Please see the
+License for the rights, obligations and limitations governing use of the
+contents of the file.
+
+This file is part of the Helix DNA technology. RealNetworks, Inc., is
+the developer of the Original code and owns the copyrights in the
+portions it created.
+
+This file, and the files included with this file, are distributed on an
+'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
+LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s):
+
+_______________________________________________
+
+Technology Compatibility Kit Test Suite(s) Location:
+
+________________________________
+
+
+    ATTACHMENT A-2
+
+SAMPLE LICENSEE CERTIFICATION
+
+"By clicking the `Agree' button below, You certify that You are a
+Licensee in good standing under the RealNetworks Community Source
+License, ("License") and that Your access, use and distribution of code
+and information You may obtain at this site is subject to the License.
+If You are not a Licensee under the RealNetworks Community Source
+License You agree not to download, copy or use the Helix DNA technology.
+
+
+    ATTACHMENT A-3
+
+REQUIRED STUDENT NOTIFICATION
+
+"This software and related documentation has been obtained by Your
+educational institution subject to the RealNetworks Community Source
+License. You have been provided access to the software and related
+documentation for use only in connection with your course work and
+research activities as a matriculated student of Your educational
+institution. Any other use is expressly prohibited.
+
+THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIAL OF
+REALNETWORKS, INC, WHICH ARE PROTECTED BY VARIOUS INTELLECTUAL PROPERTY
+RIGHTS.
+
+You may not use this file except in compliance with the License. You may
+obtain a copy of the License on the web at
+https://www.helixcommunity.org/content/rcsl.
+
+*
+*
+
+
+  ATTACHMENT B
+
+Description of Technology
+
+Helix DNA, which consists of Helix DNA Client, Helix DNA Server and
+Helix DNA Producer.
+
+Description of "Technology"
+
+Helix DNA Technology v1.0 as described on the Community Web Server.
+
+
+  ATTACHMENT C
+
+TECHNOLOGY COMPATIBILITY KIT LICENSE
+
+The following license is effective for the *Helix DNA* Technology
+Compatibility Kit - as described on the Community Web Server. The
+Technology Compatibility Kit(s) for the Technology specified in
+Attachment B may be accessed at the Community Web Server.
+
+1. TCK License.
+
+1.1 Grants to use TCK
+
+Subject to the terms and restrictions set forth below and the
+RealNetworks Community Source License, and the Research Use license,
+Original Contributor grants to You a worldwide, non-exclusive,
+non-transferable license, to the extent of Original Contributor's
+Intellectual Property Rights in the TCK (without the right to
+sublicense), to use the TCK to develop and test Covered Code.
+
+1.2 TCK Use Restrictions.
+
+You are not authorized to create derivative works of the TCK or use the
+TCK to test any implementation of the Specification that is not Covered
+Code. You may not publish Your test results or make claims of
+comparative compatibility with respect to other implementations of the
+Specification. In consideration for the license grant in Section 1.1
+above You agree not to develop Your own tests that are intended to
+validate conformation with the Specification.
+
+2. Test Results.
+
+You agree to provide to Original Contributor or the third party test
+facility if applicable, Your test results that demonstrate that Covered
+Code is Compliant Covered Code and that Original Contributor may publish
+or otherwise distribute such test results.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH THE ORIGINAL CONTRIBUTOR, REALNETWORKS,
+INC. IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY, YOU
+REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE.
+WHETHER YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY,
+YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE COMPETENT TO ENTER INTO
+CONTRACTS. IF YOU DO NOT MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY
+OF THE TERMS AND CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON
+TO EXIT.
+
+*ACCEPT / REJECT
+*
+
+*
+*
+
+*To agree to the R&D/academic terms of this license, please register
+<https://www.helixcommunity.org/2002/intro/why-register> on the site --
+you will then be given a chance to agree to the clickwrap RCSL
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+R&D License
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+and gain access to the RCSL-licensed source code.  To build or deploy
+commercial applications based on the RCSL, you will need to agree to the
+Commercial Use license attachments
+<https://www.helixcommunity.org/content/rcsl-attachments>*
+
+
+

+ 518 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/RPSL.txt

@@ -0,0 +1,518 @@
+RealNetworks Public Source License Version 1.0
+(Rev. Date October 28, 2002)
+
+1. General Definitions. This License applies to any program or other work which
+RealNetworks, Inc., or any other entity that elects to use this license,
+("Licensor") makes publicly available and which contains a notice placed by
+Licensor identifying such program or work as "Original Code" and stating that it
+is subject to the terms of this RealNetworks Public Source License version 1.0
+(or subsequent version thereof) ("License"). You are not required to accept this
+License. However, nothing else grants You permission to use, copy, modify or
+distribute the software or its derivative works. These actions are prohibited by
+law if You do not accept this License. Therefore, by modifying, copying or
+distributing the software (or any work based on the software), You indicate your
+acceptance of this License to do so, and all its terms and conditions. In
+addition, you agree to the terms of this License by clicking the Accept button
+or downloading the software. As used in this License:
+
+1.1 "Applicable Patent Rights" mean: (a) in the case where Licensor is the
+grantor of rights, claims of patents that (i) are now or hereafter acquired,
+owned by or assigned to Licensor and (ii) are necessarily infringed by using or
+making the Original Code alone and not in combination with other software or
+hardware; and (b) in the case where You are the grantor of rights, claims of
+patents that (i) are now or hereafter acquired, owned by or assigned to You and
+(ii) are infringed (directly or indirectly) by using or making Your
+Modifications, taken alone or in combination with Original Code.
+
+1.2 "Compatible Source License" means any one of the licenses listed on Exhibit
+B or at https://www.helixcommunity.org/content/complicense or other licenses
+specifically identified by Licensor in writing. Notwithstanding any term to the
+contrary in any Compatible Source License, any code covered by any Compatible
+Source License that is used with Covered Code must be made readily available in
+Source Code format for royalty-free use under the terms of the Compatible Source
+License or this License.
+
+1.3 "Contributor" means any person or entity that creates or contributes to the
+creation of Modifications.
+
+1.4 "Covered Code" means the Original Code, Modifications, the combination of
+Original Code and any Modifications, and/or any respective portions thereof.
+
+1.5 "Deploy" means to use, sublicense or distribute Covered Code other than for
+Your internal research and development (R&D) and/or Personal Use, and includes
+without limitation, any and all internal use or distribution of Covered Code
+within Your business or organization except for R&D use and/or Personal Use, as
+well as direct or indirect sublicensing or distribution of Covered Code by You
+to any third party in any form or manner.
+
+1.6 "Derivative Work" means either the Covered Code or any derivative work under
+United States copyright law, and including any work containing or including any
+portion of the Covered Code or Modifications, either verbatim or with
+modifications and/or translated into another language. Derivative Work also
+includes any work which combines any portion of Covered Code or Modifications
+with code not otherwise governed by the terms of this License.
+
+1.7 "Externally Deploy" means to Deploy the Covered Code in any way that may be
+accessed or used by anyone other than You, used to provide any services to
+anyone other than You, or used in any way to deliver any content to anyone other
+than You, whether the Covered Code is distributed to those parties, made
+available as an application intended for use over a computer network, or used to
+provide services or otherwise deliver content to anyone other than You.
+
+1.8. "Interface" means interfaces, functions, properties, class definitions,
+APIs, header files, GUIDs, V-Tables, and/or protocols allowing one piece of
+software, firmware or hardware to communicate or interoperate with another piece
+of software, firmware or hardware.
+
+1.9 "Modifications" mean any addition to, deletion from, and/or change to, the
+substance and/or structure of the Original Code, any previous Modifications, the
+combination of Original Code and any previous Modifications, and/or any
+respective portions thereof. When code is released as a series of files, a
+Modification is: (a) any addition to or deletion from the contents of a file
+containing Covered Code; and/or (b) any new file or other representation of
+computer program statements that contains any part of Covered Code.
+
+1.10 "Original Code" means (a) the Source Code of a program or other work as
+originally made available by Licensor under this License, including the Source
+Code of any updates or upgrades to such programs or works made available by
+Licensor under this License, and that has been expressly identified by Licensor
+as such in the header file(s) of such work; and (b) the object code compiled
+from such Source Code and originally made available by Licensor under this
+License.
+
+1.11 "Personal Use" means use of Covered Code by an individual solely for his or
+her personal, private and non-commercial purposes. An individual's use of
+Covered Code in his or her capacity as an officer, employee, member, independent
+contractor or agent of a corporation, business or organization (commercial or
+non-commercial) does not qualify as Personal Use.
+
+1.12 "Source Code" means the human readable form of a program or other work that
+is suitable for making modifications to it, including all modules it contains,
+plus any associated interface definition files, scripts used to control
+compilation and installation of an executable (object code).
+
+1.13 "You" or "Your" means an individual or a legal entity exercising rights
+under this License. For legal entities, "You" or "Your" includes any entity
+which controls, is controlled by, or is under common control with, You, where
+"control" means (a) the power, direct or indirect, to cause the direction or
+management of such entity, whether by contract or otherwise, or (b) ownership of
+fifty percent (50%) or more of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Permitted Uses; Conditions & Restrictions. Subject to the terms and
+conditions of this License, Licensor hereby grants You, effective on the date
+You accept this License (via downloading or using Covered Code or otherwise
+indicating your acceptance of this License), a worldwide, royalty-free,
+non-exclusive copyright license, to the extent of Licensor's copyrights cover
+the Original Code, to do the following:
+
+2.1 You may reproduce, display, perform, modify and Deploy Covered Code,
+provided that in each instance:
+
+(a) You must retain and reproduce in all copies of Original Code the copyright
+and other proprietary notices and disclaimers of Licensor as they appear in the
+Original Code, and keep intact all notices in the Original Code that refer to
+this License;
+
+(b) You must include a copy of this License with every copy of Source Code of
+Covered Code and documentation You distribute, and You may not offer or impose
+any terms on such Source Code that alter or restrict this License or the
+recipients' rights hereunder, except as permitted under Section 6;
+
+(c) You must duplicate, to the extent it does not already exist, the notice in
+Exhibit A in each file of the Source Code of all Your Modifications, and cause
+the modified files to carry prominent notices stating that You changed the files
+and the date of any change;
+
+(d) You must make Source Code of all Your Externally Deployed Modifications
+publicly available under the terms of this License, including the license grants
+set forth in Section 3 below, for as long as you Deploy the Covered Code or
+twelve (12) months from the date of initial Deployment, whichever is longer. You
+should preferably distribute the Source Code of Your Deployed Modifications
+electronically (e.g. download from a web site); and
+
+(e) if You Deploy Covered Code in object code, executable form only, You must
+include a prominent notice, in the code itself as well as in related
+documentation, stating that Source Code of the Covered Code is available under
+the terms of this License with information on how and where to obtain such
+Source Code. You must also include the Object Code Notice set forth in Exhibit A
+in the "about" box or other appropriate place where other copyright notices are
+placed, including any packaging materials.
+
+2.2 You expressly acknowledge and agree that although Licensor and each
+Contributor grants the licenses to their respective portions of the Covered Code
+set forth herein, no assurances are provided by Licensor or any Contributor that
+the Covered Code does not infringe the patent or other intellectual property
+rights of any other entity. Licensor and each Contributor disclaim any liability
+to You for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, You hereby assume sole responsibility to
+secure any other intellectual property rights needed, if any. For example, if a
+third party patent license is required to allow You to make, use, sell, import
+or offer for sale the Covered Code, it is Your responsibility to acquire such
+license(s).
+
+2.3 Subject to the terms and conditions of this License, Licensor hereby grants
+You, effective on the date You accept this License (via downloading or using
+Covered Code or otherwise indicating your acceptance of this License), a
+worldwide, royalty-free, perpetual, non-exclusive patent license under
+Licensor's Applicable Patent Rights to make, use, sell, offer for sale and
+import the Covered Code, provided that in each instance you comply with the
+terms of this License.
+
+3. Your Grants. In consideration of, and as a condition to, the licenses granted
+to You under this License:
+
+(a) You grant to Licensor and all third parties a non-exclusive, perpetual,
+irrevocable, royalty free license under Your Applicable Patent Rights and other
+intellectual property rights owned or controlled by You, to make, sell, offer
+for sale, use, import, reproduce, display, perform, modify, distribute and
+Deploy Your Modifications of the same scope and extent as Licensor's licenses
+under Sections 2.1 and 2.2; and
+
+(b) You grant to Licensor and its subsidiaries a non-exclusive, worldwide,
+royalty-free, perpetual and irrevocable license, under Your Applicable Patent
+Rights and other intellectual property rights owned or controlled by You, to
+make, use, sell, offer for sale, import, reproduce, display, perform,
+distribute, modify or have modified (for Licensor and/or its subsidiaries),
+sublicense and distribute Your Modifications, in any form and for any purpose,
+through multiple tiers of distribution.
+
+(c) You agree not use any information derived from Your use and review of the
+Covered Code, including but not limited to any algorithms or inventions that may
+be contained in the Covered Code, for the purpose of asserting any of Your
+patent rights, or assisting a third party to assert any of its patent rights,
+against Licensor or any Contributor.
+
+4. Derivative Works. You may create a Derivative Work by combining Covered Code
+with other code not otherwise governed by the terms of this License and
+distribute the Derivative Work as an integrated product. In each such instance,
+You must make sure the requirements of this License are fulfilled for the
+Covered Code or any portion thereof, including all Modifications.
+
+4.1 You must cause any Derivative Work that you distribute, publish or
+Externally Deploy, that in whole or in part contains or is derived from the
+Covered Code or any part thereof, to be licensed as a whole at no charge to all
+third parties under the terms of this License and no other license except as
+provided in Section 4.2. You also must make Source Code available for the
+Derivative Work under the same terms as Modifications, described in Sections 2
+and 3, above.
+
+4.2 Compatible Source Licenses. Software modules that have been independently
+developed without any use of Covered Code and which contain no portion of the
+Covered Code, Modifications or other Derivative Works, but are used or combined
+in any way wtih the Covered Code or any Derivative Work to form a larger
+Derivative Work, are exempt from the conditions described in Section 4.1 but
+only to the extent that: the software module, including any software that is
+linked to, integrated with, or part of the same applications as, the software
+module by any method must be wholly subject to one of the Compatible Source
+Licenses. Notwithstanding the foregoing, all Covered Code must be subject to the
+terms of this License. Thus, the entire Derivative Work must be licensed under a
+combination of the RPSL (for Covered Code) and a Compatible Source License for
+any independently developed software modules within the Derivative Work. The
+foregoing requirement applies even if the Compatible Source License would
+ordinarily allow the software module to link with, or form larger works with,
+other software that is not subject to the Compatible Source License. For
+example, although the Mozilla Public License v1.1 allows Mozilla code to be
+combined with proprietary software that is not subject to the MPL, if
+MPL-licensed code is used with Covered Code the MPL-licensed code could not be
+combined or linked with any code not governed by the MPL. The general intent of
+this section 4.2 is to enable use of Covered Code with applications that are
+wholly subject to an acceptable open source license. You are responsible for
+determining whether your use of software with Covered Code is allowed under Your
+license to such software.
+
+4.3 Mere aggregation of another work not based on the Covered Code with the
+Covered Code (or with a work based on the Covered Code) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License. If You deliver the Covered Code for combination and/or integration with
+an application previously provided by You (for example, via automatic updating
+technology), such combination and/or integration constitutes a Derivative Work
+subject to the terms of this License.
+
+5. Exclusions From License Grant. Nothing in this License shall be deemed to
+grant any rights to trademarks, copyrights, patents, trade secrets or any other
+intellectual property of Licensor or any Contributor except as expressly stated
+herein. No right is granted to the trademarks of Licensor or any Contributor
+even if such marks are included in the Covered Code. Nothing in this License
+shall be interpreted to prohibit Licensor from licensing under different terms
+from this License any code that Licensor otherwise would have a right to
+license. Modifications, Derivative Works and/or any use or combination of
+Covered Code with other technology provided by Licensor or third parties may
+require additional patent licenses from Licensor which Licensor may grant in its
+sole discretion. No patent license is granted separate from the Original Code or
+combinations of the Original Code with other software or hardware.
+
+5.1. Trademarks. This License does not grant any rights to use the trademarks or
+trade names owned by Licensor ("Licensor Marks" defined in Exhibit C) or to any
+trademark or trade name belonging to any Contributor. No Licensor Marks may be
+used to endorse or promote products derived from the Original Code other than as
+permitted by the Licensor Trademark Policy defined in Exhibit C.
+
+6. Additional Terms. You may choose to offer, and to charge a fee for, warranty,
+support, indemnity or liability obligations and/or other rights consistent with
+the scope of the license granted herein ("Additional Terms") to one or more
+recipients of Covered Code. However, You may do so only on Your own behalf and
+as Your sole responsibility, and not on behalf of Licensor or any Contributor.
+You must obtain the recipient's agreement that any such Additional Terms are
+offered by You alone, and You hereby agree to indemnify, defend and hold
+Licensor and every Contributor harmless for any liability incurred by or claims
+asserted against Licensor or such Contributor by reason of any such Additional
+Terms.
+
+7. Versions of the License. Licensor may publish revised and/or new versions of
+this License from time to time. Each version will be given a distinguishing
+version number. Once Original Code has been published under a particular version
+of this License, You may continue to use it under the terms of that version. You
+may also choose to use such Original Code under the terms of any subsequent
+version of this License published by Licensor. No one other than Licensor has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in part
+pre-release, untested, or not fully tested works. The Covered Code may contain
+errors that could cause failures or loss of data, and may be incomplete or
+contain inaccuracies. You expressly acknowledge and agree that use of the
+Covered Code, or any portion thereof, is at Your sole and entire risk. THE
+COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
+ANY KIND AND LICENSOR AND LICENSOR'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS
+"LICENSOR" FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY
+DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF
+SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET
+ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. LICENSOR AND EACH
+CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE
+COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR
+REQUIREMENTS, THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
+ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO ORAL OR
+WRITTEN DOCUMENTATION, INFORMATION OR ADVICE GIVEN BY LICENSOR, A LICENSOR
+AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY. You
+acknowledge that the Covered Code is not intended for use in high risk
+activities, including, but not limited to, the design, construction, operation
+or maintenance of nuclear facilities, aircraft navigation, aircraft
+communication systems, or air traffic control machines in which case the failure
+of the Covered Code could lead to death, personal injury, or severe physical or
+environmental damage. Licensor disclaims any express or implied warranty of
+fitness for such uses.
+
+9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
+SHALL LICENSOR OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR
+YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER
+UNDER A THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE OR STRICT
+LIABILITY), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF LICENSOR OR SUCH
+CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND
+NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. SOME
+JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF INCIDENTAL OR
+CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event
+shall Licensor's total liability to You for all damages (other than as may be
+required by applicable law) under this License exceed the amount of ten dollars
+($10.00).
+
+10. Ownership. Subject to the licenses granted under this License, each
+Contributor retains all rights, title and interest in and to any Modifications
+made by such Contributor. Licensor retains all rights, title and interest in and
+to the Original Code and any Modifications made by or on behalf of Licensor
+("Licensor Modifications"), and such Licensor Modifications will not be
+automatically subject to this License. Licensor may, at its sole discretion,
+choose to license such Licensor Modifications under this License, or on
+different terms from those contained in this License or may choose not to
+license them at all.
+
+11. Termination. 
+
+11.1 Term and Termination. The term of this License is perpetual unless
+terminated as provided below. This License and the rights granted hereunder will
+terminate:
+
+(a) automatically without notice from Licensor if You fail to comply with any
+term(s) of this License and fail to cure such breach within 30 days of becoming
+aware of such breach;
+
+(b) immediately in the event of the circumstances described in Section 12.5(b);
+or
+
+(c) automatically without notice from Licensor if You, at any time during the
+term of this License, commence an action for patent infringement against
+Licensor (including by cross-claim or counter claim in a lawsuit);
+
+(d) upon written notice from Licensor if You, at any time during the term of
+this License, commence an action for patent infringement against any third party
+alleging that the Covered Code itself (excluding combinations with other
+software or hardware) infringes any patent (including by cross-claim or counter
+claim in a lawsuit).
+
+11.2 Effect of Termination. Upon termination, You agree to immediately stop any
+further use, reproduction, modification, sublicensing and distribution of the
+Covered Code and to destroy all copies of the Covered Code that are in your
+possession or control. All sublicenses to the Covered Code which have been
+properly granted prior to termination shall survive any termination of this
+License. Provisions which, by their nature, should remain in effect beyond the
+termination of this License shall survive, including but not limited to Sections
+3, 5, 8, 9, 10, 11, 12.2 and 13. No party will be liable to any other for
+compensation, indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this License will
+be without prejudice to any other right or remedy of any party.
+
+12. Miscellaneous.
+
+12.1 Government End Users. The Covered Code is a "commercial item" as defined in
+FAR 2.101. Government software and technical data rights in the Covered Code
+include only those rights customarily provided to the public as defined in this
+License. This customary commercial license in technical data and software is
+provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
+Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
+Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
+or Computer Software Documentation). Accordingly, all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+12.2 Relationship of Parties. This License will not be construed as creating an
+agency, partnership, joint venture or any other form of legal association
+between or among You, Licensor or any Contributor, and You will not represent to
+the contrary, whether expressly, by implication, appearance or otherwise.
+
+12.3 Independent Development. Nothing in this License will impair Licensor's
+right to acquire, license, develop, have others develop for it, market and/or
+distribute technology or products that perform the same or similar functions as,
+or otherwise compete with, Modifications, Derivative Works, technology or
+products that You may develop, produce, market or distribute.
+
+12.4 Waiver; Construction. Failure by Licensor or any Contributor to enforce any
+provision of this License will not be deemed a waiver of future enforcement of
+that or any other provision. Any law or regulation which provides that the
+language of a contract shall be construed against the drafter will not apply to
+this License.
+
+12.5 Severability. (a) If for any reason a court of competent jurisdiction finds
+any provision of this License, or portion thereof, to be unenforceable, that
+provision of the License will be enforced to the maximum extent permissible so
+as to effect the economic benefits and intent of the parties, and the remainder
+of this License will continue in full force and effect. (b) Notwithstanding the
+foregoing, if applicable law prohibits or restricts You from fully and/or
+specifically complying with Sections 2 and/or 3 or prevents the enforceability
+of either of those Sections, this License will immediately terminate and You
+must immediately discontinue any use of the Covered Code and destroy all copies
+of it that are in your possession or control.
+
+12.6 Dispute Resolution. Any litigation or other dispute resolution between You
+and Licensor relating to this License shall take place in the Seattle,
+Washington, and You and Licensor hereby consent to the personal jurisdiction of,
+and venue in, the state and federal courts within that District with respect to
+this License. The application of the United Nations Convention on Contracts for
+the International Sale of Goods is expressly excluded.
+
+12.7 Export/Import Laws. This software is subject to all export and import laws
+and restrictions and regulations of the country in which you receive the Covered
+Code and You are solely responsible for ensuring that You do not export,
+re-export or import the Covered Code or any direct product thereof in violation
+of any such restrictions, laws or regulations, or without all necessary
+authorizations.
+
+12.8 Entire Agreement; Governing Law. This License constitutes the entire
+agreement between the parties with respect to the subject matter hereof. This
+License shall be governed by the laws of the United States and the State of
+Washington.
+
+Where You are located in the province of Quebec, Canada, the following clause
+applies: The parties hereby confirm that they have requested that this License
+and all related documents be drafted in English. Les parties ont exig&eacute;
+que le pr&eacute;sent contrat et tous les documents connexes soient
+r&eacute;dig&eacute;s en anglais.
+
+								EXHIBIT A.  
+
+"Copyright &copy; 1995-2002
+RealNetworks, Inc. and/or its licensors. All Rights Reserved.
+
+The contents of this file, and the files included with this file, are subject to
+the current version of the RealNetworks Public Source License Version 1.0 (the
+"RPSL") available at https://www.helixcommunity.org/content/rpsl unless you have
+licensed the file under the RealNetworks Community Source License Version 1.0
+(the "RCSL") available at https://www.helixcommunity.org/content/rcsl, in which
+case the RCSL will apply. You may also obtain the license terms directly from
+RealNetworks. You may not use this file except in compliance with the RPSL or,
+if you have a valid RCSL with RealNetworks applicable to this file, the RCSL.
+Please see the applicable RPSL or RCSL for the rights, obligations and
+limitations governing use of the contents of the file.
+
+This file is part of the Helix DNA Technology. RealNetworks is the developer of
+the Original code and owns the copyrights in the portions it created.
+
+This file, and the files included with this file, is distributed and made
+available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
+IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING
+WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s): ____________________________________ 
+
+Technology Compatibility Kit Test
+Suite(s) Location (if licensed under the RCSL): ______________________________ 
+
+Object Code Notice: Helix DNA Client technology included. Copyright (c)
+RealNetworks, Inc., 1995-2002. All rights reserved.
+
+
+								EXHIBIT B 
+
+Compatible Source Licenses for the RealNetworks Public Source License. The
+following list applies to the most recent version of the license as of October
+25, 2002, unless otherwise indicated.
+
+* Academic Free License
+* Apache Software License
+* Apple Public Source License
+* Artistic license
+* Attribution Assurance Licenses
+* BSD license
+* Common Public License (1)
+* Eiffel Forum License
+* GNU General Public License (GPL) (1)
+* GNU Library or "Lesser" General Public License (LGPL) (1)
+* IBM Public License
+* Intel Open Source License
+* Jabber Open Source License
+* MIT license
+* MITRE Collaborative Virtual Workspace License (CVW License)
+* Motosoto License
+* Mozilla Public License 1.0 (MPL)
+* Mozilla Public License 1.1 (MPL)
+* Nokia Open Source License
+* Open Group Test Suite License
+* Python Software Foundation License
+* Ricoh Source Code Public License
+* Sun Industry Standards Source License (SISSL)
+* Sun Public License
+* University of Illinois/NCSA Open Source License
+* Vovida Software License v. 1.0
+* W3C License
+* X.Net License
+* Zope Public License
+* zlib/libpng license
+
+(1) Note: because this license contains certain reciprocal licensing terms that
+purport to extend to independently developed code, You may be prohibited under
+the terms of this otherwise compatible license from using code licensed under
+its terms with Covered Code because Covered Code may only be licensed under the
+RealNetworks Public Source License. Any attempt to apply non RPSL license terms,
+including without limitation the GPL, to Covered Code is expressly forbidden.
+You are responsible for ensuring that Your use of Compatible Source Licensed
+code does not violate either the RPSL or the Compatible Source License.
+
+The latest version of this list can be found at:
+https://www.helixcommunity.org/content/complicense
+
+								EXHIBIT C 
+
+RealNetworks' Trademark policy.  
+
+RealNetworks defines the following trademarks collectively as "Licensor
+Trademarks": "RealNetworks", "RealPlayer", "RealJukebox", "RealSystem",
+"RealAudio", "RealVideo", "RealOne Player", "RealMedia", "Helix" or any other
+trademarks or trade names belonging to RealNetworks.
+
+RealNetworks "Licensor Trademark Policy" forbids any use of Licensor Trademarks
+except as permitted by and in strict compliance at all times with RealNetworks'
+third party trademark usage guidelines which are posted at
+http://www.realnetworks.com/info/helixlogo.html.
+

+ 335 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/mp3dec.vcp

@@ -0,0 +1,335 @@
+# Microsoft eMbedded Visual Tools Project File - Name="mp3dec" - Package Owner=<4>
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (WCE ARM) Static Library" 0x8504
+
+CFG=mp3dec - Win32 (WCE ARM) Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "mp3dec.vcn".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "mp3dec.vcn" CFG="mp3dec - Win32 (WCE ARM) Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "mp3dec - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Static Library")
+!MESSAGE "mp3dec - Win32 (WCE ARM) Debug" (based on "Win32 (WCE ARM) Static Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+# PROP ATL_Project 2
+CPP=xicle3
+
+!IF  "$(CFG)" == "mp3dec - Win32 (WCE ARM) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ARMRel"
+# PROP BASE Intermediate_Dir "ARMRel"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ARMRel"
+# PROP Intermediate_Dir "ARMRel_obj"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "NDEBUG" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /Oxs /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /Zi /O2 /I "..\..\..\..\..\..\..\common\runtime\pub" /I "..\..\..\..\..\..\..\common\include" /I "..\..\..\pub" /D "NDEBUG" /D "_WINDOWS" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /Oxs /M$(CECrtMT) /c
+# SUBTRACT CPP /YX
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF  "$(CFG)" == "mp3dec - Win32 (WCE ARM) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "ARMDbg"
+# PROP BASE Intermediate_Dir "ARMDbg"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "ARMDbg"
+# PROP Intermediate_Dir "ARMDbg"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "..\..\..\pub" /I "..\..\..\..\..\..\..\common\runtime\pub" /I "..\..\..\..\..\..\..\common\include" /D "DEBUG" /D "_WINDOWS" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /M$(CECrtMTDebug) /c
+# SUBTRACT CPP /YX
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ENDIF 
+
+# Begin Target
+
+# Name "mp3dec - Win32 (WCE ARM) Release"
+# Name "mp3dec - Win32 (WCE ARM) Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Group "general"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\mp3dec.c
+DEP_CPP_MP3DE=\
+	"..\..\..\..\..\..\..\common\include\hxbastsd.h"\
+	"..\..\..\..\..\..\..\common\include\hxtypes.h"\
+	"..\..\..\..\..\..\..\common\include\platform\symbian\symbiantypes.h"\
+	"..\..\..\..\..\..\..\common\runtime\pub\hlxclib\stdlib.h"\
+	"..\..\..\..\..\..\..\common\runtime\pub\hlxclib\string.h"\
+	"..\..\..\..\..\..\..\common\runtime\pub\platform\openwave\hx_op_stdc.h"\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	
+NODEP_CPP_MP3DE=\
+	"..\..\..\..\..\..\..\common\include\types\vxTypesOld.h"\
+	"..\..\..\..\..\..\..\common\include\vxWorks.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\mp3tabs.c
+DEP_CPP_MP3TA=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	
+# End Source File
+# End Group
+# Begin Group "csource"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\bitstream.c
+DEP_CPP_BITST=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\assembly.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\buffers.c
+DEP_CPP_BUFFE=\
+	"..\..\..\..\..\..\..\common\include\hxbastsd.h"\
+	"..\..\..\..\..\..\..\common\include\hxtypes.h"\
+	"..\..\..\..\..\..\..\common\include\platform\symbian\symbiantypes.h"\
+	"..\..\..\..\..\..\..\common\runtime\pub\hlxclib\stdlib.h"\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\coder.h"\
+	
+NODEP_CPP_BUFFE=\
+	"..\..\..\..\..\..\..\common\include\types\vxTypesOld.h"\
+	"..\..\..\..\..\..\..\common\include\vxWorks.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\dct32.c
+DEP_CPP_DCT32=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\assembly.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\dequant.c
+DEP_CPP_DEQUA=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\assembly.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\dqchan.c
+DEP_CPP_DQCHA=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\assembly.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\huffman.c
+DEP_CPP_HUFFM=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\hufftabs.c
+DEP_CPP_HUFFT=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\imdct.c
+DEP_CPP_IMDCT=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\assembly.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\scalfact.c
+DEP_CPP_SCALF=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\stproc.c
+DEP_CPP_STPRO=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\assembly.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\subband.c
+DEP_CPP_SUBBA=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\assembly.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\trigtabs.c
+DEP_CPP_TRIGT=\
+	"..\..\..\pub\mp3common.h"\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\statname.h"\
+	"..\..\coder.h"\
+	
+# End Source File
+# End Group
+# Begin Group "assembly"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\arm\asmmisc.s
+
+!IF  "$(CFG)" == "mp3dec - Win32 (WCE ARM) Release"
+
+# PROP Ignore_Default_Tool 1
+# Begin Custom Build - Performing Custom Build Step on $(InputPath)
+IntDir=.\ARMRel_obj
+InputPath=..\..\arm\asmmisc.s
+InputName=asmmisc
+
+"$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	"$(EVCROOT)\wce300\bin\armasm" $(InputPath) $(IntDir)\$(InputName).obj
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "mp3dec - Win32 (WCE ARM) Debug"
+
+# PROP Ignore_Default_Tool 1
+# Begin Custom Build - Performing Custom Build Step on $(InputPath)
+IntDir=.\ARMDbg
+InputPath=..\..\arm\asmmisc.s
+InputName=asmmisc
+
+"$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	"$(EVCROOT)\wce300\bin\armasm" $(InputPath) $(IntDir)\$(InputName).obj
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\arm\asmpoly.s
+
+!IF  "$(CFG)" == "mp3dec - Win32 (WCE ARM) Release"
+
+# PROP Ignore_Default_Tool 1
+# Begin Custom Build
+IntDir=.\ARMRel_obj
+InputPath=..\..\arm\asmpoly.s
+InputName=asmpoly
+
+"$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	"$(EVCROOT)\wce300\bin\armasm" $(InputPath) $(IntDir)\$(InputName).obj
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "mp3dec - Win32 (WCE ARM) Debug"
+
+# PROP Ignore_Default_Tool 1
+# Begin Custom Build
+IntDir=.\ARMDbg
+InputPath=..\..\arm\asmpoly.s
+InputName=asmpoly
+
+"$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	"$(EVCROOT)\wce300\bin\armasm" $(InputPath) $(IntDir)\$(InputName).obj
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# End Group
+# End Target
+# End Project

+ 44 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/mp3dec.vcw

@@ -0,0 +1,44 @@
+Microsoft eMbedded Visual Tools Workspace File, Format Version 3.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "mp3dec"=.\mp3dec.vcp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "testwrap"=.\testwrap.vcp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name mp3dec
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+

+ 146 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/armwince/testwrap.vcp

@@ -0,0 +1,146 @@
+# Microsoft eMbedded Visual Tools Project File - Name="testwrap" - Package Owner=<4>
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (WCE ARM) Application" 0x8501
+
+CFG=testwrap - Win32 (WCE ARM) Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "testwrap.vcn".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "testwrap.vcn" CFG="testwrap - Win32 (WCE ARM) Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "testwrap - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Application")
+!MESSAGE "testwrap - Win32 (WCE ARM) Debug" (based on "Win32 (WCE ARM) Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+# PROP ATL_Project 2
+CPP=xicle3
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "testwrap - Win32 (WCE ARM) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ARMRel"
+# PROP BASE Intermediate_Dir "ARMRel"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ARMRel"
+# PROP Intermediate_Dir "ARMRel"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /Zi /O2 /I "..\..\..\pub" /I "..\..\..\testwrap" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /YX /Oxs /M$(CECrtMT) /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=xilinke3
+# ADD BASE LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
+
+!ELSEIF  "$(CFG)" == "testwrap - Win32 (WCE ARM) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "ARMDbg"
+# PROP BASE Intermediate_Dir "ARMDbg"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "ARMDbg"
+# PROP Intermediate_Dir "ARMDbg"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "..\..\..\pub" /I "..\..\..\testwrap" /D "DEBUG" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "UNICODE" /D "_UNICODE" /YX /M$(CECrtMTDebug) /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=xilinke3
+# ADD BASE LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
+# ADD LINK32 commctrl.lib coredll.lib aygshell.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
+
+!ENDIF 
+
+# Begin Target
+
+# Name "testwrap - Win32 (WCE ARM) Release"
+# Name "testwrap - Win32 (WCE ARM) Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\testwrap\debug.c
+DEP_CPP_DEBUG=\
+	"..\..\..\testwrap\debug.h"\
+	
+NODEP_CPP_DEBUG=\
+	"..\..\..\testwrap\fortify.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\mpadecobj.cpp
+DEP_CPP_MPADE=\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\mpadecobjfixpt.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\testwrap\timing.c
+DEP_CPP_TIMIN=\
+	"..\..\..\testwrap\timing.h"\
+	
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\testwrap\winmain.cpp
+DEP_CPP_WINMA=\
+	"..\..\..\pub\mp3dec.h"\
+	"..\..\..\pub\mpadecobjfixpt.h"\
+	"..\..\..\testwrap\debug.h"\
+	"..\..\..\testwrap\timing.h"\
+	
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project

+ 30 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/LICENSE.txt

@@ -0,0 +1,30 @@
+ Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.  
+        
+ The contents of this directory, and (except where otherwise
+ indicated) the directories included within this directory, are
+ subject to the current version of the RealNetworks Public Source
+ License (the "RPSL") available at RPSL.txt in this directory, unless
+ you have licensed the directory under the current version of the
+ RealNetworks Community Source License (the "RCSL") available at
+ RCSL.txt in this directory, in which case the RCSL will apply. You
+ may also obtain the license terms directly from RealNetworks.  You
+ may not use the files in this directory except in compliance with the
+ RPSL or, if you have a valid RCSL with RealNetworks applicable to
+ this directory, the RCSL.  Please see the applicable RPSL or RCSL for
+ the rights, obligations and limitations governing use of the contents
+ of the directory.
+ 
+ This directory is part of the Helix DNA Technology. RealNetworks is
+ the developer of the Original Code and owns the copyrights in the
+ portions it created.
+   
+ This directory, and the directories included with this directory, are
+ distributed and made available on an 'AS IS' basis, WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY
+ DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ QUIET ENJOYMENT OR NON-INFRINGEMENT.
+  
+ Technology Compatibility Kit Test Suite(s) Location:  
+    http://www.helixcommunity.org/content/tck  
+

+ 948 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/RCSL.txt

@@ -0,0 +1,948 @@
+The RCSL is made up of a base agreement and a few Attachments.
+
+For Research and Development use, you agree to the terms of the
+RCSL R&D License (base RCSL and Attachments A, B, and C) 
+
+For Commercial Use (either distribution or internal commercial
+deployment) of the Helix DNA with or without support for RealNetworks'
+RealAudio and RealVideo Add-on Technology, you agree to the
+terms of the same RCSL R&D license
+and execute one or more additional Commercial Use License attachments
+<see http://www.helixcommunity.org/content/rcsl-attachments>.
+
+------------------------------------------------------------------------
+
+
+    REALNETWORKS COMMUNITY SOURCE LICENSE
+
+Version 1.2 (Rev. Date: January 22, 2003).
+
+
+  RECITALS
+
+Original Contributor has developed Specifications, Source Code
+implementations and Executables of certain Technology; and
+
+Original Contributor desires to license the Technology to a large
+community to facilitate research, innovation and product development
+while maintaining compatibility of such products with the Technology as
+delivered by Original Contributor; and
+
+Original Contributor desires to license certain Trademarks for the
+purpose of branding products that are compatible with the relevant
+Technology delivered by Original Contributor; and
+
+You desire to license the Technology and possibly certain Trademarks
+from Original Contributor on the terms and conditions specified in this
+License.
+
+In consideration for the mutual covenants contained herein, You and
+Original Contributor agree as follows:
+
+
+  AGREEMENT
+
+*1. Introduction.*
+
+The RealNetworks Community Source License ("RCSL") and effective
+attachments ("License") may include five distinct licenses:
+
+i) Research Use license -- License plus Attachments A, B and C only.
+
+ii) Commercial Use and Trademark License, which may be for Internal
+Deployment Use or external distribution, or both -- License plus
+Attachments A, B, C, and D.
+
+iii) Technology Compatibility Kit (TCK) license -- Attachment C.
+
+iv) Add-On Technology License (Executable) Commercial Use License
+-Attachment F.
+
+v) Add-On Technology Source Code Porting and Optimization
+License-Attachment G.
+
+The Research Use license is effective when You click and accept this
+License. The TCK is effective when You click and accept this License,
+unless otherwise specified in the TCK attachments. The Commercial Use
+and Trademark, Add-On Technology License, and the Add-On Technology
+Source Code Porting and Optimization licenses must each be signed by You
+and Original Contributor to become effective. Once effective, these
+licenses and the associated requirements and responsibilities are
+cumulative. Capitalized terms used in this License are defined in the
+Glossary.
+
+*2. License Grants.*
+
+2.1 Original Contributor Grant.
+
+Subject to Your compliance with Sections 3, 8.10 and Attachment A of
+this License, Original Contributor grants to You a worldwide,
+royalty-free, non-exclusive license, to the extent of Original
+Contributor's Intellectual Property Rights covering the Original Code,
+Upgraded Code and Specifications, to do the following:
+
+(a) Research Use License:
+
+(i) use, reproduce and modify the Original Code, Upgraded Code and
+Specifications to create Modifications and Reformatted Specifications
+for Research Use by You;
+
+(ii) publish and display Original Code, Upgraded Code and Specifications
+with, or as part of Modifications, as permitted under Section 3.1(b) below;
+
+(iii) reproduce and distribute copies of Original Code and Upgraded Code
+to Licensees and students for Research Use by You;
+
+(iv) compile, reproduce and distribute Original Code and Upgraded Code
+in Executable form, and Reformatted Specifications to anyone for
+Research Use by You.
+
+(b) Other than the licenses expressly granted in this License, Original
+Contributor retains all right, title, and interest in Original Code and
+Upgraded Code and Specifications.
+
+2.2 Your Grants.
+
+(a) To Other Licensees. You hereby grant to each Licensee a license to
+Your Error Corrections and Shared Modifications, of the same scope and
+extent as Original Contributor's licenses under Section 2.1 a) above
+relative to Research Use and Attachment D relative to Commercial Use.
+
+(b) To Original Contributor. You hereby grant to Original Contributor a
+worldwide, royalty-free, non-exclusive, perpetual and irrevocable
+license, to the extent of Your Intellectual Property Rights covering
+Your Error Corrections, Shared Modifications and Reformatted
+Specifications, to use, reproduce, modify, display and distribute Your
+Error Corrections, Shared Modifications and Reformatted Specifications,
+in any form, including the right to sublicense such rights through
+multiple tiers of distribution.
+
+(c) Other than the licenses expressly granted in Sections 2.2(a) and (b)
+above, and the restrictions set forth in Section 3.1(d)(iv) below, You
+retain all right, title, and interest in Your Error Corrections, Shared
+Modifications and Reformatted Specifications.
+
+2.3 Contributor Modifications.
+
+You may use, reproduce, modify, display and distribute Contributor Error
+Corrections, Shared Modifications and Reformatted Specifications,
+obtained by You under this License, to the same scope and extent as with
+Original Code, Upgraded Code and Specifications.
+
+2.4 Subcontracting.
+
+You may deliver the Source Code of Covered Code to other Licensees
+having at least a Research Use license, for the sole purpose of
+furnishing development services to You in connection with Your rights
+granted in this License. All such Licensees must execute appropriate
+documents with respect to such work consistent with the terms of this
+License, and acknowledging their work-made-for-hire status or assigning
+exclusive right to the work product and associated Intellectual Property
+Rights to You.
+
+*3. Requirements and Responsibilities*.
+
+3.1 Research Use License.
+
+As a condition of exercising the rights granted under Section 2.1(a)
+above, You agree to comply with the following:
+
+(a) Your Contribution to the Community. All Error Corrections and Shared
+Modifications which You create or contribute to are automatically
+subject to the licenses granted under Section 2.2 above. You are
+encouraged to license all of Your other Modifications under Section 2.2
+as Shared Modifications, but are not required to do so. You agree to
+notify Original Contributor of any errors in the Specification.
+
+(b) Source Code Availability. You agree to provide all Your Error
+Corrections to Original Contributor as soon as reasonably practicable
+and, in any event, prior to Internal Deployment Use or Commercial Use,
+if applicable. Original Contributor may, at its discretion, post Source
+Code for Your Error Corrections and Shared Modifications on the
+Community Webserver. You may also post Error Corrections and Shared
+Modifications on a web-server of Your choice; provided, that You must
+take reasonable precautions to ensure that only Licensees have access to
+such Error Corrections and Shared Modifications. Such precautions shall
+include, without limitation, a password protection scheme limited to
+Licensees and a click-on, download certification of Licensee status
+required of those attempting to download from the server. An example of
+an acceptable certification is attached as Attachment A-2.
+
+(c) Notices. All Error Corrections and Shared Modifications You create
+or contribute to must include a file documenting the additions and
+changes You made and the date of such additions and changes. You must
+also include the notice set forth in Attachment A-1 in the file header.
+If it is not possible to put the notice in a particular Source Code file
+due to its structure, then You must include the notice in a location
+(such as a relevant directory file), where a recipient would be most
+likely to look for such a notice.
+
+(d) Redistribution.
+
+(i) Source. Covered Code may be distributed in Source Code form only to
+another Licensee (except for students as provided below). You may not
+offer or impose any terms on any Covered Code that alter the rights,
+requirements, or responsibilities of such Licensee. You may distribute
+Covered Code to students for use in connection with their course work
+and research projects undertaken at accredited educational institutions.
+Such students need not be Licensees, but must be given a copy of the
+notice set forth in Attachment A-3 and such notice must also be included
+in a file header or prominent location in the Source Code made available
+to such students.
+
+(ii) Executable. You may distribute Executable version(s) of Covered
+Code to Licensees and other third parties only for the purpose of
+evaluation and comment in connection with Research Use by You and under
+a license of Your choice, but which limits use of such Executable
+version(s) of Covered Code only to that purpose.
+
+(iii) Modified Class, Interface and Package Naming. In connection with
+Research Use by You only, You may use Original Contributor's class,
+Interface and package names only to accurately reference or invoke the
+Source Code files You modify. Original Contributor grants to You a
+limited license to the extent necessary for such purposes.
+
+(iv) You expressly agree that any distribution, in whole or in part, of
+Modifications developed by You shall only be done pursuant to the terms
+and conditions of this License.
+
+(e) Extensions.
+
+(i) Covered Code. You may not include any Source Code of Community Code
+in any Extensions. You may include the compiled Header Files of
+Community Code in an Extension provided that Your use of the Covered
+Code, including Heading Files, complies with the Commercial Use License,
+the TCK and all other terms of this License.
+
+(ii) Publication. No later than the date on which You first distribute
+such Extension for Commercial Use, You must publish to the industry, on
+a non-confidential basis and free of all copyright restrictions with
+respect to reproduction and use, an accurate and current specification
+for any Extension. In addition, You must make available an appropriate
+test suite, pursuant to the same rights as the specification,
+sufficiently detailed to allow any third party reasonably skilled in the
+technology to produce implementations of the Extension compatible with
+the specification. Such test suites must be made available as soon as
+reasonably practicable but, in no event, later than ninety (90) days
+after Your first Commercial Use of the Extension. You must use
+reasonable efforts to promptly clarify and correct the specification and
+the test suite upon written request by Original Contributor.
+
+(iii) Open. You agree to refrain from enforcing any Intellectual
+Property Rights You may have covering any interface(s) of Your
+Extension, which would prevent the implementation of such interface(s)
+by Original Contributor or any Licensee. This obligation does not
+prevent You from enforcing any Intellectual Property Right You have that
+would otherwise be infringed by an implementation of Your Extension.
+
+(iv) Interface Modifications and Naming. You may not modify or add to
+the GUID space * * "xxxxxxxx-0901-11d1-8B06-00A024406D59" or any other
+GUID space designated by Original Contributor. You may not modify any
+Interface prefix provided with the Covered Code or any other prefix
+designated by Original Contributor.* *
+
+* *
+
+(f) You agree that any Specifications provided to You by Original
+Contributor are confidential and proprietary information of Original
+Contributor. You must maintain the confidentiality of the Specifications
+and may not disclose them to any third party without Original
+Contributor's prior written consent. You may only use the Specifications
+under the terms of this License and only for the purpose of implementing
+the terms of this License with respect to Covered Code. You agree not
+use, copy or distribute any such Specifications except as provided in
+writing by Original Contributor.
+
+3.2 Commercial Use License.
+
+You may not make Commercial Use of any Covered Code unless You and
+Original Contributor have executed a copy of the Commercial Use and
+Trademark License attached as Attachment D.
+
+*4. Versions of the License.*
+
+4.1 License Versions.
+
+Original Contributor may publish revised versions of the License from
+time to time. Each version will be given a distinguishing version number.
+
+4.2 Effect.
+
+Once a particular version of Covered Code has been provided under a
+version of the License, You may always continue to use such Covered Code
+under the terms of that version of the License. You may also choose to
+use such Covered Code under the terms of any subsequent version of the
+License. No one other than Original Contributor has the right to
+promulgate License versions.
+
+4.3 Multiple-Licensed Code.
+
+Original Contributor may designate portions of the Covered Code as
+"Multiple-Licensed." "Multiple-Licensed" means that the Original
+Contributor permits You to utilize those designated portions of the
+Covered Code under Your choice of this License or the alternative
+license(s), if any, specified by the Original Contributor in an
+Attachment to this License.
+
+*5. Disclaimer of Warranty.*
+
+5.1 COVERED CODE PROVIDED AS IS.
+
+COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," WITHOUT WARRANTY OF
+ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
+WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT
+FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE
+RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED CODE UNDER
+THIS LICENSE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
+OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER
+EXCEPT SUBJECT TO THIS DISCLAIMER.
+
+5.2 Not Designed for High Risk Activities.
+
+You acknowledge that Original Code, Upgraded Code and Specifications are
+not designed or intended for use in high risk activities including, but
+not limited to: (i) on-line control of aircraft, air traffic, aircraft
+navigation or aircraft communications; or (ii) in the design,
+construction, operation or maintenance of any nuclear facility. Original
+Contributor disclaims any express or implied warranty of fitness for
+such uses.
+
+*6. Termination.*
+
+6.1 By You.
+
+You may terminate this Research Use license at anytime by providing
+written notice to Original Contributor.
+
+6.2 By Original Contributor.
+
+This License and the rights granted hereunder will terminate:
+
+(i) automatically if You fail to comply with the terms of this License
+and fail to cure such breach within 30 days of receipt of written notice
+of the breach;
+
+(ii) immediately in the event of circumstances specified in Sections 7.1
+and 8.4; or
+
+(iii) at Original Contributor's discretion upon any action initiated by
+You (including by cross-claim or counter claim) alleging that use or
+distribution by Original Contributor or any Licensee, of Original Code,
+Upgraded Code, Error Corrections, Shared Modifications or Specifications
+infringe a patent owned or controlled by You.
+
+6.3 Effective of Termination.
+
+Upon termination, You agree to discontinue use of and destroy all copies
+of Covered Code in Your possession. All sublicenses to the Covered Code
+which You have properly granted shall survive any termination of this
+License. Provisions that, by their nature, should remain in effect
+beyond the termination of this License shall survive including, without
+limitation, Sections 2.2, 3, 5, 7 and 8.
+
+6.4 No Compensation.
+
+Each party waives and releases the other from any claim to compensation
+or indemnity for permitted or lawful termination of the business
+relationship established by this License.
+
+*7. Liability.*
+
+7.1 Infringement. Should any of the Original Code, Upgraded Code, TCK or
+Specifications ("Materials") become the subject of a claim of
+infringement, Original Contributor may, at its sole option, (i) attempt
+to procure the rights necessary for You to continue using the Materials,
+(ii) modify the Materials so that they are no longer infringing, or
+(iii) terminate Your right to use the Materials, immediately upon
+written notice, and refund to You the amount, if any, having then
+actually been paid by You to Original Contributor for the Original Code,
+Upgraded Code and TCK, depreciated on a straight line, five year basis.
+
+7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY APPLICABLE
+LAW, ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR CLAIMS RELATING TO THIS
+LICENSE, WHETHER FOR BREACH OR IN TORT, SHALL BE LIMITED TO ONE HUNDRED
+PERCENT (100%) OF THE AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO
+ORIGINAL CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE PARTICULAR
+ITEMS GIVING RISE TO SUCH CLAIM, IF ANY, DURING THE TWELVE MONTHS
+PRECEDING THE CLAIMED BREACH. IN NO EVENT WILL YOU (RELATIVE TO YOUR
+SHARED MODIFICATIONS OR ERROR CORRECTIONS) OR ORIGINAL CONTRIBUTOR BE
+LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR RISING OUT OF THIS LICENSE (INCLUDING,
+WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER ECONOMIC
+ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF LIABILITY, WHETHER IN
+AN ACTION FOR CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE)
+OR OTHERWISE, WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE
+FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY.
+
+*8. Miscellaneous.*
+
+8.1 Trademark.
+
+You shall not use any Trademark unless You and Original Contributor
+execute a copy of the Commercial Use and Trademark License Agreement
+attached hereto as Attachment D. Except as expressly provided in the
+License, You are granted no right, title or license to, or interest in,
+any Trademarks. Whether or not You and Original Contributor enter into
+the Trademark License, You agree not to (i) challenge Original
+Contributor's ownership or use of Trademarks; (ii) attempt to register
+any Trademarks, or any mark or logo substantially similar thereto; or
+(iii) incorporate any Trademarks into Your own trademarks, product
+names, service marks, company names, or domain names.
+
+8.2 Integration.
+
+This License represents the complete agreement concerning the subject
+matter hereof.
+
+8.3 Assignment.
+
+Original Contributor may assign this License, and its rights and
+obligations hereunder, in its sole discretion. You may assign the
+Research Use portions of this License and the TCK license to a third
+party upon prior written notice to Original Contributor (which may be
+provided electronically via the Community Web-Server). You may not
+assign the Commercial Use and Trademark license, the Add-On Technology
+License, or the Add-On Technology Source Code Porting License, including
+by way of merger (regardless of whether You are the surviving entity) or
+acquisition, without Original Contributor's prior written consent.
+
+8.4 Severability.
+
+If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. Notwithstanding the foregoing, if You are prohibited by law
+from fully and specifically complying with Sections 2.2 or 3, this
+License will immediately terminate and You must immediately discontinue
+any use of Covered Code.
+
+8.5 Governing Law.
+
+This License shall be governed by the laws of the United States and the
+State of Washington, as applied to contracts entered into and to be
+performed in Washington between Washington residents. The application of
+the United Nations Convention on Contracts for the International Sale of
+Goods is expressly excluded. You agree that the state and federal courts
+located in Seattle, Washington have exclusive jurisdiction over any
+claim relating to the License, including contract and tort claims.
+
+8.6 Dispute Resolution.
+
+a) Arbitration. Any dispute arising out of or relating to this License
+shall be finally settled by arbitration as set out herein, except that
+either party may bring any action, in a court of competent jurisdiction
+(which jurisdiction shall be exclusive), with respect to any dispute
+relating to such party's Intellectual Property Rights or with respect to
+Your compliance with the TCK license. Arbitration shall be administered:
+(i) by the American Arbitration Association (AAA), (ii) in accordance
+with the rules of the United Nations Commission on International Trade
+Law (UNCITRAL) (the "Rules") in effect at the time of arbitration as
+modified herein; and (iii) the arbitrator will apply the substantive
+laws of Washington and the United States. Judgment upon the award
+rendered by the arbitrator may be entered in any court having
+jurisdiction to enforce such award.
+
+b) Arbitration language, venue and damages. All arbitration proceedings
+shall be conducted in English by a single arbitrator selected in
+accordance with the Rules, who must be fluent in English and be either a
+retired judge or practicing attorney having at least ten (10) years
+litigation experience and be reasonably familiar with the technology
+matters relative to the dispute. Unless otherwise agreed, arbitration
+venue shall be in Seattle, Washington. The arbitrator may award monetary
+damages only and nothing shall preclude either party from seeking
+provisional or emergency relief from a court of competent jurisdiction.
+The arbitrator shall have no authority to award damages in excess of
+those permitted in this License and any such award in excess is void.
+All awards will be payable in U.S. dollars and may include, for the
+prevailing party (i) pre-judgment award interest, (ii) reasonable
+attorneys' fees incurred in connection with the arbitration, and (iii)
+reasonable costs and expenses incurred in enforcing the award. The
+arbitrator will order each party to produce identified documents and
+respond to no more than twenty-five single question interrogatories.
+
+8.7 Construction.
+
+Any law or regulation, which provides that the language of a contract
+shall be construed against the drafter, shall not apply to this License.
+
+8.8 U.S. Government End Users.
+
+The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software"
+and "commercial computer software documentation," as such terms are used
+in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
+48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
+End Users acquire Covered Code with only those rights set forth herein.
+You agree to pass this notice to our licensees.
+
+8.9 Marketing Activities.
+
+Licensee hereby grants Original Contributor a non-exclusive,
+non-transferable, limited license to use the Licensee's company name and
+logo ("Licensee Marks") in any presentations, press releases, or
+marketing materials solely for the purpose of identifying Licensee as a
+member of the Helix Community. Licensee shall provide samples of
+Licensee Marks to Original Contributor upon request by Original
+Contributor. Original Contributor acknowledges that the Licensee Marks
+are the trademarks of Licensee. Original Contributor shall not use the
+Licensee Marks in a way that may imply that Original Contributor is an
+agency or branch of Licensee. Original Contributor understands and
+agrees that the use of any Licensee Marks in connection with this
+Agreement shall not create any right, title or interest, in, or to the
+Licensee Marks or any Licensee trademarks and that all such use and
+goodwill associated with any such trademarks will inure to the benefit
+of Licensee. Further the Original Contributor will stop usage of the
+Licensee Marks upon Licensee's request.
+
+8.10 Press Announcements.
+
+You may make press announcements or other public statements regarding
+this License without the prior written consent of the Original
+Contributor, if Your statement is limited to announcing the licensing of
+the Covered Code or the availability of Your Product and its
+compatibility with the Covered Code. All other public announcements
+regarding this license require the prior written consent of the Original
+Contributor. Consent requests are welcome at press@helixcommunity.org.
+
+8.11 International Use.
+
+a) Export/Import laws. Covered Code is subject to U.S. export control
+laws and may be subject to export or import regulations in other
+countries. Each party agrees to comply strictly with all such laws and
+regulations and acknowledges their responsibility to obtain such
+licenses to export, re-export, or import as may be required. You agree
+to pass these obligations to Your licensees.
+
+b) Intellectual Property Protection. Due to limited intellectual
+property protection and enforcement in certain countries, You agree not
+to redistribute the Original Code, Upgraded Code, TCK and Specifications
+to any country on the list of restricted countries on the Community Web
+Server.
+
+8.12 Language.
+
+This License is in the English language only, which language shall be
+controlling in all respects, and all versions of this License in any
+other language shall be for accommodation only and shall not be binding
+on the parties to this License. All communications and notices made or
+given pursuant to this License, and all documentation and support to be
+provided, unless otherwise noted, shall be in the English language.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH REALNETWORKS, INC. IF YOU ARE AGREEING
+TO THIS LICENSE ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE
+AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER YOU ARE ACTING
+ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, YOU MUST BE OF MAJORITY
+AGE AND BE OTHERWISE COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT
+MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND
+CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO EXIT.
+
+
+    GLOSSARY
+
+1. *"Added Value"* means code which:
+
+(i) has a principal purpose which is substantially different from that
+of the stand-alone Technology;
+
+(ii) represents a significant functional and value enhancement to the
+Technology;
+
+(iii) operates in conjunction with the Technology; and
+
+(iv) is not marketed as a technology which replaces or substitutes for
+the Technology
+
+2. "*Applicable Patent Rights*" mean: (a) in the case where Original
+Contributor is the grantor of rights, claims of patents that (i) are now
+or hereafter acquired, owned by or assigned to Original Contributor and
+(ii) are necessarily infringed by using or making the Original Code or
+Upgraded Code, including Modifications provided by Original Contributor,
+alone and not in combination with other software or hardware; and (b) in
+the case where Licensee is the grantor of rights, claims of patents that
+(i) are now or hereafter acquired, owned by or assigned to Licensee and
+(ii) are infringed (directly or indirectly) by using or making
+Licensee's Modifications or Error Corrections, taken alone or in
+combination with Covered Code.
+
+3. "*Application Programming Interfaces (APIs)"* means the interfaces,
+associated header files, service provider interfaces, and protocols that
+enable a device, application, Operating System, or other program to
+obtain services from or make requests of (or provide services in
+response to requests from) other programs, and to use, benefit from, or
+rely on the resources, facilities, and capabilities of the relevant
+programs using the APIs. APIs includes the technical documentation
+describing the APIs, the Source Code constituting the API, and any
+Header Files used with the APIs.
+
+4. "*Commercial Use*" means any use (internal or external), copying,
+sublicensing or distribution (internal or external), directly or
+indirectly of Covered Code by You other than Your Research Use of
+Covered Code within Your business or organization or in conjunction with
+other Licensees with equivalent Research Use rights. Commercial Use
+includes any use of the Covered Code for direct or indirect commercial
+or strategic gain, advantage or other business purpose. Any Commercial
+Use requires execution of Attachment D by You and Original Contributor.
+
+5. "*Community Code*" means the Original Code, Upgraded Code, Error
+Corrections, Shared Modifications, or any combination thereof.
+
+6. "*Community Webserver(s)"* means the webservers designated by
+Original Contributor for access to the Original Code, Upgraded Code, TCK
+and Specifications and for posting Error Corrections and Shared
+Modifications.
+
+7. "*Compliant Covered Code*" means Covered Code that complies with the
+requirements of the TCK.
+
+8. "*Contributor*" means each Licensee that creates or contributes to
+the creation of any Error Correction or Shared Modification.
+
+9. "*Covered Code*" means the Original Code, Upgraded Code,
+Modifications, or any combination thereof.
+
+10. "*Error Correction*" means any change made to Community Code which
+conforms to the Specification and corrects the adverse effect of a
+failure of Community Code to perform any function set forth in or
+required by the Specifications.
+
+11. "*Executable*" means Covered Code that has been converted from
+Source Code to the preferred form for execution by a computer or digital
+processor (e.g. binary form).
+
+12. "*Extension(s)"* means any additional Interfaces developed by or for
+You which: (i) are designed for use with the Technology; (ii) constitute
+an API for a library of computing functions or services; and (iii) are
+disclosed or otherwise made available to third party software developers
+for the purpose of developing software which invokes such additional
+Interfaces. The foregoing shall not apply to software developed by Your
+subcontractors to be exclusively used by You.
+
+13. "*Header File(s)"* means that portion of the Source Code that
+provides the names and types of member functions, data members, class
+definitions, and interface definitions necessary to implement the APIs
+for the Covered Code. Header Files include, files specifically
+designated by Original Contributor as Header Files. Header Files do not
+include the code necessary to implement the functionality underlying the
+Interface.
+
+14. *"Helix DNA Server Technology"* means the program(s) that implement
+the Helix Universal Server streaming engine for the Technology as
+defined in the Specification.
+
+15. *"Helix DNA Client Technology"* means the Covered Code that
+implements the RealOne Player engine as defined in the Specification.
+
+16. *"Helix DNA Producer Technology"* means the Covered Code that
+implements the Helix Producer engine as defined in the Specification.
+
+17. *"Helix DNA Technology"* means the Helix DNA Server Technology, the
+Helix DNA Client Technology, the Helix DNA Producer Technology and other
+Helix technologies designated by Original Contributor.
+
+18. "*Intellectual Property Rights*" means worldwide statutory and
+common law rights associated solely with (i) Applicable Patent Rights;
+(ii) works of authorship including copyrights, copyright applications,
+copyright registrations and "moral rights"; (iii) the protection of
+trade and industrial secrets and confidential information; and (iv)
+divisions, continuations, renewals, and re-issuances of the foregoing
+now existing or acquired in the future.
+
+19. *"Interface*" means interfaces, functions, properties, class
+definitions, APIs, Header Files, GUIDs, V-Tables, and/or protocols
+allowing one piece of software, firmware or hardware to communicate or
+interoperate with another piece of software, firmware or hardware.
+
+20. "*Internal Deployment Use*" means use of Compliant Covered Code
+(excluding Research Use) within Your business or organization only by
+Your employees and/or agents on behalf of Your business or organization,
+but not to provide services, including content distribution, to third
+parties, subject to execution of Attachment D by You and Original
+Contributor, if required.
+
+21. "*Licensee*" means any party that has entered into and has in effect
+a version of this License with Original Contributor.
+
+22. "*MIME type*" means a description of what type of media or other
+content is in a file, including by way of example but not limited to
+'audio/x-pn-realaudio-plugin.'
+
+23. "*Modification(s)"* means (i) any addition to, deletion from and/or
+change to the substance and/or structure of the Covered Code, including
+Interfaces; (ii) the combination of any Covered Code and any previous
+Modifications; (iii) any new file or other representation of computer
+program statements that contains any portion of Covered Code; and/or
+(iv) any new Source Code implementing any portion of the Specifications.
+
+24. "*MP3 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Picture Experts Group known as MPEG-1 Audio Layer-3 or MP3,
+including but not limited to all past and future versions, profiles,
+extensions, parts and amendments relating to the MP3 specification.
+
+25. "*MPEG-4 Patents*" means any patents necessary to make, use or sell
+technology implementing any portion of the specification developed by
+the Moving Pictures Experts Group known as MPEG-4, including but not
+limited to all past and future versions, profiles, extensions, parts and
+amendments relating to the MPEG-4 specification.
+
+26. "*Original Code*" means the initial Source Code for the Technology
+as described on the Community Web Server.
+
+27. "*Original Contributor*" means RealNetworks, Inc., its affiliates
+and its successors and assigns.
+
+28. "*Original Contributor MIME Type*" means the MIME registry, browser
+preferences, or local file/protocol associations invoking any Helix DNA
+Client-based application, including the RealOne Player, for playback of
+RealAudio, RealVideo, other RealMedia MIME types or datatypes (e.g.,
+.ram, .rnx, .rpm, .ra, .rm, .rp, .rt, .rf, .prx, .mpe, .rmp, .rmj, .rav,
+.rjs, .rmx, .rjt, .rms), and any other Original Contributor-specific or
+proprietary MIME types that Original Contributor may introduce in the
+future.
+
+29. "*Personal Use*" means use of Covered Code by an individual solely
+for his or her personal, private and non-commercial purposes. An
+individual's use of Covered Code in his or her capacity as an officer,
+employee, member, independent contractor or agent of a corporation,
+business or organization (commercial or non-commercial) does not qualify
+as Personal Use.
+
+30. "*RealMedia File Format*" means the file format designed and
+developed by RealNetworks for storing multimedia data and used to store
+RealAudio and RealVideo encoded streams. Valid RealMedia File Format
+extensions include: .rm, .rmj, .rmc, .rmvb, .rms.
+
+31. "*RCSL Webpage*" means the RealNetworks Community Source License
+webpage located at https://www.helixcommunity.org/content/rcsl or such
+other URL that Original Contributor may designate from time to time.
+
+32. "*Reformatted Specifications*" means any revision to the
+Specifications which translates or reformats the Specifications (as for
+example in connection with Your documentation) but which does not alter,
+subset or superset * *the functional or operational aspects of the
+Specifications.
+
+33. "*Research Use*" means use and distribution of Covered Code only for
+Your Personal Use, research or development use and expressly excludes
+Internal Deployment Use and Commercial Use. Research Use also includes
+use of Covered Code to teach individuals how to use Covered Code.
+
+34. "*Shared Modifications*" means Modifications that You distribute or
+use for a Commercial Use, in addition to any Modifications provided by
+You, at Your option, pursuant to Section 2.2, or received by You from a
+Contributor pursuant to Section 2.3.
+
+35. "*Source Code*" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control
+compilation and installation of an Executable, or source code
+differential comparisons against either the Original Code or another
+well known, available Covered Code of the Contributor's choice. The
+Source Code can be in a compressed or archival form, provided the
+appropriate decompression or de-archiving software is widely available
+for no charge.
+
+36. "*Specifications*" means the specifications for the Technology and
+other documentation, as designated on the Community Web Server, as may
+be revised by Original Contributor from time to time.
+
+37. "*Trademarks*" means Original Contributor's trademarks and logos,
+including, but not limited to, RealNetworks, RealAudio, RealVideo,
+RealOne, RealSystem, SureStream, Helix, Helix DNA and other trademarks
+whether now used or adopted in the future.
+
+38. "*Technology*" means the technology described in Attachment B, and
+Upgrades.
+
+39. "*Technology Compatibility Kit"* or *"TCK*" means the test programs,
+procedures, acceptance criteria and/or other requirements, designated by
+Original Contributor for use in verifying compliance of Covered Code
+with the Specifications, in conjunction with the Original Code and
+Upgraded Code. Original Contributor may, in its sole discretion and from
+time to time, revise a TCK to correct errors and/or omissions and in
+connection with Upgrades.
+
+40. "*Upgrade(s)"* means new versions of Technology designated
+exclusively by Original Contributor as an "Upgrade" and released by
+Original Contributor from time to time under the terms of the License.
+
+41. "*Upgraded Code*" means the Source Code and/or Executables for
+Upgrades, possibly including Modifications made by Contributors.
+
+42. *"User's Guide"* means the users guide for the TCK which Original
+Contributor makes available to You to provide direction in how to run
+the TCK and properly interpret the results, as may be revised by
+Original Contributor from time to time.
+
+43. "*You(r)*" means an individual, or a legal entity acting by and
+through an individual or individuals, exercising rights either under
+this License or under a future version of this License issued pursuant
+to Section 4.1. For legal entities, "You(r)" includes any entity that by
+majority voting interest controls, is controlled by, or is under common
+control with You.
+
+44. "*Your Products*" means any (i) hardware products You distribute
+integrating the Covered Code; (ii) any software products You distribute
+with the Covered Code that utilize the APIs of the Covered Code; or
+(iii) any services You provide using the Covered Code.
+
+
+  ATTACHMENT A
+
+REQUIRED NOTICES
+
+
+    ATTACHMENT A-1
+
+REQUIRED IN ALL CASES
+
+Notice to be included in header file of all Error Corrections and Shared
+Modifications:
+
+Portions Copyright 1994-2003 © RealNetworks, Inc. All rights reserved.
+
+The contents of this file, and the files included with this file, are
+subject to the current version of RealNetworks Community Source License
+Version 1.1 (the "License"). You may not use this file except in
+compliance with the License executed by both You and RealNetworks. You
+may obtain a copy of the License at *
+https://www.helixcommunity.org/content/rcsl.* You may also obtain a copy
+of the License by contacting RealNetworks directly. Please see the
+License for the rights, obligations and limitations governing use of the
+contents of the file.
+
+This file is part of the Helix DNA technology. RealNetworks, Inc., is
+the developer of the Original code and owns the copyrights in the
+portions it created.
+
+This file, and the files included with this file, are distributed on an
+'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
+LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s):
+
+_______________________________________________
+
+Technology Compatibility Kit Test Suite(s) Location:
+
+________________________________
+
+
+    ATTACHMENT A-2
+
+SAMPLE LICENSEE CERTIFICATION
+
+"By clicking the `Agree' button below, You certify that You are a
+Licensee in good standing under the RealNetworks Community Source
+License, ("License") and that Your access, use and distribution of code
+and information You may obtain at this site is subject to the License.
+If You are not a Licensee under the RealNetworks Community Source
+License You agree not to download, copy or use the Helix DNA technology.
+
+
+    ATTACHMENT A-3
+
+REQUIRED STUDENT NOTIFICATION
+
+"This software and related documentation has been obtained by Your
+educational institution subject to the RealNetworks Community Source
+License. You have been provided access to the software and related
+documentation for use only in connection with your course work and
+research activities as a matriculated student of Your educational
+institution. Any other use is expressly prohibited.
+
+THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIAL OF
+REALNETWORKS, INC, WHICH ARE PROTECTED BY VARIOUS INTELLECTUAL PROPERTY
+RIGHTS.
+
+You may not use this file except in compliance with the License. You may
+obtain a copy of the License on the web at
+https://www.helixcommunity.org/content/rcsl.
+
+*
+*
+
+
+  ATTACHMENT B
+
+Description of Technology
+
+Helix DNA, which consists of Helix DNA Client, Helix DNA Server and
+Helix DNA Producer.
+
+Description of "Technology"
+
+Helix DNA Technology v1.0 as described on the Community Web Server.
+
+
+  ATTACHMENT C
+
+TECHNOLOGY COMPATIBILITY KIT LICENSE
+
+The following license is effective for the *Helix DNA* Technology
+Compatibility Kit - as described on the Community Web Server. The
+Technology Compatibility Kit(s) for the Technology specified in
+Attachment B may be accessed at the Community Web Server.
+
+1. TCK License.
+
+1.1 Grants to use TCK
+
+Subject to the terms and restrictions set forth below and the
+RealNetworks Community Source License, and the Research Use license,
+Original Contributor grants to You a worldwide, non-exclusive,
+non-transferable license, to the extent of Original Contributor's
+Intellectual Property Rights in the TCK (without the right to
+sublicense), to use the TCK to develop and test Covered Code.
+
+1.2 TCK Use Restrictions.
+
+You are not authorized to create derivative works of the TCK or use the
+TCK to test any implementation of the Specification that is not Covered
+Code. You may not publish Your test results or make claims of
+comparative compatibility with respect to other implementations of the
+Specification. In consideration for the license grant in Section 1.1
+above You agree not to develop Your own tests that are intended to
+validate conformation with the Specification.
+
+2. Test Results.
+
+You agree to provide to Original Contributor or the third party test
+facility if applicable, Your test results that demonstrate that Covered
+Code is Compliant Covered Code and that Original Contributor may publish
+or otherwise distribute such test results.
+
+PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
+"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
+CONDITIONS OF THIS LICENSE WITH THE ORIGINAL CONTRIBUTOR, REALNETWORKS,
+INC. IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY, YOU
+REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE.
+WHETHER YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY,
+YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE COMPETENT TO ENTER INTO
+CONTRACTS. IF YOU DO NOT MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY
+OF THE TERMS AND CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON
+TO EXIT.
+
+*ACCEPT / REJECT
+*
+
+*
+*
+
+*To agree to the R&D/academic terms of this license, please register
+<https://www.helixcommunity.org/2002/intro/why-register> on the site --
+you will then be given a chance to agree to the clickwrap RCSL
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+R&D License
+<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
+and gain access to the RCSL-licensed source code.  To build or deploy
+commercial applications based on the RCSL, you will need to agree to the
+Commercial Use license attachments
+<https://www.helixcommunity.org/content/rcsl-attachments>*
+
+
+

+ 518 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/RPSL.txt

@@ -0,0 +1,518 @@
+RealNetworks Public Source License Version 1.0
+(Rev. Date October 28, 2002)
+
+1. General Definitions. This License applies to any program or other work which
+RealNetworks, Inc., or any other entity that elects to use this license,
+("Licensor") makes publicly available and which contains a notice placed by
+Licensor identifying such program or work as "Original Code" and stating that it
+is subject to the terms of this RealNetworks Public Source License version 1.0
+(or subsequent version thereof) ("License"). You are not required to accept this
+License. However, nothing else grants You permission to use, copy, modify or
+distribute the software or its derivative works. These actions are prohibited by
+law if You do not accept this License. Therefore, by modifying, copying or
+distributing the software (or any work based on the software), You indicate your
+acceptance of this License to do so, and all its terms and conditions. In
+addition, you agree to the terms of this License by clicking the Accept button
+or downloading the software. As used in this License:
+
+1.1 "Applicable Patent Rights" mean: (a) in the case where Licensor is the
+grantor of rights, claims of patents that (i) are now or hereafter acquired,
+owned by or assigned to Licensor and (ii) are necessarily infringed by using or
+making the Original Code alone and not in combination with other software or
+hardware; and (b) in the case where You are the grantor of rights, claims of
+patents that (i) are now or hereafter acquired, owned by or assigned to You and
+(ii) are infringed (directly or indirectly) by using or making Your
+Modifications, taken alone or in combination with Original Code.
+
+1.2 "Compatible Source License" means any one of the licenses listed on Exhibit
+B or at https://www.helixcommunity.org/content/complicense or other licenses
+specifically identified by Licensor in writing. Notwithstanding any term to the
+contrary in any Compatible Source License, any code covered by any Compatible
+Source License that is used with Covered Code must be made readily available in
+Source Code format for royalty-free use under the terms of the Compatible Source
+License or this License.
+
+1.3 "Contributor" means any person or entity that creates or contributes to the
+creation of Modifications.
+
+1.4 "Covered Code" means the Original Code, Modifications, the combination of
+Original Code and any Modifications, and/or any respective portions thereof.
+
+1.5 "Deploy" means to use, sublicense or distribute Covered Code other than for
+Your internal research and development (R&D) and/or Personal Use, and includes
+without limitation, any and all internal use or distribution of Covered Code
+within Your business or organization except for R&D use and/or Personal Use, as
+well as direct or indirect sublicensing or distribution of Covered Code by You
+to any third party in any form or manner.
+
+1.6 "Derivative Work" means either the Covered Code or any derivative work under
+United States copyright law, and including any work containing or including any
+portion of the Covered Code or Modifications, either verbatim or with
+modifications and/or translated into another language. Derivative Work also
+includes any work which combines any portion of Covered Code or Modifications
+with code not otherwise governed by the terms of this License.
+
+1.7 "Externally Deploy" means to Deploy the Covered Code in any way that may be
+accessed or used by anyone other than You, used to provide any services to
+anyone other than You, or used in any way to deliver any content to anyone other
+than You, whether the Covered Code is distributed to those parties, made
+available as an application intended for use over a computer network, or used to
+provide services or otherwise deliver content to anyone other than You.
+
+1.8. "Interface" means interfaces, functions, properties, class definitions,
+APIs, header files, GUIDs, V-Tables, and/or protocols allowing one piece of
+software, firmware or hardware to communicate or interoperate with another piece
+of software, firmware or hardware.
+
+1.9 "Modifications" mean any addition to, deletion from, and/or change to, the
+substance and/or structure of the Original Code, any previous Modifications, the
+combination of Original Code and any previous Modifications, and/or any
+respective portions thereof. When code is released as a series of files, a
+Modification is: (a) any addition to or deletion from the contents of a file
+containing Covered Code; and/or (b) any new file or other representation of
+computer program statements that contains any part of Covered Code.
+
+1.10 "Original Code" means (a) the Source Code of a program or other work as
+originally made available by Licensor under this License, including the Source
+Code of any updates or upgrades to such programs or works made available by
+Licensor under this License, and that has been expressly identified by Licensor
+as such in the header file(s) of such work; and (b) the object code compiled
+from such Source Code and originally made available by Licensor under this
+License.
+
+1.11 "Personal Use" means use of Covered Code by an individual solely for his or
+her personal, private and non-commercial purposes. An individual's use of
+Covered Code in his or her capacity as an officer, employee, member, independent
+contractor or agent of a corporation, business or organization (commercial or
+non-commercial) does not qualify as Personal Use.
+
+1.12 "Source Code" means the human readable form of a program or other work that
+is suitable for making modifications to it, including all modules it contains,
+plus any associated interface definition files, scripts used to control
+compilation and installation of an executable (object code).
+
+1.13 "You" or "Your" means an individual or a legal entity exercising rights
+under this License. For legal entities, "You" or "Your" includes any entity
+which controls, is controlled by, or is under common control with, You, where
+"control" means (a) the power, direct or indirect, to cause the direction or
+management of such entity, whether by contract or otherwise, or (b) ownership of
+fifty percent (50%) or more of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Permitted Uses; Conditions & Restrictions. Subject to the terms and
+conditions of this License, Licensor hereby grants You, effective on the date
+You accept this License (via downloading or using Covered Code or otherwise
+indicating your acceptance of this License), a worldwide, royalty-free,
+non-exclusive copyright license, to the extent of Licensor's copyrights cover
+the Original Code, to do the following:
+
+2.1 You may reproduce, display, perform, modify and Deploy Covered Code,
+provided that in each instance:
+
+(a) You must retain and reproduce in all copies of Original Code the copyright
+and other proprietary notices and disclaimers of Licensor as they appear in the
+Original Code, and keep intact all notices in the Original Code that refer to
+this License;
+
+(b) You must include a copy of this License with every copy of Source Code of
+Covered Code and documentation You distribute, and You may not offer or impose
+any terms on such Source Code that alter or restrict this License or the
+recipients' rights hereunder, except as permitted under Section 6;
+
+(c) You must duplicate, to the extent it does not already exist, the notice in
+Exhibit A in each file of the Source Code of all Your Modifications, and cause
+the modified files to carry prominent notices stating that You changed the files
+and the date of any change;
+
+(d) You must make Source Code of all Your Externally Deployed Modifications
+publicly available under the terms of this License, including the license grants
+set forth in Section 3 below, for as long as you Deploy the Covered Code or
+twelve (12) months from the date of initial Deployment, whichever is longer. You
+should preferably distribute the Source Code of Your Deployed Modifications
+electronically (e.g. download from a web site); and
+
+(e) if You Deploy Covered Code in object code, executable form only, You must
+include a prominent notice, in the code itself as well as in related
+documentation, stating that Source Code of the Covered Code is available under
+the terms of this License with information on how and where to obtain such
+Source Code. You must also include the Object Code Notice set forth in Exhibit A
+in the "about" box or other appropriate place where other copyright notices are
+placed, including any packaging materials.
+
+2.2 You expressly acknowledge and agree that although Licensor and each
+Contributor grants the licenses to their respective portions of the Covered Code
+set forth herein, no assurances are provided by Licensor or any Contributor that
+the Covered Code does not infringe the patent or other intellectual property
+rights of any other entity. Licensor and each Contributor disclaim any liability
+to You for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, You hereby assume sole responsibility to
+secure any other intellectual property rights needed, if any. For example, if a
+third party patent license is required to allow You to make, use, sell, import
+or offer for sale the Covered Code, it is Your responsibility to acquire such
+license(s).
+
+2.3 Subject to the terms and conditions of this License, Licensor hereby grants
+You, effective on the date You accept this License (via downloading or using
+Covered Code or otherwise indicating your acceptance of this License), a
+worldwide, royalty-free, perpetual, non-exclusive patent license under
+Licensor's Applicable Patent Rights to make, use, sell, offer for sale and
+import the Covered Code, provided that in each instance you comply with the
+terms of this License.
+
+3. Your Grants. In consideration of, and as a condition to, the licenses granted
+to You under this License:
+
+(a) You grant to Licensor and all third parties a non-exclusive, perpetual,
+irrevocable, royalty free license under Your Applicable Patent Rights and other
+intellectual property rights owned or controlled by You, to make, sell, offer
+for sale, use, import, reproduce, display, perform, modify, distribute and
+Deploy Your Modifications of the same scope and extent as Licensor's licenses
+under Sections 2.1 and 2.2; and
+
+(b) You grant to Licensor and its subsidiaries a non-exclusive, worldwide,
+royalty-free, perpetual and irrevocable license, under Your Applicable Patent
+Rights and other intellectual property rights owned or controlled by You, to
+make, use, sell, offer for sale, import, reproduce, display, perform,
+distribute, modify or have modified (for Licensor and/or its subsidiaries),
+sublicense and distribute Your Modifications, in any form and for any purpose,
+through multiple tiers of distribution.
+
+(c) You agree not use any information derived from Your use and review of the
+Covered Code, including but not limited to any algorithms or inventions that may
+be contained in the Covered Code, for the purpose of asserting any of Your
+patent rights, or assisting a third party to assert any of its patent rights,
+against Licensor or any Contributor.
+
+4. Derivative Works. You may create a Derivative Work by combining Covered Code
+with other code not otherwise governed by the terms of this License and
+distribute the Derivative Work as an integrated product. In each such instance,
+You must make sure the requirements of this License are fulfilled for the
+Covered Code or any portion thereof, including all Modifications.
+
+4.1 You must cause any Derivative Work that you distribute, publish or
+Externally Deploy, that in whole or in part contains or is derived from the
+Covered Code or any part thereof, to be licensed as a whole at no charge to all
+third parties under the terms of this License and no other license except as
+provided in Section 4.2. You also must make Source Code available for the
+Derivative Work under the same terms as Modifications, described in Sections 2
+and 3, above.
+
+4.2 Compatible Source Licenses. Software modules that have been independently
+developed without any use of Covered Code and which contain no portion of the
+Covered Code, Modifications or other Derivative Works, but are used or combined
+in any way wtih the Covered Code or any Derivative Work to form a larger
+Derivative Work, are exempt from the conditions described in Section 4.1 but
+only to the extent that: the software module, including any software that is
+linked to, integrated with, or part of the same applications as, the software
+module by any method must be wholly subject to one of the Compatible Source
+Licenses. Notwithstanding the foregoing, all Covered Code must be subject to the
+terms of this License. Thus, the entire Derivative Work must be licensed under a
+combination of the RPSL (for Covered Code) and a Compatible Source License for
+any independently developed software modules within the Derivative Work. The
+foregoing requirement applies even if the Compatible Source License would
+ordinarily allow the software module to link with, or form larger works with,
+other software that is not subject to the Compatible Source License. For
+example, although the Mozilla Public License v1.1 allows Mozilla code to be
+combined with proprietary software that is not subject to the MPL, if
+MPL-licensed code is used with Covered Code the MPL-licensed code could not be
+combined or linked with any code not governed by the MPL. The general intent of
+this section 4.2 is to enable use of Covered Code with applications that are
+wholly subject to an acceptable open source license. You are responsible for
+determining whether your use of software with Covered Code is allowed under Your
+license to such software.
+
+4.3 Mere aggregation of another work not based on the Covered Code with the
+Covered Code (or with a work based on the Covered Code) on a volume of a storage
+or distribution medium does not bring the other work under the scope of this
+License. If You deliver the Covered Code for combination and/or integration with
+an application previously provided by You (for example, via automatic updating
+technology), such combination and/or integration constitutes a Derivative Work
+subject to the terms of this License.
+
+5. Exclusions From License Grant. Nothing in this License shall be deemed to
+grant any rights to trademarks, copyrights, patents, trade secrets or any other
+intellectual property of Licensor or any Contributor except as expressly stated
+herein. No right is granted to the trademarks of Licensor or any Contributor
+even if such marks are included in the Covered Code. Nothing in this License
+shall be interpreted to prohibit Licensor from licensing under different terms
+from this License any code that Licensor otherwise would have a right to
+license. Modifications, Derivative Works and/or any use or combination of
+Covered Code with other technology provided by Licensor or third parties may
+require additional patent licenses from Licensor which Licensor may grant in its
+sole discretion. No patent license is granted separate from the Original Code or
+combinations of the Original Code with other software or hardware.
+
+5.1. Trademarks. This License does not grant any rights to use the trademarks or
+trade names owned by Licensor ("Licensor Marks" defined in Exhibit C) or to any
+trademark or trade name belonging to any Contributor. No Licensor Marks may be
+used to endorse or promote products derived from the Original Code other than as
+permitted by the Licensor Trademark Policy defined in Exhibit C.
+
+6. Additional Terms. You may choose to offer, and to charge a fee for, warranty,
+support, indemnity or liability obligations and/or other rights consistent with
+the scope of the license granted herein ("Additional Terms") to one or more
+recipients of Covered Code. However, You may do so only on Your own behalf and
+as Your sole responsibility, and not on behalf of Licensor or any Contributor.
+You must obtain the recipient's agreement that any such Additional Terms are
+offered by You alone, and You hereby agree to indemnify, defend and hold
+Licensor and every Contributor harmless for any liability incurred by or claims
+asserted against Licensor or such Contributor by reason of any such Additional
+Terms.
+
+7. Versions of the License. Licensor may publish revised and/or new versions of
+this License from time to time. Each version will be given a distinguishing
+version number. Once Original Code has been published under a particular version
+of this License, You may continue to use it under the terms of that version. You
+may also choose to use such Original Code under the terms of any subsequent
+version of this License published by Licensor. No one other than Licensor has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in part
+pre-release, untested, or not fully tested works. The Covered Code may contain
+errors that could cause failures or loss of data, and may be incomplete or
+contain inaccuracies. You expressly acknowledge and agree that use of the
+Covered Code, or any portion thereof, is at Your sole and entire risk. THE
+COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
+ANY KIND AND LICENSOR AND LICENSOR'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS
+"LICENSOR" FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY
+DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF
+SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET
+ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. LICENSOR AND EACH
+CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE
+COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR
+REQUIREMENTS, THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
+ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO ORAL OR
+WRITTEN DOCUMENTATION, INFORMATION OR ADVICE GIVEN BY LICENSOR, A LICENSOR
+AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY. You
+acknowledge that the Covered Code is not intended for use in high risk
+activities, including, but not limited to, the design, construction, operation
+or maintenance of nuclear facilities, aircraft navigation, aircraft
+communication systems, or air traffic control machines in which case the failure
+of the Covered Code could lead to death, personal injury, or severe physical or
+environmental damage. Licensor disclaims any express or implied warranty of
+fitness for such uses.
+
+9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
+SHALL LICENSOR OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR
+YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER
+UNDER A THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE OR STRICT
+LIABILITY), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF LICENSOR OR SUCH
+CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND
+NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. SOME
+JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF INCIDENTAL OR
+CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event
+shall Licensor's total liability to You for all damages (other than as may be
+required by applicable law) under this License exceed the amount of ten dollars
+($10.00).
+
+10. Ownership. Subject to the licenses granted under this License, each
+Contributor retains all rights, title and interest in and to any Modifications
+made by such Contributor. Licensor retains all rights, title and interest in and
+to the Original Code and any Modifications made by or on behalf of Licensor
+("Licensor Modifications"), and such Licensor Modifications will not be
+automatically subject to this License. Licensor may, at its sole discretion,
+choose to license such Licensor Modifications under this License, or on
+different terms from those contained in this License or may choose not to
+license them at all.
+
+11. Termination. 
+
+11.1 Term and Termination. The term of this License is perpetual unless
+terminated as provided below. This License and the rights granted hereunder will
+terminate:
+
+(a) automatically without notice from Licensor if You fail to comply with any
+term(s) of this License and fail to cure such breach within 30 days of becoming
+aware of such breach;
+
+(b) immediately in the event of the circumstances described in Section 12.5(b);
+or
+
+(c) automatically without notice from Licensor if You, at any time during the
+term of this License, commence an action for patent infringement against
+Licensor (including by cross-claim or counter claim in a lawsuit);
+
+(d) upon written notice from Licensor if You, at any time during the term of
+this License, commence an action for patent infringement against any third party
+alleging that the Covered Code itself (excluding combinations with other
+software or hardware) infringes any patent (including by cross-claim or counter
+claim in a lawsuit).
+
+11.2 Effect of Termination. Upon termination, You agree to immediately stop any
+further use, reproduction, modification, sublicensing and distribution of the
+Covered Code and to destroy all copies of the Covered Code that are in your
+possession or control. All sublicenses to the Covered Code which have been
+properly granted prior to termination shall survive any termination of this
+License. Provisions which, by their nature, should remain in effect beyond the
+termination of this License shall survive, including but not limited to Sections
+3, 5, 8, 9, 10, 11, 12.2 and 13. No party will be liable to any other for
+compensation, indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this License will
+be without prejudice to any other right or remedy of any party.
+
+12. Miscellaneous.
+
+12.1 Government End Users. The Covered Code is a "commercial item" as defined in
+FAR 2.101. Government software and technical data rights in the Covered Code
+include only those rights customarily provided to the public as defined in this
+License. This customary commercial license in technical data and software is
+provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
+Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
+Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
+or Computer Software Documentation). Accordingly, all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+12.2 Relationship of Parties. This License will not be construed as creating an
+agency, partnership, joint venture or any other form of legal association
+between or among You, Licensor or any Contributor, and You will not represent to
+the contrary, whether expressly, by implication, appearance or otherwise.
+
+12.3 Independent Development. Nothing in this License will impair Licensor's
+right to acquire, license, develop, have others develop for it, market and/or
+distribute technology or products that perform the same or similar functions as,
+or otherwise compete with, Modifications, Derivative Works, technology or
+products that You may develop, produce, market or distribute.
+
+12.4 Waiver; Construction. Failure by Licensor or any Contributor to enforce any
+provision of this License will not be deemed a waiver of future enforcement of
+that or any other provision. Any law or regulation which provides that the
+language of a contract shall be construed against the drafter will not apply to
+this License.
+
+12.5 Severability. (a) If for any reason a court of competent jurisdiction finds
+any provision of this License, or portion thereof, to be unenforceable, that
+provision of the License will be enforced to the maximum extent permissible so
+as to effect the economic benefits and intent of the parties, and the remainder
+of this License will continue in full force and effect. (b) Notwithstanding the
+foregoing, if applicable law prohibits or restricts You from fully and/or
+specifically complying with Sections 2 and/or 3 or prevents the enforceability
+of either of those Sections, this License will immediately terminate and You
+must immediately discontinue any use of the Covered Code and destroy all copies
+of it that are in your possession or control.
+
+12.6 Dispute Resolution. Any litigation or other dispute resolution between You
+and Licensor relating to this License shall take place in the Seattle,
+Washington, and You and Licensor hereby consent to the personal jurisdiction of,
+and venue in, the state and federal courts within that District with respect to
+this License. The application of the United Nations Convention on Contracts for
+the International Sale of Goods is expressly excluded.
+
+12.7 Export/Import Laws. This software is subject to all export and import laws
+and restrictions and regulations of the country in which you receive the Covered
+Code and You are solely responsible for ensuring that You do not export,
+re-export or import the Covered Code or any direct product thereof in violation
+of any such restrictions, laws or regulations, or without all necessary
+authorizations.
+
+12.8 Entire Agreement; Governing Law. This License constitutes the entire
+agreement between the parties with respect to the subject matter hereof. This
+License shall be governed by the laws of the United States and the State of
+Washington.
+
+Where You are located in the province of Quebec, Canada, the following clause
+applies: The parties hereby confirm that they have requested that this License
+and all related documents be drafted in English. Les parties ont exig&eacute;
+que le pr&eacute;sent contrat et tous les documents connexes soient
+r&eacute;dig&eacute;s en anglais.
+
+								EXHIBIT A.  
+
+"Copyright &copy; 1995-2002
+RealNetworks, Inc. and/or its licensors. All Rights Reserved.
+
+The contents of this file, and the files included with this file, are subject to
+the current version of the RealNetworks Public Source License Version 1.0 (the
+"RPSL") available at https://www.helixcommunity.org/content/rpsl unless you have
+licensed the file under the RealNetworks Community Source License Version 1.0
+(the "RCSL") available at https://www.helixcommunity.org/content/rcsl, in which
+case the RCSL will apply. You may also obtain the license terms directly from
+RealNetworks. You may not use this file except in compliance with the RPSL or,
+if you have a valid RCSL with RealNetworks applicable to this file, the RCSL.
+Please see the applicable RPSL or RCSL for the rights, obligations and
+limitations governing use of the contents of the file.
+
+This file is part of the Helix DNA Technology. RealNetworks is the developer of
+the Original code and owns the copyrights in the portions it created.
+
+This file, and the files included with this file, is distributed and made
+available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
+IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING
+WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+
+Contributor(s): ____________________________________ 
+
+Technology Compatibility Kit Test
+Suite(s) Location (if licensed under the RCSL): ______________________________ 
+
+Object Code Notice: Helix DNA Client technology included. Copyright (c)
+RealNetworks, Inc., 1995-2002. All rights reserved.
+
+
+								EXHIBIT B 
+
+Compatible Source Licenses for the RealNetworks Public Source License. The
+following list applies to the most recent version of the license as of October
+25, 2002, unless otherwise indicated.
+
+* Academic Free License
+* Apache Software License
+* Apple Public Source License
+* Artistic license
+* Attribution Assurance Licenses
+* BSD license
+* Common Public License (1)
+* Eiffel Forum License
+* GNU General Public License (GPL) (1)
+* GNU Library or "Lesser" General Public License (LGPL) (1)
+* IBM Public License
+* Intel Open Source License
+* Jabber Open Source License
+* MIT license
+* MITRE Collaborative Virtual Workspace License (CVW License)
+* Motosoto License
+* Mozilla Public License 1.0 (MPL)
+* Mozilla Public License 1.1 (MPL)
+* Nokia Open Source License
+* Open Group Test Suite License
+* Python Software Foundation License
+* Ricoh Source Code Public License
+* Sun Industry Standards Source License (SISSL)
+* Sun Public License
+* University of Illinois/NCSA Open Source License
+* Vovida Software License v. 1.0
+* W3C License
+* X.Net License
+* Zope Public License
+* zlib/libpng license
+
+(1) Note: because this license contains certain reciprocal licensing terms that
+purport to extend to independently developed code, You may be prohibited under
+the terms of this otherwise compatible license from using code licensed under
+its terms with Covered Code because Covered Code may only be licensed under the
+RealNetworks Public Source License. Any attempt to apply non RPSL license terms,
+including without limitation the GPL, to Covered Code is expressly forbidden.
+You are responsible for ensuring that Your use of Compatible Source Licensed
+code does not violate either the RPSL or the Compatible Source License.
+
+The latest version of this list can be found at:
+https://www.helixcommunity.org/content/complicense
+
+								EXHIBIT C 
+
+RealNetworks' Trademark policy.  
+
+RealNetworks defines the following trademarks collectively as "Licensor
+Trademarks": "RealNetworks", "RealPlayer", "RealJukebox", "RealSystem",
+"RealAudio", "RealVideo", "RealOne Player", "RealMedia", "Helix" or any other
+trademarks or trade names belonging to RealNetworks.
+
+RealNetworks "Licensor Trademark Policy" forbids any use of Licensor Trademarks
+except as permitted by and in strict compliance at all times with RealNetworks'
+third party trademark usage guidelines which are posted at
+http://www.realnetworks.com/info/helixlogo.html.
+

+ 158 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/mp3dec.dsp

@@ -0,0 +1,158 @@
+# Microsoft Developer Studio Project File - Name="mp3dec" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=mp3dec - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "mp3dec.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "mp3dec.mak" CFG="mp3dec - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "mp3dec - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "mp3dec - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "mp3dec - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "release"
+# PROP Intermediate_Dir "rel_obj"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\..\..\common\include" /I "..\.." /I "..\..\..\pub" /I "..\..\..\..\..\..\..\common\runtime\pub" /D "NDEBUG" /D "REL_ENABLE_ASSERTS" /D "_WINDOWS" /D "_LIB" /D "WIN32" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF  "$(CFG)" == "mp3dec - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "debug"
+# PROP Intermediate_Dir "debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\..\..\common\include" /I "..\.." /I "..\..\..\pub" /I "..\..\..\..\..\..\..\common\runtime\pub" /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /D "_WINDOWS" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ENDIF 
+
+# Begin Target
+
+# Name "mp3dec - Win32 Release"
+# Name "mp3dec - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Group "general"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\mp3dec.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\mp3tabs.c
+# End Source File
+# End Group
+# Begin Group "csource"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\bitstream.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\buffers.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\dct32.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\dequant.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\dqchan.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\huffman.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\hufftabs.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\imdct.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\polyphase.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\scalfact.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\stproc.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\subband.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\trigtabs.c
+# End Source File
+# End Group
+# End Group
+# End Target
+# End Project

+ 44 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/mp3dec.dsw

@@ -0,0 +1,44 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "mp3dec"=.\mp3dec.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "testwrap"=.\testwrap.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name mp3dec
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+

+ 174 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/projects/visualc/testwrap.dsp

@@ -0,0 +1,174 @@
+# Microsoft Developer Studio Project File - Name="testwrap" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=testwrap - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "testwrap.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "testwrap.mak" CFG="testwrap - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "testwrap - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "testwrap - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "testwrap - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "release"
+# PROP Intermediate_Dir "rel_obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\pub" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HELIX_FEATURE_AUDIO_MPA_LAYER3" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"release\mp3dec.exe"
+
+!ELSEIF  "$(CFG)" == "testwrap - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "debug"
+# PROP Intermediate_Dir "debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\pub" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HELIX_FEATURE_AUDIO_MPA_LAYER3" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"debug\mp3dec.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "testwrap - Win32 Release"
+# Name "testwrap - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Group "cppwrapper"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\mpadecobj.cpp
+
+!IF  "$(CFG)" == "testwrap - Win32 Release"
+
+# ADD CPP /I "..\..\..\testwrap\cppshim"
+
+!ELSEIF  "$(CFG)" == "testwrap - Win32 Debug"
+
+# PROP Exclude_From_Build 1
+# ADD CPP /I "..\..\..\testwrap\cppshim"
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\testwrap\winmain.cpp
+
+!IF  "$(CFG)" == "testwrap - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "testwrap - Win32 Debug"
+
+# PROP Exclude_From_Build 1
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "cwrapper"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\testwrap\main.c
+
+!IF  "$(CFG)" == "testwrap - Win32 Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF  "$(CFG)" == "testwrap - Win32 Debug"
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\testwrap\timing.c
+
+!IF  "$(CFG)" == "testwrap - Win32 Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF  "$(CFG)" == "testwrap - Win32 Debug"
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\..\testwrap\debug.c
+
+!IF  "$(CFG)" == "testwrap - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "testwrap - Win32 Debug"
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project

+ 391 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/scalfact.c

@@ -0,0 +1,391 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * scalfact.c - scalefactor unpacking functions
+ **************************************************************************************/
+
+#include "coder.h"
+
+/* scale factor lengths (num bits) */
+static const char SFLenTab[16][2] = {
+	{0, 0},    {0, 1},
+	{0, 2},    {0, 3},
+	{3, 0},    {1, 1},
+	{1, 2},    {1, 3},
+	{2, 1},    {2, 2},
+	{2, 3},    {3, 1},
+	{3, 2},    {3, 3},
+	{4, 2},    {4, 3},
+};
+
+/**************************************************************************************
+ * Function:    UnpackSFMPEG1
+ *
+ * Description: unpack MPEG 1 scalefactors from bitstream
+ *
+ * Inputs:      BitStreamInfo, SideInfoSub, ScaleFactorInfoSub structs for this
+ *                granule/channel
+ *              vector of scfsi flags from side info, length = 4 (MAX_SCFBD)
+ *              index of current granule
+ *              ScaleFactorInfoSub from granule 0 (for granule 1, if scfsi[i] is set, 
+ *                then we just replicate the scale factors from granule 0 in the
+ *                i'th set of scalefactor bands)
+ *
+ * Outputs:     updated BitStreamInfo struct
+ *              scalefactors in sfis (short and/or long arrays, as appropriate)
+ *
+ * Return:      none
+ *
+ * Notes:       set order of short blocks to s[band][window] instead of s[window][band]
+ *                so that we index through consectutive memory locations when unpacking 
+ *                (make sure dequantizer follows same convention)
+ *              Illegal Intensity Position = 7 (always) for MPEG1 scale factors
+ **************************************************************************************/
+static void UnpackSFMPEG1(BitStreamInfo *bsi, SideInfoSub *sis, ScaleFactorInfoSub *sfis, int *scfsi, int gr, ScaleFactorInfoSub *sfisGr0)
+{
+	int sfb;
+	int slen0, slen1;
+	
+	/* these can be 0, so make sure GetBits(bsi, 0) returns 0 (no >> 32 or anything) */
+	slen0 = (int)SFLenTab[sis->sfCompress][0];
+	slen1 = (int)SFLenTab[sis->sfCompress][1];
+	
+	if (sis->blockType == 2) {
+		/* short block, type 2 (implies winSwitchFlag == 1) */
+		if (sis->mixedBlock) {          
+			/* do long block portion */
+			for (sfb = 0; sfb < 8; sfb++)
+				sfis->l[sfb] =    (char)GetBits(bsi, slen0);
+			sfb = 3;
+		} else {
+			/* all short blocks */
+			sfb = 0;
+		}
+
+		for (      ; sfb < 6; sfb++) {
+			sfis->s[sfb][0] = (char)GetBits(bsi, slen0);
+			sfis->s[sfb][1] = (char)GetBits(bsi, slen0);
+			sfis->s[sfb][2] = (char)GetBits(bsi, slen0);
+		}
+
+		for (      ; sfb < 12; sfb++) {
+			sfis->s[sfb][0] = (char)GetBits(bsi, slen1);
+			sfis->s[sfb][1] = (char)GetBits(bsi, slen1);
+			sfis->s[sfb][2] = (char)GetBits(bsi, slen1);
+		}
+
+		/* last sf band not transmitted */
+		sfis->s[12][0] = sfis->s[12][1] = sfis->s[12][2] = 0;
+	} else {
+		/* long blocks, type 0, 1, or 3 */
+		if(gr == 0) {
+			/* first granule */
+			for (sfb = 0;  sfb < 11; sfb++) 
+				sfis->l[sfb] = (char)GetBits(bsi, slen0);
+			for (sfb = 11; sfb < 21; sfb++) 
+				sfis->l[sfb] = (char)GetBits(bsi, slen1);
+			return;
+		} else {
+			/* second granule
+			 * scfsi: 0 = different scalefactors for each granule, 1 = copy sf's from granule 0 into granule 1 
+			 * for block type == 2, scfsi is always 0
+			 */
+			sfb = 0;
+			if(scfsi[0])  for(  ; sfb < 6 ; sfb++) sfis->l[sfb] = sfisGr0->l[sfb];
+			else          for(  ; sfb < 6 ; sfb++) sfis->l[sfb] = (char)GetBits(bsi, slen0);
+			if(scfsi[1])  for(  ; sfb <11 ; sfb++) sfis->l[sfb] = sfisGr0->l[sfb];
+			else          for(  ; sfb <11 ; sfb++) sfis->l[sfb] = (char)GetBits(bsi, slen0);
+			if(scfsi[2])  for(  ; sfb <16 ; sfb++) sfis->l[sfb] = sfisGr0->l[sfb];
+			else          for(  ; sfb <16 ; sfb++) sfis->l[sfb] = (char)GetBits(bsi, slen1);
+			if(scfsi[3])  for(  ; sfb <21 ; sfb++) sfis->l[sfb] = sfisGr0->l[sfb];
+			else          for(  ; sfb <21 ; sfb++) sfis->l[sfb] = (char)GetBits(bsi, slen1);
+		}
+		/* last sf band not transmitted */
+		sfis->l[21] = 0;
+		sfis->l[22] = 0;
+	}
+}
+
+/* NRTab[size + 3*is_right][block type][partition]
+ *   block type index: 0 = (bt0,bt1,bt3), 1 = bt2 non-mixed, 2 = bt2 mixed
+ *   partition: scale factor groups (sfb1 through sfb4)
+ * for block type = 2 (mixed or non-mixed) / by 3 is rolled into this table
+ *   (for 3 short blocks per long block)
+ * see 2.4.3.2 in MPEG 2 (low sample rate) spec
+ * stuff rolled into this table:
+ *   NRTab[x][1][y]   --> (NRTab[x][1][y])   / 3
+ *   NRTab[x][2][>=1] --> (NRTab[x][2][>=1]) / 3  (first partition is long block)
+ */
+static const char NRTab[6][3][4] = {
+	/* non-intensity stereo */
+	{	{6, 5, 5, 5},		
+		{3, 3, 3, 3},	/* includes / 3 */	
+		{6, 3, 3, 3},   /* includes / 3 except for first entry */
+	},
+	{	{6, 5, 7, 3}, 
+		{3, 3, 4, 2},
+		{6, 3, 4, 2},
+	},
+	{	{11, 10, 0, 0},
+		{6, 6, 0, 0},
+		{6, 3, 6, 0},  /* spec = [15,18,0,0], but 15 = 6L + 9S, so move 9/3=3 into col 1, 18/3=6 into col 2 and adj. slen[1,2] below */
+	},
+	/* intensity stereo, right chan */
+	{	{7, 7, 7, 0},
+		{4, 4, 4, 0},
+		{6, 5, 4, 0},
+	},
+	{	{6, 6, 6, 3}, 
+		{4, 3, 3, 2},
+		{6, 4, 3, 2},
+	},
+	{	{8, 8, 5, 0},
+		{5, 4, 3, 0},
+		{6, 6, 3, 0},
+	}
+};
+
+/**************************************************************************************
+ * Function:    UnpackSFMPEG2
+ *
+ * Description: unpack MPEG 2 scalefactors from bitstream
+ *
+ * Inputs:      BitStreamInfo, SideInfoSub, ScaleFactorInfoSub structs for this
+ *                granule/channel
+ *              index of current granule and channel
+ *              ScaleFactorInfoSub from this granule 
+ *              modeExt field from frame header, to tell whether intensity stereo is on
+ *              ScaleFactorJS struct for storing IIP info used in Dequant()
+ *
+ * Outputs:     updated BitStreamInfo struct
+ *              scalefactors in sfis (short and/or long arrays, as appropriate)
+ *              updated intensityScale and preFlag flags
+ *
+ * Return:      none
+ *
+ * Notes:       Illegal Intensity Position = (2^slen) - 1 for MPEG2 scale factors
+ *
+ * TODO:        optimize the / and % stuff (only do one divide, get modulo x 
+ *                with (x / m) * m, etc.)
+ **************************************************************************************/
+static void UnpackSFMPEG2(BitStreamInfo *bsi, SideInfoSub *sis, ScaleFactorInfoSub *sfis, int gr, int ch, int modeExt, ScaleFactorJS *sfjs)
+{
+
+	int i, sfb, sfcIdx, btIdx, nrIdx, iipTest;
+	int slen[4], nr[4];
+	int sfCompress, preFlag, intensityScale;
+	
+	sfCompress = sis->sfCompress;
+	preFlag = 0;
+	intensityScale = 0;
+
+	/* stereo mode bits (1 = on): bit 1 = mid-side on/off, bit 0 = intensity on/off */
+	if (! ((modeExt & 0x01) && (ch == 1)) ) {
+		/* in other words: if ((modeExt & 0x01) == 0 || ch == 0) */
+		if (sfCompress < 400) {
+			/* max slen = floor[(399/16) / 5] = 4 */
+			slen[0] = (sfCompress >> 4) / 5;
+			slen[1]= (sfCompress >> 4) % 5;
+			slen[2]= (sfCompress & 0x0f) >> 2;
+			slen[3]= (sfCompress & 0x03);
+			sfcIdx = 0;
+		} else if (sfCompress < 500) {
+			/* max slen = floor[(99/4) / 5] = 4 */
+			sfCompress -= 400;
+			slen[0] = (sfCompress >> 2) / 5;
+			slen[1]= (sfCompress >> 2) % 5;
+			slen[2]= (sfCompress & 0x03);
+			slen[3]= 0;
+			sfcIdx = 1;
+		} else {
+			/* max slen = floor[11/3] = 3 (sfCompress = 9 bits in MPEG2) */
+			sfCompress -= 500;
+			slen[0] = sfCompress / 3;
+			slen[1] = sfCompress % 3;
+			slen[2] = slen[3] = 0;
+			if (sis->mixedBlock) {
+				/* adjust for long/short mix logic (see comment above in NRTab[] definition) */
+				slen[2] = slen[1];  
+				slen[1] = slen[0];
+			}  
+			preFlag = 1;
+			sfcIdx = 2;
+		}
+	} else {    
+		/* intensity stereo ch = 1 (right) */
+		intensityScale = sfCompress & 0x01;
+		sfCompress >>= 1;
+		if (sfCompress < 180) {
+			/* max slen = floor[35/6] = 5 (from mod 36) */
+			slen[0] = (sfCompress / 36);
+			slen[1] = (sfCompress % 36) / 6;
+			slen[2] = (sfCompress % 36) % 6;
+			slen[3] = 0;
+			sfcIdx = 3;
+		} else if (sfCompress < 244) {
+			/* max slen = floor[63/16] = 3 */
+			sfCompress -= 180;
+			slen[0] = (sfCompress & 0x3f) >> 4;
+			slen[1] = (sfCompress & 0x0f) >> 2;
+			slen[2] = (sfCompress & 0x03);
+			slen[3] = 0;
+			sfcIdx = 4;
+		} else {
+			/* max slen = floor[11/3] = 3 (max sfCompress >> 1 = 511/2 = 255) */
+			sfCompress -= 244;
+			slen[0] = (sfCompress / 3);
+			slen[1] = (sfCompress % 3);
+			slen[2] = slen[3] = 0;
+			sfcIdx = 5;
+		}
+	}
+	
+	/* set index based on block type: (0,1,3) --> 0, (2 non-mixed) --> 1, (2 mixed) ---> 2 */
+	btIdx = 0;
+	if (sis->blockType == 2) 
+		btIdx = (sis->mixedBlock ? 2 : 1);
+	for (i = 0; i < 4; i++)
+		nr[i] = (int)NRTab[sfcIdx][btIdx][i];
+
+	/* save intensity stereo scale factor info */
+	if( (modeExt & 0x01) && (ch == 1) ) {
+		for (i = 0; i < 4; i++) {
+			sfjs->slen[i] = slen[i];
+			sfjs->nr[i] = nr[i];
+		}
+		sfjs->intensityScale = intensityScale;
+	}
+	sis->preFlag = preFlag;
+
+	/* short blocks */
+	if(sis->blockType == 2) {
+		if(sis->mixedBlock) {
+			/* do long block portion */
+			iipTest = (1 << slen[0]) - 1;
+			for (sfb=0; sfb < 6; sfb++) {
+				sfis->l[sfb] = (char)GetBits(bsi, slen[0]);
+			}
+			sfb = 3;  /* start sfb for short */
+			nrIdx = 1;
+		} else {      
+			/* all short blocks, so start nr, sfb at 0 */
+			sfb = 0;
+			nrIdx = 0;
+		}
+
+		/* remaining short blocks, sfb just keeps incrementing */
+		for (    ; nrIdx <= 3; nrIdx++) {
+			iipTest = (1 << slen[nrIdx]) - 1;
+			for (i=0; i < nr[nrIdx]; i++, sfb++) {
+				sfis->s[sfb][0] = (char)GetBits(bsi, slen[nrIdx]);
+				sfis->s[sfb][1] = (char)GetBits(bsi, slen[nrIdx]);
+				sfis->s[sfb][2] = (char)GetBits(bsi, slen[nrIdx]);
+			}
+		}
+		/* last sf band not transmitted */
+		sfis->s[12][0] = sfis->s[12][1] = sfis->s[12][2] = 0;
+	} else {
+		/* long blocks */
+		sfb = 0;
+		for (nrIdx = 0; nrIdx <= 3; nrIdx++) {
+			iipTest = (1 << slen[nrIdx]) - 1;
+			for(i=0; i < nr[nrIdx]; i++, sfb++) {
+				sfis->l[sfb] = (char)GetBits(bsi, slen[nrIdx]);
+			}
+		}
+		/* last sf band not transmitted */
+		sfis->l[21] = sfis->l[22] = 0;
+
+	}
+}
+
+/**************************************************************************************
+ * Function:    UnpackScaleFactors
+ *
+ * Description: parse the fields of the MP3 scale factor data section
+ *
+ * Inputs:      MP3DecInfo structure filled by UnpackFrameHeader() and UnpackSideInfo()
+ *              buffer pointing to the MP3 scale factor data
+ *              pointer to bit offset (0-7) indicating starting bit in buf[0]
+ *              number of bits available in data buffer
+ *              index of current granule and channel
+ *
+ * Outputs:     updated platform-specific ScaleFactorInfo struct
+ *              updated bitOffset
+ *
+ * Return:      length (in bytes) of scale factor data, -1 if null input pointers
+ **************************************************************************************/
+int UnpackScaleFactors(MP3DecInfo *mp3DecInfo, unsigned char *buf, int *bitOffset, int bitsAvail, int gr, int ch)
+{
+	int bitsUsed;
+	unsigned char *startBuf;
+	BitStreamInfo bitStreamInfo, *bsi;
+	FrameHeader *fh;
+	SideInfo *si;
+	ScaleFactorInfo *sfi;
+
+	/* validate pointers */
+	if (!mp3DecInfo || !mp3DecInfo->FrameHeaderPS || !mp3DecInfo->SideInfoPS || !mp3DecInfo->ScaleFactorInfoPS)
+		return -1;
+	fh = ((FrameHeader *)(mp3DecInfo->FrameHeaderPS));
+	si = ((SideInfo *)(mp3DecInfo->SideInfoPS));
+	sfi = ((ScaleFactorInfo *)(mp3DecInfo->ScaleFactorInfoPS));
+
+	/* init GetBits reader */
+	startBuf = buf;
+	bsi = &bitStreamInfo;
+	SetBitstreamPointer(bsi, (bitsAvail + *bitOffset + 7) / 8, buf);
+	if (*bitOffset)
+		GetBits(bsi, *bitOffset);
+
+	if (fh->ver == MPEG1) 
+		UnpackSFMPEG1(bsi, &si->sis[gr][ch], &sfi->sfis[gr][ch], si->scfsi[ch], gr, &sfi->sfis[0][ch]);
+	else 
+		UnpackSFMPEG2(bsi, &si->sis[gr][ch], &sfi->sfis[gr][ch], gr, ch, fh->modeExt, &sfi->sfjs);
+
+	mp3DecInfo->part23Length[gr][ch] = si->sis[gr][ch].part23Length;
+
+	bitsUsed = CalcBitsUsed(bsi, buf, *bitOffset);
+	buf += (bitsUsed + *bitOffset) >> 3;
+	*bitOffset = (bitsUsed + *bitOffset) & 0x07;
+
+	return (buf - startBuf);
+}
+

+ 296 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/stproc.c

@@ -0,0 +1,296 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * stproc.c - mid-side and intensity (MPEG1 and MPEG2) stereo processing
+ **************************************************************************************/
+
+#include "coder.h"
+#include "assembly.h"
+
+/**************************************************************************************
+ * Function:    MidSideProc
+ *
+ * Description: sum-difference stereo reconstruction
+ *
+ * Inputs:      vector x with dequantized samples from left and right channels
+ *              number of non-zero samples (MAX of left and right)
+ *              assume 1 guard bit in input
+ *              guard bit mask (left and right channels)
+ *
+ * Outputs:     updated sample vector x
+ *              updated guard bit mask
+ *
+ * Return:      none
+ *
+ * Notes:       assume at least 1 GB in input
+ **************************************************************************************/
+void MidSideProc(int x[MAX_NCHAN][MAX_NSAMP], int nSamps, int mOut[2])  
+{
+	int i, xr, xl, mOutL, mOutR;
+	
+	/* L = (M+S)/sqrt(2), R = (M-S)/sqrt(2) 
+	 * NOTE: 1/sqrt(2) done in DequantChannel() - see comments there
+	 */
+	mOutL = mOutR = 0;
+	for(i = 0; i < nSamps; i++) {
+		xl = x[0][i];
+		xr = x[1][i];
+		x[0][i] = xl + xr;
+		x[1][i] = xl - xr;
+		mOutL |= FASTABS(x[0][i]);
+		mOutR |= FASTABS(x[1][i]);
+	}
+	mOut[0] |= mOutL;
+	mOut[1] |= mOutR;
+}
+
+/**************************************************************************************
+ * Function:    IntensityProcMPEG1
+ *
+ * Description: intensity stereo processing for MPEG1
+ *
+ * Inputs:      vector x with dequantized samples from left and right channels
+ *              number of non-zero samples in left channel
+ *              valid FrameHeader struct
+ *              two each of ScaleFactorInfoSub, CriticalBandInfo structs (both channels)
+ *              flags indicating midSide on/off, mixedBlock on/off
+ *              guard bit mask (left and right channels)
+ *
+ * Outputs:     updated sample vector x
+ *              updated guard bit mask
+ *
+ * Return:      none
+ *
+ * Notes:       assume at least 1 GB in input
+ *
+ * TODO:        combine MPEG1/2 into one function (maybe)
+ *              make sure all the mixed-block and IIP logic is right
+ **************************************************************************************/
+void IntensityProcMPEG1(int x[MAX_NCHAN][MAX_NSAMP], int nSamps, FrameHeader *fh, ScaleFactorInfoSub *sfis, 
+						CriticalBandInfo *cbi, int midSideFlag, int mixFlag, int mOut[2])
+{
+	int i=0, j=0, n=0, cb=0, w=0;
+	int sampsLeft, isf, mOutL, mOutR, xl, xr;
+	int fl, fr, fls[3], frs[3];
+	int cbStartL=0, cbStartS=0, cbEndL=0, cbEndS=0;
+	int *isfTab;
+	
+	/* NOTE - this works fine for mixed blocks, as long as the switch point starts in the
+	 *  short block section (i.e. on or after sample 36 = sfBand->l[8] = 3*sfBand->s[3]
+	 * is this a safe assumption?
+	 * TODO - intensity + mixed not quite right (diff = 11 on he_mode)
+	 *  figure out correct implementation (spec ambiguous about when to do short block reorder)
+	 */
+	if (cbi[1].cbType == 0) {
+		/* long block */
+		cbStartL = cbi[1].cbEndL + 1;
+		cbEndL =   cbi[0].cbEndL + 1;
+		cbStartS = cbEndS = 0;
+		i = fh->sfBand->l[cbStartL];
+	} else if (cbi[1].cbType == 1 || cbi[1].cbType == 2) {
+		/* short or mixed block */
+		cbStartS = cbi[1].cbEndSMax + 1;
+		cbEndS =   cbi[0].cbEndSMax + 1;
+		cbStartL = cbEndL = 0;
+		i = 3 * fh->sfBand->s[cbStartS];
+	}
+
+	sampsLeft = nSamps - i;		/* process to length of left */
+	isfTab = (int *)ISFMpeg1[midSideFlag];
+	mOutL = mOutR = 0;
+
+	/* long blocks */
+	for (cb = cbStartL; cb < cbEndL && sampsLeft > 0; cb++) {
+		isf = sfis->l[cb];
+		if (isf == 7) {
+			fl = ISFIIP[midSideFlag][0];
+			fr = ISFIIP[midSideFlag][1];
+		} else {
+			fl = isfTab[isf];	
+			fr = isfTab[6] - isfTab[isf];
+		}
+
+		n = fh->sfBand->l[cb + 1] - fh->sfBand->l[cb];
+		for (j = 0; j < n && sampsLeft > 0; j++, i++) {
+			xr = MULSHIFT32(fr, x[0][i]) << 2;	x[1][i] = xr; mOutR |= FASTABS(xr);
+			xl = MULSHIFT32(fl, x[0][i]) << 2;	x[0][i] = xl; mOutL |= FASTABS(xl);
+			sampsLeft--;
+		}
+	}
+
+	/* short blocks */
+	for (cb = cbStartS; cb < cbEndS && sampsLeft >= 3; cb++) {
+		for (w = 0; w < 3; w++) {
+			isf = sfis->s[cb][w];
+			if (isf == 7) {
+				fls[w] = ISFIIP[midSideFlag][0];
+				frs[w] = ISFIIP[midSideFlag][1];
+			} else {
+				fls[w] = isfTab[isf];
+				frs[w] = isfTab[6] - isfTab[isf];
+			}
+		}
+
+		n = fh->sfBand->s[cb + 1] - fh->sfBand->s[cb];
+		for (j = 0; j < n && sampsLeft >= 3; j++, i+=3) {
+			xr = MULSHIFT32(frs[0], x[0][i+0]) << 2;	x[1][i+0] = xr;	mOutR |= FASTABS(xr);
+			xl = MULSHIFT32(fls[0], x[0][i+0]) << 2;	x[0][i+0] = xl;	mOutL |= FASTABS(xl);
+			xr = MULSHIFT32(frs[1], x[0][i+1]) << 2;	x[1][i+1] = xr;	mOutR |= FASTABS(xr);
+			xl = MULSHIFT32(fls[1], x[0][i+1]) << 2;	x[0][i+1] = xl;	mOutL |= FASTABS(xl);
+			xr = MULSHIFT32(frs[2], x[0][i+2]) << 2;	x[1][i+2] = xr;	mOutR |= FASTABS(xr);
+			xl = MULSHIFT32(fls[2], x[0][i+2]) << 2;	x[0][i+2] = xl;	mOutL |= FASTABS(xl);
+			sampsLeft -= 3;
+		}
+	}
+	mOut[0] = mOutL;
+	mOut[1] = mOutR;
+	
+	return;
+}
+
+/**************************************************************************************
+ * Function:    IntensityProcMPEG2
+ *
+ * Description: intensity stereo processing for MPEG2
+ *
+ * Inputs:      vector x with dequantized samples from left and right channels
+ *              number of non-zero samples in left channel
+ *              valid FrameHeader struct
+ *              two each of ScaleFactorInfoSub, CriticalBandInfo structs (both channels)
+ *              ScaleFactorJS struct with joint stereo info from UnpackSFMPEG2()
+ *              flags indicating midSide on/off, mixedBlock on/off
+ *              guard bit mask (left and right channels)
+ *
+ * Outputs:     updated sample vector x
+ *              updated guard bit mask
+ *
+ * Return:      none
+ *
+ * Notes:       assume at least 1 GB in input
+ *
+ * TODO:        combine MPEG1/2 into one function (maybe)
+ *              make sure all the mixed-block and IIP logic is right
+ *                probably redo IIP logic to be simpler
+ **************************************************************************************/
+void IntensityProcMPEG2(int x[MAX_NCHAN][MAX_NSAMP], int nSamps, FrameHeader *fh, ScaleFactorInfoSub *sfis, 
+						CriticalBandInfo *cbi, ScaleFactorJS *sfjs, int midSideFlag, int mixFlag, int mOut[2])
+{
+	int i, j, k, n, r, cb, w;
+	int fl, fr, mOutL, mOutR, xl, xr;
+	int sampsLeft;
+	int isf, sfIdx, tmp, il[23];
+	int *isfTab;
+	int cbStartL, cbStartS, cbEndL, cbEndS;
+	
+	isfTab = (int *)ISFMpeg2[sfjs->intensityScale][midSideFlag];
+	mOutL = mOutR = 0;
+
+	/* fill buffer with illegal intensity positions (depending on slen) */
+	for (k = r = 0; r < 4; r++) {
+		tmp = (1 << sfjs->slen[r]) - 1;
+		for (j = 0; j < sfjs->nr[r]; j++, k++) 
+			il[k] = tmp;
+	}
+
+	if (cbi[1].cbType == 0) {
+		/* long blocks */
+		il[21] = il[22] = 1;
+		cbStartL = cbi[1].cbEndL + 1;	/* start at end of right */
+		cbEndL =   cbi[0].cbEndL + 1;	/* process to end of left */
+		i = fh->sfBand->l[cbStartL];
+		sampsLeft = nSamps - i;
+
+		for(cb = cbStartL; cb < cbEndL; cb++) {
+			sfIdx = sfis->l[cb];
+			if (sfIdx == il[cb]) {
+				fl = ISFIIP[midSideFlag][0];
+				fr = ISFIIP[midSideFlag][1];
+			} else {
+				isf = (sfis->l[cb] + 1) >> 1;
+				fl = isfTab[(sfIdx & 0x01 ? isf : 0)];
+				fr = isfTab[(sfIdx & 0x01 ? 0 : isf)];
+			}
+			n = MIN(fh->sfBand->l[cb + 1] - fh->sfBand->l[cb], sampsLeft);
+
+			for(j = 0; j < n; j++, i++) {
+				xr = MULSHIFT32(fr, x[0][i]) << 2;	x[1][i] = xr;	mOutR |= FASTABS(xr);
+				xl = MULSHIFT32(fl, x[0][i]) << 2;	x[0][i] = xl;	mOutL |= FASTABS(xl);
+			}
+
+			/* early exit once we've used all the non-zero samples */
+			sampsLeft -= n;
+			if (sampsLeft == 0)		
+				break;
+		}
+	} else {
+		/* short or mixed blocks */
+		il[12] = 1;
+
+		for(w = 0; w < 3; w++) {
+			cbStartS = cbi[1].cbEndS[w] + 1;		/* start at end of right */
+			cbEndS =   cbi[0].cbEndS[w] + 1;		/* process to end of left */
+			i = 3 * fh->sfBand->s[cbStartS] + w;
+
+			/* skip through sample array by 3, so early-exit logic would be more tricky */
+			for(cb = cbStartS; cb < cbEndS; cb++) {
+				sfIdx = sfis->s[cb][w];
+				if (sfIdx == il[cb]) {
+					fl = ISFIIP[midSideFlag][0];
+					fr = ISFIIP[midSideFlag][1];
+				} else {
+					isf = (sfis->s[cb][w] + 1) >> 1;
+					fl = isfTab[(sfIdx & 0x01 ? isf : 0)];
+					fr = isfTab[(sfIdx & 0x01 ? 0 : isf)];
+				}
+				n = fh->sfBand->s[cb + 1] - fh->sfBand->s[cb];
+
+				for(j = 0; j < n; j++, i+=3) {
+					xr = MULSHIFT32(fr, x[0][i]) << 2;	x[1][i] = xr;	mOutR |= FASTABS(xr);
+					xl = MULSHIFT32(fl, x[0][i]) << 2;	x[0][i] = xl;	mOutL |= FASTABS(xl);
+				}
+			}
+		}
+	}
+	mOut[0] = mOutL;
+	mOut[1] = mOutR;
+
+	return;
+}
+

+ 96 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/subband.c

@@ -0,0 +1,96 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * subband.c - subband transform (synthesis filterbank implemented via 32-point DCT
+ *               followed by polyphase filter)
+ **************************************************************************************/
+
+#include "coder.h"
+#include "assembly.h"
+
+/**************************************************************************************
+ * Function:    Subband
+ *
+ * Description: do subband transform on all the blocks in one granule, all channels
+ *
+ * Inputs:      filled MP3DecInfo structure, after calling IMDCT for all channels
+ *              vbuf[ch] and vindex[ch] must be preserved between calls
+ *
+ * Outputs:     decoded PCM data, interleaved LRLRLR... if stereo
+ *
+ * Return:      0 on success,  -1 if null input pointers
+ **************************************************************************************/
+int Subband(MP3DecInfo *mp3DecInfo, short *pcmBuf)
+{
+	int b;
+	HuffmanInfo *hi;
+	IMDCTInfo *mi;
+	SubbandInfo *sbi;
+
+	/* validate pointers */
+	if (!mp3DecInfo || !mp3DecInfo->HuffmanInfoPS || !mp3DecInfo->IMDCTInfoPS || !mp3DecInfo->SubbandInfoPS)
+		return -1;
+
+	hi = (HuffmanInfo *)mp3DecInfo->HuffmanInfoPS;
+	mi = (IMDCTInfo *)(mp3DecInfo->IMDCTInfoPS);
+	sbi = (SubbandInfo*)(mp3DecInfo->SubbandInfoPS);
+
+	if (mp3DecInfo->nChans == 2) {
+		/* stereo */
+		for (b = 0; b < BLOCK_SIZE; b++) {
+			FDCT32(mi->outBuf[0][b], sbi->vbuf + 0*32, sbi->vindex, (b & 0x01), mi->gb[0]);
+			FDCT32(mi->outBuf[1][b], sbi->vbuf + 1*32, sbi->vindex, (b & 0x01), mi->gb[1]);
+			PolyphaseStereo(pcmBuf, sbi->vbuf + sbi->vindex + VBUF_LENGTH * (b & 0x01), polyCoef);
+			sbi->vindex = (sbi->vindex - (b & 0x01)) & 7;
+			pcmBuf += (2 * NBANDS);
+		}
+	} else {
+		/* mono */
+		for (b = 0; b < BLOCK_SIZE; b++) {
+			FDCT32(mi->outBuf[0][b], sbi->vbuf + 0*32, sbi->vindex, (b & 0x01), mi->gb[0]);
+			PolyphaseMono(pcmBuf, sbi->vbuf + sbi->vindex + VBUF_LENGTH * (b & 0x01), polyCoef);
+			sbi->vindex = (sbi->vindex - (b & 0x01)) & 7;
+			pcmBuf += NBANDS;
+		}
+	}
+
+	return 0;
+}
+

+ 311 - 0
projects/art_pi_gc0328c_camera/packages/helix-v1.0.0/real/trigtabs.c

@@ -0,0 +1,311 @@
+/* ***** BEGIN LICENSE BLOCK ***** 
+ * Version: RCSL 1.0/RPSL 1.0 
+ *  
+ * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
+ *      
+ * The contents of this file, and the files included with this file, are 
+ * subject to the current version of the RealNetworks Public Source License 
+ * Version 1.0 (the "RPSL") available at 
+ * http://www.helixcommunity.org/content/rpsl unless you have licensed 
+ * the file under the RealNetworks Community Source License Version 1.0 
+ * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
+ * in which case the RCSL will apply. You may also obtain the license terms 
+ * directly from RealNetworks.  You may not use this file except in 
+ * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
+ * applicable to this file, the RCSL.  Please see the applicable RPSL or 
+ * RCSL for the rights, obligations and limitations governing use of the 
+ * contents of the file.  
+ *  
+ * This file is part of the Helix DNA Technology. RealNetworks is the 
+ * developer of the Original Code and owns the copyrights in the portions 
+ * it created. 
+ *  
+ * This file, and the files included with this file, is distributed and made 
+ * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
+ * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
+ * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * 
+ * Technology Compatibility Kit Test Suite(s) Location: 
+ *    http://www.helixcommunity.org/content/tck 
+ * 
+ * Contributor(s): 
+ *  
+ * ***** END LICENSE BLOCK ***** */ 
+
+/**************************************************************************************
+ * Fixed-point MP3 decoder
+ * Jon Recker (jrecker@real.com), Ken Cooke (kenc@real.com)
+ * June 2003
+ *
+ * trigtabs.c - global ROM tables for pre-calculated trig coefficients
+ **************************************************************************************/
+
+#include "coder.h"
+
+/* post-IMDCT window, win[blockType][i]
+ * format = Q31
+ * Fused sin window with final stage of IMDCT
+ * includes 1/sqrt(2) scaling, since we scale by sqrt(2) in dequant in order
+ *   for fast IMDCT36 to be usable
+ * 
+ * 	for(i=0;i<9;i++)   win[0][i] = sin(pi/36 *(i+0.5));
+ * 	for(i=9;i<36;i++)  win[0][i] = -sin(pi/36 *(i+0.5));
+ * 
+ * 	for(i=0;i<9;i++)   win[1][i] = sin(pi/36 *(i+0.5));
+ * 	for(i=9;i<18;i++)  win[1][i] = -sin(pi/36 *(i+0.5));
+ * 	for(i=18;i<24;i++) win[1][i] = -1;
+ * 	for(i=24;i<30;i++) win[1][i] = -sin(pi/12 *(i+0.5-18));
+ * 	for(i=30;i<36;i++) win[1][i] = 0;
+ * 
+ * 	for(i=0;i<6;i++)   win[3][i] = 0;
+ * 	for(i=6;i<9;i++)   win[3][i] = sin(pi/12 *(i+0.5-6));
+ * 	for(i=9;i<12;i++)  win[3][i] = -sin(pi/12 *(i+0.5-6));
+ * 	for(i=12;i<18;i++) win[3][i] = -1;
+ * 	for(i=18;i<36;i++) win[3][i] = -sin(pi/36*(i+0.5));
+ * 
+ * 	for(i=0;i<3;i++)   win[2][i] = sin(pi/12*(i+0.5));
+ * 	for(i=3;i<12;i++)  win[2][i] = -sin(pi/12*(i+0.5));
+ * 	for(i=12;i<36;i++) win[2][i] = 0;
+ * 
+ * 	for (i = 0; i < 4; i++) {
+ * 		if (i == 2) {
+ * 			win[i][8]  *= cos(pi/12 * (0+0.5));
+ * 			win[i][9]  *= cos(pi/12 * (0+0.5));
+ * 			win[i][7]  *= cos(pi/12 * (1+0.5));
+ * 			win[i][10] *= cos(pi/12 * (1+0.5));
+ * 			win[i][6]  *= cos(pi/12 * (2+0.5));
+ * 			win[i][11] *= cos(pi/12 * (2+0.5));
+ * 			win[i][0]  *= cos(pi/12 * (3+0.5));
+ * 			win[i][5]  *= cos(pi/12 * (3+0.5));
+ * 			win[i][1]  *= cos(pi/12 * (4+0.5));
+ * 			win[i][4]  *= cos(pi/12 * (4+0.5));
+ * 			win[i][2]  *= cos(pi/12 * (5+0.5));
+ * 			win[i][3]  *= cos(pi/12 * (5+0.5));
+ * 		} else {
+ * 			for (j = 0; j < 9; j++) {
+ * 				win[i][8-j] *= cos(pi/36 * (17-j+0.5));
+ * 				win[i][9+j] *= cos(pi/36 * (17-j+0.5));
+ * 			}
+ * 			for (j = 0; j < 9; j++) {
+ * 				win[i][18+8-j] *= cos(pi/36 * (j+0.5));
+ * 				win[i][18+9+j] *= cos(pi/36 * (j+0.5));
+ * 			}
+ * 		}
+ * 	}
+ *	for (i = 0; i < 4; i++)
+ *		for (j = 0; j < 36; j++)
+ * 			win[i][j] *= 1.0 / sqrt(2);
+ */
+const int imdctWin[4][36] = {
+	{
+	0x02aace8b, 0x07311c28, 0x0a868fec, 0x0c913b52, 0x0d413ccd, 0x0c913b52, 0x0a868fec, 0x07311c28, 
+	0x02aace8b, 0xfd16d8dd, 0xf6a09e66, 0xef7a6275, 0xe7dbc161, 0xe0000000, 0xd8243e9f, 0xd0859d8b, 
+	0xc95f619a, 0xc2e92723, 0xbd553175, 0xb8cee3d8, 0xb5797014, 0xb36ec4ae, 0xb2bec333, 0xb36ec4ae, 
+	0xb5797014, 0xb8cee3d8, 0xbd553175, 0xc2e92723, 0xc95f619a, 0xd0859d8b, 0xd8243e9f, 0xe0000000, 
+	0xe7dbc161, 0xef7a6275, 0xf6a09e66, 0xfd16d8dd, 
+	},
+	{
+	0x02aace8b, 0x07311c28, 0x0a868fec, 0x0c913b52, 0x0d413ccd, 0x0c913b52, 0x0a868fec, 0x07311c28, 
+	0x02aace8b, 0xfd16d8dd, 0xf6a09e66, 0xef7a6275, 0xe7dbc161, 0xe0000000, 0xd8243e9f, 0xd0859d8b, 
+	0xc95f619a, 0xc2e92723, 0xbd44ef14, 0xb831a052, 0xb3aa3837, 0xafb789a4, 0xac6145bb, 0xa9adecdc, 
+	0xa864491f, 0xad1868f0, 0xb8431f49, 0xc8f42236, 0xdda8e6b1, 0xf47755dc, 0x00000000, 0x00000000, 
+	0x00000000, 0x00000000, 0x00000000, 0x00000000, 
+	},
+	{
+	0x07311c28, 0x0d413ccd, 0x07311c28, 0xf6a09e66, 0xe0000000, 0xc95f619a, 0xb8cee3d8, 0xb2bec333, 
+	0xb8cee3d8, 0xc95f619a, 0xe0000000, 0xf6a09e66, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
+	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
+	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
+	0x00000000, 0x00000000, 0x00000000, 0x00000000, 
+	},
+	{
+	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x028e9709, 0x04855ec0, 
+	0x026743a1, 0xfcde2c10, 0xf515dc82, 0xec93e53b, 0xe4c880f8, 0xdd5d0b08, 0xd63510b7, 0xcf5e834a, 
+	0xc8e6b562, 0xc2da4105, 0xbd553175, 0xb8cee3d8, 0xb5797014, 0xb36ec4ae, 0xb2bec333, 0xb36ec4ae, 
+	0xb5797014, 0xb8cee3d8, 0xbd553175, 0xc2e92723, 0xc95f619a, 0xd0859d8b, 0xd8243e9f, 0xe0000000, 
+	0xe7dbc161, 0xef7a6275, 0xf6a09e66, 0xfd16d8dd, 
+	},
+};
+
+/* indexing = [mid-side off/on][intensity scale factor]
+ * format = Q30, range = [0.0, 1.414]
+ *
+ * mid-side off: 
+ *   ISFMpeg1[0][i] = tan(i*pi/12) / [1 + tan(i*pi/12)]  (left scalefactor)
+ *                  =      1       / [1 + tan(i*pi/12)]  (right scalefactor)
+ *
+ * mid-side on: 
+ *   ISFMpeg1[1][i] = sqrt(2) * ISFMpeg1[0][i]
+ *
+ * output L = ISFMpeg1[midSide][isf][0] * input L
+ * output R = ISFMpeg1[midSide][isf][1] * input L
+ *
+ * obviously left scalefactor + right scalefactor = 1 (m-s off) or sqrt(2) (m-s on)
+ *   so just store left and calculate right as 1 - left 
+ *  (can derive as right = ISFMpeg1[x][6] - left)
+ *
+ * if mid-side enabled, multiply joint stereo scale factors by sqrt(2)
+ *   - we scaled whole spectrum by 1/sqrt(2) in Dequant for the M+S/sqrt(2) in MidSideProc
+ *   - but the joint stereo part of the spectrum doesn't need this, so we have to undo it
+ *
+ * if scale factor is and illegal intensity position, this becomes a passthrough
+ *   - gain = [1, 0] if mid-side off, since L is coded directly and R = 0 in this region
+ *   - gain = [1, 1] if mid-side on, since L = (M+S)/sqrt(2), R = (M-S)/sqrt(2)
+ *     - and since S = 0 in the joint stereo region (above NZB right) then L = R = M * 1.0
+ */
+const int ISFMpeg1[2][7] = {
+	{0x00000000, 0x0d8658ba, 0x176cf5d0, 0x20000000, 0x28930a2f, 0x3279a745, 0x40000000},
+	{0x00000000, 0x13207f5c, 0x2120fb83, 0x2d413ccc, 0x39617e16, 0x4761fa3d, 0x5a827999}
+};
+
+/* indexing = [intensity scale on/off][mid-side off/on][intensity scale factor]
+ * format = Q30, range = [0.0, 1.414]
+ *
+ * if (isf == 0)                 kl = 1.0             kr = 1.0
+ * else if (isf & 0x01 == 0x01)  kl = i0^((isf+1)/2), kr = 1.0
+ * else if (isf & 0x01 == 0x00)  kl = 1.0,            kr = i0^(isf/2)
+ *
+ * if (intensityScale == 1)      i0 = 1/sqrt(2)       = 0x2d413ccc (Q30)
+ * else                          i0 = 1/sqrt(sqrt(2)) = 0x35d13f32 (Q30)
+ *
+ * see comments for ISFMpeg1 (just above) regarding scaling, sqrt(2), etc.
+ *
+ * compress the MPEG2 table using the obvious identities above...
+ * for isf = [0, 1, 2, ... 30], let sf = table[(isf+1) >> 1] 
+ *   - if isf odd,  L = sf*L,     R = tab[0]*R
+ *   - if isf even, L = tab[0]*L, R = sf*R
+ */
+const int ISFMpeg2[2][2][16] = {
+{
+	{
+		/* intensityScale off, mid-side off */
+		0x40000000, 0x35d13f32, 0x2d413ccc, 0x260dfc14, 0x1fffffff, 0x1ae89f99, 0x16a09e66, 0x1306fe0a, 
+		0x0fffffff, 0x0d744fcc, 0x0b504f33, 0x09837f05, 0x07ffffff, 0x06ba27e6, 0x05a82799, 0x04c1bf82,
+	},
+	{
+		/* intensityScale off, mid-side on */
+		0x5a827999, 0x4c1bf827, 0x3fffffff, 0x35d13f32, 0x2d413ccc, 0x260dfc13, 0x1fffffff, 0x1ae89f99, 
+		0x16a09e66, 0x1306fe09, 0x0fffffff, 0x0d744fcc, 0x0b504f33, 0x09837f04, 0x07ffffff, 0x06ba27e6, 
+	},
+},
+{
+	{
+		/* intensityScale on, mid-side off */
+		0x40000000, 0x2d413ccc, 0x20000000, 0x16a09e66, 0x10000000, 0x0b504f33, 0x08000000, 0x05a82799, 
+		0x04000000, 0x02d413cc, 0x02000000, 0x016a09e6, 0x01000000, 0x00b504f3, 0x00800000, 0x005a8279, 
+	},
+		/* intensityScale on, mid-side on */
+	{
+		0x5a827999, 0x3fffffff, 0x2d413ccc, 0x1fffffff, 0x16a09e66, 0x0fffffff, 0x0b504f33, 0x07ffffff, 
+		0x05a82799, 0x03ffffff, 0x02d413cc, 0x01ffffff, 0x016a09e6, 0x00ffffff, 0x00b504f3, 0x007fffff, 
+	}
+}
+};
+
+/* indexing = [intensity scale on/off][left/right]
+ * format = Q30, range = [0.0, 1.414]
+ *
+ * illegal intensity position scalefactors (see comments on ISFMpeg1)
+ */
+const int ISFIIP[2][2] = {
+	{0x40000000, 0x00000000}, /* mid-side off */
+	{0x40000000, 0x40000000}, /* mid-side on */
+};
+
+const unsigned char uniqueIDTab[8] = {0x5f, 0x4b, 0x43, 0x5f, 0x5f, 0x4a, 0x52, 0x5f};
+
+/* anti-alias coefficients - see spec Annex B, table 3-B.9 
+ *   csa[0][i] = CSi, csa[1][i] = CAi
+ * format = Q31
+ */
+const int csa[8][2] = {
+	{0x6dc253f0, 0xbe2500aa}, 
+	{0x70dcebe4, 0xc39e4949},
+	{0x798d6e73, 0xd7e33f4a},
+	{0x7ddd40a7, 0xe8b71176},
+	{0x7f6d20b7, 0xf3e4fe2f},
+	{0x7fe47e40, 0xfac1a3c7}, 
+	{0x7ffcb263, 0xfe2ebdc6}, 
+	{0x7fffc694, 0xff86c25d}, 
+};
+
+/* format = Q30, range = [0.0981, 1.9976]
+ *
+ * n = 16;
+ * k = 0;
+ * for(i=0; i<5; i++, n=n/2) {
+ *   for(p=0; p<n; p++, k++) {
+ *     t = (PI / (4*n)) * (2*p + 1);
+ *     coef32[k] = 2.0 * cos(t);
+ *   }
+ * }
+ * coef32[30] *= 0.5;	/ *** for initial back butterfly (i.e. two-point DCT) *** /
+ */
+const int coef32[31] = {
+	0x7fd8878d, 0x7e9d55fc, 0x7c29fbee, 0x78848413, 0x73b5ebd0, 0x6dca0d14, 0x66cf811f, 0x5ed77c89, 
+	0x55f5a4d2, 0x4c3fdff3, 0x41ce1e64, 0x36ba2013, 0x2b1f34eb, 0x1f19f97b, 0x12c8106e, 0x0647d97c, 
+	0x7f62368f, 0x7a7d055b, 0x70e2cbc6, 0x62f201ac, 0x5133cc94, 0x3c56ba70, 0x25280c5d, 0x0c8bd35e, 
+	0x7d8a5f3f, 0x6a6d98a4, 0x471cece6, 0x18f8b83c, 0x7641af3c, 0x30fbc54d, 0x2d413ccc, 
+};
+
+/* format = Q30, right shifted by 12 (sign bits only in top 12 - undo this when rounding to short)
+ *   this is to enable early-terminating multiplies on ARM
+ * range = [-1.144287109, 1.144989014]
+ * max gain of filter (per output sample) ~= 2.731
+ *
+ * new (properly sign-flipped) values 
+ *  - these actually are correct to 32 bits, (floating-pt coefficients in spec
+ *      chosen such that only ~20 bits are required)
+ *
+ * Reordering - see table 3-B.3 in spec (appendix B)
+ *
+ * polyCoef[i] = 
+ *   D[ 0, 32, 64, ... 480],   i = [  0, 15]
+ *   D[ 1, 33, 65, ... 481],   i = [ 16, 31]
+ *   D[ 2, 34, 66, ... 482],   i = [ 32, 47]
+ *     ...
+ *   D[15, 47, 79, ... 495],   i = [240,255]
+ *
+ * also exploits symmetry: D[i] = -D[512 - i], for i = [1, 255]
+ * 
+ * polyCoef[256, 257, ... 263] are for special case of sample 16 (out of 0)
+ *   see PolyphaseStereo() and PolyphaseMono()
+ */
+const int polyCoef[264] = {
+	/* shuffled vs. original from 0, 1, ... 15 to 0, 15, 2, 13, ... 14, 1 */
+	0x00000000, 0x00000074, 0x00000354, 0x0000072c, 0x00001fd4, 0x00005084, 0x000066b8, 0x000249c4,
+	0x00049478, 0xfffdb63c, 0x000066b8, 0xffffaf7c, 0x00001fd4, 0xfffff8d4, 0x00000354, 0xffffff8c,
+	0xfffffffc, 0x00000068, 0x00000368, 0x00000644, 0x00001f40, 0x00004ad0, 0x00005d1c, 0x00022ce0,
+	0x000493c0, 0xfffd9960, 0x00006f78, 0xffffa9cc, 0x0000203c, 0xfffff7e4, 0x00000340, 0xffffff84,
+	0xfffffffc, 0x00000060, 0x00000378, 0x0000056c, 0x00001e80, 0x00004524, 0x000052a0, 0x00020ffc,
+	0x000491a0, 0xfffd7ca0, 0x00007760, 0xffffa424, 0x00002080, 0xfffff6ec, 0x00000328, 0xffffff74,
+	0xfffffffc, 0x00000054, 0x00000384, 0x00000498, 0x00001d94, 0x00003f7c, 0x00004744, 0x0001f32c,
+	0x00048e18, 0xfffd6008, 0x00007e70, 0xffff9e8c, 0x0000209c, 0xfffff5ec, 0x00000310, 0xffffff68,
+	0xfffffffc, 0x0000004c, 0x0000038c, 0x000003d0, 0x00001c78, 0x000039e4, 0x00003b00, 0x0001d680,
+	0x00048924, 0xfffd43ac, 0x000084b0, 0xffff990c, 0x00002094, 0xfffff4e4, 0x000002f8, 0xffffff5c,
+	0xfffffffc, 0x00000044, 0x00000390, 0x00000314, 0x00001b2c, 0x0000345c, 0x00002ddc, 0x0001ba04,
+	0x000482d0, 0xfffd279c, 0x00008a20, 0xffff93a4, 0x0000206c, 0xfffff3d4, 0x000002dc, 0xffffff4c,
+	0xfffffffc, 0x00000040, 0x00000390, 0x00000264, 0x000019b0, 0x00002ef0, 0x00001fd4, 0x00019dc8,
+	0x00047b1c, 0xfffd0be8, 0x00008ecc, 0xffff8e64, 0x00002024, 0xfffff2c0, 0x000002c0, 0xffffff3c,
+	0xfffffff8, 0x00000038, 0x0000038c, 0x000001bc, 0x000017fc, 0x0000299c, 0x000010e8, 0x000181d8,
+	0x0004720c, 0xfffcf09c, 0x000092b4, 0xffff894c, 0x00001fc0, 0xfffff1a4, 0x000002a4, 0xffffff2c,
+	0xfffffff8, 0x00000034, 0x00000380, 0x00000120, 0x00001618, 0x00002468, 0x00000118, 0x00016644,
+	0x000467a4, 0xfffcd5cc, 0x000095e0, 0xffff8468, 0x00001f44, 0xfffff084, 0x00000284, 0xffffff18,
+	0xfffffff8, 0x0000002c, 0x00000374, 0x00000090, 0x00001400, 0x00001f58, 0xfffff068, 0x00014b14,
+	0x00045bf0, 0xfffcbb88, 0x00009858, 0xffff7fbc, 0x00001ea8, 0xffffef60, 0x00000268, 0xffffff04,
+	0xfffffff8, 0x00000028, 0x0000035c, 0x00000008, 0x000011ac, 0x00001a70, 0xffffded8, 0x00013058,
+	0x00044ef8, 0xfffca1d8, 0x00009a1c, 0xffff7b54, 0x00001dfc, 0xffffee3c, 0x0000024c, 0xfffffef0,
+	0xfffffff4, 0x00000024, 0x00000340, 0xffffff8c, 0x00000f28, 0x000015b0, 0xffffcc70, 0x0001161c,
+	0x000440bc, 0xfffc88d8, 0x00009b3c, 0xffff7734, 0x00001d38, 0xffffed18, 0x0000022c, 0xfffffedc,
+	0xfffffff4, 0x00000020, 0x00000320, 0xffffff1c, 0x00000c68, 0x0000111c, 0xffffb92c, 0x0000fc6c,
+	0x00043150, 0xfffc708c, 0x00009bb8, 0xffff7368, 0x00001c64, 0xffffebf4, 0x00000210, 0xfffffec4,
+	0xfffffff0, 0x0000001c, 0x000002f4, 0xfffffeb4, 0x00000974, 0x00000cb8, 0xffffa518, 0x0000e350,
+	0x000420b4, 0xfffc5908, 0x00009b9c, 0xffff6ff4, 0x00001b7c, 0xffffead0, 0x000001f4, 0xfffffeac,
+	0xfffffff0, 0x0000001c, 0x000002c4, 0xfffffe58, 0x00000648, 0x00000884, 0xffff9038, 0x0000cad0,
+	0x00040ef8, 0xfffc425c, 0x00009af0, 0xffff6ce0, 0x00001a88, 0xffffe9b0, 0x000001d4, 0xfffffe94,
+	0xffffffec, 0x00000018, 0x0000028c, 0xfffffe04, 0x000002e4, 0x00000480, 0xffff7a90, 0x0000b2fc,
+	0x0003fc28, 0xfffc2c90, 0x000099b8, 0xffff6a3c, 0x00001988, 0xffffe898, 0x000001bc, 0xfffffe7c,
+	0x000001a0, 0x0000187c, 0x000097fc, 0x0003e84c, 0xffff6424, 0xffffff4c, 0x00000248, 0xffffffec, 
+};
+

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
projects/art_pi_mcuboot/.cproject


+ 6 - 7
projects/art_pi_mcuboot/.settings/projcfg.ini

@@ -1,5 +1,5 @@
 #RT-Thread Studio Project Configuration
-#Sun Sep 27 20:00:00 CST 2020
+#Mon Jun 13 14:43:42 CST 2022
 cfg_version=v3.0
 board_name=STM32H750-RT-ART-PI
 example_name=art_pi_blink_led
@@ -7,14 +7,13 @@ hardware_adapter=ST-LINK
 board_base_nano_proj=False
 project_type=rt-thread
 chip_name=STM32H750XBHx
-bsp_version=0.3.0
 selected_rtt_version=4.0.2
+bsp_version=0.3.0
 os_branch=full
-project_base_bsp=true
-is_use_scons_build=True
+output_project_path=E\:\\software\\Git\\GitRepository\\ART-PI\\sdk-bsp-stm32h750-realthread-artpi\\projects\\art_pi_mcuboot
 is_base_example_project=True
-output_project_path=D\:/RT-ThreadStudio/workspace
+is_use_scons_build=True
+project_base_bsp=true
 project_name=art_pi_blink_led
-bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master
 os_version=4.0.2
-
+bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master

+ 76 - 10
projects/art_pi_nes/.config

@@ -1,7 +1,4 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# RT-Thread Configuration
-#
+# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
 
 #
 # RT-Thread Kernel
@@ -29,10 +26,13 @@ CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
 # kservice optimization
 #
 CONFIG_RT_KSERVICE_USING_STDLIB=y
-# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMCPY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMSET is not set
 # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
 # CONFIG_RT_USING_TINY_FFS is not set
-# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+# CONFIG_RT_PRINTF_LONGLONG is not set
+# end of kservice optimization
+
 CONFIG_RT_DEBUG=y
 CONFIG_RT_DEBUG_COLOR=y
 # CONFIG_RT_DEBUG_INIT_CONFIG is not set
@@ -55,6 +55,7 @@ CONFIG_RT_USING_EVENT=y
 CONFIG_RT_USING_MAILBOX=y
 CONFIG_RT_USING_MESSAGEQUEUE=y
 # CONFIG_RT_USING_SIGNALS is not set
+# end of Inter-Thread communication
 
 #
 # Memory Management
@@ -74,6 +75,7 @@ CONFIG_RT_USING_MEMHEAP_AUTO_BINDING=y
 # CONFIG_RT_USING_MEMTRACE is not set
 # CONFIG_RT_USING_HEAP_ISR is not set
 CONFIG_RT_USING_HEAP=y
+# end of Memory Management
 
 #
 # Kernel Device Object
@@ -84,12 +86,15 @@ CONFIG_RT_USING_DEVICE=y
 CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=512
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart4"
-CONFIG_RT_VER_NUM=0x40101
+# end of Kernel Device Object
+
+CONFIG_RT_VER_NUM=0x40100
+# end of RT-Thread Kernel
+
 CONFIG_ARCH_ARM=y
 CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_ARM_CORTEX_M=y
 CONFIG_ARCH_ARM_CORTEX_M7=y
-# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
 
 #
 # RT-Thread Components
@@ -144,6 +149,8 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096
 # CONFIG_RT_DFS_ELM_USE_ERASE is not set
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
+# end of elm-chan's FatFs, Generic FAT Filesystem Module
+
 CONFIG_RT_USING_DFS_DEVFS=y
 CONFIG_RT_USING_DFS_ROMFS=y
 # CONFIG_RT_USING_DFS_RAMFS is not set
@@ -218,9 +225,10 @@ CONFIG_RT_USING_TOUCH=y
 #
 # Using USB
 #
-# CONFIG_RT_USING_USB is not set
 # CONFIG_RT_USING_USB_HOST is not set
 # CONFIG_RT_USING_USB_DEVICE is not set
+# end of Using USB
+# end of Device Drivers
 
 #
 # C/C++ and POSIX layer
@@ -255,7 +263,11 @@ CONFIG_RT_USING_POSIX_FS=y
 #
 # Socket is in the 'Network' category
 #
+# end of Interprocess Communication (IPC)
+# end of POSIX (Portable Operating System Interface) layer
+
 # CONFIG_RT_USING_CPLUSPLUS is not set
+# end of C/C++ and POSIX layer
 
 #
 # Network
@@ -264,6 +276,7 @@ CONFIG_RT_USING_POSIX_FS=y
 # CONFIG_RT_USING_NETDEV is not set
 # CONFIG_RT_USING_LWIP is not set
 # CONFIG_RT_USING_AT is not set
+# end of Network
 
 #
 # Utilities
@@ -275,7 +288,10 @@ CONFIG_RT_USING_RYM=y
 # CONFIG_RT_USING_UTEST is not set
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
+# end of Utilities
+
 # CONFIG_RT_USING_VBUS is not set
+# end of RT-Thread Components
 
 #
 # RT-Thread online packages
@@ -284,7 +300,6 @@ CONFIG_RT_USING_RYM=y
 #
 # IoT - internet of things
 #
-# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -307,12 +322,17 @@ CONFIG_RT_USING_RYM=y
 # Marvell WiFi
 #
 # CONFIG_PKG_USING_WLANMARVELL is not set
+# end of Marvell WiFi
 
 #
 # Wiced WiFi
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
+# end of Wiced WiFi
+
 # CONFIG_PKG_USING_RW007 is not set
+# end of Wi-Fi
+
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -336,6 +356,8 @@ CONFIG_RT_USING_RYM=y
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_EZ_IOT_OS is not set
 # CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# end of IoT Cloud
+
 # CONFIG_PKG_USING_NIMBLE is not set
 # CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -369,6 +391,8 @@ CONFIG_RT_USING_RYM=y
 # CONFIG_PKG_USING_HM is not set
 # CONFIG_PKG_USING_SMALL_MODBUS is not set
 # CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
+# end of IoT - internet of things
 
 #
 # security packages
@@ -379,6 +403,7 @@ CONFIG_RT_USING_RYM=y
 # CONFIG_PKG_USING_TINYCRYPT is not set
 # CONFIG_PKG_USING_TFM is not set
 # CONFIG_PKG_USING_YD_CRYPTO is not set
+# end of security packages
 
 #
 # language packages
@@ -393,17 +418,22 @@ CONFIG_RT_USING_RYM=y
 # CONFIG_PKG_USING_RAPIDJSON is not set
 # CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_AGILE_JSMN is not set
+# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
 
 #
 # XML: Extensible Markup Language
 #
 # CONFIG_PKG_USING_SIMPLE_XML is not set
 # CONFIG_PKG_USING_EZXML is not set
+# end of XML: Extensible Markup Language
+
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
+# end of language packages
 
 #
 # multimedia packages
@@ -437,15 +467,20 @@ CONFIG_LV_DPI=50
 CONFIG_LV_GC_DISABLE=y
 # CONFIG_LV_GC_ENABLE is not set
 CONFIG_LV_ENABLE_GC=0
+# end of LittlevGL2RTT Options
+
 # CONFIG_LITTLEVGL2RTT_USING_DEMO is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+# end of LVGL: powerful and easy-to-use embedded GUI library
 
 #
 # u8g2: a monochrome graphic library
 #
 # CONFIG_PKG_USING_U8G2_OFFICIAL is not set
 # CONFIG_PKG_USING_U8G2 is not set
+# end of u8g2: a monochrome graphic library
+
 # CONFIG_PKG_USING_OPENMV is not set
 # CONFIG_PKG_USING_MUPDF is not set
 # CONFIG_PKG_USING_STEMWIN is not set
@@ -469,12 +504,15 @@ CONFIG_PKG_HELIX_VER="v1.0.0"
 #
 # CONFIG_PKG_USING_PAINTERENGINE is not set
 # CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
+# end of PainterEngine: A cross-platform graphics application framework written in C language
+
 # CONFIG_PKG_USING_MCURSES is not set
 # CONFIG_PKG_USING_TERMBOX is not set
 # CONFIG_PKG_USING_VT100 is not set
 # CONFIG_PKG_USING_QRCODE is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
+# end of multimedia packages
 
 #
 # tools packages
@@ -524,6 +562,8 @@ CONFIG_PKG_GBK2UTF8_VER="v1.0.0"
 # CONFIG_PKG_USING_CBOX is not set
 # CONFIG_PKG_USING_SNOWFLAKE is not set
 # CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
+# end of tools packages
 
 #
 # system packages
@@ -535,6 +575,7 @@ CONFIG_PKG_GBK2UTF8_VER="v1.0.0"
 # CONFIG_PKG_USING_RT_MEMCPY_CM is not set
 # CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
 # CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+# end of enhanced kernel services
 
 #
 # POSIX extension functions
@@ -543,6 +584,8 @@ CONFIG_PKG_GBK2UTF8_VER="v1.0.0"
 # CONFIG_PKG_USING_POSIX_WCWIDTH is not set
 # CONFIG_PKG_USING_POSIX_ITOA is not set
 # CONFIG_PKG_USING_POSIX_STRINGS is not set
+# CONFIG_PKG_USING_POSIX_CTYPES is not set
+# end of POSIX extension functions
 
 #
 # acceleration: Assembly language or algorithmic acceleration packages
@@ -550,6 +593,7 @@ CONFIG_PKG_GBK2UTF8_VER="v1.0.0"
 # CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
 # CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
 # CONFIG_PKG_USING_QFPLIB_M3 is not set
+# end of acceleration: Assembly language or algorithmic acceleration packages
 
 #
 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
@@ -557,6 +601,7 @@ CONFIG_PKG_GBK2UTF8_VER="v1.0.0"
 # CONFIG_PKG_USING_CMSIS_5 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS1 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 
 #
 # Micrium: Micrium software products porting for RT-Thread
@@ -567,10 +612,13 @@ CONFIG_PKG_GBK2UTF8_VER="v1.0.0"
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
+# end of Micrium: Micrium software products porting for RT-Thread
+
 # CONFIG_PKG_USING_RTDUINO is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_PERF_COUNTER is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -619,6 +667,8 @@ CONFIG_PKG_LITTLEFS_VER="v2.0.5"
 # CONFIG_PKG_USING_CHERRYUSB is not set
 # CONFIG_PKG_USING_KMULTI_RTIMER is not set
 # CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
+# end of system packages
 
 #
 # peripheral libraries and drivers
@@ -720,6 +770,7 @@ CONFIG_PKG_NES_VER="v1.0.0"
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_CW2015 is not set
 # CONFIG_PKG_USING_RFM300 is not set
+# end of peripheral libraries and drivers
 
 #
 # AI packages
@@ -733,6 +784,7 @@ CONFIG_PKG_NES_VER="v1.0.0"
 # CONFIG_PKG_USING_ULAPACK is not set
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
+# end of AI packages
 
 #
 # miscellaneous packages
@@ -741,6 +793,7 @@ CONFIG_PKG_NES_VER="v1.0.0"
 #
 # project laboratory
 #
+# end of project laboratory
 
 #
 # samples: kernel and components samples
@@ -749,6 +802,7 @@ CONFIG_PKG_NES_VER="v1.0.0"
 # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
 # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
 # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+# end of samples: kernel and components samples
 
 #
 # entertainment: terminal games and other interesting software packages
@@ -763,6 +817,8 @@ CONFIG_PKG_NES_VER="v1.0.0"
 # CONFIG_PKG_USING_TETRIS is not set
 # CONFIG_PKG_USING_DONUT is not set
 # CONFIG_PKG_USING_COWSAY is not set
+# end of entertainment: terminal games and other interesting software packages
+
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -794,6 +850,9 @@ CONFIG_PKG_NES_VER="v1.0.0"
 # CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
 # CONFIG_PKG_USING_MFBD is not set
 # CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
+# end of miscellaneous packages
+# end of RT-Thread online packages
 
 #
 # Hardware Drivers Config
@@ -808,10 +867,12 @@ CONFIG_ART_PI_USING_MEDIA_IO=y
 CONFIG_BSP_USING_SPI_LCD_ILI9488=y
 CONFIG_PKG_USING_PERSIMMON_SRC=y
 CONFIG_MEDIA_IO_USING_SCREEN=y
+# CONFIG_BSP_USING_LVGL is not set
 CONFIG_MEDIA_IO_USING_TOUCH=y
 CONFIG_MEDIA_IO_USING_AUDIO=y
 CONFIG_AUDIO_MP3=y
 # CONFIG_ART_PI_USING_INDUSTRY_IO is not set
+# end of Board extended module
 
 #
 # Onboard Peripheral
@@ -825,6 +886,7 @@ CONFIG_BSP_USING_SPI_FLASH=y
 CONFIG_BSP_USING_FS=y
 CONFIG_BSP_USING_SDCARD_FS=y
 CONFIG_BSP_USING_SPI_FLASH_FS=y
+# end of Onboard Peripheral
 
 #
 # On-chip Peripheral
@@ -869,6 +931,8 @@ CONFIG_BSP_USING_SDRAM=y
 # CONFIG_BSP_USING_TIM is not set
 # CONFIG_BSP_USING_PWM is not set
 # CONFIG_BSP_USING_ONCHIP_RTC is not set
+# end of On-chip Peripheral
+# end of Hardware Drivers Config
 
 #
 # External Libraries
@@ -877,6 +941,8 @@ CONFIG_BSP_USING_SDRAM=y
 # CONFIG_ART_PI_USING_OTA_LIB is not set
 # CONFIG_ART_PI_TouchGFX_LIB is not set
 # CONFIG_ART_PI_USING_FTP_LIB is not set
+# end of External Libraries
+
 CONFIG_FIRMWARE_EXEC_USING_QSPI_FLASH=y
 # CONFIG_FIRMWARE_EXEC_USING_QEMU is not set
 CONFIG_RT_STUDIO_BUILT_IN=y

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
projects/art_pi_nes/.cproject


BIN
projects/art_pi_nes/.settings/.rtmenus


+ 6 - 7
projects/art_pi_nes/.settings/projcfg.ini

@@ -1,5 +1,5 @@
 #RT-Thread Studio Project Configuration
-#Sun Sep 27 20:00:00 CST 2020
+#Mon Jun 13 16:01:26 CST 2022
 cfg_version=v3.0
 board_name=STM32H750-RT-ART-PI
 example_name=art_pi_blink_led
@@ -7,14 +7,13 @@ hardware_adapter=ST-LINK
 board_base_nano_proj=False
 project_type=rt-thread
 chip_name=STM32H750XBHx
-bsp_version=0.3.0
 selected_rtt_version=4.0.2
+bsp_version=0.3.0
 os_branch=full
-project_base_bsp=true
-is_use_scons_build=True
+output_project_path=E\:\\software\\Git\\GitRepository\\ART-PI\\sdk-bsp-stm32h750-realthread-artpi\\projects\\art_pi_nes
 is_base_example_project=True
-output_project_path=D\:/RT-ThreadStudio/workspace
+is_use_scons_build=True
+project_base_bsp=true
 project_name=art_pi_blink_led
-bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master
 os_version=4.0.2
-
+bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master

+ 50 - 3
projects/art_pi_nes/rtconfig.h

@@ -1,8 +1,7 @@
 #ifndef RT_CONFIG_H__
 #define RT_CONFIG_H__
 
-/* Automatically generated file; DO NOT EDIT. */
-/* RT-Thread Configuration */
+/* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */
 
 /* RT-Thread Kernel */
 
@@ -24,6 +23,7 @@
 /* kservice optimization */
 
 #define RT_KSERVICE_USING_STDLIB
+/* end of kservice optimization */
 #define RT_DEBUG
 #define RT_DEBUG_COLOR
 
@@ -34,6 +34,7 @@
 #define RT_USING_EVENT
 #define RT_USING_MAILBOX
 #define RT_USING_MESSAGEQUEUE
+/* end of Inter-Thread communication */
 
 /* Memory Management */
 
@@ -43,6 +44,7 @@
 #define RT_USING_MEMHEAP_AS_HEAP
 #define RT_USING_MEMHEAP_AUTO_BINDING
 #define RT_USING_HEAP
+/* end of Memory Management */
 
 /* Kernel Device Object */
 
@@ -50,7 +52,9 @@
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 512
 #define RT_CONSOLE_DEVICE_NAME "uart4"
-#define RT_VER_NUM 0x40101
+/* end of Kernel Device Object */
+#define RT_VER_NUM 0x40100
+/* end of RT-Thread Kernel */
 #define ARCH_ARM
 #define RT_USING_CPU_FFS
 #define ARCH_ARM_CORTEX_M
@@ -97,6 +101,7 @@
 #define RT_DFS_ELM_MAX_SECTOR_SIZE 4096
 #define RT_DFS_ELM_REENTRANT
 #define RT_DFS_ELM_MUTEX_TIMEOUT 3000
+/* end of elm-chan's FatFs, Generic FAT Filesystem Module */
 #define RT_USING_DFS_DEVFS
 #define RT_USING_DFS_ROMFS
 #define RT_USING_FAL
@@ -139,6 +144,8 @@
 
 /* Using USB */
 
+/* end of Using USB */
+/* end of Device Drivers */
 
 /* C/C++ and POSIX layer */
 
@@ -153,13 +160,19 @@
 
 /* Socket is in the 'Network' category */
 
+/* end of Interprocess Communication (IPC) */
+/* end of POSIX (Portable Operating System Interface) layer */
+/* end of C/C++ and POSIX layer */
 
 /* Network */
 
+/* end of Network */
 
 /* Utilities */
 
 #define RT_USING_RYM
+/* end of Utilities */
+/* end of RT-Thread Components */
 
 /* RT-Thread online packages */
 
@@ -170,23 +183,32 @@
 
 /* Marvell WiFi */
 
+/* end of Marvell WiFi */
 
 /* Wiced WiFi */
 
+/* end of Wiced WiFi */
+/* end of Wi-Fi */
 
 /* IoT Cloud */
 
+/* end of IoT Cloud */
+/* end of IoT - internet of things */
 
 /* security packages */
 
+/* end of security packages */
 
 /* language packages */
 
 /* JSON: JavaScript Object Notation, a lightweight data-interchange format */
 
+/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */
 
 /* XML: Extensible Markup Language */
 
+/* end of XML: Extensible Markup Language */
+/* end of language packages */
 
 /* multimedia packages */
 
@@ -206,36 +228,47 @@
 #define LV_DPI 50
 #define LV_GC_DISABLE
 #define LV_ENABLE_GC 0
+/* end of LittlevGL2RTT Options */
+/* end of LVGL: powerful and easy-to-use embedded GUI library */
 
 /* u8g2: a monochrome graphic library */
 
+/* end of u8g2: a monochrome graphic library */
 #define PKG_USING_HELIX
 #define PKG_USING_HELIX_V100
 
 /* PainterEngine: A cross-platform graphics application framework written in C language */
 
+/* end of PainterEngine: A cross-platform graphics application framework written in C language */
+/* end of multimedia packages */
 
 /* tools packages */
 
 #define PKG_USING_GBK2UTF8
 #define PKG_USING_GBK2UTF8_V100
+/* end of tools packages */
 
 /* system packages */
 
 /* enhanced kernel services */
 
+/* end of enhanced kernel services */
 
 /* POSIX extension functions */
 
+/* end of POSIX extension functions */
 
 /* acceleration: Assembly language or algorithmic acceleration packages */
 
+/* end of acceleration: Assembly language or algorithmic acceleration packages */
 
 /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
 
+/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
+/* end of Micrium: Micrium software products porting for RT-Thread */
 #define PKG_USING_LITTLEFS
 #define PKG_USING_LITTLEFS_V205
 #define LFS_READ_SIZE 256
@@ -245,6 +278,7 @@
 #define LFS_BLOCK_CYCLES 0
 #define LFS_THREADSAFE
 #define LFS_LOOKAHEAD_MAX 128
+/* end of system packages */
 
 /* peripheral libraries and drivers */
 
@@ -256,19 +290,27 @@
 #define PKG_NES_FRAME_SKIP 3
 #define PKG_NES_DOUBLE_FRAMEBUFFER
 #define PKG_USING_NES_V100
+/* end of peripheral libraries and drivers */
 
 /* AI packages */
 
+/* end of AI packages */
 
 /* miscellaneous packages */
 
 /* project laboratory */
 
+/* end of project laboratory */
+
 /* samples: kernel and components samples */
 
+/* end of samples: kernel and components samples */
 
 /* entertainment: terminal games and other interesting software packages */
 
+/* end of entertainment: terminal games and other interesting software packages */
+/* end of miscellaneous packages */
+/* end of RT-Thread online packages */
 
 /* Hardware Drivers Config */
 
@@ -284,6 +326,7 @@
 #define MEDIA_IO_USING_TOUCH
 #define MEDIA_IO_USING_AUDIO
 #define AUDIO_MP3
+/* end of Board extended module */
 
 /* Onboard Peripheral */
 
@@ -292,6 +335,7 @@
 #define BSP_USING_FS
 #define BSP_USING_SDCARD_FS
 #define BSP_USING_SPI_FLASH_FS
+/* end of Onboard Peripheral */
 
 /* On-chip Peripheral */
 
@@ -317,9 +361,12 @@
 #define BSP_USING_SDIO
 #define BSP_USING_SDIO1
 #define BSP_USING_SDRAM
+/* end of On-chip Peripheral */
+/* end of Hardware Drivers Config */
 
 /* External Libraries */
 
+/* end of External Libraries */
 #define FIRMWARE_EXEC_USING_QSPI_FLASH
 #define RT_STUDIO_BUILT_IN
 

+ 9 - 2
projects/art_pi_net_player/.config

@@ -28,7 +28,7 @@ CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
 # CONFIG_RT_KSERVICE_USING_STDLIB is not set
 # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
 # CONFIG_RT_USING_TINY_FFS is not set
-# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+# CONFIG_RT_PRINTF_LONGLONG is not set
 # end of kservice optimization
 
 CONFIG_RT_DEBUG=y
@@ -86,7 +86,7 @@ CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart4"
 # end of Kernel Device Object
 
-CONFIG_RT_VER_NUM=0x40101
+CONFIG_RT_VER_NUM=0x40100
 # end of RT-Thread Kernel
 
 CONFIG_ARCH_ARM=y
@@ -512,6 +512,7 @@ CONFIG_PKG_WEBCLIENT_VER_NUM=0x20200
 # CONFIG_PKG_USING_HM is not set
 # CONFIG_PKG_USING_SMALL_MODBUS is not set
 # CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
 # end of IoT - internet of things
 
 #
@@ -588,6 +589,7 @@ CONFIG_PKG_EZXML_VER="v0.8.6.1"
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
 # end of language packages
 
 #
@@ -709,6 +711,7 @@ CONFIG_PKG_EASYFLASH_VER_NUM=0x40000
 # CONFIG_PKG_USING_CBOX is not set
 # CONFIG_PKG_USING_SNOWFLAKE is not set
 # CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
 # end of tools packages
 
 #
@@ -730,6 +733,7 @@ CONFIG_PKG_EASYFLASH_VER_NUM=0x40000
 # CONFIG_PKG_USING_POSIX_WCWIDTH is not set
 # CONFIG_PKG_USING_POSIX_ITOA is not set
 # CONFIG_PKG_USING_POSIX_STRINGS is not set
+# CONFIG_PKG_USING_POSIX_CTYPES is not set
 # end of POSIX extension functions
 
 #
@@ -763,6 +767,7 @@ CONFIG_PKG_EASYFLASH_VER_NUM=0x40000
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_PERF_COUNTER is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -811,6 +816,7 @@ CONFIG_PKG_LITTLEFS_VER="v2.0.5"
 # CONFIG_PKG_USING_CHERRYUSB is not set
 # CONFIG_PKG_USING_KMULTI_RTIMER is not set
 # CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
 # end of system packages
 
 #
@@ -1009,6 +1015,7 @@ CONFIG_ART_PI_USING_MEDIA_IO=y
 CONFIG_BSP_USING_SPI_LCD_ILI9488=y
 CONFIG_PKG_USING_PERSIMMON_SRC=y
 CONFIG_MEDIA_IO_USING_SCREEN=y
+# CONFIG_BSP_USING_LVGL is not set
 CONFIG_MEDIA_IO_USING_TOUCH=y
 CONFIG_MEDIA_IO_USING_AUDIO=y
 CONFIG_AUDIO_MP3=y

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
projects/art_pi_net_player/.cproject


BIN
projects/art_pi_net_player/.settings/.rtmenus


+ 6 - 7
projects/art_pi_net_player/.settings/projcfg.ini

@@ -1,5 +1,5 @@
 #RT-Thread Studio Project Configuration
-#Sun Sep 27 20:00:00 CST 2020
+#Mon Jun 13 15:57:33 CST 2022
 cfg_version=v3.0
 board_name=STM32H750-RT-ART-PI
 example_name=art_pi_net_player
@@ -7,14 +7,13 @@ hardware_adapter=ST-LINK
 board_base_nano_proj=False
 project_type=rt-thread
 chip_name=STM32H750XBHx
-bsp_version=0.3.0
 selected_rtt_version=4.0.2
+bsp_version=0.3.0
 os_branch=full
-project_base_bsp=true
-is_use_scons_build=True
+output_project_path=E\:\\software\\Git\\GitRepository\\ART-PI\\sdk-bsp-stm32h750-realthread-artpi\\projects\\art_pi_net_player
 is_base_example_project=True
-output_project_path=D\:/RT-ThreadStudio/workspace
+is_use_scons_build=True
+project_base_bsp=true
 project_name=art_pi_net_player
-bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master
 os_version=4.0.2
-
+bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master

+ 115 - 115
projects/art_pi_net_player/packages/mbedtls-v2.7.10.1/ports/src/tls_certificate.c

@@ -41,74 +41,25 @@ const char mbedtls_root_certificate[] =
 "Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ\r\n" \
 "-----END CERTIFICATE-----\r\n" \
 "-----BEGIN CERTIFICATE-----\r\n" \
-"MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\r\n" \
-"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\r\n" \
-"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\r\n" \
-"QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\r\n" \
-"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\r\n" \
-"b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\r\n" \
-"9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\r\n" \
-"CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\r\n" \
-"nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\r\n" \
-"43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\r\n" \
-"T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\r\n" \
-"gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\r\n" \
-"BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\r\n" \
-"TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\r\n" \
-"DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\r\n" \
-"hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\r\n" \
-"06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\r\n" \
-"PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\r\n" \
-"YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\r\n" \
-"CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\r\n" \
-"-----END CERTIFICATE-----\r\n" \
-"-----BEGIN CERTIFICATE-----\r\n" \
-"MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB\r\n" \
-"yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\r\n" \
-"ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp\r\n" \
-"U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW\r\n" \
-"ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\r\n" \
-"aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL\r\n" \
-"MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\r\n" \
-"ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln\r\n" \
-"biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp\r\n" \
-"U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y\r\n" \
-"aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1\r\n" \
-"nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex\r\n" \
-"t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz\r\n" \
-"SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG\r\n" \
-"BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+\r\n" \
-"rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/\r\n" \
-"NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E\r\n" \
-"BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH\r\n" \
-"BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy\r\n" \
-"aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv\r\n" \
-"MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE\r\n" \
-"p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y\r\n" \
-"5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK\r\n" \
-"WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ\r\n" \
-"4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N\r\n" \
-"hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq\r\n" \
-"-----END CERTIFICATE-----\r\n" \
-"-----BEGIN CERTIFICATE-----\r\n" \
-"MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/\r\n" \
-"MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\r\n" \
-"DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow\r\n" \
-"PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD\r\n" \
-"Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\r\n" \
-"AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O\r\n" \
-"rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq\r\n" \
-"OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b\r\n" \
-"xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw\r\n" \
-"7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD\r\n" \
-"aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV\r\n" \
-"HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG\r\n" \
-"SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69\r\n" \
-"ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr\r\n" \
-"AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz\r\n" \
-"R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5\r\n" \
-"JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo\r\n" \
-"Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ\r\n" \
+"MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\r\n" \
+"A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\r\n" \
+"b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\r\n" \
+"MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\r\n" \
+"YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\r\n" \
+"aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\r\n" \
+"jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\r\n" \
+"xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\r\n" \
+"1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\r\n" \
+"snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\r\n" \
+"U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\r\n" \
+"9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\r\n" \
+"BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\r\n" \
+"AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\r\n" \
+"yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\r\n" \
+"38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\r\n" \
+"AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\r\n" \
+"DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\r\n" \
+"HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\r\n" \
 "-----END CERTIFICATE-----\r\n" \
 "-----BEGIN CERTIFICATE-----\r\n" \
 "MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\r\n" \
@@ -131,6 +82,34 @@ const char mbedtls_root_certificate[] =
 "rqXRfboQnoZsG4q5WTP468SQvvG5\r\n" \
 "-----END CERTIFICATE-----\r\n" \
 "-----BEGIN CERTIFICATE-----\r\n" \
+"MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB\r\n" \
+"vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\r\n" \
+"ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp\r\n" \
+"U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W\r\n" \
+"ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe\r\n" \
+"Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX\r\n" \
+"MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0\r\n" \
+"IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y\r\n" \
+"IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh\r\n" \
+"bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF\r\n" \
+"AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF\r\n" \
+"9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH\r\n" \
+"H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H\r\n" \
+"LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN\r\n" \
+"/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT\r\n" \
+"rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud\r\n" \
+"EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw\r\n" \
+"WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs\r\n" \
+"exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud\r\n" \
+"DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4\r\n" \
+"sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+\r\n" \
+"seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz\r\n" \
+"4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+\r\n" \
+"BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR\r\n" \
+"lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3\r\n" \
+"7M2CYfE45k+XmCpajQ==\r\n" \
+"-----END CERTIFICATE-----\r\n" \
+"-----BEGIN CERTIFICATE-----\r\n" \
 "MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT\r\n" \
 "MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i\r\n" \
 "YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG\r\n" \
@@ -199,53 +178,32 @@ const char mbedtls_root_certificate[] =
 "jVaMaA==\r\n" \
 "-----END CERTIFICATE-----\r\n" \
 "-----BEGIN CERTIFICATE-----\r\n" \
-"MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\r\n" \
-"A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\r\n" \
-"b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\r\n" \
-"MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\r\n" \
-"YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\r\n" \
-"aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\r\n" \
-"jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\r\n" \
-"xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\r\n" \
-"1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\r\n" \
-"snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\r\n" \
-"U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\r\n" \
-"9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\r\n" \
-"BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\r\n" \
-"AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\r\n" \
-"yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\r\n" \
-"38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\r\n" \
-"AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\r\n" \
-"DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\r\n" \
-"HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\r\n" \
-"-----END CERTIFICATE-----\r\n" \
-"-----BEGIN CERTIFICATE-----\r\n" \
-"MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB\r\n" \
-"vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\r\n" \
-"ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp\r\n" \
-"U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W\r\n" \
-"ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe\r\n" \
-"Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX\r\n" \
-"MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0\r\n" \
-"IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y\r\n" \
-"IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh\r\n" \
-"bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF\r\n" \
-"AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF\r\n" \
-"9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH\r\n" \
-"H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H\r\n" \
-"LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN\r\n" \
-"/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT\r\n" \
-"rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud\r\n" \
-"EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw\r\n" \
-"WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs\r\n" \
-"exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud\r\n" \
-"DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4\r\n" \
-"sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+\r\n" \
-"seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz\r\n" \
-"4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+\r\n" \
-"BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR\r\n" \
-"lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3\r\n" \
-"7M2CYfE45k+XmCpajQ==\r\n" \
+"MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB\r\n" \
+"yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\r\n" \
+"ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp\r\n" \
+"U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW\r\n" \
+"ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\r\n" \
+"aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL\r\n" \
+"MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\r\n" \
+"ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln\r\n" \
+"biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp\r\n" \
+"U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y\r\n" \
+"aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1\r\n" \
+"nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex\r\n" \
+"t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz\r\n" \
+"SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG\r\n" \
+"BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+\r\n" \
+"rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/\r\n" \
+"NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E\r\n" \
+"BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH\r\n" \
+"BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy\r\n" \
+"aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv\r\n" \
+"MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE\r\n" \
+"p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y\r\n" \
+"5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK\r\n" \
+"WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ\r\n" \
+"4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N\r\n" \
+"hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq\r\n" \
 "-----END CERTIFICATE-----\r\n" \
 "-----BEGIN CERTIFICATE-----\r\n" \
 "MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB\r\n" \
@@ -282,6 +240,28 @@ const char mbedtls_root_certificate[] =
 "NVOFBkpdn627G190\r\n" \
 "-----END CERTIFICATE-----\r\n" \
 "-----BEGIN CERTIFICATE-----\r\n" \
+"MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\r\n" \
+"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\r\n" \
+"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\r\n" \
+"QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\r\n" \
+"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\r\n" \
+"b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\r\n" \
+"9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\r\n" \
+"CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\r\n" \
+"nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\r\n" \
+"43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\r\n" \
+"T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\r\n" \
+"gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\r\n" \
+"BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\r\n" \
+"TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\r\n" \
+"DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\r\n" \
+"hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\r\n" \
+"06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\r\n" \
+"PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\r\n" \
+"YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\r\n" \
+"CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\r\n" \
+"-----END CERTIFICATE-----\r\n" \
+"-----BEGIN CERTIFICATE-----\r\n" \
 "MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC\r\n" \
 "VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50\r\n" \
 "cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs\r\n" \
@@ -306,6 +286,26 @@ const char mbedtls_root_certificate[] =
 "nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH\r\n" \
 "VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==\r\n" \
 "-----END CERTIFICATE-----\r\n" \
+"-----BEGIN CERTIFICATE-----\r\n" \
+"MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/\r\n" \
+"MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\r\n" \
+"DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow\r\n" \
+"PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD\r\n" \
+"Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\r\n" \
+"AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O\r\n" \
+"rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq\r\n" \
+"OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b\r\n" \
+"xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw\r\n" \
+"7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD\r\n" \
+"aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV\r\n" \
+"HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG\r\n" \
+"SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69\r\n" \
+"ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr\r\n" \
+"AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz\r\n" \
+"R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5\r\n" \
+"JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo\r\n" \
+"Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ\r\n" \
+"-----END CERTIFICATE-----\r\n" \
 
 ;
 

+ 1 - 1
projects/art_pi_net_player/rtconfig.h

@@ -51,7 +51,7 @@
 #define RT_CONSOLEBUF_SIZE 128
 #define RT_CONSOLE_DEVICE_NAME "uart4"
 /* end of Kernel Device Object */
-#define RT_VER_NUM 0x40101
+#define RT_VER_NUM 0x40100
 /* end of RT-Thread Kernel */
 #define ARCH_ARM
 #define RT_USING_CPU_FFS

+ 791 - 0
projects/art_pi_rust/.config

@@ -0,0 +1,791 @@
+# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
+
+#
+# RT-Thread Kernel
+#
+CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_ALIGN_SIZE=4
+# CONFIG_RT_THREAD_PRIORITY_8 is not set
+CONFIG_RT_THREAD_PRIORITY_32=y
+# CONFIG_RT_THREAD_PRIORITY_256 is not set
+CONFIG_RT_THREAD_PRIORITY_MAX=32
+CONFIG_RT_TICK_PER_SECOND=1000
+CONFIG_RT_USING_OVERFLOW_CHECK=y
+CONFIG_RT_USING_HOOK=y
+CONFIG_RT_HOOK_USING_FUNC_PTR=y
+CONFIG_RT_USING_IDLE_HOOK=y
+CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
+CONFIG_IDLE_THREAD_STACK_SIZE=256
+CONFIG_RT_USING_TIMER_SOFT=y
+CONFIG_RT_TIMER_THREAD_PRIO=4
+CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
+
+#
+# kservice optimization
+#
+CONFIG_RT_KSERVICE_USING_STDLIB=y
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMCPY is not set
+# CONFIG_RT_KSERVICE_USING_STDLIB_MEMSET is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_TINY_FFS is not set
+# CONFIG_RT_PRINTF_LONGLONG is not set
+# end of kservice optimization
+
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_COLOR is not set
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
+
+#
+# Inter-Thread communication
+#
+CONFIG_RT_USING_SEMAPHORE=y
+CONFIG_RT_USING_MUTEX=y
+CONFIG_RT_USING_EVENT=y
+CONFIG_RT_USING_MAILBOX=y
+CONFIG_RT_USING_MESSAGEQUEUE=y
+# CONFIG_RT_USING_SIGNALS is not set
+# end of Inter-Thread communication
+
+#
+# Memory Management
+#
+CONFIG_RT_USING_MEMPOOL=y
+# CONFIG_RT_USING_SMALL_MEM is not set
+# CONFIG_RT_USING_SLAB is not set
+CONFIG_RT_USING_MEMHEAP=y
+CONFIG_RT_MEMHEAP_FAST_MODE=y
+# CONFIG_RT_MEMHEAP_BSET_MODE is not set
+# CONFIG_RT_USING_SMALL_MEM_AS_HEAP is not set
+CONFIG_RT_USING_MEMHEAP_AS_HEAP=y
+CONFIG_RT_USING_MEMHEAP_AUTO_BINDING=y
+# CONFIG_RT_USING_SLAB_AS_HEAP is not set
+# CONFIG_RT_USING_USERHEAP is not set
+# CONFIG_RT_USING_NOHEAP is not set
+# CONFIG_RT_USING_MEMTRACE is not set
+# CONFIG_RT_USING_HEAP_ISR is not set
+CONFIG_RT_USING_HEAP=y
+# end of Memory Management
+
+#
+# Kernel Device Object
+#
+CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
+# CONFIG_RT_USING_INTERRUPT_INFO is not set
+CONFIG_RT_USING_CONSOLE=y
+CONFIG_RT_CONSOLEBUF_SIZE=128
+CONFIG_RT_CONSOLE_DEVICE_NAME="uart4"
+# end of Kernel Device Object
+
+CONFIG_RT_VER_NUM=0x40100
+# end of RT-Thread Kernel
+
+CONFIG_ARCH_ARM=y
+CONFIG_RT_USING_CPU_FFS=y
+CONFIG_ARCH_ARM_CORTEX_M=y
+CONFIG_ARCH_ARM_CORTEX_M7=y
+
+#
+# RT-Thread Components
+#
+CONFIG_RT_USING_COMPONENTS_INIT=y
+CONFIG_RT_USING_USER_MAIN=y
+CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
+CONFIG_RT_MAIN_THREAD_PRIORITY=10
+# CONFIG_RT_USING_LEGACY is not set
+CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
+CONFIG_FINSH_USING_MSH=y
+CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
+CONFIG_FINSH_USING_HISTORY=y
+CONFIG_FINSH_HISTORY_LINES=5
+CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
+CONFIG_FINSH_USING_DESCRIPTION=y
+# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
+# CONFIG_FINSH_USING_AUTH is not set
+CONFIG_FINSH_ARG_MAX=10
+CONFIG_RT_USING_DFS=y
+CONFIG_DFS_USING_POSIX=y
+CONFIG_DFS_USING_WORKDIR=y
+CONFIG_DFS_FILESYSTEMS_MAX=4
+CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
+CONFIG_DFS_FD_MAX=16
+# CONFIG_RT_USING_DFS_MNTTABLE is not set
+# CONFIG_RT_USING_DFS_ELMFAT is not set
+CONFIG_RT_USING_DFS_DEVFS=y
+CONFIG_RT_USING_DFS_ROMFS=y
+# CONFIG_RT_USING_DFS_RAMFS is not set
+# CONFIG_RT_USING_FAL is not set
+# CONFIG_RT_USING_LWP is not set
+
+#
+# Device Drivers
+#
+CONFIG_RT_USING_DEVICE_IPC=y
+# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
+CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
+CONFIG_RT_SERIAL_USING_DMA=y
+CONFIG_RT_SERIAL_RB_BUFSZ=64
+# CONFIG_RT_USING_CAN is not set
+# CONFIG_RT_USING_HWTIMER is not set
+# CONFIG_RT_USING_CPUTIME is not set
+# CONFIG_RT_USING_I2C is not set
+# CONFIG_RT_USING_PHY is not set
+CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_ADC is not set
+# CONFIG_RT_USING_DAC is not set
+# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_MTD_NOR=y
+# CONFIG_RT_USING_MTD_NAND is not set
+# CONFIG_RT_USING_PM is not set
+# CONFIG_RT_USING_RTC is not set
+# CONFIG_RT_USING_SDIO is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SPI_BITOPS is not set
+# CONFIG_RT_USING_QSPI is not set
+# CONFIG_RT_USING_SPI_MSD is not set
+CONFIG_RT_USING_SFUD=y
+CONFIG_RT_SFUD_USING_SFDP=y
+CONFIG_RT_SFUD_USING_FLASH_INFO_TABLE=y
+# CONFIG_RT_SFUD_USING_QSPI is not set
+CONFIG_RT_SFUD_SPI_MAX_HZ=50000000
+# CONFIG_RT_DEBUG_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
+# CONFIG_RT_USING_WDT is not set
+# CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
+# CONFIG_RT_USING_TOUCH is not set
+# CONFIG_RT_USING_HWCRYPTO is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
+# CONFIG_RT_USING_WIFI is not set
+
+#
+# Using USB
+#
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+# end of Using USB
+# end of Device Drivers
+
+#
+# C/C++ and POSIX layer
+#
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
+
+#
+# POSIX (Portable Operating System Interface) layer
+#
+# CONFIG_RT_USING_POSIX_FS is not set
+# CONFIG_RT_USING_POSIX_DELAY is not set
+# CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
+# CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
+
+#
+# Interprocess Communication (IPC)
+#
+# CONFIG_RT_USING_POSIX_PIPE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
+
+#
+# Socket is in the 'Network' category
+#
+# end of Interprocess Communication (IPC)
+# end of POSIX (Portable Operating System Interface) layer
+
+# CONFIG_RT_USING_CPLUSPLUS is not set
+# end of C/C++ and POSIX layer
+
+#
+# Network
+#
+# CONFIG_RT_USING_SAL is not set
+# CONFIG_RT_USING_NETDEV is not set
+# CONFIG_RT_USING_LWIP is not set
+# CONFIG_RT_USING_AT is not set
+# end of Network
+
+#
+# Utilities
+#
+# CONFIG_RT_USING_RYM is not set
+# CONFIG_RT_USING_ULOG is not set
+# CONFIG_RT_USING_UTEST is not set
+# CONFIG_RT_USING_VAR_EXPORT is not set
+# CONFIG_RT_USING_RT_LINK is not set
+# end of Utilities
+
+# CONFIG_RT_USING_VBUS is not set
+# end of RT-Thread Components
+
+#
+# RT-Thread online packages
+#
+
+#
+# IoT - internet of things
+#
+# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
+# CONFIG_PKG_USING_PAHOMQTT is not set
+# CONFIG_PKG_USING_UMQTT is not set
+# CONFIG_PKG_USING_WEBCLIENT is not set
+# CONFIG_PKG_USING_WEBNET is not set
+# CONFIG_PKG_USING_MONGOOSE is not set
+# CONFIG_PKG_USING_MYMQTT is not set
+# CONFIG_PKG_USING_KAWAII_MQTT is not set
+# CONFIG_PKG_USING_BC28_MQTT is not set
+# CONFIG_PKG_USING_WEBTERMINAL is not set
+# CONFIG_PKG_USING_LIBMODBUS is not set
+# CONFIG_PKG_USING_FREEMODBUS is not set
+# CONFIG_PKG_USING_NANOPB is not set
+
+#
+# Wi-Fi
+#
+
+#
+# Marvell WiFi
+#
+# CONFIG_PKG_USING_WLANMARVELL is not set
+# end of Marvell WiFi
+
+#
+# Wiced WiFi
+#
+# CONFIG_PKG_USING_WLAN_WICED is not set
+# end of Wiced WiFi
+
+# CONFIG_PKG_USING_RW007 is not set
+# end of Wi-Fi
+
+# CONFIG_PKG_USING_COAP is not set
+# CONFIG_PKG_USING_NOPOLL is not set
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_CMUX is not set
+# CONFIG_PKG_USING_PPP_DEVICE is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
+# CONFIG_PKG_USING_ATSRV_SOCKET is not set
+# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
+
+#
+# IoT Cloud
+#
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_GAGENT_CLOUD is not set
+# CONFIG_PKG_USING_ALI_IOTKIT is not set
+# CONFIG_PKG_USING_AZURE is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
+# CONFIG_PKG_USING_JIOT-C-SDK is not set
+# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
+# CONFIG_PKG_USING_JOYLINK is not set
+# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# end of IoT Cloud
+
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
+# CONFIG_PKG_USING_IPMSG is not set
+# CONFIG_PKG_USING_LSSDP is not set
+# CONFIG_PKG_USING_AIRKISS_OPEN is not set
+# CONFIG_PKG_USING_LIBRWS is not set
+# CONFIG_PKG_USING_TCPSERVER is not set
+# CONFIG_PKG_USING_PROTOBUF_C is not set
+# CONFIG_PKG_USING_DLT645 is not set
+# CONFIG_PKG_USING_QXWZ is not set
+# CONFIG_PKG_USING_SMTP_CLIENT is not set
+# CONFIG_PKG_USING_ABUP_FOTA is not set
+# CONFIG_PKG_USING_LIBCURL2RTT is not set
+# CONFIG_PKG_USING_CAPNP is not set
+# CONFIG_PKG_USING_AGILE_TELNET is not set
+# CONFIG_PKG_USING_NMEALIB is not set
+# CONFIG_PKG_USING_PDULIB is not set
+# CONFIG_PKG_USING_BTSTACK is not set
+# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
+# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
+# CONFIG_PKG_USING_MAVLINK is not set
+# CONFIG_PKG_USING_BSAL is not set
+# CONFIG_PKG_USING_AGILE_MODBUS is not set
+# CONFIG_PKG_USING_AGILE_FTP is not set
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
+# CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
+# end of IoT - internet of things
+
+#
+# security packages
+#
+# CONFIG_PKG_USING_MBEDTLS is not set
+# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
+# CONFIG_PKG_USING_TINYCRYPT is not set
+# CONFIG_PKG_USING_TFM is not set
+# CONFIG_PKG_USING_YD_CRYPTO is not set
+# end of security packages
+
+#
+# language packages
+#
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
+# end of XML: Extensible Markup Language
+
+# CONFIG_PKG_USING_LUATOS_SOC is not set
+# CONFIG_PKG_USING_LUA is not set
+# CONFIG_PKG_USING_JERRYSCRIPT is not set
+# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
+# end of language packages
+
+#
+# multimedia packages
+#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+# end of LVGL: powerful and easy-to-use embedded GUI library
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
+# end of u8g2: a monochrome graphic library
+
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
+# CONFIG_PKG_USING_WAVPLAYER is not set
+# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
+# CONFIG_PKG_USING_HELIX is not set
+# CONFIG_PKG_USING_AZUREGUIX is not set
+# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
+# end of PainterEngine: A cross-platform graphics application framework written in C language
+
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_TERMBOX is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_PERSIMMON is not set
+# end of multimedia packages
+
+#
+# tools packages
+#
+# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
+# CONFIG_PKG_USING_EASYLOGGER is not set
+# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
+# CONFIG_PKG_USING_RDB is not set
+# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_ULOG_FILE is not set
+# CONFIG_PKG_USING_LOGMGR is not set
+# CONFIG_PKG_USING_ADBD is not set
+# CONFIG_PKG_USING_COREMARK is not set
+# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_MEMORYPERF is not set
+# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
+# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
+# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
+# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_GPS_RMC is not set
+# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# CONFIG_PKG_USING_ANV_BENCH is not set
+# CONFIG_PKG_USING_DEVMEM is not set
+# CONFIG_PKG_USING_REGEX is not set
+# CONFIG_PKG_USING_MEM_SANDBOX is not set
+# CONFIG_PKG_USING_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
+# end of tools packages
+
+#
+# system packages
+#
+
+#
+# enhanced kernel services
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+# end of enhanced kernel services
+
+#
+# POSIX extension functions
+#
+# CONFIG_PKG_USING_POSIX_GETLINE is not set
+# CONFIG_PKG_USING_POSIX_WCWIDTH is not set
+# CONFIG_PKG_USING_POSIX_ITOA is not set
+# CONFIG_PKG_USING_POSIX_STRINGS is not set
+# CONFIG_PKG_USING_POSIX_CTYPES is not set
+# end of POSIX extension functions
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+# end of acceleration: Assembly language or algorithmic acceleration packages
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# CONFIG_PKG_USING_UC_CLK is not set
+# CONFIG_PKG_USING_UC_COMMON is not set
+# CONFIG_PKG_USING_UC_MODBUS is not set
+# end of Micrium: Micrium software products porting for RT-Thread
+
+# CONFIG_PKG_USING_RTDUINO is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_PERF_COUNTER is not set
+# CONFIG_PKG_USING_FLASHDB is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_DFS_YAFFS is not set
+# CONFIG_PKG_USING_LITTLEFS is not set
+# CONFIG_PKG_USING_DFS_JFFS2 is not set
+# CONFIG_PKG_USING_DFS_UFFS is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_THREAD_POOL is not set
+# CONFIG_PKG_USING_ROBOTS is not set
+# CONFIG_PKG_USING_EV is not set
+# CONFIG_PKG_USING_SYSWATCH is not set
+# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
+# CONFIG_PKG_USING_PLCCORE is not set
+# CONFIG_PKG_USING_RAMDISK is not set
+# CONFIG_PKG_USING_MININI is not set
+# CONFIG_PKG_USING_QBOOT is not set
+# CONFIG_PKG_USING_PPOOL is not set
+# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_MCUBOOT is not set
+# CONFIG_PKG_USING_TINYUSB is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
+# end of system packages
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_SENSORS_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
+# CONFIG_PKG_USING_SHT2X is not set
+# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_AS7341 is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# CONFIG_PKG_USING_ICM20608 is not set
+# CONFIG_PKG_USING_BUTTON is not set
+# CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
+# CONFIG_PKG_USING_LEDBLINK is not set
+# CONFIG_PKG_USING_LITTLED is not set
+# CONFIG_PKG_USING_LKDGUI is not set
+# CONFIG_PKG_USING_NRF5X_SDK is not set
+# CONFIG_PKG_USING_NRFX is not set
+# CONFIG_PKG_USING_WM_LIBRARIES is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
+# CONFIG_PKG_USING_AGILE_BUTTON is not set
+# CONFIG_PKG_USING_AGILE_LED is not set
+# CONFIG_PKG_USING_AT24CXX is not set
+# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
+# CONFIG_PKG_USING_AD7746 is not set
+# CONFIG_PKG_USING_PCA9685 is not set
+# CONFIG_PKG_USING_I2C_TOOLS is not set
+# CONFIG_PKG_USING_NRF24L01 is not set
+# CONFIG_PKG_USING_TOUCH_DRIVERS is not set
+# CONFIG_PKG_USING_MAX17048 is not set
+# CONFIG_PKG_USING_RPLIDAR is not set
+# CONFIG_PKG_USING_AS608 is not set
+# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_WS2812B is not set
+# CONFIG_PKG_USING_EMBARC_BSP is not set
+# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
+# CONFIG_PKG_USING_MULTI_RTIMER is not set
+# CONFIG_PKG_USING_MAX7219 is not set
+# CONFIG_PKG_USING_BEEP is not set
+# CONFIG_PKG_USING_EASYBLINK is not set
+# CONFIG_PKG_USING_PMS_SERIES is not set
+# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_PKG_USING_QLED is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_AGILE_CONSOLE is not set
+# CONFIG_PKG_USING_LD3320 is not set
+# CONFIG_PKG_USING_WK2124 is not set
+# CONFIG_PKG_USING_LY68L6400 is not set
+# CONFIG_PKG_USING_DM9051 is not set
+# CONFIG_PKG_USING_SSD1306 is not set
+# CONFIG_PKG_USING_QKEY is not set
+# CONFIG_PKG_USING_RS485 is not set
+# CONFIG_PKG_USING_RS232 is not set
+# CONFIG_PKG_USING_NES is not set
+# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
+# CONFIG_PKG_USING_VDEVICE is not set
+# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+# CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
+# end of peripheral libraries and drivers
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
+# end of AI packages
+
+#
+# miscellaneous packages
+#
+
+#
+# project laboratory
+#
+# end of project laboratory
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+# end of samples: kernel and components samples
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# end of entertainment: terminal games and other interesting software packages
+
+# CONFIG_PKG_USING_LIBCSV is not set
+# CONFIG_PKG_USING_OPTPARSE is not set
+# CONFIG_PKG_USING_FASTLZ is not set
+# CONFIG_PKG_USING_MINILZO is not set
+# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_LZMA is not set
+# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
+# CONFIG_PKG_USING_DSTR is not set
+# CONFIG_PKG_USING_TINYFRAME is not set
+# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
+# CONFIG_PKG_USING_DIGITALCTRL is not set
+# CONFIG_PKG_USING_UPACKER is not set
+# CONFIG_PKG_USING_UPARAM is not set
+# CONFIG_PKG_USING_HELLO is not set
+# CONFIG_PKG_USING_VI is not set
+# CONFIG_PKG_USING_KI is not set
+# CONFIG_PKG_USING_ARMv7M_DWT is not set
+# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_CRCLIB is not set
+# CONFIG_PKG_USING_LWGPS is not set
+# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_DESIGN_PATTERN is not set
+# CONFIG_PKG_USING_CONTROLLER is not set
+# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
+# end of miscellaneous packages
+# end of RT-Thread online packages
+
+#
+# Hardware Drivers Config
+#
+CONFIG_SOC_STM32H750XB=y
+CONFIG_SOC_SERIES_STM32H7=y
+
+#
+# Board extended module
+#
+# CONFIG_ART_PI_USING_MEDIA_IO is not set
+# CONFIG_ART_PI_USING_INDUSTRY_IO is not set
+# end of Board extended module
+
+#
+# Onboard Peripheral
+#
+CONFIG_BSP_USING_USB_TO_USART=y
+# CONFIG_BSP_USING_SPI_FLASH is not set
+# CONFIG_BSP_USING_QSPI_FLASH is not set
+# CONFIG_BSP_USING_WIFI is not set
+# CONFIG_BSP_USING_OV2640 is not set
+# CONFIG_BSP_USING_GC0328C is not set
+# CONFIG_BSP_USING_FS is not set
+# end of Onboard Peripheral
+
+#
+# On-chip Peripheral
+#
+CONFIG_BSP_USING_GPIO=y
+CONFIG_BSP_USING_UART=y
+# CONFIG_BSP_USING_UART1 is not set
+# CONFIG_BSP_USING_UART3 is not set
+CONFIG_BSP_USING_UART4=y
+# CONFIG_BSP_USING_UART6 is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_QSPI is not set
+# CONFIG_BSP_USING_I2C is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_SDRAM is not set
+# CONFIG_BSP_USING_ETH is not set
+# CONFIG_BSP_USING_LCD is not set
+# CONFIG_BSP_USING_DCMI is not set
+# CONFIG_BSP_USING_FDCAN is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_PWM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# end of On-chip Peripheral
+# end of Hardware Drivers Config
+
+#
+# External Libraries
+#
+# CONFIG_ART_PI_USING_WIFI_6212_LIB is not set
+# CONFIG_ART_PI_USING_OTA_LIB is not set
+# CONFIG_ART_PI_TouchGFX_LIB is not set
+# CONFIG_ART_PI_USING_FTP_LIB is not set
+# end of External Libraries
+
+CONFIG_FIRMWARE_EXEC_USING_QSPI_FLASH=y
+# CONFIG_FIRMWARE_EXEC_USING_QEMU is not set
+CONFIG_RT_STUDIO_BUILT_IN=y

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 210 - 0
projects/art_pi_rust/.cproject


+ 1 - 0
projects/art_pi_rust/.gitignore

@@ -0,0 +1 @@
+/Debug/

+ 28 - 0
projects/art_pi_rust/.project

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+  <name>ART-Pi-rust</name>
+  <comment />
+  <projects>
+	</projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+      <triggers>clean,full,incremental,</triggers>
+      <arguments>
+			</arguments>
+    </buildCommand>
+    <buildCommand>
+      <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+      <triggers>full,incremental,</triggers>
+      <arguments>
+			</arguments>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.cdt.core.cnature</nature>
+    <nature>org.rt-thread.studio.rttnature</nature>
+    <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+    <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+  </natures>
+  <linkedResources />
+</projectDescription>

+ 0 - 0
projects/art_pi_rust/.sconsign.dblite


BIN
projects/art_pi_rust/.settings/.rtmenus


+ 3 - 0
projects/art_pi_rust/.settings/org.eclipse.core.runtime.prefs

@@ -0,0 +1,3 @@
+content-types/enabled=true
+content-types/org.eclipse.cdt.core.asmSource/file-extensions=s
+eclipse.preferences.version=1

+ 19 - 0
projects/art_pi_rust/.settings/projcfg.ini

@@ -0,0 +1,19 @@
+#RT-Thread Studio Project Configuration
+#Mon Jun 13 16:09:00 CST 2022
+cfg_version=v3.0
+board_name=STM32H750-RT-ART-PI
+example_name=art_pi_rust
+hardware_adapter=ST-LINK
+board_base_nano_proj=False
+project_type=rt-thread
+chip_name=STM32H750XBHx
+bsp_version=0.3.0
+selected_rtt_version=4.0.2
+os_branch=full
+project_base_bsp=true
+is_use_scons_build=True
+is_base_example_project=True
+output_project_path=E\:\\software\\Git\\GitRepository\\ART-PI\\sdk-bsp-stm32h750-realthread-artpi\\projects\\art_pi_rust
+project_name=art_pi_rust
+bsp_path=repo/Local/Board_Support_Packages/RealThread/STM32H750-RT-ART-PI/0.3.0/sdk-bsp-stm32h750-realthread-artpi-master
+os_version=4.0.2

+ 8 - 8
projects/art_pi_rust/board/CubeMX_Config/.mxproject

@@ -9,17 +9,17 @@ CDefines=USE_HAL_DRIVER;STM32H750xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
 [PreviousGenFiles]
 AdvancedFolderStructure=true
 HeaderFileListSize=3
-HeaderFiles#0=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_blink_led/board/CubeMX_Config/Core/Inc/stm32h7xx_it.h
-HeaderFiles#1=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_blink_led/board/CubeMX_Config/Core/Inc/stm32h7xx_hal_conf.h
-HeaderFiles#2=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_blink_led/board/CubeMX_Config/Core/Inc/main.h
+HeaderFiles#0=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_rust/board/CubeMX_Config/Core/Inc/stm32h7xx_it.h
+HeaderFiles#1=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_rust/board/CubeMX_Config/Core/Inc/stm32h7xx_hal_conf.h
+HeaderFiles#2=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_rust/board/CubeMX_Config/Core/Inc/main.h
 HeaderFolderListSize=1
-HeaderPath#0=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_blink_led/board/CubeMX_Config/Core/Inc
+HeaderPath#0=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_rust/board/CubeMX_Config/Core/Inc
 HeaderFiles=;
 SourceFileListSize=3
-SourceFiles#0=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_blink_led/board/CubeMX_Config/Core/Src/stm32h7xx_it.c
-SourceFiles#1=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_blink_led/board/CubeMX_Config/Core/Src/stm32h7xx_hal_msp.c
-SourceFiles#2=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_blink_led/board/CubeMX_Config/Core/Src/main.c
+SourceFiles#0=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_rust/board/CubeMX_Config/Core/Src/stm32h7xx_it.c
+SourceFiles#1=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_rust/board/CubeMX_Config/Core/Src/stm32h7xx_hal_msp.c
+SourceFiles#2=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_rust/board/CubeMX_Config/Core/Src/main.c
 SourceFolderListSize=1
-SourcePath#0=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_blink_led/board/CubeMX_Config/Core/Src
+SourcePath#0=E:/project/art-pi-sdk-github/sdk-bsp-stm32h750-realthread-artpi/projects/art_pi_rust/board/CubeMX_Config/Core/Src
 SourceFiles=;
 

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác