0
幾乎無處不在我看去,srcSliceY值設置爲0 在它wrriten文檔:中的ffmpeg庫sws_scale功能srcSliceY參數
c the scaling context previously created with sws_getContext()
srcSlice the array containing the pointers to the planes of the source slice
srcStride the array containing the strides for each plane of the source image
srcSliceY the position in the source image of the slice to process, that is the number (counted starting from zero) in the image of the first row of the slice
...
據我不清楚這是什麼意思「了源圖像「。這是否意味着源片?沒有稱爲「源圖像」的參數。
我寫了這個代碼:
SwsContext *ctx = sws_getContext(width, height, AV_PIX_FMT_GRAY8,
dwidth, dheight, AV_PIX_FMT_GRAY8,
SWS_BILINEAR, NULL, NULL, NULL);
const uint8_t* srcSlice[1] = { pSrc};
const int srcStride[1] = { width };
int srcSliceH = height;
const int dstStride[1] = { dwidth };
printf("srcStride=%d, height =%d\n",srcStride[0],srcSliceH);
for(int i=0;i<100;i++){
int t = sws_scale(ctx, srcSlice, srcStride, i, srcSliceH, &pDst, dstStride);
if(t != 0)
printf("i=%d t= %d\n",i,t);
}
我得到的輸出:
srcStride=384, height =30
[swscaler @ 0x1b0ba60] Warning: data is not aligned! This can lead to a speedloss
i=0 t= 2
i=4 t= 1
i=14 t= 1
i=24 t= 1
i=33 t= 1
i=43 t= 1
i=52 t= 1
i=62 t= 1
i=72 t= 1
i=81 t= 1
i=91 t= 1
望着sws_scale的源代碼,它在錯誤或無效的輸入返回0。所以我得出結論:對於迭代中的srcSliceY的大部分值,sws_returns錯誤。但目前尚不清楚什麼是有效的。