Re: [Ekiga-devel-list] Ekiga trunk version and H.264



Are you sure latest H264 works with these changes? I remember having made these changes, still there was a crash right after the video started to be shown.

On 28/05/10 12:37, Thierry Simonnet wrote:
diff --git a/include/h323/h323ep.h b/include/h323/h323ep.h
--- a/include/h323/h323ep.h
+++ b/include/h323/h323ep.h
@@ -60,6 +60,7 @@ class H225_H221NonStandard;
class H225_H221NonStandard;
class H225_ServiceControlDescriptor;
class H225_FeatureSet;
+class H225_ArrayOf_SupportedProtocols;

class H235SecurityInfo;

diff --git a/plugins/video/H.264/shared/h264frame.cxx
b/plugins/video/H.264/shared/h264frame.cxx
--- a/plugins/video/H.264/shared/h264frame.cxx
+++ b/plugins/video/H.264/shared/h264frame.cxx
@@ -86,7 +86,6 @@ H264Frame::~H264Frame ()

#ifndef LICENCE_MPL
void H264Frame::SetFromFrame (x264_nal_t *NALs, int numberOfNALs) {
- int vopBufferLen;
int currentNAL = 0;

uint8_t* currentPositionInFrame=(uint8_t*) _encodedFrame;
@@ -99,8 +98,9 @@ void H264Frame::SetFromFrame (x264_nal_t

// read the nals out of the encoder and create meta data about their
location and size in the frame
for (currentNAL = 0; currentNAL< numberOfNALs; currentNAL++) {
- int currentNALLen;
- currentNALLen = X264_NAL_ENCODE(currentPositionInFrame,&vopBufferLen,
1,&NALs[currentNAL]);
+ int currentNALLen = NALs[currentNAL].i_payload;
+ memcpy(currentPositionInFrame, NALs[currentNAL].p_payload,
NALs[currentNAL].i_payload);
+
if (currentNALLen> 0)
{
_NALs[_numberOfNALsInFrame].length = currentNALLen;

diff -u ./plugins/video/H.264/gpl/x264loader_unix.cxx_ORI
./plugins/video/H.264/gpl/x264loader_unix.cxx
--- ./plugins/video/H.264/gpl/x264loader_unix.cxx_ORI 2010-05-28
12:35:14.000000000 +0200
+++ ./plugins/video/H.264/gpl/x264loader_unix.cxx 2010-05-28
12:36:43.000000000 +0200
@@ -53,7 +53,7 @@
return false;
}

- if (!GetFunction("x264_encoder_open", (Function &)Xx264_encoder_open)) {
+ if (!GetFunction("x264_encoder_open_96", (Function
&)Xx264_encoder_open)) {
TRACE (1, "H264\tDYNA\tFailed to load x264_encoder_open");
return false;
}

On 05/28/2010 11:44 AM, Eugen Dedu wrote:
Could you post the patches? We need to register on that page.

On 28/05/10 11:20, Thierry Simonnet wrote:
For H264 under Linux:

it is necessary to use these patches :

http://www.aef.info/public/fr/abonne/depeche/depeche_detail.php?page=depeche_detail&rub=dep&id=79912



but also patch opal/plugins/video/H.264/gpl/x264loader_unix.cxx file
Replace line #56
if (!GetFunction("x264_encoder_open", (Function &)Xx264_encoder_open)) {
by
if (!GetFunction("x264_encoder_open_96", (Function
&)Xx264_encoder_open)) {
where 96 is the version of libx264.so (libx264.so.96 for the trunk
version)

Performances are not very good!!

For Windows version, I investigate.

On 05/24/2010 12:11 PM, Eugen Dedu wrote:
On 21/05/10 16:16, Thierry Simonnet wrote:
I had this trouble (old one). Even applying patch on h264frame.cxx.
.
It compiles for Win32 version, detect H.264 but crashes when using it.

Well, H264 and H263+ do not work for the moment, if someone with crash
debugging knowledge could help...







[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]