diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index 75f882c6ca5c60c2ae739986595e18e2f37b8458..41a91f2381f1ab86038aa152737d1f315114550b 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -485,6 +485,9 @@ static int decode_frame(AVCodecContext *avctx,
                 } else if (s->bit_depth == 16 &&
                            s->color_type == PNG_COLOR_TYPE_RGB) {
                     avctx->pix_fmt = PIX_FMT_RGB48BE;
+                } else if (s->bit_depth == 16 &&
+                           s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) {
+                    avctx->pix_fmt = PIX_FMT_RGBA64BE;
                 } else if (s->color_type == PNG_COLOR_TYPE_PALETTE) {
                     avctx->pix_fmt = PIX_FMT_PAL8;
                 } else if (s->bit_depth == 1) {