SamsungSmartTvProfile.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. using MediaBrowser.Controller.Dlna;
  2. namespace MediaBrowser.Dlna.Profiles
  3. {
  4. public class SamsungSmartTvProfile : DefaultProfile
  5. {
  6. public SamsungSmartTvProfile()
  7. {
  8. Name = "Samsung Smart TV";
  9. SupportsAlbumArtInDidl = true;
  10. Identification = new DeviceIdentification
  11. {
  12. ModelUrl = "samsung.com"
  13. };
  14. TranscodingProfiles = new[]
  15. {
  16. new TranscodingProfile
  17. {
  18. Container = "mp3",
  19. AudioCodec = "mp3",
  20. Type = DlnaProfileType.Audio
  21. },
  22. new TranscodingProfile
  23. {
  24. Container = "ts",
  25. AudioCodec = "ac3",
  26. VideoCodec = "h264",
  27. Type = DlnaProfileType.Video
  28. },
  29. new TranscodingProfile
  30. {
  31. Container = "jpeg",
  32. Type = DlnaProfileType.Photo
  33. }
  34. };
  35. DirectPlayProfiles = new[]
  36. {
  37. new DirectPlayProfile
  38. {
  39. Container = "asf",
  40. VideoCodec = "h264,mpeg4,mjpeg",
  41. AudioCodec = "mp3,ac3,wmav2,wmapro,wmavoice",
  42. Type = DlnaProfileType.Video
  43. },
  44. new DirectPlayProfile
  45. {
  46. Container = "avi",
  47. VideoCodec = "h264,mpeg4,mjpeg",
  48. AudioCodec = "mp3,ac3,dca",
  49. Type = DlnaProfileType.Video
  50. },
  51. new DirectPlayProfile
  52. {
  53. Container = "mkv",
  54. VideoCodec = "h264,mpeg4,mjpeg4",
  55. AudioCodec = "mp3,ac3,dca,aac",
  56. Type = DlnaProfileType.Video
  57. },
  58. new DirectPlayProfile
  59. {
  60. Container = "mp4",
  61. VideoCodec = "h264,mpeg4",
  62. AudioCodec = "mp3,aac",
  63. Type = DlnaProfileType.Video
  64. },
  65. new DirectPlayProfile
  66. {
  67. Container = "3gpp",
  68. VideoCodec = "h264,mpeg4",
  69. AudioCodec = "aac,he-aac",
  70. Type = DlnaProfileType.Video
  71. },
  72. new DirectPlayProfile
  73. {
  74. Container = "mpg,mpeg",
  75. VideoCodec = "mpeg1video,mpeg2video,h264",
  76. AudioCodec = "ac3,mp2,mp3,aac",
  77. Type = DlnaProfileType.Video
  78. },
  79. new DirectPlayProfile
  80. {
  81. Container = "vro,vob",
  82. VideoCodec = "mpeg1video,mpeg2video",
  83. AudioCodec = "ac3,mp2,mp3",
  84. Type = DlnaProfileType.Video
  85. },
  86. new DirectPlayProfile
  87. {
  88. Container = "ts",
  89. VideoCodec = "mpeg2video,h264,vc1",
  90. AudioCodec = "ac3,aac,mp3,eac3",
  91. Type = DlnaProfileType.Video
  92. },
  93. new DirectPlayProfile
  94. {
  95. Container = "asf",
  96. VideoCodec = "wmv2,wmv3",
  97. AudioCodec = "wmav2,wmavoice",
  98. Type = DlnaProfileType.Video
  99. },
  100. new DirectPlayProfile
  101. {
  102. Container = "mp3",
  103. AudioCodec = "mp3",
  104. Type = DlnaProfileType.Audio
  105. },
  106. new DirectPlayProfile
  107. {
  108. Container = "jpeg",
  109. Type = DlnaProfileType.Photo
  110. }
  111. };
  112. ContainerProfiles = new[]
  113. {
  114. new ContainerProfile
  115. {
  116. Type = DlnaProfileType.Photo,
  117. Conditions = new []
  118. {
  119. new ProfileCondition
  120. {
  121. Condition = ProfileConditionType.LessThanEqual,
  122. Property = ProfileConditionValue.Width,
  123. Value = "1920"
  124. },
  125. new ProfileCondition
  126. {
  127. Condition = ProfileConditionType.LessThanEqual,
  128. Property = ProfileConditionValue.Height,
  129. Value = "1080"
  130. }
  131. }
  132. }
  133. };
  134. CodecProfiles = new[]
  135. {
  136. new CodecProfile
  137. {
  138. Type = CodecType.VideoCodec,
  139. Codec = "mpeg2video",
  140. Conditions = new[]
  141. {
  142. new ProfileCondition
  143. {
  144. Condition = ProfileConditionType.LessThanEqual,
  145. Property = ProfileConditionValue.Width,
  146. Value = "1920"
  147. },
  148. new ProfileCondition
  149. {
  150. Condition = ProfileConditionType.LessThanEqual,
  151. Property = ProfileConditionValue.Height,
  152. Value = "1080"
  153. },
  154. new ProfileCondition
  155. {
  156. Condition = ProfileConditionType.LessThanEqual,
  157. Property = ProfileConditionValue.VideoFramerate,
  158. Value = "30"
  159. },
  160. new ProfileCondition
  161. {
  162. Condition = ProfileConditionType.LessThanEqual,
  163. Property = ProfileConditionValue.VideoBitrate,
  164. Value = "30720000"
  165. }
  166. }
  167. },
  168. new CodecProfile
  169. {
  170. Type = CodecType.VideoCodec,
  171. Codec = "mpeg4",
  172. Conditions = new[]
  173. {
  174. new ProfileCondition
  175. {
  176. Condition = ProfileConditionType.LessThanEqual,
  177. Property = ProfileConditionValue.Width,
  178. Value = "1920"
  179. },
  180. new ProfileCondition
  181. {
  182. Condition = ProfileConditionType.LessThanEqual,
  183. Property = ProfileConditionValue.Height,
  184. Value = "1080"
  185. },
  186. new ProfileCondition
  187. {
  188. Condition = ProfileConditionType.LessThanEqual,
  189. Property = ProfileConditionValue.VideoFramerate,
  190. Value = "30"
  191. },
  192. new ProfileCondition
  193. {
  194. Condition = ProfileConditionType.LessThanEqual,
  195. Property = ProfileConditionValue.VideoBitrate,
  196. Value = "8192000"
  197. }
  198. }
  199. },
  200. new CodecProfile
  201. {
  202. Type = CodecType.VideoCodec,
  203. Codec = "h264",
  204. Conditions = new[]
  205. {
  206. new ProfileCondition
  207. {
  208. Condition = ProfileConditionType.LessThanEqual,
  209. Property = ProfileConditionValue.Width,
  210. Value = "1920"
  211. },
  212. new ProfileCondition
  213. {
  214. Condition = ProfileConditionType.LessThanEqual,
  215. Property = ProfileConditionValue.Height,
  216. Value = "1080"
  217. },
  218. new ProfileCondition
  219. {
  220. Condition = ProfileConditionType.LessThanEqual,
  221. Property = ProfileConditionValue.VideoFramerate,
  222. Value = "30"
  223. },
  224. new ProfileCondition
  225. {
  226. Condition = ProfileConditionType.LessThanEqual,
  227. Property = ProfileConditionValue.VideoBitrate,
  228. Value = "37500000"
  229. },
  230. new ProfileCondition
  231. {
  232. Condition = ProfileConditionType.LessThanEqual,
  233. Property = ProfileConditionValue.VideoLevel,
  234. Value = "41"
  235. }
  236. }
  237. },
  238. new CodecProfile
  239. {
  240. Type = CodecType.VideoCodec,
  241. Codec = "wmv2,wmv3,vc1",
  242. Conditions = new[]
  243. {
  244. new ProfileCondition
  245. {
  246. Condition = ProfileConditionType.LessThanEqual,
  247. Property = ProfileConditionValue.Width,
  248. Value = "1920"
  249. },
  250. new ProfileCondition
  251. {
  252. Condition = ProfileConditionType.LessThanEqual,
  253. Property = ProfileConditionValue.Height,
  254. Value = "1080"
  255. },
  256. new ProfileCondition
  257. {
  258. Condition = ProfileConditionType.LessThanEqual,
  259. Property = ProfileConditionValue.VideoFramerate,
  260. Value = "30"
  261. },
  262. new ProfileCondition
  263. {
  264. Condition = ProfileConditionType.LessThanEqual,
  265. Property = ProfileConditionValue.VideoBitrate,
  266. Value = "25600000"
  267. }
  268. }
  269. },
  270. new CodecProfile
  271. {
  272. Type = CodecType.VideoAudioCodec,
  273. Codec = "ac3,wmav2,dca,aac,mp3",
  274. Conditions = new[]
  275. {
  276. new ProfileCondition
  277. {
  278. Condition = ProfileConditionType.LessThanEqual,
  279. Property = ProfileConditionValue.AudioChannels,
  280. Value = "6"
  281. }
  282. }
  283. }
  284. };
  285. MediaProfiles = new[]
  286. {
  287. new MediaProfile
  288. {
  289. Container = "mkv",
  290. MimeType = "video/x-mkv",
  291. Type = DlnaProfileType.Video
  292. }
  293. };
  294. }
  295. }
  296. }