From 86611ff123d6ff2504931efa041bff24e5619daf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 28 Feb 2013 18:05:50 +0200 Subject: [PATCH 1/2] pnm: Use av_pix_fmt_desc_get instead of accessing the array directly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes boken fate tests with MSVC with DLLs, broken since b5f536d24. Signed-off-by: Martin Storsjö --- libavcodec/pnm.c | 2 +- libavcodec/pnmenc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/pnm.c b/libavcodec/pnm.c index 094e03d8fa..5f2fa4966c 100644 --- a/libavcodec/pnm.c +++ b/libavcodec/pnm.c @@ -173,7 +173,7 @@ int ff_pnm_decode_header(AVCodecContext *avctx, PNMContext * const s) }else s->maxval=1; /* more check if YUV420 */ - if (av_pix_fmt_descriptors[avctx->pix_fmt].flags & PIX_FMT_PLANAR) { + if (av_pix_fmt_desc_get(avctx->pix_fmt)->flags & PIX_FMT_PLANAR) { if ((avctx->width & 1) != 0) return AVERROR_INVALIDDATA; h = (avctx->height * 2); diff --git a/libavcodec/pnmenc.c b/libavcodec/pnmenc.c index b09649202d..7d8792f0ff 100644 --- a/libavcodec/pnmenc.c +++ b/libavcodec/pnmenc.c @@ -89,7 +89,7 @@ static int pnm_encode_frame(AVCodecContext *avctx, AVPacket *pkt, "P%c\n%d %d\n", c, avctx->width, h1); s->bytestream += strlen(s->bytestream); if (avctx->pix_fmt != AV_PIX_FMT_MONOWHITE) { - int maxdepth = (1 << (av_pix_fmt_descriptors[avctx->pix_fmt].comp[0].depth_minus1 + 1)) - 1; + int maxdepth = (1 << (av_pix_fmt_desc_get(avctx->pix_fmt)->comp[0].depth_minus1 + 1)) - 1; snprintf(s->bytestream, s->bytestream_end - s->bytestream, "%d\n", maxdepth); s->bytestream += strlen(s->bytestream); From cb6f8245aed2c26fe95c30cd68c45983277a945a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Wed, 27 Feb 2013 23:21:06 +0200 Subject: [PATCH 2/2] cmdutils: Allow calling filter_codec_opts without a set encoder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In this case, no encoder specific options are filtered, only options specific to that codec type in general. Signed-off-by: Martin Storsjö --- cmdutils.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cmdutils.c b/cmdutils.c index 688f501840..fa5632672a 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -1462,10 +1462,8 @@ AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, if (!codec) codec = s->oformat ? avcodec_find_encoder(codec_id) : avcodec_find_decoder(codec_id); - if (!codec) - return NULL; - switch (codec->type) { + switch (st->codec->codec_type) { case AVMEDIA_TYPE_VIDEO: prefix = 'v'; flags |= AV_OPT_FLAG_VIDEO_PARAM;