ffplay: Set EMU_EDGE if dr1, this is an alternative fix for ticket40.
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 7 Apr 2011 13:12:03 +0000 (15:12 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 7 Apr 2011 22:20:18 +0000 (00:20 +0200)
Idea borrowed from mplayer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffplay.c

index 56236d8..e3e6e37 100644 (file)
--- a/ffplay.c
+++ b/ffplay.c
@@ -31,6 +31,7 @@
 #include "libavutil/imgutils.h"
 #include "libavutil/parseutils.h"
 #include "libavutil/samplefmt.h"
+#include "libavutil/avassert.h"
 #include "libavformat/avformat.h"
 #include "libavdevice/avdevice.h"
 #include "libswscale/swscale.h"
@@ -1582,6 +1583,8 @@ static int input_get_buffer(AVCodecContext *codec, AVFrame *pic)
     int i, w, h, stride[4];
     unsigned edge;
 
+    av_assert0(codec->flags & CODEC_FLAG_EMU_EDGE);
+
     if (codec->codec->capabilities & CODEC_CAP_NEG_LINESIZES)
         perms |= AV_PERM_NEG_LINESIZES;
 
@@ -1664,8 +1667,8 @@ static int input_init(AVFilterContext *ctx, const char *args, void *opaque)
     codec    = priv->is->video_st->codec;
     codec->opaque = ctx;
     if((codec->codec->capabilities & CODEC_CAP_DR1)
-       && codec->codec_id != CODEC_ID_SVQ1 //chroma alignment from lavfi is insufficient
     ) {
+        codec->flags |= CODEC_FLAG_EMU_EDGE;
         priv->use_dr1 = 1;
         codec->get_buffer     = input_get_buffer;
         codec->release_buffer = input_release_buffer;