avcodec/ffv1enc: Fix explicitly set -slicecrc 2
crcref needs to be set properly iff ec is two, regardless of whether it has been explicitly set by the user or set by default based on level/version. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
3cbe3418b2
commit
a6bcc773b5
@ -629,7 +629,6 @@ av_cold int ff_ffv1_encode_init(AVCodecContext *avctx)
|
|||||||
if (s->ec < 0) {
|
if (s->ec < 0) {
|
||||||
if (s->version >= 4) {
|
if (s->version >= 4) {
|
||||||
s->ec = 2;
|
s->ec = 2;
|
||||||
s->crcref = 0x7a8c4079;
|
|
||||||
} else if (s->version >= 3) {
|
} else if (s->version >= 3) {
|
||||||
s->ec = 1;
|
s->ec = 1;
|
||||||
} else
|
} else
|
||||||
@ -639,8 +638,10 @@ av_cold int ff_ffv1_encode_init(AVCodecContext *avctx)
|
|||||||
// CRC requires version 3+
|
// CRC requires version 3+
|
||||||
if (s->ec == 1)
|
if (s->ec == 1)
|
||||||
s->version = FFMAX(s->version, 3);
|
s->version = FFMAX(s->version, 3);
|
||||||
if (s->ec == 2)
|
if (s->ec == 2) {
|
||||||
s->version = FFMAX(s->version, 4);
|
s->version = FFMAX(s->version, 4);
|
||||||
|
s->crcref = 0x7a8c4079;
|
||||||
|
}
|
||||||
|
|
||||||
if ((s->version == 2 || s->version>3) && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
|
if ((s->version == 2 || s->version>3) && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Version 2 or 4 needed for requested features but version 2 or 4 is experimental and not enabled\n");
|
av_log(avctx, AV_LOG_ERROR, "Version 2 or 4 needed for requested features but version 2 or 4 is experimental and not enabled\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user