Browse Source

more song fixes (#529)

* use blurhash for default etv song backgrounds

* fix saving artwork blurhash

* fix song detail alignment

* rename song background files

* watermark path is always none here
pull/534/head
Jason Dove 5 years ago committed by GitHub
parent
commit
3656e932d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      CHANGELOG.md
  2. 26
      ErsatzTV.Core/FFmpeg/SongVideoGenerator.cs
  3. 2
      ErsatzTV.Infrastructure/Data/Repositories/MetadataRepository.cs
  4. 3855
      ErsatzTV.Infrastructure/Migrations/20211204191304_Reset_SongMetadataBlurHashProper.Designer.cs
  5. 31
      ErsatzTV.Infrastructure/Migrations/20211204191304_Reset_SongMetadataBlurHashProper.cs
  6. 7
      ErsatzTV/ErsatzTV.csproj
  7. BIN
      ErsatzTV/Resources/background_blank.png
  8. BIN
      ErsatzTV/Resources/background_e.png
  9. BIN
      ErsatzTV/Resources/background_t.png
  10. BIN
      ErsatzTV/Resources/background_v.png
  11. BIN
      ErsatzTV/Resources/song_background_1.png
  12. BIN
      ErsatzTV/Resources/song_background_2.png
  13. BIN
      ErsatzTV/Resources/song_background_3.png
  14. 7
      ErsatzTV/Services/RunOnce/ResourceExtractorService.cs

6
CHANGELOG.md

@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased]
### Fixed
- Fix bug with saving multiple blurhash versions for cover art; all cover art will be automatically rescanned
- Fix song detail margin when no cover art exists and no watermark exists
### Changed
- Use blurhash of ErsatzTV colors instead of solid colors for default song backgrounds
## [0.3.2-alpha] - 2021-12-03
### Fixed

26
ErsatzTV.Core/FFmpeg/SongVideoGenerator.cs

@ -54,10 +54,9 @@ namespace ErsatzTV.Core.FFmpeg @@ -54,10 +54,9 @@ namespace ErsatzTV.Core.FFmpeg
string[] backgrounds =
{
"background_blank.png",
"background_e.png",
"background_t.png",
"background_v.png"
"song_background_1.png",
"song_background_2.png",
"song_background_3.png"
};
// use random ETV color by default
@ -117,15 +116,18 @@ namespace ErsatzTV.Core.FFmpeg @@ -117,15 +116,18 @@ namespace ErsatzTV.Core.FFmpeg
int leftMarginPercent = HORIZONTAL_MARGIN_PERCENT;
int rightMarginPercent = HORIZONTAL_MARGIN_PERCENT;
switch (watermarkLocation)
if (metadata.Artwork.Any(a => a.ArtworkKind == ArtworkKind.Thumbnail))
{
case ChannelWatermarkLocation.BottomLeft:
leftMarginPercent += WATERMARK_WIDTH_PERCENT + HORIZONTAL_MARGIN_PERCENT;
break;
case ChannelWatermarkLocation.BottomRight:
leftMarginPercent = rightMarginPercent = HORIZONTAL_MARGIN_PERCENT;
rightMarginPercent += WATERMARK_WIDTH_PERCENT + HORIZONTAL_MARGIN_PERCENT;
break;
switch (watermarkLocation)
{
case ChannelWatermarkLocation.BottomLeft:
leftMarginPercent += WATERMARK_WIDTH_PERCENT + HORIZONTAL_MARGIN_PERCENT;
break;
case ChannelWatermarkLocation.BottomRight:
leftMarginPercent = rightMarginPercent = HORIZONTAL_MARGIN_PERCENT;
rightMarginPercent += WATERMARK_WIDTH_PERCENT + HORIZONTAL_MARGIN_PERCENT;
break;
}
}
var leftMargin = (int)Math.Round(leftMarginPercent / 100.0 * channel.FFmpegProfile.Resolution.Width);

2
ErsatzTV.Infrastructure/Data/Repositories/MetadataRepository.cs

@ -209,7 +209,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -209,7 +209,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
public Task<Unit> UpdateArtworkPath(Artwork artwork) =>
_dbConnection.ExecuteAsync(
"UPDATE Artwork SET Path = @Path, SourcePath = @SourcePath, DateUpdated = @DateUpdated, BlurHash43 = @BlurHash43, BlurHash43 = @BlurHash54, BlurHash43 = @BlurHash64 WHERE Id = @Id",
"UPDATE Artwork SET Path = @Path, SourcePath = @SourcePath, DateUpdated = @DateUpdated, BlurHash43 = @BlurHash43, BlurHash54 = @BlurHash54, BlurHash64 = @BlurHash64 WHERE Id = @Id",
new { artwork.Path, artwork.SourcePath, artwork.DateUpdated, artwork.BlurHash43, artwork.BlurHash54, artwork.BlurHash64, artwork.Id }).ToUnit();
public Task<Unit> AddArtwork(Metadata metadata, Artwork artwork)

3855
ErsatzTV.Infrastructure/Migrations/20211204191304_Reset_SongMetadataBlurHashProper.Designer.cs generated

File diff suppressed because it is too large Load Diff

31
ErsatzTV.Infrastructure/Migrations/20211204191304_Reset_SongMetadataBlurHashProper.cs

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ErsatzTV.Infrastructure.Migrations
{
public partial class Reset_SongMetadataBlurHashProper : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(
@"UPDATE LibraryPath SET LastScan = '0001-01-01 00:00:00' WHERE Id IN
(SELECT LP.Id FROM LibraryPath LP INNER JOIN Library L on L.Id = LP.LibraryId WHERE MediaKind = 5)");
migrationBuilder.Sql(
@"UPDATE Library SET LastScan = '0001-01-01 00:00:00' WHERE MediaKind = 5");
migrationBuilder.Sql(
@"UPDATE Artwork SET DateUpdated = '0001-01-01 00:00:00' WHERE SongMetadataId IS NOT NULL");
migrationBuilder.Sql(
@"UPDATE LibraryFolder SET Etag = NULL WHERE Id IN
(SELECT LF.Id FROM LibraryFolder LF INNER JOIN LibraryPath LP on LF.LibraryPathId = LP.Id INNER JOIN Library L on LP.LibraryId = L.Id WHERE MediaKind = 5)");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

7
ErsatzTV/ErsatzTV.csproj

@ -51,10 +51,9 @@ @@ -51,10 +51,9 @@
<ItemGroup>
<EmbeddedResource Include="Resources\background.png" />
<EmbeddedResource Include="Resources\background_blank.png" />
<EmbeddedResource Include="Resources\background_e.png" />
<EmbeddedResource Include="Resources\background_t.png" />
<EmbeddedResource Include="Resources\background_v.png" />
<EmbeddedResource Include="Resources\song_background_1.png" />
<EmbeddedResource Include="Resources\song_background_2.png" />
<EmbeddedResource Include="Resources\song_background_3.png" />
<EmbeddedResource Include="Resources\ErsatzTV.png" />
<EmbeddedResource Include="Resources\Roboto-Regular.ttf" />
<EmbeddedResource Include="Resources\OPTIKabel-Heavy.otf" />

BIN
ErsatzTV/Resources/background_blank.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

BIN
ErsatzTV/Resources/background_e.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

BIN
ErsatzTV/Resources/background_t.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

BIN
ErsatzTV/Resources/background_v.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

BIN
ErsatzTV/Resources/song_background_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 KiB

BIN
ErsatzTV/Resources/song_background_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

BIN
ErsatzTV/Resources/song_background_3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

7
ErsatzTV/Services/RunOnce/ResourceExtractorService.cs

@ -19,10 +19,9 @@ namespace ErsatzTV.Services.RunOnce @@ -19,10 +19,9 @@ namespace ErsatzTV.Services.RunOnce
Assembly assembly = typeof(ResourceExtractorService).GetTypeInfo().Assembly;
await ExtractResource(assembly, "background.png", cancellationToken);
await ExtractResource(assembly, "background_blank.png", cancellationToken);
await ExtractResource(assembly, "background_e.png", cancellationToken);
await ExtractResource(assembly, "background_t.png", cancellationToken);
await ExtractResource(assembly, "background_v.png", cancellationToken);
await ExtractResource(assembly, "song_background_1.png", cancellationToken);
await ExtractResource(assembly, "song_background_2.png", cancellationToken);
await ExtractResource(assembly, "song_background_3.png", cancellationToken);
await ExtractResource(assembly, "ErsatzTV.png", cancellationToken);
await ExtractResource(assembly, "Roboto-Regular.ttf", cancellationToken);
await ExtractResource(assembly, "OPTIKabel-Heavy.otf", cancellationToken);

Loading…
Cancel
Save