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