aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorelupus <elupus@xbmc.org>2011-06-24 01:31:33 +0200
committerelupus <elupus@xbmc.org>2011-06-24 01:31:33 +0200
commit59a169055dfed2177ab6d02de56fe4cce816ea4e (patch)
treed296172c18c5e810dbc11f23b8504ce635017894 /lib
parentc174f74181bcfa169aa8284f9524cd9db0f4cdda (diff)
changed: added patch file for an important ffmpeg change
Diffstat (limited to 'lib')
-rw-r--r--lib/ffmpeg/patches/0048-Dont-mark-genereted-dummy-frame-as-keyframe.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/ffmpeg/patches/0048-Dont-mark-genereted-dummy-frame-as-keyframe.patch b/lib/ffmpeg/patches/0048-Dont-mark-genereted-dummy-frame-as-keyframe.patch
new file mode 100644
index 0000000000..ca454224fc
--- /dev/null
+++ b/lib/ffmpeg/patches/0048-Dont-mark-genereted-dummy-frame-as-keyframe.patch
@@ -0,0 +1,31 @@
+From fdf7deeb66155a71acf2e34766d376d50f81b43a Mon Sep 17 00:00:00 2001
+From: elupus <elupus@xbmc.org>
+Date: Fri, 22 Apr 2011 15:42:51 +0200
+Subject: Don't mark generated dummy frame output from mpeg1/2 decoder as keyframe.
+
+We use this flag to tell when to assume decoded data is free
+from artifacts after a seek. The mpeg1/2 decoder will generate
+a dummy frame if decoding is started on a non keyframe. This
+will sadly be output from decoder to player and displayed
+as a gray screen.
+
+diff --git a/lib/ffmpeg/libavcodec/mpegvideo.c b/lib/ffmpeg/libavcodec/mpegvideo.c
+index c8706bc..a0acda1 100644
+--- a/lib/ffmpeg/libavcodec/mpegvideo.c
++++ b/lib/ffmpeg/libavcodec/mpegvideo.c
+@@ -996,6 +996,7 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
+ /* Allocate a dummy frame */
+ i= ff_find_unused_picture(s, 0);
+ s->last_picture_ptr= &s->picture[i];
++ s->last_picture_ptr->key_frame = 0;
+ if(ff_alloc_picture(s, s->last_picture_ptr, 0) < 0)
+ return -1;
+ }
+@@ -1003,6 +1004,7 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
+ /* Allocate a dummy frame */
+ i= ff_find_unused_picture(s, 0);
+ s->next_picture_ptr= &s->picture[i];
++ s->last_picture_ptr->key_frame = 0;
+ if(ff_alloc_picture(s, s->next_picture_ptr, 0) < 0)
+ return -1;
+ }