1

タイプPixelFormatのcodecContext.pix_fmtからピクセルのビット数を取得する方法はありますか?私はスイッチを使用して手動でそれを行います:

switch (OUT_IMAGE_FORMAT)
{
    case PIX_FMT_RGB24:
        pVideoInfo->bmiHeader.biBitCount = 24;
        do_something();
        break;

    //etc
}

ただし、これには、libavが一部のピクセル形式を追加または削除するたびに手動で更新する必要があります。または、以前はサポートされていなかったピクセル形式を追加する必要がある場合。

PS DirectShowフィルターのCMediaTypeを埋めるために必要なので、bits_per_raw_sampleは、私が知っているように内部libavで使用するためのものであるため、適切ではありません。

4

1 に答える 1

1

使ってみて

#include "libavutil/pixdesc.h"

pVideoInfo->bmiHeader.biBitCount =  av_get_bits_per_pixel(&av_pix_fmt_descriptors[OUT_IMAGE_FORMAT]);

http://ffmpeg.org/doxygen/trunk/pixfmt_8h.html

于 2011-09-06T04:52:01.520 に答える