summaryrefslogtreecommitdiff
path: root/extra/ffmpeg/h264-vdpau.patch
blob: 75ebe306fe4f5d50642075a330803316367b5ac1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
X-Git-Url: http://git.videolan.org/?p=ffmpeg.git;a=blobdiff_plain;f=libavcodec%2Fh264.c;h=da749a241d5647751cb5a961429abb6657a79a00;hp=56ef1092bd4509697f11b76ae97757bbc03aef14;hb=c6f59b95c529baf2ea6729ab9089fddce3ddd86a;hpb=6407800521d26b103db4c22d9de709e957381e4b

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 56ef109..da749a2 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2537,11 +2537,17 @@ static enum PixelFormat get_pixel_format(H264Context *h)
             return s->avctx->color_range == AVCOL_RANGE_JPEG ? AV_PIX_FMT_YUVJ422P
                                                              : AV_PIX_FMT_YUV422P;
         } else {
-            return s->avctx->get_format(s->avctx, s->avctx->codec->pix_fmts ?
+            int i;
+            const enum AVPixelFormat * fmt = s->avctx->codec->pix_fmts ?
                                         s->avctx->codec->pix_fmts :
                                         s->avctx->color_range == AVCOL_RANGE_JPEG ?
                                         hwaccel_pixfmt_list_h264_jpeg_420 :
-                                        ff_hwaccel_pixfmt_list_420);
+                                        ff_hwaccel_pixfmt_list_420;
+
+            for (i=0; fmt[i] != AV_PIX_FMT_NONE; i++)
+                if (fmt[i] == s->avctx->pix_fmt)
+                    return fmt[i];
+            return s->avctx->get_format(s->avctx, fmt);
         }
         break;
     default: