PageRenderTime 49ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/rtranscoder/mplayer/mplayer_common_task.rb

https://github.com/postmodern/rtranscoder
Ruby | 239 lines | 116 code | 10 blank | 113 comment | 0 complexity | 04c1e1dc6a33d8d20a14701ae664fff4 MD5 | raw file
  1. require 'rprogram/task'
  2. module RTranscoder
  3. #
  4. # == MPlayer Common options:
  5. #
  6. # <tt>-lavdopts</tt>:: <tt>mplayer.libavcodec</tt>
  7. # <tt>-field-dominance</tt>:: <tt>mplayer.field_dominance</tt>
  8. # <tt>-msglevel</tt>:: <tt>mplayer.message_verbose</tt>
  9. # <tt>-demuxer</tt>:: <tt>mplayer.demuxer</tt>
  10. # <tt>-rawaudio</tt>:: <tt>mplayer.raw_audio</tt>
  11. # <tt>-list-options</tt>:: <tt>mplayer.list_options</tt>
  12. # <tt>-vf-pre</tt>:: <tt>mplayer.prepend_video_filters</tt>
  13. # <tt>-ac</tt>:: <tt>mplayer.audio_codecs</tt>
  14. # <tt>-chapter</tt>:: <tt>mplayer.chapter</tt>
  15. # <tt>-ni</tt>:: <tt>mplayer.non_interleaved_avi_parser</tt>
  16. # <tt>-rtsp-port</tt>:: <tt>mplayer.rtsp_port</tt>
  17. # <tt>-vfm</tt>:: <tt>mplayer.video_codec_families</tt>
  18. # <tt>-tvscan</tt>:: <tt>mplayer.tv_scan</tt>
  19. # <tt>-bandwidth</tt>:: <tt>mplayer.bandwidth</tt>
  20. # <tt>-endpos</tt>:: <tt>mplayer.end_position</tt>
  21. # <tt>-mf</tt>:: <tt>mplayer.mf</tt>
  22. # <tt>-pp</tt>:: <tt>mplayer.dll_postprocess_level</tt>
  23. # <tt>-srate</tt>:: <tt>mplayer.output_sample_rate</tt>
  24. # <tt>-show-profile</tt>:: <tt>mplayer.show_profile</tt>
  25. # <tt>-audiofile</tt>:: <tt>mplayer.audio_file</tt>
  26. # <tt>-edl</tt>:: <tt>mplayer.edl</tt>
  27. # <tt>-noaspect</tt>:: <tt>mplayer.disable_aspect_ratio</tt>
  28. # <tt>-tv</tt>:: <tt>mplayer.tv</tt>
  29. # <tt>-codecs-file</tt>:: <tt>mplayer.codecs_file</tt>
  30. # <tt>-msgcharset</tt>:: <tt>mplayer.message_charset</tt>
  31. # <tt>-ignore-start</tt>:: <tt>mplayer.ignore_start</tt>
  32. # <tt>-psprobe</tt>:: <tt>mplayer.probe_into_stream</tt>
  33. # <tt>-vf-add</tt>:: <tt>mplayer.append_video_filters</tt>
  34. # <tt>-vivo</tt>:: <tt>mplayer.vivo_audio_parameters</tt>
  35. # <tt>-include</tt>:: <tt>mplayer.include</tt>
  36. # <tt>-radio</tt>:: <tt>mplayer.radio</tt>
  37. # <tt>-channels</tt>:: <tt>mplayer.channels</tt>
  38. # <tt>-loadidx</tt>:: <tt>mplayer.load_index</tt>
  39. # <tt>-vc</tt>:: <tt>mplayer.video_codecs</tt>
  40. # <tt>-tsprog</tt>:: <tt>mplayer.ts_program</tt>
  41. # <tt>-reuse-socket</tt>:: <tt>mplayer.reuse_socket</tt>
  42. # <tt>-dvdangle</tt>:: <tt>mplayer.dvd_angle</tt>
  43. # <tt>-mc</tt>:: <tt>mplayer.mc</tt>
  44. # <tt>-zoom</tt>:: <tt>mplayer.zoom</tt>
  45. # <tt>-novideo</tt>:: <tt>mplayer.disable_video</tt>
  46. # <tt>-sb</tt>:: <tt>mplayer.seek_to_byte</tt>
  47. # <tt>-really-quiet</tt>:: <tt>mplayer.really_quiet</tt>
  48. # <tt>-alang</tt>:: <tt>mplayer.audio_language</tt>
  49. # <tt>-cache</tt>:: <tt>mplayer.cache</tt>
  50. # <tt>-dvd-speed</tt>:: <tt>mplayer.dvd_speed</tt>
  51. # <tt>-aspect</tt>:: <tt>mplayer.aspect_ratio</tt>
  52. # <tt>-speed</tt>:: <tt>mplayer.speed</tt>
  53. # <tt>-passwd</tt>:: <tt>mplayer.http_password</tt>
  54. # <tt>-delay</tt>:: <tt>mplayer.delay</tt>
  55. # <tt>-vf</tt>:: <tt>mplayer.video_filters</tt>
  56. # <tt>-vid</tt>:: <tt>mplayer.video_channel</tt>
  57. # <tt>-pvr</tt>:: <tt>mplayer.pvr</tt>
  58. # <tt>-cdrom-device</tt>:: <tt>mplayer.cdrom_device</tt>
  59. # <tt>-noidx</tt>:: <tt>mplayer.skip_index</tt>
  60. # <tt>-sws</tt>:: <tt>mplayer.software_scaler_algorithm</tt>
  61. # <tt>-tsprobe</tt>:: <tt>mplayer.probe_into_ts_stream</tt>
  62. # <tt>-ipv4-only-proxy</tt>:: <tt>mplayer.ipv4_only_proxy</tt>
  63. # <tt>-audio-demuxer</tt>:: <tt>mplayer.audio_demuxer</tt>
  64. # <tt>-cache-seek-min</tt>:: <tt>mplayer.cache_seek_minimum</tt>
  65. # <tt>-stereo</tt>:: <tt>mplayer.stereo</tt>
  66. # <tt>-nosound</tt>:: <tt>mplayer.disable_sound</tt>
  67. # <tt>-dvd-device</tt>:: <tt>mplayer.dvd_device</tt>
  68. # <tt>-saveidx</tt>:: <tt>mplayer.save_index</tt>
  69. # <tt>-profile</tt>:: <tt>mplayer.profile</tt>
  70. # <tt>-aid</tt>:: <tt>mplayer.audio_channel</tt>
  71. # <tt>-vf-clr</tt>:: <tt>mplayer.clear_video_filters</tt>
  72. # <tt>-afm</tt>:: <tt>mplayer.audio_codec_families</tt>
  73. # <tt>-noextbased</tt>:: <tt>mplayer.disable_ext_based_demuxer</tt>
  74. # <tt>-rtsp-stream-over-tcp</tt>:: <tt>mplayer.rtsp_stream_over_tcp</tt>
  75. # <tt>-cookies-file</tt>:: <tt>mplayer.cookies_file</tt>
  76. # <tt>-af</tt>:: <tt>mplayer.audio_filters</tt>
  77. # <tt>-user-agent</tt>:: <tt>mplayer.http_user_agent</tt>
  78. # <tt>-hr-mp3-seek</tt>:: <tt>mplayer.hires_mp3_seeking</tt>
  79. # <tt>-prefer-ipv6</tt>:: <tt>mplayer.prefer_ipv6</tt>
  80. # <tt>-cdda</tt>:: <tt>mplayer.cdda</tt>
  81. # <tt>-ssf</tt>:: <tt>mplayer.software_scaler</tt>
  82. # <tt>-tskeepbroken</tt>:: <tt>mplayer.ignore_broken_ts_packets</tt>
  83. # <tt>-cache-min</tt>:: <tt>mplayer.cache_minimum</tt>
  84. # <tt>-frames</tt>:: <tt>mplayer.frames</tt>
  85. # <tt>-o</tt>:: <tt>mplayer.output</tt>
  86. # <tt>-a52drc</tt>:: <tt>mplayer.a52drc</tt>
  87. # <tt>-noslices</tt>:: <tt>mplayer.disable_slices</tt>
  88. # <tt>-flip</tt>:: <tt>mplayer.flip</tt>
  89. # <tt>-dvbin</tt>:: <tt>mplayer.dvbin</tt>
  90. # <tt>-rawvideo</tt>:: <tt>mplayer.raw_video</tt>
  91. # <tt>-quiet</tt>:: <tt>mplayer.quiet</tt>
  92. # <tt>-v</tt>:: <tt>mplayer.verbose</tt>
  93. # <tt>-vf-del</tt>:: <tt>mplayer.delete_video_filters</tt>
  94. # <tt>-af-adv</tt>:: <tt>mplayer.advanced_audio_filtering</tt>
  95. # <tt>-cookies</tt>:: <tt>mplayer.cookies</tt>
  96. # <tt>-nobps</tt>:: <tt>mplayer.disable_bps</tt>
  97. # <tt>-rtsp-destination</tt>:: <tt>mplayer.rtsp_destination</tt>
  98. # <tt>-xvidopts</tt>:: <tt>mplayer.xvid_decoding</tt>
  99. # <tt>-user</tt>:: <tt>mplayer.http_username</tt>
  100. # <tt>-nocache</tt>:: <tt>mplayer.nocache</tt>
  101. # <tt>-forceidx</tt>:: <tt>mplayer.force_index</tt>
  102. # <tt>-prefer-ipv4</tt>:: <tt>mplayer.prefer_ipv4</tt>
  103. # <tt>-idx</tt>:: <tt>mplayer.index</tt>
  104. # <tt>-pphelp</tt>:: <tt>mplayer.postprocess_help</tt>
  105. # <tt>-ss</tt>:: <tt>mplayer.seek_to_time</tt>
  106. # <tt>-audiofile-cache</tt>:: <tt>mplayer.audio_file_cache</tt>
  107. # <tt>-fps</tt>:: <tt>mplayer.fps</tt>
  108. # <tt>-priority</tt>:: <tt>mplayer.priority</tt>
  109. # <tt>-use-filedir-conf</tt>:: <tt>mplayer.use_filedir_conf</tt>
  110. #
  111. class MPlayerCommonTask < RProgram::Task
  112. protected
  113. def self.sub_options(opts={})
  114. long_option :flag => opts[:flag], :name => opts[:name], :separator => ',', :sub_options => true
  115. end
  116. def self.priority_list(opts={})
  117. long_option :flag => opts[:flag], :name => opts[:name], :separator => ','
  118. end
  119. # General options
  120. long_option :flag => '-codecs-file'
  121. long_option :flag => '-include'
  122. long_option :flag => '-list-options'
  123. long_option :flag => '-msgcharset', :name => :message_charset
  124. long_option :flag => '-msglevel', :name => :message_verbose
  125. long_option :flag => '-quiet'
  126. long_option :flag => '-priority'
  127. long_option :flag => '-profile'
  128. long_option :flag => '-really-quiet'
  129. long_option :flag => '-show-profile'
  130. long_option :flag => '-use-filedir-conf'
  131. short_option :flag => '-o', :name => :output
  132. short_option :flag => '-v', :name => :verbose
  133. # Demuxer/Stream options
  134. long_option :flag => '-a52drc'
  135. long_option :flag => '-aid', :name => :audio_channel
  136. long_option :flag => '-alang', :name => :audio_language
  137. long_option :flag => '-audio-demuxer'
  138. long_option :flag => '-audiofile', :name => :audio_file
  139. long_option :flag => '-audiofile-cache', :name => :audio_file_cache
  140. long_option :flag => '-reuse-socket'
  141. long_option :flag => '-bandwidth'
  142. long_option :flag => '-cache'
  143. long_option :flag => '-nocache'
  144. long_option :flag => '-cache-min', :name => :cache_minimum
  145. long_option :flag => '-cache-seek-min', :name => :cache_seek_minimum
  146. sub_options :flag => '-cdda'
  147. long_option :flag => '-cdrom-device'
  148. long_option :flag => '-channels'
  149. long_option :flag => '-chapter'
  150. long_option :flag => '-cookies'
  151. long_option :flag => '-cookies-file'
  152. long_option :flag => '-delay'
  153. long_option :flag => '-ignore-start'
  154. long_option :flag => '-demuxer'
  155. long_option :flag => '-dvbin'
  156. long_option :flag => '-dvd-device'
  157. long_option :flag => '-dvd-speed'
  158. long_option :flag => '-dvdangle', :name => :dvd_angle
  159. long_option :flag => '-edl'
  160. long_option :flag => '-endpos', :name => :end_position
  161. long_option :flag => '-forceidx', :name => :force_index
  162. long_option :flag => '-fps'
  163. long_option :flag => '-frames'
  164. long_option :flag => '-hr-mp3-seek', :name => :hires_mp3_seeking
  165. long_option :flag => '-idx', :name => :index
  166. long_option :flag => '-noidx', :name => :skip_index
  167. long_option :flag => '-ipv4-only-proxy'
  168. long_option :flag => '-loadidx', :name => :load_index
  169. long_option :flag => '-mc'
  170. sub_options :flag => '-mf'
  171. long_option :flag => '-ni', :name => :non_interleaved_avi_parser
  172. long_option :flag => '-nobps', :name => :disable_bps
  173. long_option :flag => '-noextbased', :name => :disable_ext_based_demuxer
  174. long_option :flag => '-passwd', :name => :http_password
  175. long_option :flag => '-prefer-ipv4'
  176. long_option :flag => '-prefer-ipv6'
  177. long_option :flag => '-psprobe', :name => :probe_into_stream
  178. sub_options :flag => '-pvr'
  179. sub_options :flag => '-radio'
  180. sub_options :flag => '-rawaudio', :name => :raw_audio
  181. sub_options :flag => '-rawvideo', :name => :raw_video
  182. long_option :flag => '-rtsp-port'
  183. long_option :flag => '-rtsp-destination'
  184. long_option :flag => '-rtsp-stream-over-tcp'
  185. long_option :flag => '-saveidx', :name => :save_index
  186. long_option :flag => '-sb', :name => :seek_to_byte
  187. long_option :flag => '-speed'
  188. long_option :flag => '-srate', :name => :output_sample_rate
  189. long_option :flag => '-ss', :name => :seek_to_time
  190. long_option :flag => '-tskeepbroken', :name => :ignore_broken_ts_packets
  191. long_option :flag => '-tsprobe', :name => :probe_into_ts_stream
  192. long_option :flag => '-tsprog', :name => :ts_program
  193. sub_options :flag => '-tv'
  194. sub_options :flag => '-tvscan', :name => :tv_scan
  195. long_option :flag => '-user', :name => :http_username
  196. long_option :flag => '-user-agent', :name => :http_user_agent
  197. long_option :flag => '-vid', :name => :video_channel
  198. long_option :flag => '-vivo', :name => :vivo_audio_parameters
  199. # Decoding/Filtering options
  200. priority_list :flag => '-ac', :name => :audio_codecs
  201. sub_options :flag => '-af-adv', :name => :advanced_audio_filtering
  202. priority_list :flag => '-afm', :name => :audio_codec_families
  203. long_option :flag => '-aspect', :name => :aspect_ratio
  204. long_option :flag => '-noaspect', :name => :disable_aspect_ratio
  205. long_option :flag => '-field-dominance'
  206. long_option :flag => '-flip'
  207. sub_options :flag => '-lavdopts', :name => :libavcodec
  208. long_option :flag => '-noslices', :name => :disable_slices
  209. long_option :flag => '-nosound', :name => :disable_sound
  210. long_option :flag => '-novideo', :name => :disable_video
  211. long_option :flag => '-pp', :name => :dll_postprocess_level
  212. long_option :flag => '-pphelp', :name => :postprocess_help
  213. long_option :flag => '-ssf', :name => :software_scaler
  214. long_option :flag => '-stereo'
  215. long_option :flag => '-sws', :name => :software_scaler_algorithm
  216. priority_list :flag => '-vc', :name => :video_codecs
  217. priority_list :flag => '-vfm', :name => :video_codec_families
  218. sub_options :flag => '-xvidopts', :name => :xvid_decoding
  219. long_option :flag => '-zoom'
  220. # Audio Filters
  221. sub_options :flag => '-af', :name => :audio_filters
  222. # Video Filters
  223. sub_options :flag => '-vf', :name => :video_filters
  224. long_option :flag => '-vf-add', :name => :append_video_filters, :separator => ','
  225. long_option :flag => '-vf-pre', :name => :prepend_video_filters, :separator => ','
  226. long_option :flag => '-vf-del', :name => :delete_video_filters, :separator => ','
  227. long_option :flag => '-vf-clr', :name => :clear_video_filters
  228. end
  229. end