ffmpeg patches for TERMUX from Andrew + mpeg formats
[goodguy/cinelerra.git] / cinelerra-5.1 / thirdparty / src / ffmpeg-4.4.patch_4
1 --- ffmpeg-4.4/libavcodec/libx264.c.orig
2 +++ ffmpeg-4.4/libavcodec/libx264.c
3 @@ -790,6 +790,18 @@ FF_ENABLE_DEPRECATION_WARNINGS
4          av_log(avctx, AV_LOG_ERROR,
5                 "x264 too old for AVC Intra, at least version 142 needed\n");
6  #endif
7 +
8 +    if (x4->avcintra_class > 200) {
9 +#if X264_BUILD < 164
10 +        av_log(avctx, AV_LOG_ERROR,
11 +                "x264 too old for AVC Intra 300/480, at least version 164 needed\n");
12 +        return AVERROR(EINVAL);
13 +#else
14 +        /* AVC-Intra 300/480 only supported by Sony XAVC flavor */
15 +        x4->params.i_avcintra_flavor = X264_AVCINTRA_FLAVOR_SONY;
16 +#endif
17 +    }
18 +
19      if (x4->b_bias != INT_MIN)
20          x4->params.i_bframe_bias              = x4->b_bias;
21      if (x4->b_pyramid >= 0)
22 @@ -921,6 +933,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
23          }
24      }
25  
26 +#if X264_BUILD >= 142
27 +    /* Separate headers not supported in AVC-Intra mode */
28 +    if (x4->params.i_avcintra_class >= 0)
29 +        x4->params.b_repeat_headers = 1;
30 +#endif
31  
32      {
33          AVDictionaryEntry *en = NULL;
34 @@ -1123,7 +1140,7 @@ static const AVOption options[] = {
35      { "none",          NULL, 0, AV_OPT_TYPE_CONST, {.i64 = X264_NAL_HRD_NONE}, INT_MIN, INT_MAX, VE, "nal-hrd" },
36      { "vbr",           NULL, 0, AV_OPT_TYPE_CONST, {.i64 = X264_NAL_HRD_VBR},  INT_MIN, INT_MAX, VE, "nal-hrd" },
37      { "cbr",           NULL, 0, AV_OPT_TYPE_CONST, {.i64 = X264_NAL_HRD_CBR},  INT_MIN, INT_MAX, VE, "nal-hrd" },
38 -    { "avcintra-class","AVC-Intra class 50/100/200",                      OFFSET(avcintra_class),AV_OPT_TYPE_INT,     { .i64 = -1 }, -1, 200   , VE},
39 +    { "avcintra-class","AVC-Intra class 50/100/200/300/480",              OFFSET(avcintra_class),AV_OPT_TYPE_INT,    { .i64 = -1 }, -1, 480   , VE},
40      { "me_method",    "Set motion estimation method",                     OFFSET(motion_est),    AV_OPT_TYPE_INT,    { .i64 = -1 }, -1, X264_ME_TESA, VE, "motion-est"},
41      { "motion-est",   "Set motion estimation method",                     OFFSET(motion_est),    AV_OPT_TYPE_INT,    { .i64 = -1 }, -1, X264_ME_TESA, VE, "motion-est"},
42      { "dia",           NULL, 0, AV_OPT_TYPE_CONST, { .i64 = X264_ME_DIA },  INT_MIN, INT_MAX, VE, "motion-est" },