Dear Morfsta
would you update your coreavc-patch for current HG-version of xine-lib-1.2 (btw - there's coreavc 1.7.0)
I have the problem with patch
# cat xine-lib-1.2hg-coreavc.diff | patch -p1 --dry-run
patching file include/xine/buffer.h Hunk #2 succeeded at 687 (offset 1 line). patching file src/demuxers/bitstream.h patching file src/demuxers/demux_mpeg.c patching file src/demuxers/demux_mpeg_pes.c patching file src/demuxers/demux_qt.c Hunk #1 succeeded at 2760 (offset 34 lines). Hunk #2 succeeded at 2779 (offset 34 lines). patching file src/demuxers/demux_ts.c patching file src/libw32dll/DirectShow/DS_AudioDecoder.c patching file src/libw32dll/DirectShow/DS_Filter.c patching file src/libw32dll/DirectShow/DS_Filter.h patching file src/libw32dll/DirectShow/DS_VideoDecoder.c patching file src/libw32dll/DirectShow/guids.c patching file src/libw32dll/DirectShow/guids.h patching file src/libw32dll/DirectShow/outputpin.c patching file src/libw32dll/DirectShow/outputpin.h patching file src/libw32dll/Makefile.am The next patch would create the file src/libw32dll/nal_parser.c, which already exists! Assume -R? [n] n Apply anyway? [n] n Skipping patch. 1 out of 1 hunk ignored -- saving rejects to file src/libw32dll/nal_parser.c.rej The next patch would create the file src/libw32dll/nal_parser.h, which already exists! Assume -R? [n] n Apply anyway? [n] n Skipping patch. 1 out of 1 hunk ignored -- saving rejects to file src/libw32dll/nal_parser.h.rej patching file src/libw32dll/w32codec.c patching file src/libw32dll/wine/ext.c patching file src/libw32dll/wine/pe_image.c patching file src/libw32dll/wine/vfw.h patching file src/libw32dll/wine/win32.c Hunk #36 FAILED at 5288. Hunk #37 succeeded at 5327 (offset -2 lines). Hunk #38 succeeded at 5440 (offset -2 lines). Hunk #39 succeeded at 5460 (offset -2 lines). Hunk #40 succeeded at 5468 (offset -2 lines). Hunk #41 succeeded at 5481 (offset -2 lines). 1 out of 41 hunks FAILED -- saving rejects to file src/libw32dll/wine/win32.c.rej
-----Original Message----- From: Morfsta morfsta@gmail.com To: vdr@linuxtv.org Date: Fri, 15 Feb 2008 15:40:10 +0000 Subject: [vdr] [ANNOUNCE] Single CoreAVC Patch that Works with Xine-lib andVdr-xine
Hi,
Attached is a patch to enable decoding of H264 video streams using the CoreAVC Win32 DLL, the latest HG clone of xine-lib and Reinhard's vdr-xine and of course VDR. CoreAVC is a commercial and fast software-based H264 decoder.
To make this work: -
- Download the latest mercurial xine-lib (hg clone
http://hg.debian.org/hg/xine-lib/xine-lib-1.2) 2) Patch it (cd xine-lib-1.2 ; patch -p 1 < xine-lib-1.2hg-coreavc.diff) 3) Make and install it in your usual way (e.g. ./autogen.sh --disable-dxr3 ; make ; make install). You might want to remove old xine-lib first (rm /usr/local/lib/libxine* ; rm -rf /usr/local/lib/xine) 4) Make and install xine-ui (skip if already installed) 5) mkdir /usr/lib/win32 6) Put CoreAVCDecoder.ax (version 1.5.0 is the only version I can get working - the version I have is called coreavcdecoder_unpacked.ax) in /usr/lib/win32 7) Remove the old external ff decoder references (rm /usr/local/lib/xine/plugins/2.0/xineplug_decode_ff.so ; rm /usr/local/lib/xine/plugins/2.0/xineplug_decode_qt.so) 8) Start VDR -Pxine 9) Run xine (xine -f -pq -I -V xv -A alsa --post vdr_video --post vdr_audio -Dtvtime:method=Greedy2Frame,cheap_mode=0,pulldown=0,use_progressive_frame_flag=1 vdr://tmp/vdr-xine/stream#demux:mpeg_pes)
You can also tweak some of the CoreAVC settings. See this page for more details: -
http://code.google.com/p/coreavc-for-linux/wiki/RegisterCoreAVC
but change ~/.mplayer/registry32 with ~/.xine/win32registry.
Note, to increase performance I have disabled the xine de-interlacer for H264 streams as by default the CoreAVC deinterlacer is enabled. I don't think it's as good as the xine de-interlacer, but if you want to try re-enable xine deint on your CPU (too slow on my 2.6Ghz dual core) then edit xine's src/libw32dll/w32codec.c and re-enable "int field = VO_BOTH_FIELDS | VO_INTERLACED_FLAG;" and comment out "int field = VO_BOTH_FIELDS;"
Then you can disable CoreAVC's deinterlacer using the instructions on code.google.com (registercodec -r ~/.xine/win32registry -k "HKEY_CURRENT_USER\Software\CoreCodec\CoreAVC Pro\Deinterlace" -v 3 -t dword)
Note, I haven't written the majority of this patch, it has been pulled together from about 4 other patches (budice's work on DVBN and the google code site itself). I have added code to automatically detect the size of the H264 stream and to set the aspect ratio of the resultant picture as well as making it apply cleanly (hopefully!) to today's HG of xine.
Therefore, the code is nothing more than a total hack and will not likely see inclusion in xine in it's current form. There is currently H264 parsing occurring in the demuxer which is probably a "bad thing", it should be moved out of there. Additionally, I have added a new variable to the BITMAPINFOHEADER to pass the ratio from the demuxer to the codec source which is also not ideal, but hey, it works!
It has been pretty stable for me over the last few days and is a vast improvement over FFMPEG.
Finally, I urge you to go and BUY CoreAVC (http://www.coreavc.com) if you are using this patch - it's only 15USD.
Let me know if there are any problems and good luck!
Cheers,
Morfsta