我正在使用FlasCC允許我使用FFmpeg呈現來自AS3的視頻。在AS3中進行endian交換非常慢我在發送視頻字節(用於該幀)之前正在運行一些測試並刪除我的視頻ByteArray中的endian交換,從而使渲染時間縮短了大約一半。我想看看是否可以通過在C中執行endian swap來更快地完成endian swap,但是我之前從未在C或C++中做過endian swap,而且我發現的一些帖子有點複雜。將大端序列轉換爲AS3中的小端序列ByteArray in C
我正在將一個指針作爲uint8_t指向我的ByteArray,並且想要使用C將大寫字母從大到小交換。任何人都可以用正確的方向指向我,或者給我一些示例代碼來做到這一點?
ByteArray應該保留RGB32數據,但它是一個大端,我需要它在大端使用ffmpeg進行處理。
編輯:
目前正在使用:
int i = 0;
int j = bufferSize - 1;
int temp;
while (i < j)
{
temp = buffer[i];
buffer[i] = buffer[j];
buffer[j] = temp;
i++;
j--;
}
如果你已經有了'uint8_t'數組,那隻不過是顛倒了數組。 – mafso
字節沒有字節序,只有多字節纔有字節序。什麼樣的數據你想改變排序? – ouah
@ouah AS3 ByteArray的大小不一。當您在位圖數據上使用getPixels()時,您將以Big Endian格式獲取RGB32信息的ByteArray。我想將它換成小端格式,以傳遞到採用RGB32像素並處理它們的FFmpeg。所以我有一些字節抱歉,我想我不清楚。 –