summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/fmt-conversion.c25
-rw-r--r--video/image_writer.c5
-rw-r--r--video/out/vo_lavc.c7
3 files changed, 17 insertions, 20 deletions
diff --git a/video/fmt-conversion.c b/video/fmt-conversion.c
index e79ce4d29d..6726ceacf8 100644
--- a/video/fmt-conversion.c
+++ b/video/fmt-conversion.c
@@ -20,7 +20,6 @@
#include <libavutil/avutil.h>
#include "config.h"
-#include "common/msg.h"
#include "video/img_format.h"
#include "fmt-conversion.h"
@@ -203,15 +202,11 @@ enum AVPixelFormat imgfmt2pixfmt(int fmt)
if (fmt == IMGFMT_NONE)
return AV_PIX_FMT_NONE;
- int i;
- enum AVPixelFormat pix_fmt;
- for (i = 0; conversion_map[i].fmt; i++)
+ for (int i = 0; conversion_map[i].fmt; i++) {
if (conversion_map[i].fmt == fmt)
- break;
- pix_fmt = conversion_map[i].pix_fmt;
- if (pix_fmt == AV_PIX_FMT_NONE)
- mp_msg(MSGT_GLOBAL, MSGL_V, "Unsupported format %s\n", vo_format_name(fmt));
- return pix_fmt;
+ return conversion_map[i].pix_fmt;
+ }
+ return AV_PIX_FMT_NONE;
}
int pixfmt2imgfmt(enum AVPixelFormat pix_fmt)
@@ -219,15 +214,9 @@ int pixfmt2imgfmt(enum AVPixelFormat pix_fmt)
if (pix_fmt == AV_PIX_FMT_NONE)
return IMGFMT_NONE;
- int i;
- for (i = 0; conversion_map[i].pix_fmt != AV_PIX_FMT_NONE; i++)
+ for (int i = 0; conversion_map[i].pix_fmt != AV_PIX_FMT_NONE; i++) {
if (conversion_map[i].pix_fmt == pix_fmt)
- break;
- int fmt = conversion_map[i].fmt;
- if (!fmt) {
- const char *fmtname = av_get_pix_fmt_name(pix_fmt);
- mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported PixelFormat %s (%d)\n",
- fmtname ? fmtname : "INVALID", pix_fmt);
+ return conversion_map[i].fmt;
}
- return fmt;
+ return 0;
}
diff --git a/video/image_writer.c b/video/image_writer.c
index 7e725fe729..e921cb7995 100644
--- a/video/image_writer.c
+++ b/video/image_writer.c
@@ -107,6 +107,11 @@ static int write_lavc(struct image_writer_ctx *ctx, mp_image_t *image, FILE *fp)
avctx->width = image->w;
avctx->height = image->h;
avctx->pix_fmt = imgfmt2pixfmt(image->imgfmt);
+ if (avctx->pix_fmt == AV_PIX_FMT_NONE) {
+ MP_ERR(ctx, "Image format %s not supported by lavc.\n",
+ mp_imgfmt_to_name(image->imgfmt));
+ goto error_exit;
+ }
if (ctx->writer->lavc_codec == AV_CODEC_ID_PNG) {
avctx->compression_level = ctx->opts->png_compression;
avctx->prediction_method = ctx->opts->png_filter;
diff --git a/video/out/vo_lavc.c b/video/out/vo_lavc.c
index 56933e2309..c0b317da94 100644
--- a/video/out/vo_lavc.c
+++ b/video/out/vo_lavc.c
@@ -135,8 +135,11 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
vc->lastframeipts = MP_NOPTS_VALUE;
vc->lastencodedipts = MP_NOPTS_VALUE;
- if (pix_fmt == AV_PIX_FMT_NONE)
- goto error; /* imgfmt2pixfmt already prints something */
+ if (pix_fmt == AV_PIX_FMT_NONE) {
+ MP_FATAL(vo, "Format %s not supported by lavc.\n",
+ mp_imgfmt_to_name(format));
+ goto error;
+ }
vc->stream = encode_lavc_alloc_stream(vo->encode_lavc_ctx,
AVMEDIA_TYPE_VIDEO);