summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2016-02-08 10:17:00 +0100
committerLuca Barbato <lu_zero@gentoo.org>2016-02-09 20:02:31 +0100
commit99214d42a902c8392d7887c08fdc5dc1fc2475ae (patch)
tree51f9c33492ef61d9846102e107ca966b10cbcfb5
parent34c9eba982c75196392a3b0b245dd34297c4511d (diff)
dnxhd: Make the encoder message friendlier
-rw-r--r--libavcodec/dnxhddata.c23
-rw-r--r--libavcodec/dnxhddata.h1
-rw-r--r--libavcodec/dnxhdenc.c5
3 files changed, 27 insertions, 2 deletions
diff --git a/libavcodec/dnxhddata.c b/libavcodec/dnxhddata.c
index 282829eeb2..55272e9cf3 100644
--- a/libavcodec/dnxhddata.c
+++ b/libavcodec/dnxhddata.c
@@ -1203,3 +1203,26 @@ int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
}
return 0;
}
+
+void ff_dnxhd_list_cid(AVCodecContext *avctx)
+{
+ int i, j;
+
+ for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) {
+ const CIDEntry *cid = &ff_dnxhd_cid_table[i];
+ av_log(avctx, AV_LOG_INFO,
+ "cid %d %ux%u %dbits %s bit rates",
+ cid->cid,
+ cid->width, cid->height,
+ cid->bit_depth,
+ cid->interlaced ? "interlaced " :
+ "progressive");
+ for (j = 0; j < FF_ARRAY_ELEMS(cid->bit_rates); j++) {
+ if (!cid->bit_rates[j])
+ break;
+ av_log(avctx, AV_LOG_INFO, " %dM",
+ cid->bit_rates[j]);
+ }
+ av_log(avctx, AV_LOG_INFO, "\n");
+ }
+}
diff --git a/libavcodec/dnxhddata.h b/libavcodec/dnxhddata.h
index 66b03499d7..e0ab102f87 100644
--- a/libavcodec/dnxhddata.h
+++ b/libavcodec/dnxhddata.h
@@ -47,5 +47,6 @@ extern const CIDEntry ff_dnxhd_cid_table[];
int ff_dnxhd_get_cid_table(int cid);
int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth);
+void ff_dnxhd_list_cid(AVCodecContext *avctx);
#endif /* AVCODEC_DNXHDDATA_H */
diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c
index d2fbc167d2..b7786afa68 100644
--- a/libavcodec/dnxhdenc.c
+++ b/libavcodec/dnxhdenc.c
@@ -289,14 +289,15 @@ static av_cold int dnxhd_encode_init(AVCodecContext *avctx)
break;
default:
av_log(avctx, AV_LOG_ERROR,
- "pixel format is incompatible with DNxHD\n");
+ "Pixel format is incompatible with DNxHD, use yuv422p or yuv422p10.\n");
return AVERROR(EINVAL);
}
ctx->cid = ff_dnxhd_find_cid(avctx, bit_depth);
if (!ctx->cid) {
av_log(avctx, AV_LOG_ERROR,
- "video parameters incompatible with DNxHD\n");
+ "Video parameters incompatible with DNxHD, available CIDs:\n");
+ ff_dnxhd_list_cid(avctx);
return AVERROR(EINVAL);
}
av_log(avctx, AV_LOG_DEBUG, "cid %d\n", ctx->cid);