mirror of
https://github.com/librempeg/librempeg
synced 2024-11-23 03:28:27 +00:00
lavc/dnxhdenc: print valid profiles when codec parameters are invalid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
5b83b2da08
commit
9d602a0b0e
@ -1064,3 +1064,19 @@ int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ff_dnxhd_print_profiles(AVCodecContext *avctx, int loglevel)
|
||||
{
|
||||
int i, j;
|
||||
for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) {
|
||||
const CIDEntry *cid = &ff_dnxhd_cid_table[i];
|
||||
for (j = 0; j < FF_ARRAY_ELEMS(cid->bit_rates); j++) {
|
||||
if (!cid->bit_rates[j])
|
||||
break;
|
||||
|
||||
av_log(avctx, loglevel, "Frame size: %dx%d%c; bitrate: %dMbps; pixel format: %s; framerate: %d/%d\n",
|
||||
cid->width, cid->height, cid->interlaced ? 'i' : 'p', cid->bit_rates[j],
|
||||
cid->bit_depth == 10 ? "yuv422p10" : "yuv422p", cid->frame_rates[j].num, cid->frame_rates[j].den);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ extern av_export 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_print_profiles(AVCodecContext *avctx, int loglevel);
|
||||
|
||||
int avpriv_dnxhd_get_frame_size(int cid);
|
||||
|
||||
|
@ -266,7 +266,8 @@ static int dnxhd_encode_init(AVCodecContext *avctx)
|
||||
|
||||
ctx->cid = ff_dnxhd_find_cid(avctx, bit_depth);
|
||||
if (!ctx->cid) {
|
||||
av_log(avctx, AV_LOG_ERROR, "video parameters incompatible with DNxHD\n");
|
||||
av_log(avctx, AV_LOG_ERROR, "video parameters incompatible with DNxHD. Valid DNxHD profiles:\n");
|
||||
ff_dnxhd_print_profiles(avctx, AV_LOG_ERROR);
|
||||
return -1;
|
||||
}
|
||||
av_log(avctx, AV_LOG_DEBUG, "cid %d\n", ctx->cid);
|
||||
|
Loading…
Reference in New Issue
Block a user