Re: [問題] 有關ObjC呼叫其他Class的Method及呼叫C …
我自問自答一下,因為犯了一個很蠢的錯誤XD
首先,method call不到的問題,是因為我原本在大小判斷的地方,我是用
640*480去判斷。原因是我之前用的MacBook內建iSight解析度是640*480
所以我這樣設定。
然而,我上禮拜換了一台別人歸還的MacBook Pro,而MacBook Pro的iSight
解析度是1280*1024,有130畫素的品質,所以因為我的一時不察,沒有去
看解析度是多少,所以鬧成今天的笑話,希望大家下次記得檢查相容性XD
現在,我已經順利call到另一個method,就解決了第一個問題。但是第二個
問題依然還懸在那裡,希望板上先進可以幫幫我。
我在簡單敘述一下我的問題好了。
我有一個格式轉換的程式碼(Pure C),裡面有一個function如下:
int image_input(uint8_t * dst_y,
uint8_t * dst_u,
uint8_t * dst_v,
uint32_t width,
int height,
uint32_t edged_width,
uint8_t * src,
int src_stride,
int csp,
int interlaced);
帶有八個參數。
而我在ObjC的Class裡是這樣呼叫的:
我先在主程式裡面寫這樣
NSData *i420Data = [[NSData alloc] initWithData:
[mVideoGrabber RGB32toI420:buffer
length:(mLength - 54)
width:1280
height:1024]];
之後就會跳入class裡面的下面這個method:
- (NSData *)RGB32toI420:(uint8_t *)data length:(NSUInteger)length
width:(uint32_t)width_
height:(int)height_
{
NSLog(@"%i",length);
if (length != (width_ * height_ * 4))
{
NSAssert(noErr == (length == (width_ * height_ * 4)),
@"Size Error !");
return nil;
}
else
{
NSLog(@"%i",sizeof(&data));
NSLog(@"I'm in !");
uint8_t *dataBlock = malloc((width_ * height_ * 4 / 2));
NSLog(@"%p",dataBlock);
uint8_t *yPtr = dataBlock ;
NSLog(@"%p",yPtr);
uint8_t *uPtr = yPtr + width_ * height_;
NSLog(@"%p",uPtr);
uint8_t *vPtr = uPtr + (width_ / 2) * (height_ / 2);
NSLog(@"%p",vPtr);
/*就是這個function出問題,執行時不會過
我也都有檢查過他們傳進來,準備傳出去的資料形態
錯誤碼是"EXC_BED_ACCESS",經過zonble大的提醒
我才去檢查參數的形態正不正確,不過現在看似是一致的*/
image_input(yPtr,
uPtr,
vPtr,
width_,
height_,
width_,
data,
width_ * 4,
XVID_CSP_ABGR | XVID_CSP_VFLIP,
0);
/*回傳一個NSData,裡面是轉換完的資料*/
return [NSData dataWithBytes:dataBlock
length:(width_ * height_ * 4 /2)];
}
}
大致就是這樣,不過現在就是卡在那裡,不知道是不是我的function呼叫
有問題,還是其他我不知道的地方,希望板上的先進能給我一點意見。
感謝!!
補充一下,我在Run的時候,一開始console都會跑出一堆(至少2.3十個)警
告,而且都是一樣的警告:
warning: Bad symbol - type is N_SECT but section is 0
不曉得跟上面的Error有沒有關係?或說有人跟我一樣遇到這種警告的嗎?
再次感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.177.46
※ 編輯: ryanliang 來自: 61.219.177.46 (11/15 19:42)
→
11/16 09:25, , 1F
11/16 09:25, 1F
→
11/16 09:27, , 2F
11/16 09:27, 2F
→
11/16 09:29, , 3F
11/16 09:29, 3F
→
11/16 09:29, , 4F
11/16 09:29, 4F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章