Opened 2 years ago

Closed 2 years ago

#5657 closed enhancement (fixed)

support Apple 64-bit ARGB ('b64a')

Reported by: v0lt Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Attachments (2)

b64a.mov (2.3 MB) - added by cehoyos 2 years ago.
b64a.patch (1.2 KB) - added by v0lt 2 years ago.

Change History (13)

comment:1 Changed 2 years ago by cehoyos

  • Component changed from avcodec to undetermined
  • Priority changed from minor to wish

Which player plays the sample you provided?

comment:2 Changed 2 years ago by v0lt

Quick Time Player 7.7.9

comment:3 follow-up: Changed 2 years ago by cehoyos

The QuickTime? 7 player I have here refuses to play any avi files, how do you test?

comment:4 Changed 2 years ago by ami_stuff

I can confirm that this file decodes correctly with QT 7.6 on Win.

comment:5 in reply to: ↑ 3 Changed 2 years ago by v0lt

Replying to cehoyos:

The QuickTime? 7 player I have here refuses to play any avi files, how do you test?

I ran Quick Time Player 7.7.9 and pulled the file in the player window. The file is played correctly.
http://i.imgur.com/Kf3xs5M.jpg

Changed 2 years ago by cehoyos

comment:6 Changed 2 years ago by cehoyos

  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-master

This either needs a (trivial) codec or a new colourspace in libswscale.

comment:7 Changed 2 years ago by v0lt

I think there packet ARGB64BE format. If swap all the bytes of the pixel, we get AV_PIX_FMT_BGRA64LE.

comment:8 Changed 2 years ago by v0lt

Or change the position of the alpha channel, then we get AV_PIX_FMT_RGBA64BE.

// ARGB64BE -> AV_PIX_FMT_RGBA64BE
uint64_t pixel = ...;
pixel = pixel << 48 | pixel >> 16;
Last edited 2 years ago by v0lt (previous) (diff)

Changed 2 years ago by v0lt

comment:9 Changed 2 years ago by cehoyos

I just sent your patch to the development mailing list, in the future please prepare your patches with git format-patch and send them to ffmpeg-devel, patches are generally ignored on this bug tracker.

comment:10 Changed 2 years ago by Arnaud

I also think they packaged as ARGB64BE indeed.

I'm not sure what the patch proposed is doing exactly, but it seems like it interprets AV_PIX_FMT_RGBA64BE as ARGBBE when codec is b64a.
Wouldn't it make more sense to add a new AV_PIX_FMT_ARGB64BE pixel format?
To also allow conversion from/to this format for example.
But this would probably requires more work to fully support it everywhere..

comment:11 Changed 2 years ago by cehoyos

  • Component changed from undetermined to avcodec
  • Resolution set to fixed
  • Status changed from open to closed
Note: See TracTickets for help on using tickets.