]> git.vomp.tv Git - vompclient-marten.git/commitdiff
Patch for avoiding incorrect aspect switches
authorChris Tallon <chris@vomp.tv>
Sat, 25 Mar 2006 16:03:42 +0000 (16:03 +0000)
committerChris Tallon <chris@vomp.tv>
Sat, 25 Mar 2006 16:03:42 +0000 (16:03 +0000)
demuxer.cc
demuxer.h

index 1f553aea8284b39e3580d77972d71258a4358c8b..be11edb7536f043b7806c088218f4c2939a1ed0a 100644 (file)
@@ -30,6 +30,7 @@ Demuxer::Demuxer()
   instance = this;
   initted = 0;
   callback = NULL;
+  arcnt = 0;
 }
 
 Demuxer::~Demuxer()
@@ -113,9 +114,16 @@ void Demuxer::setAspectRatio(enum AspectRatio ar)
 {
   if (aspect_ratio != ar)
   {
-    aspect_ratio = ar;
-    callback->call(this);
+    Log::getInstance()->log("Demux", Log::DEBUG, "Aspect ratio difference signalled");
+    if (++arcnt > 3) // avoid changing aspect ratio if glitch in signal
+    {
+      arcnt = 0;
+      aspect_ratio = ar;
+      callback->call(this);
+    }
   }
+  else
+    arcnt = 0;
 }
 
 int Demuxer::writeAudio(int fd)
index 29930b5027b0b1e96028778e6730b012eb0613e6..f8e6e6102a3e64a9f6e19f5919df8cc32e28299a 100644 (file)
--- a/demuxer.h
+++ b/demuxer.h
@@ -156,6 +156,7 @@ class Demuxer
     int horizontal_size;
     int vertical_size;
     enum AspectRatio aspect_ratio;
+    int arcnt;
     int frame_rate;
     int bit_rate;
     ULLONG video_pts;