Browse Source

wmvenc: check if width is multiple of 2

The width of wmv1/2 video must be multiple of 2 or win32 codec will fail to decode it (WMP displays black screen).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.11
Piotr Bandurski Michael Niedermayer 13 years ago
parent
commit
6108e1be2f
1 changed files with 8 additions and 0 deletions
  1. +8
    -0
      libavcodec/mpegvideo_enc.c

+ 8
- 0
libavcodec/mpegvideo_enc.c View File

@@ -508,6 +508,14 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
av_log(avctx, AV_LOG_ERROR, "MPEG-2 does not support resolutions above 16383x16383\n");
return -1;
}

if ((s->codec_id == CODEC_ID_WMV1 ||
s->codec_id == CODEC_ID_WMV2) &&
avctx->width & 1) {
av_log(avctx, AV_LOG_ERROR, "width must be multiple of 2\n");
return -1;
}

if ((s->flags & (CODEC_FLAG_INTERLACED_DCT | CODEC_FLAG_INTERLACED_ME)) &&
s->codec_id != CODEC_ID_MPEG4 && s->codec_id != CODEC_ID_MPEG2VIDEO) {
av_log(avctx, AV_LOG_ERROR, "interlacing not supported by codec\n");


Loading…
Cancel
Save