From a70ae286446ac7ba526de7c70a6f8e028e903e2e Mon Sep 17 00:00:00 2001
From: Christian Schmidt <github@chsc.dk>
Date: Wed, 11 Dec 2024 03:28:21 +0100
Subject: [PATCH] Support animated PNGs in media attachments (#28516)

---
 app/models/media_attachment.rb           |  20 +++-
 config/application.rb                    |   2 +-
 lib/paperclip/blurhash_transcoder.rb     |   2 +-
 lib/paperclip/gif_transcoder.rb          | 126 ---------------------
 lib/paperclip/gifv_transcoder.rb         |  20 ++++
 spec/fixtures/files/600x400-animated.gif | Bin 0 -> 11085 bytes
 spec/fixtures/files/600x400-animated.png | Bin 0 -> 35766 bytes
 spec/fixtures/files/600x400.gif          | Bin 0 -> 5848 bytes
 spec/fixtures/files/attachment.gif       | Bin 30184 -> 0 bytes
 spec/models/media_attachment_spec.rb     | 134 ++++++++++++++---------
 spec/requests/api/v1/media_spec.rb       |   2 +-
 11 files changed, 123 insertions(+), 183 deletions(-)
 delete mode 100644 lib/paperclip/gif_transcoder.rb
 create mode 100644 lib/paperclip/gifv_transcoder.rb
 create mode 100644 spec/fixtures/files/600x400-animated.gif
 create mode 100644 spec/fixtures/files/600x400-animated.png
 create mode 100644 spec/fixtures/files/600x400.gif
 delete mode 100644 spec/fixtures/files/attachment.gif

diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index 6708cd7793d..76815dede52 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -58,6 +58,7 @@ class MediaAttachment < ApplicationRecord
   ).freeze
 
   IMAGE_MIME_TYPES             = %w(image/jpeg image/png image/gif image/heic image/heif image/webp image/avif).freeze
+  IMAGE_ANIMATED_MIME_TYPES    = %w(image/png image/gif).freeze
   IMAGE_CONVERTIBLE_MIME_TYPES = %w(image/heic image/heif image/avif).freeze
   VIDEO_MIME_TYPES             = %w(video/webm video/mp4 video/quicktime video/ogg).freeze
   VIDEO_CONVERTIBLE_MIME_TYPES = %w(video/webm video/quicktime).freeze
@@ -102,7 +103,7 @@ class MediaAttachment < ApplicationRecord
         'preset' => 'veryfast',
         'movflags' => 'faststart', # Move metadata to start of file so playback can begin before download finishes
         'pix_fmt' => 'yuv420p', # Ensure color space for cross-browser compatibility
-        'vf' => 'crop=floor(iw/2)*2:floor(ih/2)*2', # h264 requires width and height to be even. Crop instead of scale to avoid blurring
+        'filter_complex' => 'drawbox=t=fill:c=white[bg];[bg][0]overlay,crop=trunc(iw/2)*2:trunc(ih/2)*2', # Remove transparency. h264 requires width and height to be even; crop instead of scale to avoid blurring
         'c:v' => 'h264',
         'c:a' => 'aac',
         'b:a' => '192k',
@@ -296,7 +297,7 @@ class MediaAttachment < ApplicationRecord
     private
 
     def file_styles(attachment)
-      if attachment.instance.file_content_type == 'image/gif' || VIDEO_CONVERTIBLE_MIME_TYPES.include?(attachment.instance.file_content_type)
+      if attachment.instance.animated_image? || VIDEO_CONVERTIBLE_MIME_TYPES.include?(attachment.instance.file_content_type)
         VIDEO_CONVERTED_STYLES
       elsif IMAGE_CONVERTIBLE_MIME_TYPES.include?(attachment.instance.file_content_type)
         IMAGE_CONVERTED_STYLES
@@ -310,8 +311,8 @@ class MediaAttachment < ApplicationRecord
     end
 
     def file_processors(instance)
-      if instance.file_content_type == 'image/gif'
-        [:gif_transcoder, :blurhash_transcoder]
+      if instance.animated_image?
+        [:gifv_transcoder, :blurhash_transcoder]
       elsif VIDEO_MIME_TYPES.include?(instance.file_content_type)
         [:transcoder, :blurhash_transcoder, :type_corrector]
       elsif AUDIO_MIME_TYPES.include?(instance.file_content_type)
@@ -322,6 +323,17 @@ class MediaAttachment < ApplicationRecord
     end
   end
 
+  def animated_image?
+    if processing_complete?
+      gifv?
+    elsif IMAGE_ANIMATED_MIME_TYPES.include?(file_content_type)
+      @animated_image = FastImage.animated?(file.queued_for_write[:original].path) unless defined?(@animated_image)
+      @animated_image
+    else
+      false
+    end
+  end
+
   private
 
   def set_unknown_type
diff --git a/config/application.rb b/config/application.rb
index e4e9680e663..59afafd5be5 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -28,7 +28,7 @@ require_relative '../lib/redis/namespace_extensions'
 require_relative '../lib/paperclip/url_generator_extensions'
 require_relative '../lib/paperclip/attachment_extensions'
 
-require_relative '../lib/paperclip/gif_transcoder'
+require_relative '../lib/paperclip/gifv_transcoder'
 require_relative '../lib/paperclip/media_type_spoof_detector_extensions'
 require_relative '../lib/paperclip/transcoder'
 require_relative '../lib/paperclip/type_corrector'
diff --git a/lib/paperclip/blurhash_transcoder.rb b/lib/paperclip/blurhash_transcoder.rb
index b4ff4a12a0e..fe58d1bce14 100644
--- a/lib/paperclip/blurhash_transcoder.rb
+++ b/lib/paperclip/blurhash_transcoder.rb
@@ -23,7 +23,7 @@ module Paperclip
         image = Vips::Image.thumbnail(@file.path, 100)
         [image.width, image.height, image.colourspace(:srgb).extract_band(0, n: 3).to_a.flatten]
       else
-        pixels   = convert(':source -depth 8 RGB:-', source: File.expand_path(@file.path)).unpack('C*')
+        pixels   = convert(':source -flatten -depth 8 -compress none RGB:-', source: File.expand_path(@file.path)).unpack('C*')
         geometry = options.fetch(:file_geometry_parser).from_file(@file)
         [geometry.width, geometry.height, pixels]
       end
diff --git a/lib/paperclip/gif_transcoder.rb b/lib/paperclip/gif_transcoder.rb
deleted file mode 100644
index 32bdb8a8638..00000000000
--- a/lib/paperclip/gif_transcoder.rb
+++ /dev/null
@@ -1,126 +0,0 @@
-# frozen_string_literal: true
-
-class GifReader
-  attr_reader :animated
-
-  EXTENSION_LABELS = [0xf9, 0x01, 0xff].freeze
-  GIF_HEADERS      = %w(GIF87a GIF89a).freeze
-
-  class GifReaderException < StandardError; end
-
-  class UnknownImageType < GifReaderException; end
-
-  class CannotParseImage < GifReaderException; end
-
-  def self.animated?(path)
-    new(path).animated
-  rescue GifReaderException
-    false
-  end
-
-  def initialize(path, max_frames = 2)
-    @path      = path
-    @nb_frames = 0
-
-    File.open(path, 'rb') do |s|
-      raise UnknownImageType unless GIF_HEADERS.include?(s.read(6))
-
-      # Skip to "packed byte"
-      s.seek(4, IO::SEEK_CUR)
-
-      # "Packed byte" gives us the size of the GIF color table
-      packed_byte, = s.read(1).unpack('C')
-
-      # Skip background color and aspect ratio
-      s.seek(2, IO::SEEK_CUR)
-
-      if packed_byte & 0x80 != 0
-        # GIF uses a global color table, skip it
-        s.seek(3 * (1 << ((packed_byte & 0x07) + 1)), IO::SEEK_CUR)
-      end
-
-      # Now read data
-      while @nb_frames < max_frames
-        separator = s.read(1)
-
-        case separator
-        when ',' # Image block
-          @nb_frames += 1
-
-          # Skip to "packed byte"
-          s.seek(8, IO::SEEK_CUR)
-          packed_byte, = s.read(1).unpack('C')
-
-          if packed_byte & 0x80 != 0
-            # Image uses a local color table, skip it
-            s.seek(3 * (1 << ((packed_byte & 0x07) + 1)), IO::SEEK_CUR)
-          end
-
-          # Skip lzw min code size
-          raise InvalidValue unless s.read(1).unpack1('C') >= 2
-
-          # Skip image data sub-blocks
-          skip_sub_blocks!(s)
-        when '!' # Extension block
-          skip_extension_block!(s)
-        when ';' # Trailer
-          break
-        else
-          raise CannotParseImage
-        end
-      end
-    end
-
-    @animated = @nb_frames > 1
-  end
-
-  private
-
-  def skip_extension_block!(file)
-    if EXTENSION_LABELS.include?(file.read(1).unpack1('C'))
-      block_size, = file.read(1).unpack('C')
-      file.seek(block_size, IO::SEEK_CUR)
-    end
-
-    # Read until extension block end marker
-    skip_sub_blocks!(file)
-  end
-
-  # Skip sub-blocks up until block end marker
-  def skip_sub_blocks!(file)
-    loop do
-      size, = file.read(1).unpack('C')
-
-      break if size.zero?
-
-      file.seek(size, IO::SEEK_CUR)
-    end
-  end
-end
-
-module Paperclip
-  # This transcoder is only to be used for the MediaAttachment model
-  # to convert animated GIFs to videos
-
-  class GifTranscoder < Paperclip::Processor
-    def make
-      return File.open(@file.path) unless needs_convert?
-
-      final_file = Paperclip::Transcoder.make(file, options, attachment)
-
-      if options[:style] == :original
-        attachment.instance.file_file_name    = "#{File.basename(attachment.instance.file_file_name, '.*')}.mp4"
-        attachment.instance.file_content_type = 'video/mp4'
-        attachment.instance.type              = MediaAttachment.types[:gifv]
-      end
-
-      final_file
-    end
-
-    private
-
-    def needs_convert?
-      GifReader.animated?(file.path)
-    end
-  end
-end
diff --git a/lib/paperclip/gifv_transcoder.rb b/lib/paperclip/gifv_transcoder.rb
new file mode 100644
index 00000000000..4bb27e3b756
--- /dev/null
+++ b/lib/paperclip/gifv_transcoder.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module Paperclip
+  # This transcoder is only to be used for the MediaAttachment model
+  # to convert animated GIFs and PNGs to videos
+
+  class GifvTranscoder < Paperclip::Processor
+    def make
+      final_file = Paperclip::Transcoder.make(file, options, attachment)
+
+      if options[:style] == :original
+        attachment.instance.file_file_name    = "#{File.basename(attachment.instance.file_file_name, '.*')}.mp4"
+        attachment.instance.file_content_type = 'video/mp4'
+        attachment.instance.type              = MediaAttachment.types[:gifv]
+      end
+
+      final_file
+    end
+  end
+end
diff --git a/spec/fixtures/files/600x400-animated.gif b/spec/fixtures/files/600x400-animated.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1a773c0af1d1aab72f789db9b662a6980110865a
GIT binary patch
literal 11085
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
Gkog~0O#N5@

literal 0
HcmV?d00001

diff --git a/spec/fixtures/files/600x400-animated.png b/spec/fixtures/files/600x400-animated.png
new file mode 100644
index 0000000000000000000000000000000000000000..6430fceabbe4a0d79da76eac90e8d463f048d6dc
GIT binary patch
literal 35766
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

literal 0
HcmV?d00001

diff --git a/spec/fixtures/files/600x400.gif b/spec/fixtures/files/600x400.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bab39cb6f7a401f6607b936c84af76e94bdb3ac3
GIT binary patch
literal 5848
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
LZb1Nn0M-8kh=sL6

literal 0
HcmV?d00001

diff --git a/spec/fixtures/files/attachment.gif b/spec/fixtures/files/attachment.gif
deleted file mode 100644
index 89dd73ad3e9fb61eaf4467b9d44c1c9cc9dff16a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 30184
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
Dt->n%

diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 5f91ae09673..cce4b304798 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -90,7 +90,7 @@ RSpec.describe MediaAttachment, :attachment_processing do
       media.destroy
     end
 
-    it 'saves media attachment with correct file and size metadata' do
+    it 'saves metadata and generates styles' do
       expect(media)
         .to be_persisted
         .and be_processing_complete
@@ -98,18 +98,28 @@ RSpec.describe MediaAttachment, :attachment_processing do
           file: be_present,
           type: eq('image'),
           file_content_type: eq(content_type),
-          file_file_name: end_with(extension)
+          file_file_name: end_with(extension),
+          blurhash: have_attributes(size: eq(36))
         )
 
-      # Rack::Mime (used by PublicFileServerMiddleware) recognizes file extension
-      expect(Rack::Mime.mime_type(extension, nil)).to eq content_type
-
       # Strip original file name
       expect(media.file_file_name)
         .to_not start_with '600x400'
 
+      # Generate styles
+      expect(FastImage.size(media.file.path(:original)))
+        .to eq [600, 400]
+      expect(FastImage.size(media.file.path(:small)))
+        .to eq [588, 392]
+
+      # Use extension recognized by Rack::Mime (used by PublicFileServerMiddleware)
+      expect(media.file.path(:original))
+        .to end_with(extension)
+      expect(media.file.path(:small))
+        .to end_with(extension)
+
       # Set meta for original and thumbnail
-      expect(media.file.meta.deep_symbolize_keys)
+      expect(media_metadata)
         .to include(
           original: include(
             width: eq(600),
@@ -122,6 +132,60 @@ RSpec.describe MediaAttachment, :attachment_processing do
             aspect: eq(1.5)
           )
         )
+
+      # Rack::Mime (used by PublicFileServerMiddleware) recognizes file extension
+      expect(Rack::Mime.mime_type(extension, nil)).to eq content_type
+    end
+  end
+
+  shared_examples 'animated 600x400 image' do
+    after do
+      media.destroy
+    end
+
+    it 'saves metadata and generates styles' do
+      expect(media)
+        .to be_persisted
+        .and be_processing_complete
+        .and have_attributes(
+          file: be_present,
+          type: eq('gifv'),
+          file_content_type: eq('video/mp4'),
+          file_file_name: end_with('.mp4'),
+          blurhash: have_attributes(size: eq(36))
+        )
+
+      # Strip original file name
+      expect(media.file_file_name)
+        .to_not start_with '600x400'
+
+      # Transcode to MP4
+      expect(media.file.path(:original))
+        .to end_with('.mp4')
+
+      # Generate static thumbnail
+      expect(FastImage.size(media.file.path(:small)))
+        .to eq [600, 400]
+      expect(FastImage.animated?(media.file.path(:small)))
+        .to be false
+      expect(media.file.path(:small))
+        .to end_with('.png')
+
+      # Set meta for styles
+      expect(media_metadata)
+        .to include(
+          original: include(
+            width: eq(600),
+            height: eq(400),
+            duration: eq(3),
+            frame_rate: '1/1'
+          ),
+          small: include(
+            width: eq(600),
+            height: eq(400),
+            aspect: eq(1.5)
+          )
+        )
     end
   end
 
@@ -137,10 +201,10 @@ RSpec.describe MediaAttachment, :attachment_processing do
     it_behaves_like 'static 600x400 image', 'image/png', '.png'
   end
 
-  describe 'monochrome jpg' do
-    let(:media) { Fabricate(:media_attachment, file: attachment_fixture('monochrome.png')) }
+  describe 'gif' do
+    let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.gif')) }
 
-    it_behaves_like 'static 600x400 image', 'image/png', '.png'
+    it_behaves_like 'static 600x400 image', 'image/gif', '.gif'
   end
 
   describe 'webp' do
@@ -161,6 +225,12 @@ RSpec.describe MediaAttachment, :attachment_processing do
     it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg'
   end
 
+  describe 'monochrome jpg' do
+    let(:media) { Fabricate(:media_attachment, file: attachment_fixture('monochrome.png')) }
+
+    it_behaves_like 'static 600x400 image', 'image/png', '.png'
+  end
+
   describe 'base64-encoded image' do
     let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('600x400.jpeg').read)}" }
     let(:media) { Fabricate(:media_attachment, file: base64_attachment) }
@@ -169,51 +239,15 @@ RSpec.describe MediaAttachment, :attachment_processing do
   end
 
   describe 'animated gif' do
-    let(:media) { Fabricate(:media_attachment, file: attachment_fixture('avatar.gif')) }
+    let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400-animated.gif')) }
 
-    it 'sets correct file metadata' do
-      expect(media)
-        .to have_attributes(
-          type: eq('gifv'),
-          file_content_type: eq('video/mp4')
-        )
-      expect(media_metadata)
-        .to include(
-          original: include(
-            width: eq(128),
-            height: eq(128)
-          )
-        )
-    end
+    it_behaves_like 'animated 600x400 image'
   end
 
-  describe 'static gif' do
-    fixtures = [
-      { filename: 'attachment.gif', width: 600, height: 400, aspect: 1.5 },
-      { filename: 'mini-static.gif', width: 32, height: 32, aspect: 1.0 },
-    ]
+  describe 'animated png' do
+    let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400-animated.png')) }
 
-    fixtures.each do |fixture|
-      context fixture[:filename] do
-        let(:media) { Fabricate(:media_attachment, file: attachment_fixture(fixture[:filename])) }
-
-        it 'sets correct file metadata' do
-          expect(media)
-            .to have_attributes(
-              type: eq('image'),
-              file_content_type: eq('image/gif')
-            )
-          expect(media_metadata)
-            .to include(
-              original: include(
-                width: eq(fixture[:width]),
-                height: eq(fixture[:height]),
-                aspect: eq(fixture[:aspect])
-              )
-            )
-        end
-      end
-    end
+    it_behaves_like 'animated 600x400 image'
   end
 
   describe 'ogg with cover art' do
diff --git a/spec/requests/api/v1/media_spec.rb b/spec/requests/api/v1/media_spec.rb
index d7d0b92f11b..3340e26b986 100644
--- a/spec/requests/api/v1/media_spec.rb
+++ b/spec/requests/api/v1/media_spec.rb
@@ -137,7 +137,7 @@ RSpec.describe 'Media' do
     end
 
     context 'with image/gif', :attachment_processing do
-      let(:params) { { file: fixture_file_upload('attachment.gif', 'image/gif') } }
+      let(:params) { { file: fixture_file_upload('600x400.gif', 'image/gif') } }
 
       it_behaves_like 'a successful media upload', 'image'
     end