[mythtv] Updated patch for directshow filters with MythTV (for CoreAVC)

Andrew Lyon andrew.lyon at gmail.com
Wed Feb 7 23:51:42 UTC 2007


On 2/7/07, Alan Nisota <alannisota at gmail.com> wrote:
> Mark Kendall wrote:
> > On 2/7/07, Alan Nisota <alannisota at gmail.com> wrote:
> >
> >> Andrew Lyon wrote:
> >>
> >>> Its working, colours are a bit off but its playing back in realtime!,
> >>> I'm going to upgrade my kernel and nvidia drivers and do more testing,
> >>> ive been meaning to bring them up to date anyway..
> >>>
> >> The color issue may be due to the output format we're using.  I am using
> >> I420 because that is what Myth wants, but it may be that YV12 works
> >> better.  If I can get a sample that shows the problem in myth, I can
> >> test it in mplayer and see if I can figure out what needs to be done.
> >>
> >> Also, I now have multiple CPUs almost working, and it gives a huge
> >> speedup.  The only problem is that I get a segfault at the end of
> >> playback (inside the codec).  Once I get that worked out, I'll update
> >> the patch with the fixes that have come up so far.
> >>
> >
> > Alan
> >
> > The problem is in avformatdecoder
> >
> > +           bih.biCompression = 0x34363268; //0x30323449;
> >
> > If I revert to the commented out (I420) fourcc, colourspace is as expected.
> >
> This won't do what you expected.  biCompression is the input format, and
> I have it hardcoded to 'h264' at the moment (which is what CoreAVC
> wants).  We are actually interested in the output format, which is set
> just below at:
>             DS_VideoDecoder_SetDestFmt(dshowdec,12,0x30323449);
> //IMGFMT_I420
> however, it is not just a simple matter of changing that to YV12, as we
> need to convince myth what the format is too.  If this is the problem,
> I'll work out how to make it work, but it is much easier to test with
> mplayer where I can easily play with different modes.
>
> I have updated the patch on ticket #3053 so it now includes the fixes
> mentioned in this thread along with multiple CPU support.
>
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
>

I get a compile error with 1.1, applied to clean source 12672 which is
the same version I used before, heres the log including a few lines
before the error:

g++ -c -pipe -march=pentium-m -Wall -W -O3 -fomit-frame-pointer -Wall
-Wno-switch -Wno-non-virtual-dtor -fomit-fram
eetype2 -D_REENTRANT -DPIC -fPIC  -DMMX -Di386 -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DLIBDIR=\"/u
E -DUSING_OSS -DUSING_H264TOOLS -DUSING_XV -DUSING_XVMC -DUSING_XVMCW
-DUSING_XVMC_VLD -DUSING_OPENGL -DUSING_OPENG
USING_V4L -DUSING_IPTV -DUSING_IVTV -DUSING_DVB -DUSING_BACKEND
-DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_
mkspecs/linux-g++ -I. -I/usr/include -I/usr/include -I/usr/include
-I../.. -I.. -I../libmyth -I../libavcodec -I../l
-Idvbdev -Impeg -Iiptv
-I../libmythlivemedia/BasicUsageEnvironment/include
-I../libmythlivemedia/groupsock/include
edia/include -I../libmythlivemedia/UsageEnvironment/include
-I/usr/qt/3/include -I/usr/include -I/usr/include -o mo
bsignalmonitor.cpp
make[2]: *** No rule to make target `../libdshowloader/libloader.a',
needed by `libmythtv-0.20.so.0.20.0'.  Stop.
make[2]: Leaving directory `/var/tmp/mythtv-0.20/libs/libmythtv'
make[1]: *** [sub-libmythtv] Error 2
make[1]: Leaving directory `/var/tmp/mythtv-0.20/libs'
make: *** [sub-libs] Error 2

I can cd to libdshowloader, make, and then the myth compile is
successful, but myth immediately segfaults if I try to play h264:

Trying DirectShow
Destroying filter!
Segmentation fault

Andy


More information about the mythtv-dev mailing list