Преглед изворни кода

Merge branch 'master' into minor

Bond_009 пре 5 година
родитељ
комит
787049f35f
100 измењених фајлова са 227 додато и 156 уклоњено
  1. 13 0
      .github/ISSUE_TEMPLATE/feature_request.md
  2. 120 27
      CONTRIBUTORS.md
  3. 18 5
      Dockerfile
  4. 29 5
      Dockerfile.arm
  5. 19 5
      Dockerfile.arm64
  6. 0 1
      Emby.Dlna/Api/DlnaServerService.cs
  7. 0 1
      Emby.Dlna/Api/DlnaService.cs
  8. 0 1
      Emby.Dlna/Common/Argument.cs
  9. 0 1
      Emby.Dlna/Common/DeviceIcon.cs
  10. 0 1
      Emby.Dlna/Common/DeviceService.cs
  11. 0 1
      Emby.Dlna/Common/ServiceAction.cs
  12. 0 1
      Emby.Dlna/Common/StateVariable.cs
  13. 0 1
      Emby.Dlna/Configuration/DlnaOptions.cs
  14. 0 1
      Emby.Dlna/ConfigurationExtension.cs
  15. 5 2
      Emby.Dlna/ConnectionManager/ConnectionManager.cs
  16. 0 1
      Emby.Dlna/ConnectionManager/ConnectionManagerXmlBuilder.cs
  17. 0 1
      Emby.Dlna/ConnectionManager/ControlHandler.cs
  18. 0 1
      Emby.Dlna/ConnectionManager/ServiceActionListBuilder.cs
  19. 1 2
      Emby.Dlna/ContentDirectory/ContentDirectory.cs
  20. 0 1
      Emby.Dlna/ContentDirectory/ContentDirectoryXmlBuilder.cs
  21. 0 1
      Emby.Dlna/ContentDirectory/ControlHandler.cs
  22. 0 1
      Emby.Dlna/ContentDirectory/ServiceActionListBuilder.cs
  23. 0 1
      Emby.Dlna/ControlRequest.cs
  24. 0 1
      Emby.Dlna/ControlResponse.cs
  25. 0 1
      Emby.Dlna/Didl/DidlBuilder.cs
  26. 0 1
      Emby.Dlna/Didl/Filter.cs
  27. 0 1
      Emby.Dlna/Didl/StringWriterWithEncoding.cs
  28. 0 1
      Emby.Dlna/DlnaManager.cs
  29. 0 1
      Emby.Dlna/EventSubscriptionResponse.cs
  30. 0 1
      Emby.Dlna/Eventing/EventManager.cs
  31. 0 1
      Emby.Dlna/Eventing/EventSubscription.cs
  32. 0 1
      Emby.Dlna/IConnectionManager.cs
  33. 0 1
      Emby.Dlna/IContentDirectory.cs
  34. 0 1
      Emby.Dlna/IEventManager.cs
  35. 0 1
      Emby.Dlna/IMediaReceiverRegistrar.cs
  36. 0 1
      Emby.Dlna/IUpnpService.cs
  37. 14 6
      Emby.Dlna/Main/DlnaEntryPoint.cs
  38. 0 1
      Emby.Dlna/MediaReceiverRegistrar/ControlHandler.cs
  39. 4 2
      Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs
  40. 0 1
      Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrarXmlBuilder.cs
  41. 0 1
      Emby.Dlna/MediaReceiverRegistrar/ServiceActionListBuilder.cs
  42. 0 1
      Emby.Dlna/PlayTo/Device.cs
  43. 0 1
      Emby.Dlna/PlayTo/DeviceInfo.cs
  44. 0 1
      Emby.Dlna/PlayTo/PlayToController.cs
  45. 0 1
      Emby.Dlna/PlayTo/PlayToManager.cs
  46. 0 1
      Emby.Dlna/PlayTo/PlaybackProgressEventArgs.cs
  47. 0 1
      Emby.Dlna/PlayTo/PlaybackStartEventArgs.cs
  48. 0 1
      Emby.Dlna/PlayTo/PlaybackStoppedEventArgs.cs
  49. 0 1
      Emby.Dlna/PlayTo/PlaylistItem.cs
  50. 0 1
      Emby.Dlna/PlayTo/PlaylistItemFactory.cs
  51. 0 1
      Emby.Dlna/PlayTo/SsdpHttpClient.cs
  52. 0 1
      Emby.Dlna/PlayTo/TRANSPORTSTATE.cs
  53. 0 1
      Emby.Dlna/PlayTo/TransportCommands.cs
  54. 0 1
      Emby.Dlna/PlayTo/UpnpContainer.cs
  55. 0 1
      Emby.Dlna/PlayTo/uBaseObject.cs
  56. 0 1
      Emby.Dlna/PlayTo/uPnpNamespaces.cs
  57. 0 1
      Emby.Dlna/Profiles/DefaultProfile.cs
  58. 0 1
      Emby.Dlna/Profiles/DenonAvrProfile.cs
  59. 0 1
      Emby.Dlna/Profiles/DirectTvProfile.cs
  60. 0 1
      Emby.Dlna/Profiles/DishHopperJoeyProfile.cs
  61. 0 1
      Emby.Dlna/Profiles/Foobar2000Profile.cs
  62. 0 1
      Emby.Dlna/Profiles/LgTvProfile.cs
  63. 0 1
      Emby.Dlna/Profiles/LinksysDMA2100Profile.cs
  64. 0 1
      Emby.Dlna/Profiles/MarantzProfile.cs
  65. 0 1
      Emby.Dlna/Profiles/MediaMonkeyProfile.cs
  66. 0 1
      Emby.Dlna/Profiles/PanasonicVieraProfile.cs
  67. 0 1
      Emby.Dlna/Profiles/PopcornHourProfile.cs
  68. 0 1
      Emby.Dlna/Profiles/SamsungSmartTvProfile.cs
  69. 0 1
      Emby.Dlna/Profiles/SharpSmartTvProfile.cs
  70. 0 1
      Emby.Dlna/Profiles/SonyBlurayPlayer2013.cs
  71. 0 1
      Emby.Dlna/Profiles/SonyBlurayPlayer2014.cs
  72. 0 1
      Emby.Dlna/Profiles/SonyBlurayPlayer2015.cs
  73. 0 1
      Emby.Dlna/Profiles/SonyBlurayPlayer2016.cs
  74. 0 1
      Emby.Dlna/Profiles/SonyBlurayPlayerProfile.cs
  75. 0 1
      Emby.Dlna/Profiles/SonyBravia2010Profile.cs
  76. 0 1
      Emby.Dlna/Profiles/SonyBravia2011Profile.cs
  77. 0 1
      Emby.Dlna/Profiles/SonyBravia2012Profile.cs
  78. 0 1
      Emby.Dlna/Profiles/SonyBravia2013Profile.cs
  79. 0 1
      Emby.Dlna/Profiles/SonyBravia2014Profile.cs
  80. 0 1
      Emby.Dlna/Profiles/SonyPs3Profile.cs
  81. 0 1
      Emby.Dlna/Profiles/SonyPs4Profile.cs
  82. 0 1
      Emby.Dlna/Profiles/WdtvLiveProfile.cs
  83. 0 1
      Emby.Dlna/Profiles/XboxOneProfile.cs
  84. 0 1
      Emby.Dlna/Server/DescriptionXmlBuilder.cs
  85. 0 1
      Emby.Dlna/Service/BaseControlHandler.cs
  86. 1 2
      Emby.Dlna/Service/BaseService.cs
  87. 0 1
      Emby.Dlna/Service/ControlErrorHandler.cs
  88. 0 1
      Emby.Dlna/Service/ServiceXmlBuilder.cs
  89. 0 1
      Emby.Dlna/Ssdp/DeviceDiscovery.cs
  90. 0 1
      Emby.Dlna/Ssdp/Extensions.cs
  91. 0 1
      Emby.Naming/Audio/AlbumParser.cs
  92. 0 1
      Emby.Naming/Audio/AudioFileParser.cs
  93. 1 1
      Emby.Naming/AudioBook/AudioBookFileInfo.cs
  94. 0 1
      Emby.Naming/AudioBook/AudioBookFilePathParser.cs
  95. 0 1
      Emby.Naming/AudioBook/AudioBookFilePathParserResult.cs
  96. 2 11
      Emby.Naming/AudioBook/AudioBookListResolver.cs
  97. 0 1
      Emby.Naming/AudioBook/AudioBookResolver.cs
  98. 0 1
      Emby.Naming/Common/EpisodeExpression.cs
  99. 0 1
      Emby.Naming/Common/MediaType.cs
  100. 0 1
      Emby.Naming/Common/NamingOptions.cs

+ 13 - 0
.github/ISSUE_TEMPLATE/feature_request.md

@@ -0,0 +1,13 @@
+---
+name: Feature Request
+about: Request a new feature
+title: ''
+labels: feature-request
+assignees: ''
+---
+
+**PLEASE DO NOT OPEN FEATURE REQUEST ISSUES ON GITHUB**
+
+**Feature requests should be opened on our dedicated [feature request](https://features.jellyfin.org/) hub so they can be appropriately discussed and prioritized.**
+
+However, if you are willing to contribute to the project by adding a new feature yourself, then please ensure that you first review our [documentation](https://docs.jellyfin.org/general/contributing/development.html) on contributing code. Once you have reviewed the documentation, feel free to come back here and open an issue here outlining your proposed approach so that it can be documented, tracked, and discussed by other team members.

+ 120 - 27
CONTRIBUTORS.md

@@ -1,40 +1,133 @@
 # Jellyfin Contributors
 # Jellyfin Contributors
 
 
- - [JoshuaBoniface](https://github.com/joshuaboniface)
- - [nvllsvm](https://github.com/nvllsvm)
- - [JustAMan](https://github.com/JustAMan)
+ - [97carmine](https://github.com/97carmine)
+ - [Abbe98](https://github.com/Abbe98)
+ - [agrenott](https://github.com/agrenott)
+ - [AndreCarvalho](https://github.com/AndreCarvalho)
+ - [anthonylavado](https://github.com/anthonylavado)
+ - [Artiume](https://github.com/Artiume)
+ - [AThomsen](https://github.com/AThomsen)
+ - [bilde2910](https://github.com/bilde2910)
+ - [bfayers](https://github.com/bfayers)
+ - [BnMcG](https://github.com/BnMcG)
+ - [Bond-009](https://github.com/Bond-009)
+ - [brianjmurrell](https://github.com/brianjmurrell)
+ - [bugfixin](https://github.com/bugfixin)
+ - [chaosinnovator](https://github.com/chaosinnovator)
+ - [ckcr4lyf](https://github.com/ckcr4lyf)
+ - [crankdoofus](https://github.com/crankdoofus)
+ - [crobibero](https://github.com/crobibero)
+ - [cromefire](https://github.com/cromefire)
+ - [cryptobank](https://github.com/cryptobank)
+ - [cvium](https://github.com/cvium)
+ - [dannymichel](https://github.com/dannymichel)
+ - [DaveChild](https://github.com/DaveChild)
  - [dcrdev](https://github.com/dcrdev)
  - [dcrdev](https://github.com/dcrdev)
+ - [dhartung](https://github.com/dhartung)
+ - [dinki](https://github.com/dinki)
+ - [dkanada](https://github.com/dkanada)
+ - [dlahoti](https://github.com/dlahoti)
+ - [dmitrylyzo](https://github.com/dmitrylyzo)
+ - [DMouse10462](https://github.com/DMouse10462)
+ - [DrPandemic](https://github.com/DrPandemic)
  - [EraYaN](https://github.com/EraYaN)
  - [EraYaN](https://github.com/EraYaN)
+ - [escabe](https://github.com/escabe)
+ - [excelite](https://github.com/excelite)
+ - [fasheng](https://github.com/fasheng)
+ - [ferferga](https://github.com/ferferga)
+ - [fhriley](https://github.com/fhriley)
  - [flemse](https://github.com/flemse)
  - [flemse](https://github.com/flemse)
- - [bfayers](https://github.com/bfayers)
- - [Bond_009](https://github.com/Bond-009)
- - [AnthonyLavado](https://github.com/anthonylavado)
- - [sparky8251](https://github.com/sparky8251)
- - [LeoVerto](https://github.com/LeoVerto)
+ - [Froghut](https://github.com/Froghut)
+ - [fruhnow](https://github.com/fruhnow)
+ - [geilername](https://github.com/geilername)
+ - [gnattu](https://github.com/gnattu)
  - [grafixeyehero](https://github.com/grafixeyehero)
  - [grafixeyehero](https://github.com/grafixeyehero)
- - [cvium](https://github.com/cvium)
- - [wtayl0r](https://github.com/wtayl0r)
- - [TtheCreator](https://github.com/Tthecreator)
- - [dkanada](https://github.com/dkanada)
- - [LogicalPhallacy](https://github.com/LogicalPhallacy/)
- - [RazeLighter777](https://github.com/RazeLighter777)
- - [WillWill56](https://github.com/WillWill56)
+ - [h1nk](https://github.com/h1nk)
+ - [hawken93](https://github.com/hawken93)
+ - [HelloWorld017](https://github.com/HelloWorld017)
+ - [jftuga](https://github.com/jftuga)
+ - [joern-h](https://github.com/joern-h)
+ - [joshuaboniface](https://github.com/joshuaboniface)
+ - [JustAMan](https://github.com/JustAMan)
+ - [justinfenn](https://github.com/justinfenn)
+ - [KerryRJ](https://github.com/KerryRJ)
+ - [Larvitar](https://github.com/Larvitar)
+ - [LeoVerto](https://github.com/LeoVerto)
  - [Liggy](https://github.com/Liggy)
  - [Liggy](https://github.com/Liggy)
- - [fruhnow](https://github.com/fruhnow)
+ - [LogicalPhallacy](https://github.com/LogicalPhallacy)
+ - [loli10K](https://github.com/loli10K)
+ - [lostmypillow](https://github.com/lostmypillow)
  - [Lynxy](https://github.com/Lynxy)
  - [Lynxy](https://github.com/Lynxy)
- - [fasheng](https://github.com/fasheng)
- - [ploughpuff](https://github.com/ploughpuff)
- - [pjeanjean](https://github.com/pjeanjean)
- - [DrPandemic](https://github.com/drpandemic)
- - [joern-h](https://github.com/joern-h)
- - [Khinenw](https://github.com/HelloWorld017)
- - [fhriley](https://github.com/fhriley)
- - [nevado](https://github.com/nevado)
+ - [ManfredRichthofen](https://github.com/ManfredRichthofen)
+ - [Marenz](https://github.com/Marenz)
+ - [marius-luca-87](https://github.com/marius-luca-87)
  - [mark-monteiro](https://github.com/mark-monteiro)
  - [mark-monteiro](https://github.com/mark-monteiro)
- - [ullmie02](https://github.com/ullmie02)
- - [geilername](https://github.com/geilername)
+ - [Matt07211](https://github.com/Matt07211)
+ - [mcarlton00](https://github.com/mcarlton00)
+ - [mitchfizz05](https://github.com/mitchfizz05)
+ - [MrTimscampi](https://github.com/MrTimscampi)
+ - [n8225](https://github.com/n8225)
+ - [Narfinger](https://github.com/Narfinger)
+ - [NathanPickard](https://github.com/NathanPickard)
+ - [neilsb](https://github.com/neilsb)
+ - [nevado](https://github.com/nevado)
+ - [Nickbert7](https://github.com/Nickbert7)
+ - [nvllsvm](https://github.com/nvllsvm)
+ - [nyanmisaka](https://github.com/nyanmisaka)
+ - [oddstr13](https://github.com/oddstr13)
+ - [petermcneil](https://github.com/petermcneil)
+ - [Phlogi](https://github.com/Phlogi)
+ - [pjeanjean](https://github.com/pjeanjean)
+ - [ploughpuff](https://github.com/ploughpuff)
  - [pR0Ps](https://github.com/pR0Ps)
  - [pR0Ps](https://github.com/pR0Ps)
-
+ - [PrplHaz4](https://github.com/PrplHaz4)
+ - [RazeLighter777](https://github.com/RazeLighter777)
+ - [redSpoutnik](https://github.com/redSpoutnik)
+ - [ringmatter](https://github.com/ringmatter)
+ - [ryan-hartzell](https://github.com/ryan-hartzell)
+ - [s0urcelab](https://github.com/s0urcelab)
+ - [sachk](https://github.com/sachk)
+ - [sammyrc34](https://github.com/sammyrc34)
+ - [samuel9554](https://github.com/samuel9554)
+ - [scheidleon](https://github.com/scheidleon)
+ - [sebPomme](https://github.com/sebPomme)
+ - [SegiH](https://github.com/SegiH)
+ - [SenorSmartyPants](https://github.com/SenorSmartyPants)
+ - [shemanaev](https://github.com/shemanaev)
+ - [skaro13](https://github.com/skaro13)
+ - [sl1288](https://github.com/sl1288)
+ - [sorinyo2004](https://github.com/sorinyo2004)
+ - [sparky8251](https://github.com/sparky8251)
+ - [stanionascu](https://github.com/stanionascu)
+ - [stevehayles](https://github.com/stevehayles)
+ - [SuperSandro2000](https://github.com/SuperSandro2000)
+ - [tbraeutigam](https://github.com/tbraeutigam)
+ - [teacupx](https://github.com/teacupx)
+ - [Terror-Gene](https://github.com/Terror-Gene)
+ - [ThatNerdyPikachu](https://github.com/ThatNerdyPikachu)
+ - [ThibaultNocchi](https://github.com/ThibaultNocchi)
+ - [thornbill](https://github.com/thornbill)
+ - [ThreeFive-O](https://github.com/ThreeFive-O)
+ - [TrisMcC](https://github.com/TrisMcC)
+ - [trumblejoe](https://github.com/trumblejoe)
+ - [TtheCreator](https://github.com/TtheCreator)
+ - [twinkybot](https://github.com/twinkybot)
+ - [Ullmie02](https://github.com/Ullmie02)
+ - [Unhelpful](https://github.com/Unhelpful)
+ - [viaregio](https://github.com/viaregio)
+ - [vitorsemeano](https://github.com/vitorsemeano)
+ - [voodoos](https://github.com/voodoos)
+ - [whooo](https://github.com/whooo)
+ - [WiiPlayer2](https://github.com/WiiPlayer2)
+ - [WillWill56](https://github.com/WillWill56)
+ - [wtayl0r](https://github.com/wtayl0r)
+ - [Wuerfelbecher](https://github.com/Wuerfelbecher)
+ - [Wunax](https://github.com/Wunax)
+ - [WWWesten](https://github.com/WWWesten)
+ - [WX9yMOXWId](https://github.com/WX9yMOXWId)
+ - [xosdy](https://github.com/xosdy)
+ - [XVicarious](https://github.com/XVicarious)
+ - [YouKnowBlom](https://github.com/YouKnowBlom)
 
 
 # Emby Contributors
 # Emby Contributors
 
 

+ 18 - 5
Dockerfile

@@ -3,11 +3,10 @@ ARG FFMPEG_VERSION=latest
 
 
 FROM node:alpine as web-builder
 FROM node:alpine as web-builder
 ARG JELLYFIN_WEB_VERSION=master
 ARG JELLYFIN_WEB_VERSION=master
-RUN apk add curl git \
+RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm \
  && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
  && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
  && cd jellyfin-web-* \
  && cd jellyfin-web-* \
  && yarn install \
  && yarn install \
- && yarn build \
  && mv dist /dist
  && mv dist /dist
 
 
 FROM mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION}-buster as builder
 FROM mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION}-buster as builder
@@ -21,6 +20,13 @@ RUN dotnet publish Jellyfin.Server --disable-parallel --configuration Release --
 FROM jellyfin/ffmpeg:${FFMPEG_VERSION} as ffmpeg
 FROM jellyfin/ffmpeg:${FFMPEG_VERSION} as ffmpeg
 FROM debian:buster-slim
 FROM debian:buster-slim
 
 
+# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
+ARG DEBIAN_FRONTEND="noninteractive"
+# http://stackoverflow.com/questions/48162574/ddg#49462622
+ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
+# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support)
+ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
+
 COPY --from=ffmpeg /opt/ffmpeg /opt/ffmpeg
 COPY --from=ffmpeg /opt/ffmpeg /opt/ffmpeg
 COPY --from=builder /jellyfin /jellyfin
 COPY --from=builder /jellyfin /jellyfin
 COPY --from=web-builder /dist /jellyfin/jellyfin-web
 COPY --from=web-builder /dist /jellyfin/jellyfin-web
@@ -31,9 +37,16 @@ COPY --from=web-builder /dist /jellyfin/jellyfin-web
 #   mesa-va-drivers: needed for VAAPI
 #   mesa-va-drivers: needed for VAAPI
 RUN apt-get update \
 RUN apt-get update \
  && apt-get install --no-install-recommends --no-install-suggests -y \
  && apt-get install --no-install-recommends --no-install-suggests -y \
-   libfontconfig1 libgomp1 libva-drm2 mesa-va-drivers openssl ca-certificates \
- && apt-get clean autoclean \
- && apt-get autoremove \
+   libfontconfig1 \
+   libgomp1 \
+   libva-drm2 \
+   mesa-va-drivers \
+   openssl \
+   ca-certificates \
+   vainfo \
+   i965-va-driver \
+ && apt-get clean autoclean -y\
+ && apt-get autoremove -y\
  && rm -rf /var/lib/apt/lists/* \
  && rm -rf /var/lib/apt/lists/* \
  && mkdir -p /cache /config /media \
  && mkdir -p /cache /config /media \
  && chmod 777 /cache /config /media \
  && chmod 777 /cache /config /media \

+ 29 - 5
Dockerfile.arm

@@ -7,11 +7,10 @@ ARG DOTNET_VERSION=3.1
 
 
 FROM node:alpine as web-builder
 FROM node:alpine as web-builder
 ARG JELLYFIN_WEB_VERSION=master
 ARG JELLYFIN_WEB_VERSION=master
-RUN apk add curl git \
+RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python \
  && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
  && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
  && cd jellyfin-web-* \
  && cd jellyfin-web-* \
  && yarn install \
  && yarn install \
- && yarn build \
  && mv dist /dist
  && mv dist /dist
 
 
 
 
@@ -27,10 +26,35 @@ RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin"
 
 
 FROM multiarch/qemu-user-static:x86_64-arm as qemu
 FROM multiarch/qemu-user-static:x86_64-arm as qemu
 FROM arm32v7/debian:buster-slim
 FROM arm32v7/debian:buster-slim
+
+# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
+ARG DEBIAN_FRONTEND="noninteractive"
+# http://stackoverflow.com/questions/48162574/ddg#49462622
+ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
+# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support)
+ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
+
 COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin
 COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin
 RUN apt-get update \
 RUN apt-get update \
- && apt-get install --no-install-recommends --no-install-suggests -y ffmpeg \
- libssl-dev ca-certificates \
+ && apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg curl && \
+ curl -ks https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | apt-key add - && \
+ curl -s https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | apt-key add - && \
+ echo 'deb [arch=armhf] https://repo.jellyfin.org/debian buster main' > /etc/apt/sources.list.d/jellyfin.list && \
+ echo "deb http://ppa.launchpad.net/ubuntu-raspi2/ppa/ubuntu bionic main">> /etc/apt/sources.list.d/raspbins.list && \
+ apt-get update && \
+ apt-get install --no-install-recommends --no-install-suggests -y \
+ jellyfin-ffmpeg \
+ libssl-dev \
+ libfontconfig1 \
+ libfreetype6 \
+ libomxil-bellagio0 \
+ libomxil-bellagio-bin \
+ libraspberrypi0 \
+ vainfo \
+ libva2 \
+ && apt-get remove curl gnupg -y \
+ && apt-get clean autoclean -y \
+ && apt-get autoremove -y \
  && rm -rf /var/lib/apt/lists/* \
  && rm -rf /var/lib/apt/lists/* \
  && mkdir -p /cache /config /media \
  && mkdir -p /cache /config /media \
  && chmod 777 /cache /config /media
  && chmod 777 /cache /config /media
@@ -44,4 +68,4 @@ VOLUME /cache /config /media
 ENTRYPOINT ["./jellyfin/jellyfin", \
 ENTRYPOINT ["./jellyfin/jellyfin", \
     "--datadir", "/config", \
     "--datadir", "/config", \
     "--cachedir", "/cache", \
     "--cachedir", "/cache", \
-    "--ffmpeg", "/usr/bin/ffmpeg"]
+    "--ffmpeg", "/usr/lib/jellyfin-ffmpeg"]

+ 19 - 5
Dockerfile.arm64

@@ -7,11 +7,10 @@ ARG DOTNET_VERSION=3.1
 
 
 FROM node:alpine as web-builder
 FROM node:alpine as web-builder
 ARG JELLYFIN_WEB_VERSION=master
 ARG JELLYFIN_WEB_VERSION=master
-RUN apk add curl git \
+RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python \
  && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
  && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
  && cd jellyfin-web-* \
  && cd jellyfin-web-* \
  && yarn install \
  && yarn install \
- && yarn build \
  && mv dist /dist
  && mv dist /dist
 
 
 
 
@@ -26,10 +25,25 @@ RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin"
 
 
 FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu
 FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu
 FROM arm64v8/debian:buster-slim
 FROM arm64v8/debian:buster-slim
+
+# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
+ARG DEBIAN_FRONTEND="noninteractive"
+# http://stackoverflow.com/questions/48162574/ddg#49462622
+ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
+# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support)
+ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
+
 COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin
 COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin
-RUN apt-get update \
- && apt-get install --no-install-recommends --no-install-suggests -y ffmpeg \
- libssl-dev ca-certificates \
+RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y \
+ ffmpeg \
+ libssl-dev \
+ ca-certificates \
+ libfontconfig1 \
+ libfreetype6 \
+ libomxil-bellagio0 \
+ libomxil-bellagio-bin \
+ && apt-get clean autoclean -y \
+ && apt-get autoremove -y \
  && rm -rf /var/lib/apt/lists/* \
  && rm -rf /var/lib/apt/lists/* \
  && mkdir -p /cache /config /media \
  && mkdir -p /cache /config /media \
  && chmod 777 /cache /config /media
  && chmod 777 /cache /config /media

+ 0 - 1
Emby.Dlna/Api/DlnaServerService.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.IO;
 using System.IO;

+ 0 - 1
Emby.Dlna/Api/DlnaService.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Linq;
 using System.Linq;
 using MediaBrowser.Controller.Dlna;
 using MediaBrowser.Controller.Dlna;

+ 0 - 1
Emby.Dlna/Common/Argument.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Dlna.Common
 namespace Emby.Dlna.Common
 {
 {

+ 0 - 1
Emby.Dlna/Common/DeviceIcon.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Globalization;
 using System.Globalization;
 
 

+ 0 - 1
Emby.Dlna/Common/DeviceService.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Dlna.Common
 namespace Emby.Dlna.Common
 {
 {

+ 0 - 1
Emby.Dlna/Common/ServiceAction.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 

+ 0 - 1
Emby.Dlna/Common/StateVariable.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 
 

+ 0 - 1
Emby.Dlna/Configuration/DlnaOptions.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Dlna.Configuration
 namespace Emby.Dlna.Configuration
 {
 {

+ 0 - 1
Emby.Dlna/ConfigurationExtension.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using Emby.Dlna.Configuration;
 using Emby.Dlna.Configuration;

+ 5 - 2
Emby.Dlna/ConnectionManager/ConnectionManager.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Emby.Dlna.Service;
 using Emby.Dlna.Service;
@@ -16,7 +15,11 @@ namespace Emby.Dlna.ConnectionManager
         private readonly ILogger _logger;
         private readonly ILogger _logger;
         private readonly IServerConfigurationManager _config;
         private readonly IServerConfigurationManager _config;
 
 
-        public ConnectionManager(IDlnaManager dlna, IServerConfigurationManager config, ILogger logger, IHttpClient httpClient)
+        public ConnectionManager(
+            IDlnaManager dlna,
+            IServerConfigurationManager config,
+            ILogger<ConnectionManager> logger,
+            IHttpClient httpClient)
             : base(logger, httpClient)
             : base(logger, httpClient)
         {
         {
             _dlna = dlna;
             _dlna = dlna;

+ 0 - 1
Emby.Dlna/ConnectionManager/ConnectionManagerXmlBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using Emby.Dlna.Common;
 using Emby.Dlna.Common;

+ 0 - 1
Emby.Dlna/ConnectionManager/ControlHandler.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 0 - 1
Emby.Dlna/ConnectionManager/ServiceActionListBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using Emby.Dlna.Common;
 using Emby.Dlna.Common;

+ 1 - 2
Emby.Dlna/ContentDirectory/ContentDirectory.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
@@ -38,7 +37,7 @@ namespace Emby.Dlna.ContentDirectory
             ILibraryManager libraryManager,
             ILibraryManager libraryManager,
             IServerConfigurationManager config,
             IServerConfigurationManager config,
             IUserManager userManager,
             IUserManager userManager,
-            ILogger logger,
+            ILogger<ContentDirectory> logger,
             IHttpClient httpClient,
             IHttpClient httpClient,
             ILocalizationManager localization,
             ILocalizationManager localization,
             IMediaSourceManager mediaSourceManager,
             IMediaSourceManager mediaSourceManager,

+ 0 - 1
Emby.Dlna/ContentDirectory/ContentDirectoryXmlBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using Emby.Dlna.Common;
 using Emby.Dlna.Common;

+ 0 - 1
Emby.Dlna/ContentDirectory/ControlHandler.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 0 - 1
Emby.Dlna/ContentDirectory/ServiceActionListBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using Emby.Dlna.Common;
 using Emby.Dlna.Common;

+ 0 - 1
Emby.Dlna/ControlRequest.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.IO;
 using System.IO;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;

+ 0 - 1
Emby.Dlna/ControlResponse.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 

+ 0 - 1
Emby.Dlna/Didl/DidlBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Globalization;
 using System.Globalization;

+ 0 - 1
Emby.Dlna/Didl/Filter.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using MediaBrowser.Model.Extensions;
 using MediaBrowser.Model.Extensions;

+ 0 - 1
Emby.Dlna/Didl/StringWriterWithEncoding.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.IO;
 using System.IO;

+ 0 - 1
Emby.Dlna/DlnaManager.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 0 - 1
Emby.Dlna/EventSubscriptionResponse.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 

+ 0 - 1
Emby.Dlna/Eventing/EventManager.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Concurrent;
 using System.Collections.Concurrent;

+ 0 - 1
Emby.Dlna/Eventing/EventSubscription.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 
 

+ 0 - 1
Emby.Dlna/IConnectionManager.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Dlna
 namespace Emby.Dlna
 {
 {

+ 0 - 1
Emby.Dlna/IContentDirectory.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Dlna
 namespace Emby.Dlna
 {
 {

+ 0 - 1
Emby.Dlna/IEventManager.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Dlna
 namespace Emby.Dlna
 {
 {

+ 0 - 1
Emby.Dlna/IMediaReceiverRegistrar.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Dlna
 namespace Emby.Dlna
 {
 {

+ 0 - 1
Emby.Dlna/IUpnpService.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 
 

+ 14 - 6
Emby.Dlna/Main/DlnaEntryPoint.cs

@@ -1,9 +1,8 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
-using System.Net.Sockets;
 using System.Globalization;
 using System.Globalization;
+using System.Net.Sockets;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Emby.Dlna.PlayTo;
 using Emby.Dlna.PlayTo;
@@ -27,7 +26,7 @@ using MediaBrowser.Model.System;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Logging;
 using Rssdp;
 using Rssdp;
 using Rssdp.Infrastructure;
 using Rssdp.Infrastructure;
-using OperatingSystem =  MediaBrowser.Common.System.OperatingSystem;
+using OperatingSystem = MediaBrowser.Common.System.OperatingSystem;
 
 
 namespace Emby.Dlna.Main
 namespace Emby.Dlna.Main
 {
 {
@@ -59,7 +58,9 @@ namespace Emby.Dlna.Main
         private ISsdpCommunicationsServer _communicationsServer;
         private ISsdpCommunicationsServer _communicationsServer;
 
 
         internal IContentDirectory ContentDirectory { get; private set; }
         internal IContentDirectory ContentDirectory { get; private set; }
+
         internal IConnectionManager ConnectionManager { get; private set; }
         internal IConnectionManager ConnectionManager { get; private set; }
+
         internal IMediaReceiverRegistrar MediaReceiverRegistrar { get; private set; }
         internal IMediaReceiverRegistrar MediaReceiverRegistrar { get; private set; }
 
 
         public static DlnaEntryPoint Current;
         public static DlnaEntryPoint Current;
@@ -107,7 +108,7 @@ namespace Emby.Dlna.Main
                 libraryManager,
                 libraryManager,
                 config,
                 config,
                 userManager,
                 userManager,
-                _logger,
+                loggerFactory.CreateLogger<ContentDirectory.ContentDirectory>(),
                 httpClient,
                 httpClient,
                 localizationManager,
                 localizationManager,
                 mediaSourceManager,
                 mediaSourceManager,
@@ -115,9 +116,16 @@ namespace Emby.Dlna.Main
                 mediaEncoder,
                 mediaEncoder,
                 tvSeriesManager);
                 tvSeriesManager);
 
 
-            ConnectionManager = new ConnectionManager.ConnectionManager(dlnaManager, config, _logger, httpClient);
+            ConnectionManager = new ConnectionManager.ConnectionManager(
+                dlnaManager,
+                config,
+                loggerFactory.CreateLogger<ConnectionManager.ConnectionManager>(),
+                httpClient);
 
 
-            MediaReceiverRegistrar = new MediaReceiverRegistrar.MediaReceiverRegistrar(_logger, httpClient, config);
+            MediaReceiverRegistrar = new MediaReceiverRegistrar.MediaReceiverRegistrar(
+                loggerFactory.CreateLogger<MediaReceiverRegistrar.MediaReceiverRegistrar>(),
+                httpClient,
+                config);
             Current = this;
             Current = this;
         }
         }
 
 

+ 0 - 1
Emby.Dlna/MediaReceiverRegistrar/ControlHandler.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 4 - 2
Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Emby.Dlna.Service;
 using Emby.Dlna.Service;
@@ -13,7 +12,10 @@ namespace Emby.Dlna.MediaReceiverRegistrar
     {
     {
         private readonly IServerConfigurationManager _config;
         private readonly IServerConfigurationManager _config;
 
 
-        public MediaReceiverRegistrar(ILogger logger, IHttpClient httpClient, IServerConfigurationManager config)
+        public MediaReceiverRegistrar(
+            ILogger<MediaReceiverRegistrar> logger,
+            IHttpClient httpClient,
+            IServerConfigurationManager config)
             : base(logger, httpClient)
             : base(logger, httpClient)
         {
         {
             _config = config;
             _config = config;

+ 0 - 1
Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrarXmlBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using Emby.Dlna.Common;
 using Emby.Dlna.Common;

+ 0 - 1
Emby.Dlna/MediaReceiverRegistrar/ServiceActionListBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using Emby.Dlna.Common;
 using Emby.Dlna.Common;

+ 0 - 1
Emby.Dlna/PlayTo/Device.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 0 - 1
Emby.Dlna/PlayTo/DeviceInfo.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using Emby.Dlna.Common;
 using Emby.Dlna.Common;

+ 0 - 1
Emby.Dlna/PlayTo/PlayToController.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 0 - 1
Emby.Dlna/PlayTo/PlayToManager.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Globalization;
 using System.Globalization;

+ 0 - 1
Emby.Dlna/PlayTo/PlaybackProgressEventArgs.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 
 

+ 0 - 1
Emby.Dlna/PlayTo/PlaybackStartEventArgs.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 
 

+ 0 - 1
Emby.Dlna/PlayTo/PlaybackStoppedEventArgs.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 
 

+ 0 - 1
Emby.Dlna/PlayTo/PlaylistItem.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/PlayTo/PlaylistItemFactory.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;

+ 0 - 1
Emby.Dlna/PlayTo/SsdpHttpClient.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Globalization;
 using System.Globalization;

+ 0 - 1
Emby.Dlna/PlayTo/TRANSPORTSTATE.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Dlna.PlayTo
 namespace Emby.Dlna.PlayTo
 {
 {

+ 0 - 1
Emby.Dlna/PlayTo/TransportCommands.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 0 - 1
Emby.Dlna/PlayTo/UpnpContainer.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Xml.Linq;
 using System.Xml.Linq;

+ 0 - 1
Emby.Dlna/PlayTo/uBaseObject.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 
 

+ 0 - 1
Emby.Dlna/PlayTo/uPnpNamespaces.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Xml.Linq;
 using System.Xml.Linq;
 
 

+ 0 - 1
Emby.Dlna/Profiles/DefaultProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Linq;
 using System.Linq;
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;

+ 0 - 1
Emby.Dlna/Profiles/DenonAvrProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/DirectTvProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/DishHopperJoeyProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/Foobar2000Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/LgTvProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/LinksysDMA2100Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/MarantzProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/MediaMonkeyProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/PanasonicVieraProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/PopcornHourProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SamsungSmartTvProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SharpSmartTvProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBlurayPlayer2013.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBlurayPlayer2014.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBlurayPlayer2015.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBlurayPlayer2016.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBlurayPlayerProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBravia2010Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBravia2011Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBravia2012Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBravia2013Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyBravia2014Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyPs3Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/SonyPs4Profile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/WdtvLiveProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Profiles/XboxOneProfile.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Dlna;
 
 

+ 0 - 1
Emby.Dlna/Server/DescriptionXmlBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 0 - 1
Emby.Dlna/Service/BaseControlHandler.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 1 - 2
Emby.Dlna/Service/BaseService.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using Emby.Dlna.Eventing;
 using Emby.Dlna.Eventing;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Common.Net;
@@ -13,7 +12,7 @@ namespace Emby.Dlna.Service
         protected IHttpClient HttpClient;
         protected IHttpClient HttpClient;
         protected ILogger Logger;
         protected ILogger Logger;
 
 
-        protected BaseService(ILogger logger, IHttpClient httpClient)
+        protected BaseService(ILogger<BaseService> logger, IHttpClient httpClient)
         {
         {
             Logger = logger;
             Logger = logger;
             HttpClient = httpClient;
             HttpClient = httpClient;

+ 0 - 1
Emby.Dlna/Service/ControlErrorHandler.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.IO;
 using System.IO;

+ 0 - 1
Emby.Dlna/Service/ServiceXmlBuilder.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Text;
 using System.Text;

+ 0 - 1
Emby.Dlna/Ssdp/DeviceDiscovery.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 0 - 1
Emby.Dlna/Ssdp/Extensions.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Xml.Linq;
 using System.Xml.Linq;
 
 

+ 0 - 1
Emby.Naming/Audio/AlbumParser.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Globalization;
 using System.Globalization;

+ 0 - 1
Emby.Naming/Audio/AudioFileParser.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.IO;
 using System.IO;

+ 1 - 1
Emby.Naming/AudioBook/AudioBookFileInfo.cs

@@ -37,7 +37,7 @@ namespace Emby.Naming.AudioBook
         /// <value>The type.</value>
         /// <value>The type.</value>
         public bool IsDirectory { get; set; }
         public bool IsDirectory { get; set; }
 
 
-        /// <inheritdoc/>
+        /// <inheritdoc />
         public int CompareTo(AudioBookFileInfo other)
         public int CompareTo(AudioBookFileInfo other)
         {
         {
             if (ReferenceEquals(this, other))
             if (ReferenceEquals(this, other))

+ 0 - 1
Emby.Naming/AudioBook/AudioBookFilePathParser.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Globalization;
 using System.Globalization;

+ 0 - 1
Emby.Naming/AudioBook/AudioBookFilePathParserResult.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Naming.AudioBook
 namespace Emby.Naming.AudioBook
 {
 {

+ 2 - 11
Emby.Naming/AudioBook/AudioBookListResolver.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
@@ -30,11 +29,7 @@ namespace Emby.Naming.AudioBook
             // Filter out all extras, otherwise they could cause stacks to not be resolved
             // Filter out all extras, otherwise they could cause stacks to not be resolved
             // See the unit test TestStackedWithTrailer
             // See the unit test TestStackedWithTrailer
             var metadata = audiobookFileInfos
             var metadata = audiobookFileInfos
-                .Select(i => new FileSystemMetadata
-                {
-                    FullName = i.Path,
-                    IsDirectory = i.IsDirectory
-                });
+                .Select(i => new FileSystemMetadata { FullName = i.Path, IsDirectory = i.IsDirectory });
 
 
             var stackResult = new StackResolver(_options)
             var stackResult = new StackResolver(_options)
                 .ResolveAudioBooks(metadata);
                 .ResolveAudioBooks(metadata);
@@ -43,11 +38,7 @@ namespace Emby.Naming.AudioBook
             {
             {
                 var stackFiles = stack.Files.Select(i => audioBookResolver.Resolve(i, stack.IsDirectoryStack)).ToList();
                 var stackFiles = stack.Files.Select(i => audioBookResolver.Resolve(i, stack.IsDirectoryStack)).ToList();
                 stackFiles.Sort();
                 stackFiles.Sort();
-                var info = new AudioBookInfo
-                {
-                    Files = stackFiles,
-                    Name = stack.Name
-                };
+                var info = new AudioBookInfo { Files = stackFiles, Name = stack.Name };
 
 
                 yield return info;
                 yield return info;
             }
             }

+ 0 - 1
Emby.Naming/AudioBook/AudioBookResolver.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.IO;
 using System.IO;

+ 0 - 1
Emby.Naming/Common/EpisodeExpression.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Text.RegularExpressions;
 using System.Text.RegularExpressions;

+ 0 - 1
Emby.Naming/Common/MediaType.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 namespace Emby.Naming.Common
 namespace Emby.Naming.Common
 {
 {

+ 0 - 1
Emby.Naming/Common/NamingOptions.cs

@@ -1,5 +1,4 @@
 #pragma warning disable CS1591
 #pragma warning disable CS1591
-#pragma warning disable SA1600
 
 
 using System;
 using System;
 using System.Linq;
 using System.Linq;

Неке датотеке нису приказане због велике количине промена