[vlc-commits] commit: win32 contribs: Fix dxva2 decoding for Intel cards ( Rafaël Carré )

git at videolan.org git at videolan.org
Tue Oct 12 22:49:12 CEST 2010


vlc | branch: master | Rafaël Carré <rafael.carre at gmail.com> | Tue Oct 12 22:46:01 2010 +0200| [1c1e8beacc1c2beb67d0304986fe638f2554fe61] | committer: Rafaël Carré 

win32 contribs: Fix dxva2 decoding for Intel cards

Tested on GMA HD, ATI/NVIDIA
Untested on GMA4500

Needs testing on more cards and samples before it is committed upstream

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1c1e8beacc1c2beb67d0304986fe638f2554fe61
---

 extras/contrib/src/Makefile                        |    1 +
 extras/contrib/src/Patches/ffmpeg-dxva2_h264.patch |   12 ++++++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/extras/contrib/src/Makefile b/extras/contrib/src/Makefile
index f03d1c9..aad1184 100644
--- a/extras/contrib/src/Makefile
+++ b/extras/contrib/src/Makefile
@@ -1057,6 +1057,7 @@ ifdef HAVE_UCLIBC
 	patch -p0 < Patches/ffmpeg-svn-libavformat.patch
 endif
 ifdef HAVE_WIN32
+	patch -p0 < Patches/ffmpeg-dxva2_h264.patch
 	sed -i "s/std=c99/std=gnu99/" ffmpeg/configure
 endif
 else
diff --git a/extras/contrib/src/Patches/ffmpeg-dxva2_h264.patch b/extras/contrib/src/Patches/ffmpeg-dxva2_h264.patch
new file mode 100644
index 0000000..da91226
--- /dev/null
+++ b/extras/contrib/src/Patches/ffmpeg-dxva2_h264.patch
@@ -0,0 +1,12 @@
+diff -u ffmpeg/libavcodec/dxva2_h264.c ffmpeg/libavcodec/dxva2_h264.c
+--- ffmpeg/libavcodec/dxva2_h264.c
++++ ffmpeg/libavcodec/dxva2_h264.c
+@@ -194,7 +194,7 @@ static void fill_slice_long(AVCodecContext *avctx, DXVA_Slice_H264_Long *slice,
+ 
+     slice->first_mb_in_slice     = (s->mb_y >> FIELD_OR_MBAFF_PICTURE) * s->mb_width + s->mb_x;
+     slice->NumMbsForSlice        = 0; /* XXX it is set once we have all slices */
+-    slice->BitOffsetToSliceData  = get_bits_count(&s->gb) + 8;
++    slice->BitOffsetToSliceData  = get_bits_count(&s->gb);
+     slice->slice_type            = ff_h264_get_slice_type(h);
+     if (h->slice_type_fixed)
+         slice->slice_type += 5;



More information about the vlc-commits mailing list