summaryrefslogtreecommitdiffstats
path: root/vlc/build/schroedinger-1.0.6-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'vlc/build/schroedinger-1.0.6-fixes.patch')
-rw-r--r--vlc/build/schroedinger-1.0.6-fixes.patch98
1 files changed, 98 insertions, 0 deletions
diff --git a/vlc/build/schroedinger-1.0.6-fixes.patch b/vlc/build/schroedinger-1.0.6-fixes.patch
new file mode 100644
index 00000000..85215e48
--- /dev/null
+++ b/vlc/build/schroedinger-1.0.6-fixes.patch
@@ -0,0 +1,98 @@
+diff --git a/schroedinger/schroasync-win32.c b/schroedinger/schroasync-win32.c
+index 0912e81..3bf2fb0 100644
+--- a/schroedinger/schroasync-win32.c
++++ b/schroedinger/schroasync-win32.c
+@@ -166,8 +166,8 @@ void
+ schro_async_start (SchroAsync *async)
+ {
+ int i;
+- for(i=0;i<async->n_threads) {
+- SetEvent (async->thread_event);
++ for(i=0;i<async->n_threads;i++) {
++ SetEvent (async->threads[i].event);
+ }
+ }
+
+@@ -332,7 +332,7 @@ schro_thread_main (void *ptr)
+ * a lot of unnecessary wakeups in some cases. */
+ {
+ int i;
+- for(i=0;i<async->n_threads) {
++ for(i=0;i<async->n_threads;i++) {
+ SetEvent (async->thread_event);
+ }
+ }
+diff --git a/schroedinger/schrodecoder.c b/schroedinger/schrodecoder.c
+index d915c34..1ca348e 100644
+--- a/schroedinger/schrodecoder.c
++++ b/schroedinger/schrodecoder.c
+@@ -683,6 +683,7 @@ schro_decoder_pull (SchroDecoder *decoder)
+ {
+ SchroDecoderInstance *instance = decoder->instance;
+ SchroPicture *picture = NULL;
++ SchroPictureNumber picture_number;
+ SchroFrame *frame;
+
+ schro_async_lock (decoder->async);
+@@ -697,12 +698,12 @@ schro_decoder_pull (SchroDecoder *decoder)
+
+ /* XXX would be nice to warn if expected picture not present */
+ frame = schro_frame_ref (picture->output_picture);
++ picture_number = picture->picture_number;
+ schro_picture_unref (picture);
+
+ if (schro_decoder_frame_is_twofield (instance, frame)) do {
+ /* only consider the 2nd field if it can reference
+ * picture->output_picture, ie frame is twofields */
+- SchroPictureNumber picture_number = picture->picture_number;
+ if (picture_number&1) {
+ /* The following is voilated:
+ * - 10.4p3 earliest field in each frame shall have an even picture number
+diff --git a/testsuite/motion.c b/testsuite/motion.c
+index 9c52683..60e5739 100644
+--- a/testsuite/motion.c
++++ b/testsuite/motion.c
+@@ -13,24 +13,6 @@
+ #define OIL_ENABLE_UNSTABLE_API
+ #include <liboil/liboilprofile.h>
+
+-void
+-schro_frame_data_clear (SchroFrameData *fd)
+-{
+- int i;
+- for(i=0;i<fd->height;i++){
+- memset (SCHRO_FRAME_DATA_GET_LINE (fd, i), 0, fd->width);
+- }
+-
+-}
+-
+-void
+-schro_frame_clear (SchroFrame *frame)
+-{
+- schro_frame_data_clear (frame->components + 0);
+- schro_frame_data_clear (frame->components + 1);
+- schro_frame_data_clear (frame->components + 2);
+-}
+-
+ int
+ main (int argc, char *argv[])
+ {
+diff --git a/testsuite/motion2.c b/testsuite/motion2.c
+index e90ff70..c6f4cc7 100644
+--- a/testsuite/motion2.c
++++ b/testsuite/motion2.c
+@@ -15,14 +15,6 @@
+ #include <liboil/liboilrandom.h>
+
+ void
+-schro_frame_clear (SchroFrame *frame)
+-{
+- memset(frame->components[0].data, 0, frame->components[0].length);
+- memset(frame->components[1].data, 0, frame->components[1].length);
+- memset(frame->components[2].data, 0, frame->components[2].length);
+-}
+-
+-void
+ schro_frame_create_pattern (SchroFrame *frame, int type)
+ {
+ int i,j,k;