[mythtv] Updated patch for directshow filters with MythTV (for CoreAVC)
andrew.lyon at gmail.com
Thu Feb 8 00:06:48 UTC 2007
On 2/7/07, Andrew Lyon <andrew.lyon at gmail.com> wrote:
> 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
> edia/include -I../libmythlivemedia/UsageEnvironment/include
> -I/usr/qt/3/include -I/usr/include -I/usr/include -o mo
> make: *** No rule to make target `../libdshowloader/libloader.a',
> needed by `libmythtv-0.20.so.0.20.0'. Stop.
> make: Leaving directory `/var/tmp/mythtv-0.20/libs/libmythtv'
> make: *** [sub-libmythtv] Error 2
> make: 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
One part of the patch did not apply cleanly:
patching file libs/libmythtv/avformatdecoder.cpp
Hunk #6 succeeded at 3268 (offset 6 lines).
But that should be ok , no?
More information about the mythtv-dev