Skip to content

Desktop: iPhone HEIC photos upload as a single 512×512 tile (-map 0:v:0 selects the first grid tile) #7666

Open

Description

@max5tz

Describe the bug
Attaching a HEIC photo taken with an iPhone camera in Buzz Desktop uploads only one
512×512 tile of the image instead of the full photo. No error is shown.

Steps to reproduce

  1. Take a photo on an iPhone with the default "High Efficiency" format (HEIC, 4032×3024).
  2. Copy the original file to the computer.
  3. Attach it to a message in Buzz Desktop and send.
  4. The message shows a 512×512 cutout of the photo.

Expected behavior
The full photo is uploaded (3024×4032 after rotation).

Version and platform

  • Buzz version: 0.5.23
  • OS: Windows 11 Pro (ffmpeg 9.0.1, gyan.dev full build via winget)

Logs / additional context
iPhone HEICs are tiled HEIF images: ffprobe -show_stream_groups shows a "Tile Grid"
of 48 × 512×512 HEVC tiles. transcode_heic_to_jpeg passes -map 0:v:0, which
selects only the first tile:

Reproducible with plain ffmpeg:

# as in Buzz Desktop -> 512x512
ffmpeg -i IMG.HEIC -map 0:v:0 -map_metadata -1 -frames:v 1 -q:v 2 out.jpg
# without -map -> 3024x4032 (ffmpeg inserts xstack for the tile grid)
ffmpeg -i IMG.HEIC -map_metadata -1 -frames:v 1 -q:v 2 out.jpg

Possible fix: drop -map 0:v:0. Automatic tile-grid assembly in the ffmpeg CLI only
exists since FFmpeg 8.1, so older versions need a version check, an explicit xstack
filtergraph, or a hard error when the output size doesn't match the grid — instead of
silently uploading one tile. The Live Photo / burst case from the doc comment should
be re-checked. No sample attached (EXIF metadata); any iPhone camera HEIC reproduces it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions