dvenc: print allowed profiles if the video doesn't conform to any of them.
This commit is contained in:
parent
3c6607eb6f
commit
a839dbb94e
@ -323,9 +323,11 @@ av_cold int ff_dvvideo_init(AVCodecContext *avctx)
|
|||||||
static av_cold int dvvideo_init_encoder(AVCodecContext *avctx)
|
static av_cold int dvvideo_init_encoder(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
if (!avpriv_dv_codec_profile(avctx)) {
|
if (!avpriv_dv_codec_profile(avctx)) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Found no DV profile for %ix%i %s video\n",
|
av_log(avctx, AV_LOG_ERROR, "Found no DV profile for %ix%i %s video. "
|
||||||
|
"Valid DV profiles are:\n",
|
||||||
avctx->width, avctx->height, av_get_pix_fmt_name(avctx->pix_fmt));
|
avctx->width, avctx->height, av_get_pix_fmt_name(avctx->pix_fmt));
|
||||||
return -1;
|
ff_dv_print_profiles(avctx, AV_LOG_ERROR);
|
||||||
|
return AVERROR(EINVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ff_dvvideo_init(avctx);
|
return ff_dvvideo_init(avctx);
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "libavutil/rational.h"
|
#include "libavutil/rational.h"
|
||||||
|
#include "libavutil/pixdesc.h"
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "dvdata.h"
|
#include "dvdata.h"
|
||||||
|
|
||||||
@ -322,3 +323,14 @@ const DVprofile* avpriv_dv_codec_profile(AVCodecContext* codec)
|
|||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ff_dv_print_profiles(void *logctx, int loglevel)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < FF_ARRAY_ELEMS(dv_profiles); i++) {
|
||||||
|
const DVprofile *p = &dv_profiles[i];
|
||||||
|
av_log(logctx, loglevel, "Frame size: %dx%d; pixel format: %s, "
|
||||||
|
"framerate: %d/%d\n", p->width, p->height, av_get_pix_fmt_name(p->pix_fmt),
|
||||||
|
p->time_base.den, p->time_base.num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -154,4 +154,9 @@ static inline void dv_calculate_mb_xy(DVVideoContext *s, DVwork_chunk *work_chun
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Print all allowed DV profiles into logctx at specified logging level.
|
||||||
|
*/
|
||||||
|
void ff_dv_print_profiles(void *logctx, int loglevel);
|
||||||
|
|
||||||
#endif /* AVCODEC_DVDATA_H */
|
#endif /* AVCODEC_DVDATA_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user