[mythtv] RE: Big Thankyou

Edward Wildgoose Edward.Wildgoose at FRMHedge.com
Fri Nov 21 10:51:22 EST 2003


> I'm still seeing some occasional segfaults on back and frontend - been 
> meaning to get round to running a backtrace. What solved the frontend 
> problems you reported Ed ? 

Well, depends what you mean, but the email this morning was a false alarm I think.  Looks as though it was just because I was running under gdb that the debugger is stepping in and reporting the broken pipe.

I get occasional segfaults with the frontend too, usually when trying to edit stuff.  Also, the FF and RW stuff has a few bugs.  However, it's now very usable, whereas before it frequently needed prodding to keep the A-V in sync.  I will work on the other issues as I can, but since I don't really understand that part of the code all that well, I'm really hoping that other people with better skills will step in and do the work before I get there (Kenneth in particular has done a huge amount of work on the DVB stuff - thanks)

> The problem with jerky video and audio on 
> channel switching is also still there - it also happens sometimes when the 
> video format switches ie. in ad breaks etc where we get switches from 16:9 
> to 4:3.. This is with CVS from after the ffmpeg resync, so I'll try 
> updating tonight although I hadn't seen anything go in which might have 
> improved things.... 

If you mean the wierd jittering where you see a future frame from about 1/2 a sec in the future appear and disappear (and this repeats about 2 times per sec) then yes, Kenneth posted a patch to the list which fixes this for me.  It's quite a wierd artifact isn't it, kind of like subliminal advertising, and it tends to pop up just before scene changes which is kind of wierd because you then know that there is an advert break coming!

Isaac didn't commit Kenneth's patch and reported that Kenneth had told him there were problems with it.  I don't really know what these problems were, and I don't think that the discussion was public either, but it's been working for me very nicely.  However, in CVS I notice there are some changes which may be fixing this in another way.  I will revert to cvs in a few days and see.  In case not, here are the differences I am running wrt cvs:

Thanks all.  I'm a very happy Myth'er at the moment!

Index: avformatdecoder.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/avformatdecoder.cpp,v
retrieving revision 1.64
diff -u -r1.64 avformatdecoder.cpp
--- avformatdecoder.cpp 15 Nov 2003 00:56:02 -0000      1.64
+++ avformatdecoder.cpp 21 Nov 2003 15:47:23 -0000
@@ -723,8 +723,7 @@
                     float aspect = GetMpegAspect(context, aspectratioinfo,
                                                  width, height);

-                    if (CheckVideoParams(width, height) ||
-                        aspect != current_aspect)
+                    if (CheckVideoParams(width, height))
                     {
                         m_parent->SetVideoParams(ALIGN(width,16),
                                                  ALIGN(height,16), fps,
@@ -738,6 +737,13 @@
                         prevgoppos = 0;
                         video_last_P_pts = lastapts = lastvpts = 0;
                     }
+
+                    if (aspect != current_aspect)
+                    {
+                        m_parent->SetVideoParams(0,0,0, keyframedist, aspect);
+                        m_parent->ReinitVideo(true);
+                        current_aspect = aspect;
+                    }
                 }
                 break;

mm libmythtv # cvs diff -u NuppelVideoPlayer.cpp NuppelVideoPlayer.h
Index: NuppelVideoPlayer.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/NuppelVideoPlayer.cpp,v
retrieving revision 1.295
diff -u -r1.295 NuppelVideoPlayer.cpp
--- NuppelVideoPlayer.cpp       16 Nov 2003 01:11:49 -0000      1.295
+++ NuppelVideoPlayer.cpp       21 Nov 2003 15:47:41 -0000
@@ -344,8 +344,14 @@
     }
 }

-void NuppelVideoPlayer::ReinitVideo(void)
+void NuppelVideoPlayer::ReinitVideo(bool aspect_only)
 {
+    if (aspect_only)
+    {
+        videoOutput->AspectChanged(video_aspect);
+        return;
+    }
+
     InitFilters();
     videoOutput->InputChanged(video_width, video_height, video_aspect);

Index: NuppelVideoPlayer.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/NuppelVideoPlayer.h,v
retrieving revision 1.123
diff -u -r1.123 NuppelVideoPlayer.h
--- NuppelVideoPlayer.h 5 Nov 2003 03:53:07 -0000       1.123
+++ NuppelVideoPlayer.h 21 Nov 2003 15:47:41 -0000
@@ -167,7 +167,7 @@

     bool GetLimitKeyRepeat(void) { return limitKeyRepeat; }

-    void ReinitVideo(void);
+    void ReinitVideo(bool aspect_only=false);
     void ReinitAudio(void);

     void ToggleLetterbox(void);




...



More information about the mythtv-dev mailing list