diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index 7dc5c283d48c91aa76f276e96bca21ab6fd6c30e..bc8c95235241feab6cdf0f53ef4322f6e06de37c 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -520,6 +520,9 @@ static int decode_frame(AVCodecContext *avctx,
                 } else if (s->bit_depth == 16 &&
                            s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
                     avctx->pix_fmt = AV_PIX_FMT_YA16BE;
+                } else if (s->bit_depth == 16 &&
+                           s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) {
+                    avctx->pix_fmt = AV_PIX_FMT_RGBA64BE;
                 } else {
                     avpriv_report_missing_feature(avctx,
                                                   "Bit depth %d color type %d",