[h323plus] Adding H263 codec to openmcu

Marcos Fábio Jardini marcos.f.jardini at gmail.com
Tue Jan 12 14:08:43 EST 2010


Errata: I made a mistake, I mean X86_64. *not* _84. Sorry.

2010/1/12 Marcos Fábio Jardini <marcos.f.jardini at gmail.com>:
> mix asm (with _asm keyword) is not more valid for 64 bit-mode
> compilers (ref. AMD X86_84 ABI). So old ffmpeg can only be compiled in
> 32bit mode.
>
> 2010/1/12 Jan Willamowius <jan at willamowius.de>:
>> I compiled on a 64bit system. I would guess ffmpeg uses different
>> assembler code on your 32bit system. I don't really want to
>> get into supporting such an old ffmpeg version. I'm glad it works here
>> and hope that Somon soon has the new version ready for a current ffmpeg.
>>
>> Jan
>>
>> Michael Bondi wrote:
>>> Hi Jan,
>>>
>>> I tried the ffmpeg 0.4.7 patched version you sent but the following happens:
>>>
>>> voyage:~/ffmpeg# make
>>> make -C libavcodec all
>>> make[1]: Entering directory `/root/ffmpeg/libavcodec'
>>> gcc -O3 -Wall -fPIC -g -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64
>>> -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o msmpeg4.o msmpeg4.c
>>> msmpeg4.c: In function 'msmpeg4_pred_dc':
>>> msmpeg4.c:845: warning: pointer targets in assignment differ in signedness
>>> msmpeg4.c: At top level:
>>> msmpeg4.c:660: warning: 'ff_old_msmpeg4_dc_scale' defined but not used
>>> wmv2.c:103: warning: 'wmv2_encode_end' defined but not used
>>> wmv2.c:481: warning: 'ff_wmv2_decode_init' defined but not used
>>> msmpeg4.c: In function 'msmpeg4_decode_dc':
>>> msmpeg4.c:734: error: can't find a register in class 'BREG' while
>>> reloading 'asm'
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> bswap.h:26: error: 'asm' operand has impossible constraints
>>> common.h:281: error: 'asm' operand has impossible constraints
>>> msmpeg4.c:734: error: 'asm' operand has impossible constraints
>>> msmpeg4.c:698: error: 'asm' operand has impossible constraints
>>> msmpeg4.c:698: error: 'asm' operand has impossible constraints
>>> make[1]: *** [msmpeg4.o] Error 1
>>> make[1]: Leaving directory `/root/ffmpeg/libavcodec'
>>> make: *** [lib] Error 2
>>>
>>>
>>> voyage 0.6.2
>>> apt-get install flex bison build-essential subversion cvs pkg-config
>>>
>>> Mike
>>>
>>>
>>>
>>> Jan Willamowius wrote:
>>> > Hi Michael,
>>> >
>>> > here's my patched ffmpeg source. Its really just a quick fix until the
>>> > updated codec is ready.
>>> >
>>> > Regards,
>>> > Jan
>>> >
>>> > Michael Bondi wrote:
>>> >
>>> >> Hi Jan,
>>> >>
>>> >> Any idea of when the new ffmpeg 0.5 will be able to be compiled with
>>> >> h323 support?
>>> >>
>>> >> Are you able to supply me with your patched ffmpeg 0.4.7 so I can
>>> >> continue with my current compilation with gcc 4.3, albeit an inelegant
>>> >> solution?
>>> >>
>>> >> I'd like to learn how the openmcu works with your fantastic gnugk before
>>> >> the day is over.
>>> >>
>>> >> Mike
>>> >>
>>> >> Jan Willamowius wrote:
>>> >>
>>> >>> Yes, the old ffmpeg code doesn't compile with gcc 4.x.
>>> >>>
>>> >>> Jan
>>> >>>
>>> >>> Michael Bondi wrote:
>>> >>>
>>> >>>
>>> >>>> Hi Jan,
>>> >>>>
>>> >>>> It appears that I have ver 4.3 of gcc.
>>> >>>>
>>> >>>> Could that be the reason for the ffmpeg 0.4.7 make failure?
>>> >>>>
>>> >>>> Thanks
>>> >>>>
>>> >>>> Mike
>>> >>>>
>>> >>>>
>>> >>>> Jan Willamowius wrote:
>>> >>>>
>>> >>>>
>>> >>>>> I have a patched version of ffmpeg-0.4.7, that compiles with gcc 4.4.x,
>>> >>>>> but there is work going on to let the H.323-ffmpeg plugin compile with
>>> >>>>> current versions of ffmpeg, which is a much better solution.
>>> >>>>>
>>> >>>>> Regards,
>>> >>>>> Jan
>>> >>>>>
>>> >>>>> Michael Bondi wrote:
>>> >>>>>
>>> >>>>>
>>> >>>>>
>>> >>>>>> Thanks Prasad,
>>> >>>>>>
>>> >>>>>> I try install ffmpeg 0.4.7 from
>>> >>>>>> http://www.voxgratia.org/bin/ffmpeg-0.4.7.tar.gz but I get the following:
>>> >>>>>>
>>> >>>>>> voyage:~/ffmpeg-0.4.7# make
>>> >>>>>> make -C libavcodec all
>>> >>>>>> make[1]: Entering directory `/root/ffmpeg-0.4.7/libavcodec'
>>> >>>>>> gcc -O3 -Wall -g -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64
>>> >>>>>> -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o common.o common.c
>>> >>>>>> In file included from avcodec.h:14,
>>> >>>>>>                  from common.c:27:
>>> >>>>>> common.h:65: error: array type has incomplete element type
>>> >>>>>> common.h:69: error: array type has incomplete element type
>>> >>>>>> make[1]: *** [common.o] Error 1
>>> >>>>>> make[1]: Leaving directory `/root/ffmpeg-0.4.7/libavcodec'
>>> >>>>>> make: *** [lib] Error 2
>>> >>>>>>
>>> >>>>>> But I proceed and continue  to configure and make and make install the
>>> >>>>>> a/v pugins in the ~/h323plus/plugins directory.
>>> >>>>>>
>>> >>>>>> I create a directory ~/codecs and copy both
>>> >>>>>> h263-ffmpeg_video_pwplugin.so and libavcodec.so (from the
>>> >>>>>> libavcodec-0.4.7-linux.bin.tar.gz file) into there. I rename
>>> >>>>>> libavcodec.so to avcodec
>>> >>>>>>
>>> >>>>>> I set export P_T_LIBPLUGINDIR=~/codecs           (does this have to be
>>> >>>>>> P_W_LIBPLUGINDIR ?????)
>>> >>>>>>
>>> >>>>>> I run openmcu and connect with Polycom PVX, and I see the video
>>> >>>>>> window!!  But the video has strange lines with pink and blue colours,
>>> >>>>>> but it is the video from the webcam!
>>> >>>>>>
>>> >>>>>> I assume it may be because I do not have the ffmpeg 0.4.7 installed
>>> >>>>>> correctly?
>>> >>>>>>
>>> >>>>>> I will have a look at installing ffmpeg 0.4.7 direct from ffmpeg site.
>>> >>>>>>
>>> >>>>>> So I am closer....
>>> >>>>>>
>>> >>>>>> Thanks again for the help.
>>> >>>>>>
>>> >>>>>> Mike
>>> >>>>>>
>>> >>>>>>
>>> >>>>>> Prasad Mohire wrote:
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>> HI Michael,
>>> >>>>>>>
>>> >>>>>>> I guess you have compiled PTLIB and H323plus and OpenMCU correctly.
>>> >>>>>>> H323plus doesn't need ffmpeg. ffmpeg is needed by h323plus avplugin.
>>> >>>>>>> You were able to hear audio because h323plus comes with G711 codecs.
>>> >>>>>>> You will need to build H263 plugin separately.
>>> >>>>>>>
>>> >>>>>>> h263 plugin needs ffmpeg version 0.47. To install it:
>>> >>>>>>>  run ./configure --enable-shared, then make and make install in ffmpeg
>>> >>>>>>> directory.
>>> >>>>>>>
>>> >>>>>>> Once that is done, download the plugins directory from h323plus.com
>>> >>>>>>> <http://h323plus.com>.
>>> >>>>>>> untar the direcory under h323plus directory so that you will have
>>> >>>>>>> plugins directory under h323plus.
>>> >>>>>>> Goto plugins directory.
>>> >>>>>>> run ./configure
>>> >>>>>>> You should see h263 : yes in output of configure script. This means it
>>> >>>>>>> will build H.263 plugin. If it is 'no' there is something wrong with
>>> >>>>>>> prerequisites i.e. ffmpeg. make sure that libavcodec.h file is in
>>> >>>>>>> include path.
>>> >>>>>>>
>>> >>>>>>> once you see H.263: yes as output, run make and make install in
>>> >>>>>>> plugins directory.
>>> >>>>>>> create a directory to store the plugins. Set environment variable
>>> >>>>>>> PWLIBPLUGINDIR pointing to that directory. Copy
>>> >>>>>>> h323plus/plugins/video/h.263/h263-ffmpeg_video_pwplugin.so file to
>>> >>>>>>> $PWLIBPLUGINDIR. Copy libavcoded.so to $PWLIBPLUGINDIR  and rename it
>>> >>>>>>> to avcodec.
>>> >>>>>>>
>>> >>>>>>> Now start openmcu, it should load with H.263 capability.
>>> >>>>>>>
>>> >>>>>>> File "C:\\traces.txt" will be created in directory from which you will
>>> >>>>>>> start openmcu. You can see what all capabilities are added while
>>> >>>>>>> openmcu is started in that file.
>>> >>>>>>>
>>> >>>>>>>
>>> >>>>>>> Thanks and Regards,
>>> >>>>>>> Prasad.
>>> >>>>>>>
>>> >>>>>>>
>>> >>>>>>> On Fri, Jan 8, 2010 at 3:32 PM, Michael Bondi
>>> >>>>>>> <mike at bridgeconference.co.za <mailto:mike at bridgeconference.co.za>> wrote:
>>> >>>>>>>
>>> >>>>>>>     Hi all and Happy 2010!
>>> >>>>>>>
>>> >>>>>>>     This may have been asked before, but I cannot help myself but to
>>> >>>>>>>     ask again.
>>> >>>>>>>
>>> >>>>>>>     I have compiled ptlib 2.4.5 and h323plus 1.21 and openmcu 2.2.5 on
>>> >>>>>>>     a Debian 5 machine.
>>> >>>>>>>
>>> >>>>>>>     I am able to connect and hear the tones and message for connecting
>>> >>>>>>>     but am unable to get video on the screen.
>>> >>>>>>>
>>> >>>>>>>     I have tried compiling h323plus with only the 0.4.7 ffmpeg
>>> >>>>>>>     libavcodec.so placed in a directory /root/codec and compiled with
>>> >>>>>>>     ./configure --enable-rfc2190avcodec=/root/ffmpeg switch, all
>>> >>>>>>>     compiles fine, but still no h.263 video. Is there any more I need
>>> >>>>>>>     to do here?
>>> >>>>>>>
>>> >>>>>>>     Also, I am getting confused where to unpack and install the a/v
>>> >>>>>>>     plugins from file
>>> >>>>>>>     http://www.h323plus.org/source/download/plugins-v1_21_0.tar.gz
>>> >>>>>>>
>>> >>>>>>>     Thanks
>>> >>>>>>>
>>> >>>>>>>     Mike
>>> >>>>>>>
>>> >>>>>>>
>>> >>>>>>>
>>> >>>>>>>
>>> >>>>>>>
>>> >>>>>
>>> >>>>>
>>> >>>>>
>>> >>>
>>> >>>
>>> >
>>> >
>>> >
>>
>>
>> --
>> Jan Willamowius, jan at willamowius.de, http://www.gnugk.org/
>>
>
>
>
> --
> -----
> Jogue RPG, alimente o lado criativo!
>



-- 
-----
Jogue RPG, alimente o lado criativo!



More information about the h323plus mailing list