Skip to content

Commit 758ccad

Browse files
committed
fix a bug of compute inter-frame dependency
1 parent 078d0c9 commit 758ccad

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

dependency.c

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ void load_frame_mb_edindex(int p_videoFileIndex) {
303303
LOGI(10, "file size: %ld", sbuf.st_size);
304304
//mbEndPos = mmap((caddr_t)0, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
305305
//mbEndPos = mmap(0, sbuf.st_size, PROT_READ, MAP_SHARED, fd, 0);
306-
mbEndPos = sbuf.st_size;
306+
mapEdLen = sbuf.st_size;
307307
mbEndPos = mmap(0, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
308308
if (mbEndPos == MAP_FAILED) {
309309
LOGE(1, "mmap error");
@@ -638,8 +638,9 @@ static void compute_mb_mask_from_inter_frame_dependency(int _stFrame, int _edFra
638638
}
639639
}
640640
//2. based on inter-dependency list, mark the needed mb
641-
//TODO: it's not necessary to process _stFrame, as there's no inter-dependency for it
642-
for (l_i = _edFrame; l_i >= _stFrame; --l_i) {
641+
//it's not necessary to process _stFrame, as there's no inter-dependency for it
642+
// for (l_i = _edFrame; l_i >= _stFrame; --l_i) {
643+
for (l_i = _edFrame; l_i > _stFrame; --l_i) {
643644
for (l_j = 0; l_j <= MAX_MB_H; ++l_j) {
644645
for (l_k = 0; l_k <= MAX_MB_W; ++l_k) {
645646
if (interDepMask[l_i - _stFrame][l_j][l_k] == 1) {
@@ -1007,12 +1008,9 @@ void decode_a_video_packet(int p_videoFileIndex, int _roiStH, int _roiStW, int _
10071008
//LOGI(10, "%d:%d", mbEndPos[gVideoPacketNum - gStFrame][l_i][l_j], mbStartPos[gVideoPacketNum - gStFrame][l_i][l_j]);
10081009
//l_selectiveDecodingDataSize += (mbEndPos[gVideoPacketNum - gStFrame][l_i][l_j] - mbStartPos[gVideoPacketNum - gStFrame][l_i][l_j]);
10091010
l_selectiveDecodingDataSize += ((*lMbEdPos) - (*lMbStPos));
1010-
++lMbEdPos;
1011-
++lMbStPos;
1012-
} else {
1013-
++lMbEdPos;
1014-
++lMbStPos;
1015-
}
1011+
}
1012+
++lMbEdPos;
1013+
++lMbStPos;
10161014
}
10171015
}
10181016
LOGI(10, "total number of bits: %d", l_selectiveDecodingDataSize);
@@ -1037,12 +1035,9 @@ void decode_a_video_packet(int p_videoFileIndex, int _roiStH, int _roiStW, int _
10371035
if (gVideoCodecCtxList[p_videoFileIndex]->selected_mb_mask[l_i][l_j] == 1) {
10381036
l_bufPos = copy_bits(gVideoPacket.data, gVideoPacket2.data, *lMbStPos, (*lMbEdPos) - (*lMbStPos), l_bufPos);
10391037
fprintf(lTestF, "%d:%d:%d:%d\n", l_i, l_j, (*lMbStPos), (*lMbEdPos));
1040-
++lMbEdPos;
1041-
++lMbStPos;
1042-
} else {
1043-
++lMbEdPos;
1044-
++lMbStPos;
1045-
}
1038+
}
1039+
++lMbEdPos;
1040+
++lMbStPos;
10461041
}
10471042
}
10481043
fflush(lTestF);

0 commit comments

Comments
 (0)