summaryrefslogtreecommitdiff
path: root/extra/ffmpeg/h264-vdpau.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/ffmpeg/h264-vdpau.patch')
-rw-r--r--extra/ffmpeg/h264-vdpau.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/extra/ffmpeg/h264-vdpau.patch b/extra/ffmpeg/h264-vdpau.patch
new file mode 100644
index 000000000..75ebe306f
--- /dev/null
+++ b/extra/ffmpeg/h264-vdpau.patch
@@ -0,0 +1,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: