On 03.12.2016 00:52, Michael Niedermayer wrote: > @@ -400,16 +398,16 @@ static int ffm2_read_header(AVFormatContext *s) > ret = AVERROR_INVALIDDATA; > goto fail; > } > - codec->width = avio_rb16(pb); > - codec->height = avio_rb16(pb); > - ret = av_image_check_size(codec->width, codec->height, 0, s); > + codecpar->width = avio_rb16(pb); > + codecpar->height = avio_rb16(pb); > + ret = av_image_check_size(codecpar->width, codecpar->height, 0, > s); > if (ret < 0) > goto fail; > avio_rb16(pb); > - codec->pix_fmt = avio_rb32(pb); > - if (!av_pix_fmt_desc_get(codec->pix_fmt)) { > - av_log(s, AV_LOG_ERROR, "Invalid pix fmt id: %d\n", > codec->pix_fmt); > - codec->pix_fmt = AV_PIX_FMT_NONE; > + codecpar->format = avio_rb32(pb);
This change isn't as simple as it looks, because while the pix_fmt field exclusively contains AVPixelFormat values, the format field is shared with AVSampleFormat. Thus there now needs to be a check to ensure that codec_type is AVMEDIA_TYPE_VIDEO. > + if (!av_pix_fmt_desc_get(codecpar->format)) { > + av_log(s, AV_LOG_ERROR, "Invalid pix fmt id: %d\n", > codecpar->format); > + codecpar->format = AV_PIX_FMT_NONE; > goto fail; > } > avio_r8(pb); > @@ -610,15 +615,15 @@ static int ffm_read_header(AVFormatContext *s) > codec->time_base.num, codec->time_base.den); > goto fail; > } > - codec->width = avio_rb16(pb); > - codec->height = avio_rb16(pb); > - if (av_image_check_size(codec->width, codec->height, 0, s) < 0) > + codecpar->width = avio_rb16(pb); > + codecpar->height = avio_rb16(pb); > + if (av_image_check_size(codecpar->width, codecpar->height, 0, s) > < 0) > goto fail; > avio_rb16(pb); > - codec->pix_fmt = avio_rb32(pb); > - if (!av_pix_fmt_desc_get(codec->pix_fmt)) { > - av_log(s, AV_LOG_ERROR, "Invalid pix fmt id: %d\n", > codec->pix_fmt); > - codec->pix_fmt = AV_PIX_FMT_NONE; > + codecpar->format = avio_rb32(pb); Same here. > + if (!av_pix_fmt_desc_get(codecpar->format)) { > + av_log(s, AV_LOG_ERROR, "Invalid pix fmt id: %d\n", > codecpar->format); > + codecpar->format = AV_PIX_FMT_NONE; > goto fail; > } > avio_r8(pb); Best regards, Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel