1--- libavcodec/mpeg12enc.c.orig	2019-08-05 22:52:21.000000000 +0200
2+++ libavcodec/mpeg12enc.c	2019-09-08 19:21:09.578572070 +0200
3@@ -256,7 +256,7 @@
4
5         put_sbits(&s->pb, 12, s->width  & 0xFFF);
6         put_sbits(&s->pb, 12, s->height & 0xFFF);
7-
8+#if 0 // MEANX
9         for (i = 1; i < 15; i++) {
10             int64_t error = aspect_ratio.num * (1LL<<32) / aspect_ratio.den;
11             if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO || i <= 1)
12@@ -271,12 +271,41 @@
13                 s->aspect_ratio_info = i;
14             }
15         }
16+#endif // MEANX
17+            // MEANX put_bits(&s->pb, 4, s->aspect_ratio_info);
18+            // MEANX put_bits(&s->pb, 4, s->frame_rate_index);
19+ // MEANX 4:3
20+   if(s->avctx->sample_aspect_ratio.num==16 && s->avctx->sample_aspect_ratio.den==9)
21+             {
22+                 //printf("FFmpeg : Wide\n");
23+                 put_bits(&s->pb,4,3); //16:9
24+             }
25+             else        //4:3
26+             {
27+               if(s->codec_id == AV_CODEC_ID_MPEG2VIDEO)
28+                 put_bits(&s->pb, 4, 2);
29+               else
30+                 put_bits(&s->pb, 4, 12); // MPEG1
31+             }
32+ // /MEANX
33+// MEANX : Pulldown
34+            if((s->avctx->flags2 & AV_CODEC_FLAG2_32_PULLDOWN) && (s->codec_id == AV_CODEC_ID_MPEG2VIDEO))
35+             {
36+                 put_bits(&s->pb, 4,4);
37+             }
38+             else
39+             {
40+                 put_bits(&s->pb, 4, s->frame_rate_index);
41+             } //MEANX pulldown
42+
43+            // MEANX if(s->avctx->rc_max_rate){
44+                // MEANX v = (s->avctx->rc_max_rate + 399) / 400;
45+           // MEANX  if(s->avctx->rc_max_rate_header){ //MEANX we use header
46+           // MEANX      v = (s->avctx->rc_max_rate_header + 399) / 400;
47+            if(s->avctx->rc_buffer_size_header) // MEANX we use header
48+            {
49+                vbv_buffer_size = s->avctx->rc_buffer_size_header;
50
51-        put_bits(&s->pb, 4, s->aspect_ratio_info);
52-        put_bits(&s->pb, 4, s->frame_rate_index);
53-
54-        if (s->avctx->rc_max_rate) {
55-            v = (s->avctx->rc_max_rate + 399) / 400;
56             if (v > 0x3ffff && s->codec_id == AV_CODEC_ID_MPEG1VIDEO)
57                 v = 0x3ffff;
58         } else {
59@@ -326,7 +355,19 @@
60             put_bits(&s->pb, 3, s->avctx->profile); // profile
61             put_bits(&s->pb, 4, s->avctx->level);   // level
62
63-            put_bits(&s->pb, 1, s->progressive_sequence);
64+   // MEANX pulldown put_bits(&s->pb, 1, s->progressive_sequence);
65+  // MEANX Pulldown
66+ if(s->avctx->flags2 & AV_CODEC_FLAG2_32_PULLDOWN) //MEANX
67+                        put_bits(&s->pb, 1, 0);
68+                else
69+                        put_bits(&s->pb, 1, s->progressive_sequence);
70+
71+
72+// /MEANX
73+
74+
75+
76+// MEANX                 put_bits(&s->pb, 1, s->progressive_sequence);
77             put_bits(&s->pb, 2, s->chroma_format);
78             put_bits(&s->pb, 2, s->width  >> 12);
79             put_bits(&s->pb, 2, s->height >> 12);
80@@ -423,6 +464,7 @@
81
82 void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number)
83 {
84+    int tff, rff; //MEANX
85     AVFrameSideData *side_data;
86     mpeg1_encode_sequence_header(s);
87
88@@ -461,6 +503,46 @@
89
90     s->frame_pred_frame_dct = 1;
91     if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
92+// MEANX
93+        if(s->avctx->flags2 & AV_CODEC_FLAG2_32_PULLDOWN)
94+        {
95+
96+                switch((s->picture_number -
97+                          s->gop_picture_number)&3)
98+                {
99+                        case 0:
100+                        default:
101+                                rff=1;
102+                                tff=1;
103+                                break;
104+                        case 1:
105+                                rff=0;
106+                                tff=0;
107+                                break;
108+                        case 2:
109+                                rff=1;
110+                                tff=0;
111+                                break;
112+                        case 3:
113+                                rff=0;
114+                                tff=1;
115+                                break;
116+                }
117+           }
118+        else
119+        {
120+                if (s->progressive_sequence)
121+                {
122+                        tff=0; /* no repeat */
123+                } else
124+                {
125+                        tff=s->current_picture_ptr->f->top_field_first;
126+                }
127+                rff=s->repeat_first_field;
128+
129+        }
130+
131+// /MEANX
132         put_header(s, EXT_START_CODE);
133         put_bits(&s->pb, 4, 8);                 /* pic ext */
134         if (s->pict_type == AV_PICTURE_TYPE_P ||
135@@ -480,10 +562,14 @@
136
137         av_assert0(s->picture_structure == PICT_FRAME);
138         put_bits(&s->pb, 2, s->picture_structure);
139+#if 0 // MEANX
140         if (s->progressive_sequence)
141             put_bits(&s->pb, 1, 0);             /* no repeat */
142         else
143             put_bits(&s->pb, 1, s->current_picture_ptr->f->top_field_first);
144+#endif // MEANX
145+        put_bits(&s->pb, 1, tff);  //MEANX PULLDOWN
146+
147         /* XXX: optimize the generation of this flag with entropy measures */
148         s->frame_pred_frame_dct = s->progressive_sequence;
149
150@@ -492,7 +578,8 @@
151         put_bits(&s->pb, 1, s->q_scale_type);
152         put_bits(&s->pb, 1, s->intra_vlc_format);
153         put_bits(&s->pb, 1, s->alternate_scan);
154-        put_bits(&s->pb, 1, s->repeat_first_field);
155+        // MEANX put_bits(&s->pb, 1, s->top_field_first);
156+        put_bits(&s->pb, 1, rff); // MEANX
157         s->progressive_frame = s->progressive_sequence;
158         /* chroma_420_type */
159         put_bits(&s->pb, 1, s->chroma_format ==
160