Browse code

Merge remote-tracking branch 'qatar/master'

* qatar/master:
mxfdec: Include FF_INPUT_BUFFER_PADDING_SIZE when allocating extradata.
H.264: tweak some other x86 asm for Atom
probe: Fix insane flow control.
mpegts: remove invalid error check
s302m: use nondeprecated audio sample format API
lavc: use designated initialisers for all codecs.
x86: cabac: add operand size suffixes missing from 6c32576

Conflicts:
libavcodec/ac3enc_float.c
libavcodec/flacenc.c
libavcodec/frwu.c
libavcodec/pictordec.c
libavcodec/qtrleenc.c
libavcodec/v210enc.c
libavcodec/wmv2dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>

Michael Niedermayer authored on 2011/07/30 13:39:57
Showing 202 changed files
... ...
@@ -865,15 +865,14 @@ static av_cold int decode_end(AVCodecContext *avctx){
865 865
 }
866 866
 
867 867
 AVCodec ff_fourxm_decoder = {
868
-    "4xm",
869
-    AVMEDIA_TYPE_VIDEO,
870
-    CODEC_ID_4XM,
871
-    sizeof(FourXContext),
872
-    decode_init,
873
-    NULL,
874
-    decode_end,
875
-    decode_frame,
876
-    CODEC_CAP_DR1,
868
+    .name           = "4xm",
869
+    .type           = AVMEDIA_TYPE_VIDEO,
870
+    .id             = CODEC_ID_4XM,
871
+    .priv_data_size = sizeof(FourXContext),
872
+    .init           = decode_init,
873
+    .close          = decode_end,
874
+    .decode         = decode_frame,
875
+    .capabilities   = CODEC_CAP_DR1,
877 876
     .long_name = NULL_IF_CONFIG_SMALL("4X Movie"),
878 877
 };
879 878
 
... ...
@@ -222,14 +222,13 @@ static av_cold int decode_end(AVCodecContext *avctx)
222 222
 
223 223
 
224 224
 AVCodec ff_eightbps_decoder = {
225
-        "8bps",
226
-        AVMEDIA_TYPE_VIDEO,
227
-        CODEC_ID_8BPS,
228
-        sizeof(EightBpsContext),
229
-        decode_init,
230
-        NULL,
231
-        decode_end,
232
-        decode_frame,
233
-        CODEC_CAP_DR1,
225
+    .name           = "8bps",
226
+    .type           = AVMEDIA_TYPE_VIDEO,
227
+    .id             = CODEC_ID_8BPS,
228
+    .priv_data_size = sizeof(EightBpsContext),
229
+    .init           = decode_init,
230
+    .close          = decode_end,
231
+    .decode         = decode_frame,
232
+    .capabilities   = CODEC_CAP_DR1,
234 233
         .long_name = NULL_IF_CONFIG_SMALL("QuickTime 8BPS video"),
235 234
 };
... ...
@@ -2541,14 +2541,13 @@ av_cold static int latm_decode_init(AVCodecContext *avctx)
2541 2541
 
2542 2542
 
2543 2543
 AVCodec ff_aac_decoder = {
2544
-    "aac",
2545
-    AVMEDIA_TYPE_AUDIO,
2546
-    CODEC_ID_AAC,
2547
-    sizeof(AACContext),
2548
-    aac_decode_init,
2549
-    NULL,
2550
-    aac_decode_close,
2551
-    aac_decode_frame,
2544
+    .name           = "aac",
2545
+    .type           = AVMEDIA_TYPE_AUDIO,
2546
+    .id             = CODEC_ID_AAC,
2547
+    .priv_data_size = sizeof(AACContext),
2548
+    .init           = aac_decode_init,
2549
+    .close          = aac_decode_close,
2550
+    .decode         = aac_decode_frame,
2552 2551
     .long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
2553 2552
     .sample_fmts = (const enum AVSampleFormat[]) {
2554 2553
         AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
... ...
@@ -692,13 +692,13 @@ static const AVClass aacenc_class = {
692 692
 };
693 693
 
694 694
 AVCodec ff_aac_encoder = {
695
-    "aac",
696
-    AVMEDIA_TYPE_AUDIO,
697
-    CODEC_ID_AAC,
698
-    sizeof(AACEncContext),
699
-    aac_encode_init,
700
-    aac_encode_frame,
701
-    aac_encode_end,
695
+    .name           = "aac",
696
+    .type           = AVMEDIA_TYPE_AUDIO,
697
+    .id             = CODEC_ID_AAC,
698
+    .priv_data_size = sizeof(AACEncContext),
699
+    .init           = aac_encode_init,
700
+    .encode         = aac_encode_frame,
701
+    .close          = aac_encode_end,
702 702
     .capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY | CODEC_CAP_EXPERIMENTAL,
703 703
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
704 704
     .long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
... ...
@@ -110,14 +110,13 @@ static av_cold int aasc_decode_end(AVCodecContext *avctx)
110 110
 }
111 111
 
112 112
 AVCodec ff_aasc_decoder = {
113
-    "aasc",
114
-    AVMEDIA_TYPE_VIDEO,
115
-    CODEC_ID_AASC,
116
-    sizeof(AascContext),
117
-    aasc_decode_init,
118
-    NULL,
119
-    aasc_decode_end,
120
-    aasc_decode_frame,
121
-    CODEC_CAP_DR1,
113
+    .name           = "aasc",
114
+    .type           = AVMEDIA_TYPE_VIDEO,
115
+    .id             = CODEC_ID_AASC,
116
+    .priv_data_size = sizeof(AascContext),
117
+    .init           = aasc_decode_init,
118
+    .close          = aasc_decode_end,
119
+    .decode         = aasc_decode_frame,
120
+    .capabilities   = CODEC_CAP_DR1,
122 121
     .long_name = NULL_IF_CONFIG_SMALL("Autodesk RLE"),
123 122
 };
... ...
@@ -121,14 +121,13 @@ static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx)
121 121
 
122 122
 
123 123
 AVCodec ff_ac3_fixed_encoder = {
124
-    "ac3_fixed",
125
-    AVMEDIA_TYPE_AUDIO,
126
-    CODEC_ID_AC3,
127
-    sizeof(AC3EncodeContext),
128
-    ac3_fixed_encode_init,
129
-    ff_ac3_fixed_encode_frame,
130
-    ff_ac3_encode_close,
131
-    NULL,
124
+    .name           = "ac3_fixed",
125
+    .type           = AVMEDIA_TYPE_AUDIO,
126
+    .id             = CODEC_ID_AC3,
127
+    .priv_data_size = sizeof(AC3EncodeContext),
128
+    .init           = ac3_fixed_encode_init,
129
+    .encode         = ff_ac3_fixed_encode_frame,
130
+    .close          = ff_ac3_encode_close,
132 131
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
133 132
     .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
134 133
     .priv_class = &ac3enc_class,
... ...
@@ -121,14 +121,13 @@ static void clip_coefficients(DSPContext *dsp, float *coef, unsigned int len)
121 121
 
122 122
 #if CONFIG_AC3_ENCODER
123 123
 AVCodec ff_ac3_float_encoder = {
124
-    "ac3_float",
125
-    AVMEDIA_TYPE_AUDIO,
126
-    CODEC_ID_AC3,
127
-    sizeof(AC3EncodeContext),
128
-    ff_ac3_encode_init,
129
-    ff_ac3_float_encode_frame,
130
-    ff_ac3_encode_close,
131
-    NULL,
124
+    .name           = "ac3 float",
125
+    .type           = AVMEDIA_TYPE_AUDIO,
126
+    .id             = CODEC_ID_AC3,
127
+    .priv_data_size = sizeof(AC3EncodeContext),
128
+    .init           = ff_ac3_encode_init,
129
+    .encode         = ff_ac3_float_encode_frame,
130
+    .close          = ff_ac3_encode_close,
132 131
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE},
133 132
     .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"),
134 133
     .priv_class = &ac3enc_class,
... ...
@@ -167,14 +167,12 @@ static int adx_decode_frame(AVCodecContext *avctx,
167 167
 }
168 168
 
169 169
 AVCodec ff_adpcm_adx_decoder = {
170
-    "adpcm_adx",
171
-    AVMEDIA_TYPE_AUDIO,
172
-    CODEC_ID_ADPCM_ADX,
173
-    sizeof(ADXContext),
174
-    adx_decode_init,
175
-    NULL,
176
-    NULL,
177
-    adx_decode_frame,
170
+    .name           = "adpcm_adx",
171
+    .type           = AVMEDIA_TYPE_AUDIO,
172
+    .id             = CODEC_ID_ADPCM_ADX,
173
+    .priv_data_size = sizeof(ADXContext),
174
+    .init           = adx_decode_init,
175
+    .decode         = adx_decode_frame,
178 176
     .long_name = NULL_IF_CONFIG_SMALL("SEGA CRI ADX ADPCM"),
179 177
 };
180 178
 
... ...
@@ -184,14 +184,13 @@ static int adx_encode_frame(AVCodecContext *avctx,
184 184
 }
185 185
 
186 186
 AVCodec ff_adpcm_adx_encoder = {
187
-    "adpcm_adx",
188
-    AVMEDIA_TYPE_AUDIO,
189
-    CODEC_ID_ADPCM_ADX,
190
-    sizeof(ADXContext),
191
-    adx_encode_init,
192
-    adx_encode_frame,
193
-    adx_encode_close,
194
-    NULL,
187
+    .name           = "adpcm_adx",
188
+    .type           = AVMEDIA_TYPE_AUDIO,
189
+    .id             = CODEC_ID_ADPCM_ADX,
190
+    .priv_data_size = sizeof(ADXContext),
191
+    .init           = adx_encode_init,
192
+    .encode         = adx_encode_frame,
193
+    .close          = adx_encode_close,
195 194
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
196 195
     .long_name = NULL_IF_CONFIG_SMALL("SEGA CRI ADX ADPCM"),
197 196
 };
... ...
@@ -679,13 +679,12 @@ static av_cold int alac_decode_close(AVCodecContext *avctx)
679 679
 }
680 680
 
681 681
 AVCodec ff_alac_decoder = {
682
-    "alac",
683
-    AVMEDIA_TYPE_AUDIO,
684
-    CODEC_ID_ALAC,
685
-    sizeof(ALACContext),
686
-    alac_decode_init,
687
-    NULL,
688
-    alac_decode_close,
689
-    alac_decode_frame,
682
+    .name           = "alac",
683
+    .type           = AVMEDIA_TYPE_AUDIO,
684
+    .id             = CODEC_ID_ALAC,
685
+    .priv_data_size = sizeof(ALACContext),
686
+    .init           = alac_decode_init,
687
+    .close          = alac_decode_close,
688
+    .decode         = alac_decode_frame,
690 689
     .long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
691 690
 };
... ...
@@ -529,13 +529,13 @@ static av_cold int alac_encode_close(AVCodecContext *avctx)
529 529
 }
530 530
 
531 531
 AVCodec ff_alac_encoder = {
532
-    "alac",
533
-    AVMEDIA_TYPE_AUDIO,
534
-    CODEC_ID_ALAC,
535
-    sizeof(AlacEncodeContext),
536
-    alac_encode_init,
537
-    alac_encode_frame,
538
-    alac_encode_close,
532
+    .name           = "alac",
533
+    .type           = AVMEDIA_TYPE_AUDIO,
534
+    .id             = CODEC_ID_ALAC,
535
+    .priv_data_size = sizeof(AlacEncodeContext),
536
+    .init           = alac_encode_init,
537
+    .encode         = alac_encode_frame,
538
+    .close          = alac_encode_close,
539 539
     .capabilities = CODEC_CAP_SMALL_LAST_FRAME,
540 540
     .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE},
541 541
     .long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
... ...
@@ -1739,14 +1739,13 @@ static av_cold void flush(AVCodecContext *avctx)
1739 1739
 
1740 1740
 
1741 1741
 AVCodec ff_als_decoder = {
1742
-    "als",
1743
-    AVMEDIA_TYPE_AUDIO,
1744
-    CODEC_ID_MP4ALS,
1745
-    sizeof(ALSDecContext),
1746
-    decode_init,
1747
-    NULL,
1748
-    decode_end,
1749
-    decode_frame,
1742
+    .name           = "als",
1743
+    .type           = AVMEDIA_TYPE_AUDIO,
1744
+    .id             = CODEC_ID_MP4ALS,
1745
+    .priv_data_size = sizeof(ALSDecContext),
1746
+    .init           = decode_init,
1747
+    .close          = decode_end,
1748
+    .decode         = decode_frame,
1750 1749
     .flush = flush,
1751 1750
     .capabilities = CODEC_CAP_SUBFRAMES,
1752 1751
     .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 Audio Lossless Coding (ALS)"),
... ...
@@ -184,14 +184,13 @@ static av_cold int decode_end(AVCodecContext *avctx)
184 184
 }
185 185
 
186 186
 AVCodec ff_anm_decoder = {
187
-    "anm",
188
-    AVMEDIA_TYPE_VIDEO,
189
-    CODEC_ID_ANM,
190
-    sizeof(AnmContext),
191
-    decode_init,
192
-    NULL,
193
-    decode_end,
194
-    decode_frame,
195
-    CODEC_CAP_DR1,
187
+    .name           = "anm",
188
+    .type           = AVMEDIA_TYPE_VIDEO,
189
+    .id             = CODEC_ID_ANM,
190
+    .priv_data_size = sizeof(AnmContext),
191
+    .init           = decode_init,
192
+    .close          = decode_end,
193
+    .decode         = decode_frame,
194
+    .capabilities   = CODEC_CAP_DR1,
196 195
     .long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
197 196
 };
... ...
@@ -885,14 +885,13 @@ static void ape_flush(AVCodecContext *avctx)
885 885
 }
886 886
 
887 887
 AVCodec ff_ape_decoder = {
888
-    "ape",
889
-    AVMEDIA_TYPE_AUDIO,
890
-    CODEC_ID_APE,
891
-    sizeof(APEContext),
892
-    ape_decode_init,
893
-    NULL,
894
-    ape_decode_close,
895
-    ape_decode_frame,
888
+    .name           = "ape",
889
+    .type           = AVMEDIA_TYPE_AUDIO,
890
+    .id             = CODEC_ID_APE,
891
+    .priv_data_size = sizeof(APEContext),
892
+    .init           = ape_decode_init,
893
+    .close          = ape_decode_close,
894
+    .decode         = ape_decode_frame,
896 895
     .capabilities = CODEC_CAP_SUBFRAMES,
897 896
     .flush = ape_flush,
898 897
     .long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
... ...
@@ -603,39 +603,37 @@ static av_cold int decode_end(AVCodecContext *avctx){
603 603
 }
604 604
 
605 605
 AVCodec ff_asv1_decoder = {
606
-    "asv1",
607
-    AVMEDIA_TYPE_VIDEO,
608
-    CODEC_ID_ASV1,
609
-    sizeof(ASV1Context),
610
-    decode_init,
611
-    NULL,
612
-    decode_end,
613
-    decode_frame,
614
-    CODEC_CAP_DR1,
606
+    .name           = "asv1",
607
+    .type           = AVMEDIA_TYPE_VIDEO,
608
+    .id             = CODEC_ID_ASV1,
609
+    .priv_data_size = sizeof(ASV1Context),
610
+    .init           = decode_init,
611
+    .close          = decode_end,
612
+    .decode         = decode_frame,
613
+    .capabilities   = CODEC_CAP_DR1,
615 614
     .long_name= NULL_IF_CONFIG_SMALL("ASUS V1"),
616 615
 };
617 616
 
618 617
 AVCodec ff_asv2_decoder = {
619
-    "asv2",
620
-    AVMEDIA_TYPE_VIDEO,
621
-    CODEC_ID_ASV2,
622
-    sizeof(ASV1Context),
623
-    decode_init,
624
-    NULL,
625
-    decode_end,
626
-    decode_frame,
627
-    CODEC_CAP_DR1,
618
+    .name           = "asv2",
619
+    .type           = AVMEDIA_TYPE_VIDEO,
620
+    .id             = CODEC_ID_ASV2,
621
+    .priv_data_size = sizeof(ASV1Context),
622
+    .init           = decode_init,
623
+    .close          = decode_end,
624
+    .decode         = decode_frame,
625
+    .capabilities   = CODEC_CAP_DR1,
628 626
     .long_name= NULL_IF_CONFIG_SMALL("ASUS V2"),
629 627
 };
630 628
 
631 629
 #if CONFIG_ASV1_ENCODER
632 630
 AVCodec ff_asv1_encoder = {
633
-    "asv1",
634
-    AVMEDIA_TYPE_VIDEO,
635
-    CODEC_ID_ASV1,
636
-    sizeof(ASV1Context),
637
-    encode_init,
638
-    encode_frame,
631
+    .name           = "asv1",
632
+    .type           = AVMEDIA_TYPE_VIDEO,
633
+    .id             = CODEC_ID_ASV1,
634
+    .priv_data_size = sizeof(ASV1Context),
635
+    .init           = encode_init,
636
+    .encode         = encode_frame,
639 637
     //encode_end,
640 638
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
641 639
     .long_name= NULL_IF_CONFIG_SMALL("ASUS V1"),
... ...
@@ -644,12 +642,12 @@ AVCodec ff_asv1_encoder = {
644 644
 
645 645
 #if CONFIG_ASV2_ENCODER
646 646
 AVCodec ff_asv2_encoder = {
647
-    "asv2",
648
-    AVMEDIA_TYPE_VIDEO,
649
-    CODEC_ID_ASV2,
650
-    sizeof(ASV1Context),
651
-    encode_init,
652
-    encode_frame,
647
+    .name           = "asv2",
648
+    .type           = AVMEDIA_TYPE_VIDEO,
649
+    .id             = CODEC_ID_ASV2,
650
+    .priv_data_size = sizeof(ASV1Context),
651
+    .init           = encode_init,
652
+    .encode         = encode_frame,
653 653
     //encode_end,
654 654
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
655 655
     .long_name= NULL_IF_CONFIG_SMALL("ASUS V2"),
... ...
@@ -124,16 +124,14 @@ static av_cold int aura_decode_end(AVCodecContext *avctx)
124 124
 }
125 125
 
126 126
 AVCodec ff_aura2_decoder = {
127
-    "aura2",
128
-    AVMEDIA_TYPE_VIDEO,
129
-    CODEC_ID_AURA2,
130
-    sizeof(AuraDecodeContext),
131
-    aura_decode_init,
132
-    NULL,
133
-    aura_decode_end,
134
-    aura_decode_frame,
135
-    CODEC_CAP_DR1,
136
-    NULL,
127
+    .name           = "aura2",
128
+    .type           = AVMEDIA_TYPE_VIDEO,
129
+    .id             = CODEC_ID_AURA2,
130
+    .priv_data_size = sizeof(AuraDecodeContext),
131
+    .init           = aura_decode_init,
132
+    .close          = aura_decode_end,
133
+    .decode         = aura_decode_frame,
134
+    .capabilities   = CODEC_CAP_DR1,
137 135
     .long_name = NULL_IF_CONFIG_SMALL("Auravision Aura 2"),
138 136
 };
139 137
 
... ...
@@ -153,14 +153,12 @@ static av_cold int avs_decode_init(AVCodecContext * avctx)
153 153
 }
154 154
 
155 155
 AVCodec ff_avs_decoder = {
156
-    "avs",
157
-    AVMEDIA_TYPE_VIDEO,
158
-    CODEC_ID_AVS,
159
-    sizeof(AvsContext),
160
-    avs_decode_init,
161
-    NULL,
162
-    NULL,
163
-    avs_decode_frame,
164
-    CODEC_CAP_DR1,
156
+    .name           = "avs",
157
+    .type           = AVMEDIA_TYPE_VIDEO,
158
+    .id             = CODEC_ID_AVS,
159
+    .priv_data_size = sizeof(AvsContext),
160
+    .init           = avs_decode_init,
161
+    .decode         = avs_decode_frame,
162
+    .capabilities   = CODEC_CAP_DR1,
165 163
     .long_name = NULL_IF_CONFIG_SMALL("AVS (Audio Video Standard) video"),
166 164
 };
... ...
@@ -1334,13 +1334,12 @@ static av_cold int decode_end(AVCodecContext *avctx)
1334 1334
 }
1335 1335
 
1336 1336
 AVCodec ff_bink_decoder = {
1337
-    "binkvideo",
1338
-    AVMEDIA_TYPE_VIDEO,
1339
-    CODEC_ID_BINKVIDEO,
1340
-    sizeof(BinkContext),
1341
-    decode_init,
1342
-    NULL,
1343
-    decode_end,
1344
-    decode_frame,
1337
+    .name           = "binkvideo",
1338
+    .type           = AVMEDIA_TYPE_VIDEO,
1339
+    .id             = CODEC_ID_BINKVIDEO,
1340
+    .priv_data_size = sizeof(BinkContext),
1341
+    .init           = decode_init,
1342
+    .close          = decode_end,
1343
+    .decode         = decode_frame,
1345 1344
     .long_name = NULL_IF_CONFIG_SMALL("Bink video"),
1346 1345
 };
... ...
@@ -292,25 +292,23 @@ static int decode_frame(AVCodecContext *avctx,
292 292
 }
293 293
 
294 294
 AVCodec ff_binkaudio_rdft_decoder = {
295
-    "binkaudio_rdft",
296
-    AVMEDIA_TYPE_AUDIO,
297
-    CODEC_ID_BINKAUDIO_RDFT,
298
-    sizeof(BinkAudioContext),
299
-    decode_init,
300
-    NULL,
301
-    decode_end,
302
-    decode_frame,
295
+    .name           = "binkaudio_rdft",
296
+    .type           = AVMEDIA_TYPE_AUDIO,
297
+    .id             = CODEC_ID_BINKAUDIO_RDFT,
298
+    .priv_data_size = sizeof(BinkAudioContext),
299
+    .init           = decode_init,
300
+    .close          = decode_end,
301
+    .decode         = decode_frame,
303 302
     .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (RDFT)")
304 303
 };
305 304
 
306 305
 AVCodec ff_binkaudio_dct_decoder = {
307
-    "binkaudio_dct",
308
-    AVMEDIA_TYPE_AUDIO,
309
-    CODEC_ID_BINKAUDIO_DCT,
310
-    sizeof(BinkAudioContext),
311
-    decode_init,
312
-    NULL,
313
-    decode_end,
314
-    decode_frame,
306
+    .name           = "binkaudio_dct",
307
+    .type           = AVMEDIA_TYPE_AUDIO,
308
+    .id             = CODEC_ID_BINKAUDIO_DCT,
309
+    .priv_data_size = sizeof(BinkAudioContext),
310
+    .init           = decode_init,
311
+    .close          = decode_end,
312
+    .decode         = decode_frame,
315 313
     .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (DCT)")
316 314
 };
... ...
@@ -336,14 +336,13 @@ static av_cold int bmp_decode_end(AVCodecContext *avctx)
336 336
 }
337 337
 
338 338
 AVCodec ff_bmp_decoder = {
339
-    "bmp",
340
-    AVMEDIA_TYPE_VIDEO,
341
-    CODEC_ID_BMP,
342
-    sizeof(BMPContext),
343
-    bmp_decode_init,
344
-    NULL,
345
-    bmp_decode_end,
346
-    bmp_decode_frame,
347
-    CODEC_CAP_DR1,
339
+    .name           = "bmp",
340
+    .type           = AVMEDIA_TYPE_VIDEO,
341
+    .id             = CODEC_ID_BMP,
342
+    .priv_data_size = sizeof(BMPContext),
343
+    .init           = bmp_decode_init,
344
+    .close          = bmp_decode_end,
345
+    .decode         = bmp_decode_frame,
346
+    .capabilities   = CODEC_CAP_DR1,
348 347
     .long_name = NULL_IF_CONFIG_SMALL("BMP image"),
349 348
 };
... ...
@@ -150,13 +150,12 @@ static int bmp_encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_s
150 150
 }
151 151
 
152 152
 AVCodec ff_bmp_encoder = {
153
-    "bmp",
154
-    AVMEDIA_TYPE_VIDEO,
155
-    CODEC_ID_BMP,
156
-    sizeof(BMPContext),
157
-    bmp_encode_init,
158
-    bmp_encode_frame,
159
-    NULL, //encode_end,
153
+    .name           = "bmp",
154
+    .type           = AVMEDIA_TYPE_VIDEO,
155
+    .id             = CODEC_ID_BMP,
156
+    .priv_data_size = sizeof(BMPContext),
157
+    .init           = bmp_encode_init,
158
+    .encode         = bmp_encode_frame,
160 159
     .pix_fmts = (const enum PixelFormat[]){
161 160
         PIX_FMT_BGR24,
162 161
         PIX_FMT_RGB555, PIX_FMT_RGB565,
... ...
@@ -247,14 +247,13 @@ static int decode_frame(AVCodecContext *avctx, void *data,
247 247
 }
248 248
 
249 249
 AVCodec ff_c93_decoder = {
250
-    "c93",
251
-    AVMEDIA_TYPE_VIDEO,
252
-    CODEC_ID_C93,
253
-    sizeof(C93DecoderContext),
254
-    decode_init,
255
-    NULL,
256
-    decode_end,
257
-    decode_frame,
258
-    CODEC_CAP_DR1,
250
+    .name           = "c93",
251
+    .type           = AVMEDIA_TYPE_VIDEO,
252
+    .id             = CODEC_ID_C93,
253
+    .priv_data_size = sizeof(C93DecoderContext),
254
+    .init           = decode_init,
255
+    .close          = decode_end,
256
+    .decode         = decode_frame,
257
+    .capabilities   = CODEC_CAP_DR1,
259 258
     .long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
260 259
 };
... ...
@@ -710,15 +710,14 @@ static int cavs_decode_frame(AVCodecContext * avctx,void *data, int *data_size,
710 710
 }
711 711
 
712 712
 AVCodec ff_cavs_decoder = {
713
-    "cavs",
714
-    AVMEDIA_TYPE_VIDEO,
715
-    CODEC_ID_CAVS,
716
-    sizeof(AVSContext),
717
-    ff_cavs_init,
718
-    NULL,
719
-    ff_cavs_end,
720
-    cavs_decode_frame,
721
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY,
713
+    .name           = "cavs",
714
+    .type           = AVMEDIA_TYPE_VIDEO,
715
+    .id             = CODEC_ID_CAVS,
716
+    .priv_data_size = sizeof(AVSContext),
717
+    .init           = ff_cavs_init,
718
+    .close          = ff_cavs_end,
719
+    .decode         = cavs_decode_frame,
720
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY,
722 721
     .flush= cavs_flush,
723 722
     .long_name= NULL_IF_CONFIG_SMALL("Chinese AVS video (AVS1-P2, JiZhun profile)"),
724 723
 };
... ...
@@ -368,14 +368,13 @@ static av_cold int cdg_decode_end(AVCodecContext *avctx)
368 368
 }
369 369
 
370 370
 AVCodec ff_cdgraphics_decoder = {
371
-    "cdgraphics",
372
-    AVMEDIA_TYPE_VIDEO,
373
-    CODEC_ID_CDGRAPHICS,
374
-    sizeof(CDGraphicsContext),
375
-    cdg_decode_init,
376
-    NULL,
377
-    cdg_decode_end,
378
-    cdg_decode_frame,
379
-    CODEC_CAP_DR1,
371
+    .name           = "cdgraphics",
372
+    .type           = AVMEDIA_TYPE_VIDEO,
373
+    .id             = CODEC_ID_CDGRAPHICS,
374
+    .priv_data_size = sizeof(CDGraphicsContext),
375
+    .init           = cdg_decode_init,
376
+    .close          = cdg_decode_end,
377
+    .decode         = cdg_decode_frame,
378
+    .capabilities   = CODEC_CAP_DR1,
380 379
     .long_name = NULL_IF_CONFIG_SMALL("CD Graphics video"),
381 380
 };
... ...
@@ -460,14 +460,13 @@ static av_cold int cinepak_decode_end(AVCodecContext *avctx)
460 460
 }
461 461
 
462 462
 AVCodec ff_cinepak_decoder = {
463
-    "cinepak",
464
-    AVMEDIA_TYPE_VIDEO,
465
-    CODEC_ID_CINEPAK,
466
-    sizeof(CinepakContext),
467
-    cinepak_decode_init,
468
-    NULL,
469
-    cinepak_decode_end,
470
-    cinepak_decode_frame,
471
-    CODEC_CAP_DR1,
463
+    .name           = "cinepak",
464
+    .type           = AVMEDIA_TYPE_VIDEO,
465
+    .id             = CODEC_ID_CINEPAK,
466
+    .priv_data_size = sizeof(CinepakContext),
467
+    .init           = cinepak_decode_init,
468
+    .close          = cinepak_decode_end,
469
+    .decode         = cinepak_decode_frame,
470
+    .capabilities   = CODEC_CAP_DR1,
472 471
     .long_name = NULL_IF_CONFIG_SMALL("Cinepak"),
473 472
 };
... ...
@@ -142,26 +142,24 @@ static av_cold int encode_init(AVCodecContext *avctx){
142 142
 #endif
143 143
 
144 144
 AVCodec ff_cljr_decoder = {
145
-    "cljr",
146
-    AVMEDIA_TYPE_VIDEO,
147
-    CODEC_ID_CLJR,
148
-    sizeof(CLJRContext),
149
-    decode_init,
150
-    NULL,
151
-    NULL,
152
-    decode_frame,
153
-    CODEC_CAP_DR1,
145
+    .name           = "cljr",
146
+    .type           = AVMEDIA_TYPE_VIDEO,
147
+    .id             = CODEC_ID_CLJR,
148
+    .priv_data_size = sizeof(CLJRContext),
149
+    .init           = decode_init,
150
+    .decode         = decode_frame,
151
+    .capabilities   = CODEC_CAP_DR1,
154 152
     .long_name = NULL_IF_CONFIG_SMALL("Cirrus Logic AccuPak"),
155 153
 };
156 154
 
157 155
 #if CONFIG_CLJR_ENCODER
158 156
 AVCodec ff_cljr_encoder = {
159
-    "cljr",
160
-    AVMEDIA_TYPE_VIDEO,
161
-    CODEC_ID_CLJR,
162
-    sizeof(CLJRContext),
163
-    encode_init,
164
-    encode_frame,
157
+    .name           = "cljr",
158
+    .type           = AVMEDIA_TYPE_VIDEO,
159
+    .id             = CODEC_ID_CLJR,
160
+    .priv_data_size = sizeof(CLJRContext),
161
+    .init           = encode_init,
162
+    .encode         = encode_frame,
165 163
     //encode_end,
166 164
     .long_name = NULL_IF_CONFIG_SMALL("Cirrus Logic AccuPak"),
167 165
 };
... ...
@@ -256,15 +256,14 @@ static av_cold int decode_end(AVCodecContext *avctx) {
256 256
 }
257 257
 
258 258
 AVCodec ff_cscd_decoder = {
259
-    "camstudio",
260
-    AVMEDIA_TYPE_VIDEO,
261
-    CODEC_ID_CSCD,
262
-    sizeof(CamStudioContext),
263
-    decode_init,
264
-    NULL,
265
-    decode_end,
266
-    decode_frame,
267
-    CODEC_CAP_DR1,
259
+    .name           = "camstudio",
260
+    .type           = AVMEDIA_TYPE_VIDEO,
261
+    .id             = CODEC_ID_CSCD,
262
+    .priv_data_size = sizeof(CamStudioContext),
263
+    .init           = decode_init,
264
+    .close          = decode_end,
265
+    .decode         = decode_frame,
266
+    .capabilities   = CODEC_CAP_DR1,
268 267
     .long_name = NULL_IF_CONFIG_SMALL("CamStudio"),
269 268
 };
270 269
 
... ...
@@ -180,32 +180,28 @@ static av_cold int cyuv_decode_end(AVCodecContext *avctx)
180 180
 
181 181
 #if CONFIG_AURA_DECODER
182 182
 AVCodec ff_aura_decoder = {
183
-    "aura",
184
-    AVMEDIA_TYPE_VIDEO,
185
-    CODEC_ID_AURA,
186
-    sizeof(CyuvDecodeContext),
187
-    cyuv_decode_init,
188
-    NULL,
189
-    cyuv_decode_end,
190
-    cyuv_decode_frame,
191
-    CODEC_CAP_DR1,
192
-    NULL,
183
+    .name           = "aura",
184
+    .type           = AVMEDIA_TYPE_VIDEO,
185
+    .id             = CODEC_ID_AURA,
186
+    .priv_data_size = sizeof(CyuvDecodeContext),
187
+    .init           = cyuv_decode_init,
188
+    .close          = cyuv_decode_end,
189
+    .decode         = cyuv_decode_frame,
190
+    .capabilities   = CODEC_CAP_DR1,
193 191
     .long_name = NULL_IF_CONFIG_SMALL("Auravision AURA"),
194 192
 };
195 193
 #endif
196 194
 
197 195
 #if CONFIG_CYUV_DECODER
198 196
 AVCodec ff_cyuv_decoder = {
199
-    "cyuv",
200
-    AVMEDIA_TYPE_VIDEO,
201
-    CODEC_ID_CYUV,
202
-    sizeof(CyuvDecodeContext),
203
-    cyuv_decode_init,
204
-    NULL,
205
-    cyuv_decode_end,
206
-    cyuv_decode_frame,
207
-    CODEC_CAP_DR1,
208
-    NULL,
197
+    .name           = "cyuv",
198
+    .type           = AVMEDIA_TYPE_VIDEO,
199
+    .id             = CODEC_ID_CYUV,
200
+    .priv_data_size = sizeof(CyuvDecodeContext),
201
+    .init           = cyuv_decode_init,
202
+    .close          = cyuv_decode_end,
203
+    .decode         = cyuv_decode_frame,
204
+    .capabilities   = CODEC_CAP_DR1,
209 205
     .long_name = NULL_IF_CONFIG_SMALL("Creative YUV (CYUV)"),
210 206
 };
211 207
 #endif
... ...
@@ -384,14 +384,13 @@ static av_cold int dfa_decode_end(AVCodecContext *avctx)
384 384
 }
385 385
 
386 386
 AVCodec ff_dfa_decoder = {
387
-    "dfa",
388
-    AVMEDIA_TYPE_VIDEO,
389
-    CODEC_ID_DFA,
390
-    sizeof(DfaContext),
391
-    dfa_decode_init,
392
-    NULL,
393
-    dfa_decode_end,
394
-    dfa_decode_frame,
395
-    CODEC_CAP_DR1,
387
+    .name           = "dfa",
388
+    .type           = AVMEDIA_TYPE_VIDEO,
389
+    .id             = CODEC_ID_DFA,
390
+    .priv_data_size = sizeof(DfaContext),
391
+    .init           = dfa_decode_init,
392
+    .close          = dfa_decode_end,
393
+    .decode         = dfa_decode_frame,
394
+    .capabilities   = CODEC_CAP_DR1,
396 395
     .long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
397 396
 };
... ...
@@ -399,14 +399,13 @@ static av_cold int dnxhd_decode_close(AVCodecContext *avctx)
399 399
 }
400 400
 
401 401
 AVCodec ff_dnxhd_decoder = {
402
-    "dnxhd",
403
-    AVMEDIA_TYPE_VIDEO,
404
-    CODEC_ID_DNXHD,
405
-    sizeof(DNXHDContext),
406
-    dnxhd_decode_init,
407
-    NULL,
408
-    dnxhd_decode_close,
409
-    dnxhd_decode_frame,
410
-    CODEC_CAP_DR1,
402
+    .name           = "dnxhd",
403
+    .type           = AVMEDIA_TYPE_VIDEO,
404
+    .id             = CODEC_ID_DNXHD,
405
+    .priv_data_size = sizeof(DNXHDContext),
406
+    .init           = dnxhd_decode_init,
407
+    .close          = dnxhd_decode_close,
408
+    .decode         = dnxhd_decode_frame,
409
+    .capabilities   = CODEC_CAP_DR1,
411 410
     .long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"),
412 411
 };
... ...
@@ -993,13 +993,13 @@ static int dnxhd_encode_end(AVCodecContext *avctx)
993 993
 }
994 994
 
995 995
 AVCodec ff_dnxhd_encoder = {
996
-    "dnxhd",
997
-    AVMEDIA_TYPE_VIDEO,
998
-    CODEC_ID_DNXHD,
999
-    sizeof(DNXHDEncContext),
1000
-    dnxhd_encode_init,
1001
-    dnxhd_encode_picture,
1002
-    dnxhd_encode_end,
996
+    .name           = "dnxhd",
997
+    .type           = AVMEDIA_TYPE_VIDEO,
998
+    .id             = CODEC_ID_DNXHD,
999
+    .priv_data_size = sizeof(DNXHDEncContext),
1000
+    .init           = dnxhd_encode_init,
1001
+    .encode         = dnxhd_encode_picture,
1002
+    .close          = dnxhd_encode_end,
1003 1003
     .capabilities = CODEC_CAP_SLICE_THREADS,
1004 1004
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV422P, PIX_FMT_YUV422P10, PIX_FMT_NONE},
1005 1005
     .long_name = NULL_IF_CONFIG_SMALL("VC3/DNxHD"),
... ...
@@ -234,15 +234,12 @@ static av_cold int decode_end(AVCodecContext *avctx)
234 234
 }
235 235
 
236 236
 AVCodec ff_dpx_decoder = {
237
-    "dpx",
238
-    AVMEDIA_TYPE_VIDEO,
239
-    CODEC_ID_DPX,
240
-    sizeof(DPXContext),
241
-    decode_init,
242
-    NULL,
243
-    decode_end,
244
-    decode_frame,
245
-    0,
246
-    NULL,
237
+    .name           = "dpx",
238
+    .type           = AVMEDIA_TYPE_VIDEO,
239
+    .id             = CODEC_ID_DPX,
240
+    .priv_data_size = sizeof(DPXContext),
241
+    .init           = decode_init,
242
+    .close          = decode_end,
243
+    .decode         = decode_frame,
247 244
     .long_name = NULL_IF_CONFIG_SMALL("DPX image"),
248 245
 };
... ...
@@ -345,26 +345,23 @@ static int cinaudio_decode_frame(AVCodecContext *avctx,
345 345
 
346 346
 
347 347
 AVCodec ff_dsicinvideo_decoder = {
348
-    "dsicinvideo",
349
-    AVMEDIA_TYPE_VIDEO,
350
-    CODEC_ID_DSICINVIDEO,
351
-    sizeof(CinVideoContext),
352
-    cinvideo_decode_init,
353
-    NULL,
354
-    cinvideo_decode_end,
355
-    cinvideo_decode_frame,
356
-    CODEC_CAP_DR1,
348
+    .name           = "dsicinvideo",
349
+    .type           = AVMEDIA_TYPE_VIDEO,
350
+    .id             = CODEC_ID_DSICINVIDEO,
351
+    .priv_data_size = sizeof(CinVideoContext),
352
+    .init           = cinvideo_decode_init,
353
+    .close          = cinvideo_decode_end,
354
+    .decode         = cinvideo_decode_frame,
355
+    .capabilities   = CODEC_CAP_DR1,
357 356
     .long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN video"),
358 357
 };
359 358
 
360 359
 AVCodec ff_dsicinaudio_decoder = {
361
-    "dsicinaudio",
362
-    AVMEDIA_TYPE_AUDIO,
363
-    CODEC_ID_DSICINAUDIO,
364
-    sizeof(CinAudioContext),
365
-    cinaudio_decode_init,
366
-    NULL,
367
-    NULL,
368
-    cinaudio_decode_frame,
360
+    .name           = "dsicinaudio",
361
+    .type           = AVMEDIA_TYPE_AUDIO,
362
+    .id             = CODEC_ID_DSICINAUDIO,
363
+    .priv_data_size = sizeof(CinAudioContext),
364
+    .init           = cinaudio_decode_init,
365
+    .decode         = cinaudio_decode_frame,
369 366
     .long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN audio"),
370 367
 };
... ...
@@ -1280,12 +1280,12 @@ static int dvvideo_close(AVCodecContext *c)
1280 1280
 
1281 1281
 #if CONFIG_DVVIDEO_ENCODER
1282 1282
 AVCodec ff_dvvideo_encoder = {
1283
-    "dvvideo",
1284
-    AVMEDIA_TYPE_VIDEO,
1285
-    CODEC_ID_DVVIDEO,
1286
-    sizeof(DVVideoContext),
1287
-    dvvideo_init_encoder,
1288
-    dvvideo_encode_frame,
1283
+    .name           = "dvvideo",
1284
+    .type           = AVMEDIA_TYPE_VIDEO,
1285
+    .id             = CODEC_ID_DVVIDEO,
1286
+    .priv_data_size = sizeof(DVVideoContext),
1287
+    .init           = dvvideo_init_encoder,
1288
+    .encode         = dvvideo_encode_frame,
1289 1289
     .capabilities = CODEC_CAP_SLICE_THREADS,
1290 1290
     .pix_fmts  = (const enum PixelFormat[]) {PIX_FMT_YUV411P, PIX_FMT_YUV422P, PIX_FMT_YUV420P, PIX_FMT_NONE},
1291 1291
     .long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
... ...
@@ -1294,16 +1294,14 @@ AVCodec ff_dvvideo_encoder = {
1294 1294
 
1295 1295
 #if CONFIG_DVVIDEO_DECODER
1296 1296
 AVCodec ff_dvvideo_decoder = {
1297
-    "dvvideo",
1298
-    AVMEDIA_TYPE_VIDEO,
1299
-    CODEC_ID_DVVIDEO,
1300
-    sizeof(DVVideoContext),
1301
-    dvvideo_init,
1302
-    NULL,
1303
-    dvvideo_close,
1304
-    dvvideo_decode_frame,
1305
-    CODEC_CAP_DR1 | CODEC_CAP_SLICE_THREADS,
1306
-    NULL,
1297
+    .name           = "dvvideo",
1298
+    .type           = AVMEDIA_TYPE_VIDEO,
1299
+    .id             = CODEC_ID_DVVIDEO,
1300
+    .priv_data_size = sizeof(DVVideoContext),
1301
+    .init           = dvvideo_init,
1302
+    .close          = dvvideo_close,
1303
+    .decode         = dvvideo_decode_frame,
1304
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_SLICE_THREADS,
1307 1305
     .max_lowres = 3,
1308 1306
     .long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
1309 1307
 };
... ...
@@ -403,11 +403,10 @@ static int dvbsub_encode(AVCodecContext *avctx,
403 403
 }
404 404
 
405 405
 AVCodec ff_dvbsub_encoder = {
406
-    "dvbsub",
407
-    AVMEDIA_TYPE_SUBTITLE,
408
-    CODEC_ID_DVB_SUBTITLE,
409
-    sizeof(DVBSubtitleContext),
410
-    NULL,
411
-    dvbsub_encode,
406
+    .name           = "dvbsub",
407
+    .type           = AVMEDIA_TYPE_SUBTITLE,
408
+    .id             = CODEC_ID_DVB_SUBTITLE,
409
+    .priv_data_size = sizeof(DVBSubtitleContext),
410
+    .encode         = dvbsub_encode,
412 411
     .long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
413 412
 };
... ...
@@ -1482,13 +1482,12 @@ static int dvbsub_decode(AVCodecContext *avctx,
1482 1482
 
1483 1483
 
1484 1484
 AVCodec ff_dvbsub_decoder = {
1485
-    "dvbsub",
1486
-    AVMEDIA_TYPE_SUBTITLE,
1487
-    CODEC_ID_DVB_SUBTITLE,
1488
-    sizeof(DVBSubContext),
1489
-    dvbsub_init_decoder,
1490
-    NULL,
1491
-    dvbsub_close_decoder,
1492
-    dvbsub_decode,
1485
+    .name           = "dvbsub",
1486
+    .type           = AVMEDIA_TYPE_SUBTITLE,
1487
+    .id             = CODEC_ID_DVB_SUBTITLE,
1488
+    .priv_data_size = sizeof(DVBSubContext),
1489
+    .init           = dvbsub_init_decoder,
1490
+    .close          = dvbsub_close_decoder,
1491
+    .decode         = dvbsub_decode,
1493 1492
     .long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
1494 1493
 };
... ...
@@ -494,13 +494,9 @@ static int dvdsub_decode(AVCodecContext *avctx,
494 494
 }
495 495
 
496 496
 AVCodec ff_dvdsub_decoder = {
497
-    "dvdsub",
498
-    AVMEDIA_TYPE_SUBTITLE,
499
-    CODEC_ID_DVD_SUBTITLE,
500
-    0,
501
-    NULL,
502
-    NULL,
503
-    NULL,
504
-    dvdsub_decode,
497
+    .name           = "dvdsub",
498
+    .type           = AVMEDIA_TYPE_SUBTITLE,
499
+    .id             = CODEC_ID_DVD_SUBTITLE,
500
+    .decode         = dvdsub_decode,
505 501
     .long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
506 502
 };
... ...
@@ -216,11 +216,9 @@ static int dvdsub_encode(AVCodecContext *avctx,
216 216
 }
217 217
 
218 218
 AVCodec ff_dvdsub_encoder = {
219
-    "dvdsub",
220
-    AVMEDIA_TYPE_SUBTITLE,
221
-    CODEC_ID_DVD_SUBTITLE,
222
-    0,
223
-    NULL,
224
-    dvdsub_encode,
219
+    .name           = "dvdsub",
220
+    .type           = AVMEDIA_TYPE_SUBTITLE,
221
+    .id             = CODEC_ID_DVD_SUBTITLE,
222
+    .encode         = dvdsub_encode,
225 223
     .long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
226 224
 };
... ...
@@ -321,15 +321,14 @@ static av_cold int decode_end(AVCodecContext *avctx)
321 321
 }
322 322
 
323 323
 AVCodec ff_dxa_decoder = {
324
-    "dxa",
325
-    AVMEDIA_TYPE_VIDEO,
326
-    CODEC_ID_DXA,
327
-    sizeof(DxaDecContext),
328
-    decode_init,
329
-    NULL,
330
-    decode_end,
331
-    decode_frame,
332
-    CODEC_CAP_DR1,
324
+    .name           = "dxa",
325
+    .type           = AVMEDIA_TYPE_VIDEO,
326
+    .id             = CODEC_ID_DXA,
327
+    .priv_data_size = sizeof(DxaDecContext),
328
+    .init           = decode_init,
329
+    .close          = decode_end,
330
+    .decode         = decode_frame,
331
+    .capabilities   = CODEC_CAP_DR1,
333 332
     .long_name = NULL_IF_CONFIG_SMALL("Feeble Files/ScummVM DXA"),
334 333
 };
335 334
 
... ...
@@ -210,14 +210,13 @@ static av_cold int cmv_decode_end(AVCodecContext *avctx){
210 210
 }
211 211
 
212 212
 AVCodec ff_eacmv_decoder = {
213
-    "eacmv",
214
-    AVMEDIA_TYPE_VIDEO,
215
-    CODEC_ID_CMV,
216
-    sizeof(CmvContext),
217
-    cmv_decode_init,
218
-    NULL,
219
-    cmv_decode_end,
220
-    cmv_decode_frame,
221
-    CODEC_CAP_DR1,
213
+    .name           = "eacmv",
214
+    .type           = AVMEDIA_TYPE_VIDEO,
215
+    .id             = CODEC_ID_CMV,
216
+    .priv_data_size = sizeof(CmvContext),
217
+    .init           = cmv_decode_init,
218
+    .close          = cmv_decode_end,
219
+    .decode         = cmv_decode_frame,
220
+    .capabilities   = CODEC_CAP_DR1,
222 221
     .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts CMV video"),
223 222
 };
... ...
@@ -307,14 +307,13 @@ static av_cold int decode_end(AVCodecContext *avctx)
307 307
 }
308 308
 
309 309
 AVCodec ff_eamad_decoder = {
310
-    "eamad",
311
-    AVMEDIA_TYPE_VIDEO,
312
-    CODEC_ID_MAD,
313
-    sizeof(MadContext),
314
-    decode_init,
315
-    NULL,
316
-    decode_end,
317
-    decode_frame,
318
-    CODEC_CAP_DR1,
310
+    .name           = "eamad",
311
+    .type           = AVMEDIA_TYPE_VIDEO,
312
+    .id             = CODEC_ID_MAD,
313
+    .priv_data_size = sizeof(MadContext),
314
+    .init           = decode_init,
315
+    .close          = decode_end,
316
+    .decode         = decode_frame,
317
+    .capabilities   = CODEC_CAP_DR1,
319 318
     .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Madcow Video")
320 319
 };
... ...
@@ -244,14 +244,13 @@ static av_cold int tgq_decode_end(AVCodecContext *avctx){
244 244
 }
245 245
 
246 246
 AVCodec ff_eatgq_decoder = {
247
-    "eatgq",
248
-    AVMEDIA_TYPE_VIDEO,
249
-    CODEC_ID_TGQ,
250
-    sizeof(TgqContext),
251
-    tgq_decode_init,
252
-    NULL,
253
-    tgq_decode_end,
254
-    tgq_decode_frame,
255
-    CODEC_CAP_DR1,
247
+    .name           = "eatgq",
248
+    .type           = AVMEDIA_TYPE_VIDEO,
249
+    .id             = CODEC_ID_TGQ,
250
+    .priv_data_size = sizeof(TgqContext),
251
+    .init           = tgq_decode_init,
252
+    .close          = tgq_decode_end,
253
+    .decode         = tgq_decode_frame,
254
+    .capabilities   = CODEC_CAP_DR1,
256 255
     .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGQ video"),
257 256
 };
... ...
@@ -337,13 +337,12 @@ static av_cold int tgv_decode_end(AVCodecContext *avctx)
337 337
 }
338 338
 
339 339
 AVCodec ff_eatgv_decoder = {
340
-    "eatgv",
341
-    AVMEDIA_TYPE_VIDEO,
342
-    CODEC_ID_TGV,
343
-    sizeof(TgvContext),
344
-    tgv_decode_init,
345
-    NULL,
346
-    tgv_decode_end,
347
-    tgv_decode_frame,
340
+    .name           = "eatgv",
341
+    .type           = AVMEDIA_TYPE_VIDEO,
342
+    .id             = CODEC_ID_TGV,
343
+    .priv_data_size = sizeof(TgvContext),
344
+    .init           = tgv_decode_init,
345
+    .close          = tgv_decode_end,
346
+    .decode         = tgv_decode_frame,
348 347
     .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TGV video"),
349 348
 };
... ...
@@ -153,14 +153,13 @@ static av_cold int tqi_decode_end(AVCodecContext *avctx)
153 153
 }
154 154
 
155 155
 AVCodec ff_eatqi_decoder = {
156
-    "eatqi",
157
-    AVMEDIA_TYPE_VIDEO,
158
-    CODEC_ID_TQI,
159
-    sizeof(TqiContext),
160
-    tqi_decode_init,
161
-    NULL,
162
-    tqi_decode_end,
163
-    tqi_decode_frame,
164
-    CODEC_CAP_DR1,
156
+    .name           = "eatqi",
157
+    .type           = AVMEDIA_TYPE_VIDEO,
158
+    .id             = CODEC_ID_TQI,
159
+    .priv_data_size = sizeof(TqiContext),
160
+    .init           = tqi_decode_init,
161
+    .close          = tqi_decode_end,
162
+    .decode         = tqi_decode_frame,
163
+    .capabilities   = CODEC_CAP_DR1,
165 164
     .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts TQI Video"),
166 165
 };
... ...
@@ -366,15 +366,14 @@ static int escape124_decode_frame(AVCodecContext *avctx,
366 366
 
367 367
 
368 368
 AVCodec ff_escape124_decoder = {
369
-    "escape124",
370
-    AVMEDIA_TYPE_VIDEO,
371
-    CODEC_ID_ESCAPE124,
372
-    sizeof(Escape124Context),
373
-    escape124_decode_init,
374
-    NULL,
375
-    escape124_decode_close,
376
-    escape124_decode_frame,
377
-    CODEC_CAP_DR1,
369
+    .name           = "escape124",
370
+    .type           = AVMEDIA_TYPE_VIDEO,
371
+    .id             = CODEC_ID_ESCAPE124,
372
+    .priv_data_size = sizeof(Escape124Context),
373
+    .init           = escape124_decode_init,
374
+    .close          = escape124_decode_close,
375
+    .decode         = escape124_decode_frame,
376
+    .capabilities   = CODEC_CAP_DR1,
378 377
     .long_name = NULL_IF_CONFIG_SMALL("Escape 124"),
379 378
 };
380 379
 
... ...
@@ -1764,28 +1764,26 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
1764 1764
 }
1765 1765
 
1766 1766
 AVCodec ff_ffv1_decoder = {
1767
-    "ffv1",
1768
-    AVMEDIA_TYPE_VIDEO,
1769
-    CODEC_ID_FFV1,
1770
-    sizeof(FFV1Context),
1771
-    decode_init,
1772
-    NULL,
1773
-    common_end,
1774
-    decode_frame,
1775
-    CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/ | CODEC_CAP_SLICE_THREADS,
1776
-    NULL,
1767
+    .name           = "ffv1",
1768
+    .type           = AVMEDIA_TYPE_VIDEO,
1769
+    .id             = CODEC_ID_FFV1,
1770
+    .priv_data_size = sizeof(FFV1Context),
1771
+    .init           = decode_init,
1772
+    .close          = common_end,
1773
+    .decode         = decode_frame,
1774
+    .capabilities   = CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/ | CODEC_CAP_SLICE_THREADS,
1777 1775
     .long_name= NULL_IF_CONFIG_SMALL("FFmpeg video codec #1"),
1778 1776
 };
1779 1777
 
1780 1778
 #if CONFIG_FFV1_ENCODER
1781 1779
 AVCodec ff_ffv1_encoder = {
1782
-    "ffv1",
1783
-    AVMEDIA_TYPE_VIDEO,
1784
-    CODEC_ID_FFV1,
1785
-    sizeof(FFV1Context),
1786
-    encode_init,
1787
-    encode_frame,
1788
-    common_end,
1780
+    .name           = "ffv1",
1781
+    .type           = AVMEDIA_TYPE_VIDEO,
1782
+    .id             = CODEC_ID_FFV1,
1783
+    .priv_data_size = sizeof(FFV1Context),
1784
+    .init           = encode_init,
1785
+    .encode         = encode_frame,
1786
+    .close          = common_end,
1789 1787
     .capabilities = CODEC_CAP_SLICE_THREADS,
1790 1788
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV444P, PIX_FMT_YUV422P, PIX_FMT_YUV411P, PIX_FMT_YUV410P, PIX_FMT_RGB32, PIX_FMT_YUV420P16, PIX_FMT_YUV422P16, PIX_FMT_YUV444P16, PIX_FMT_YUV420P9, PIX_FMT_YUV420P10, PIX_FMT_YUV422P10, PIX_FMT_NONE},
1791 1789
     .long_name= NULL_IF_CONFIG_SMALL("FFmpeg video codec #1"),
... ...
@@ -652,13 +652,12 @@ static av_cold int flac_decode_close(AVCodecContext *avctx)
652 652
 }
653 653
 
654 654
 AVCodec ff_flac_decoder = {
655
-    "flac",
656
-    AVMEDIA_TYPE_AUDIO,
657
-    CODEC_ID_FLAC,
658
-    sizeof(FLACContext),
659
-    flac_decode_init,
660
-    NULL,
661
-    flac_decode_close,
662
-    flac_decode_frame,
655
+    .name           = "flac",
656
+    .type           = AVMEDIA_TYPE_AUDIO,
657
+    .id             = CODEC_ID_FLAC,
658
+    .priv_data_size = sizeof(FLACContext),
659
+    .init           = flac_decode_init,
660
+    .close          = flac_decode_close,
661
+    .decode         = flac_decode_frame,
663 662
     .long_name= NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
664 663
 };
... ...
@@ -1379,14 +1379,13 @@ static const AVClass flac_encoder_class = {
1379 1379
 };
1380 1380
 
1381 1381
 AVCodec ff_flac_encoder = {
1382
-    "flac",
1383
-    AVMEDIA_TYPE_AUDIO,
1384
-    CODEC_ID_FLAC,
1385
-    sizeof(FlacEncodeContext),
1386
-    flac_encode_init,
1387
-    flac_encode_frame,
1388
-    flac_encode_close,
1389
-    NULL,
1382
+    .name           = "flac",
1383
+    .type           = AVMEDIA_TYPE_AUDIO,
1384
+    .id             = CODEC_ID_FLAC,
1385
+    .priv_data_size = sizeof(FlacEncodeContext),
1386
+    .init           = flac_encode_init,
1387
+    .encode         = flac_encode_frame,
1388
+    .close          = flac_encode_close,
1390 1389
     .capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY | CODEC_CAP_LOSSLESS,
1391 1390
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
1392 1391
     .long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
... ...
@@ -748,18 +748,13 @@ static av_cold int flic_decode_end(AVCodecContext *avctx)
748 748
 }
749 749
 
750 750
 AVCodec ff_flic_decoder = {
751
-    "flic",
752
-    AVMEDIA_TYPE_VIDEO,
753
-    CODEC_ID_FLIC,
754
-    sizeof(FlicDecodeContext),
755
-    flic_decode_init,
756
-    NULL,
757
-    flic_decode_end,
758
-    flic_decode_frame,
759
-    CODEC_CAP_DR1,
760
-    NULL,
761
-    NULL,
762
-    NULL,
763
-    NULL,
751
+    .name           = "flic",
752
+    .type           = AVMEDIA_TYPE_VIDEO,
753
+    .id             = CODEC_ID_FLIC,
754
+    .priv_data_size = sizeof(FlicDecodeContext),
755
+    .init           = flic_decode_init,
756
+    .close          = flic_decode_end,
757
+    .decode         = flic_decode_frame,
758
+    .capabilities   = CODEC_CAP_DR1,
764 759
     .long_name = NULL_IF_CONFIG_SMALL("Autodesk Animator Flic video"),
765 760
 };
... ...
@@ -119,15 +119,14 @@ int ff_flv_decode_picture_header(MpegEncContext *s)
119 119
 }
120 120
 
121 121
 AVCodec ff_flv_decoder = {
122
-    "flv",
123
-    AVMEDIA_TYPE_VIDEO,
124
-    CODEC_ID_FLV1,
125
-    sizeof(MpegEncContext),
126
-    ff_h263_decode_init,
127
-    NULL,
128
-    ff_h263_decode_end,
129
-    ff_h263_decode_frame,
130
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
122
+    .name           = "flv",
123
+    .type           = AVMEDIA_TYPE_VIDEO,
124
+    .id             = CODEC_ID_FLV1,
125
+    .priv_data_size = sizeof(MpegEncContext),
126
+    .init           = ff_h263_decode_init,
127
+    .close          = ff_h263_decode_end,
128
+    .decode         = ff_h263_decode_frame,
129
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
131 130
     .max_lowres= 3,
132 131
     .long_name= NULL_IF_CONFIG_SMALL("Flash Video (FLV) / Sorenson Spark / Sorenson H.263"),
133 132
     .pix_fmts= ff_pixfmt_list_420,
... ...
@@ -85,13 +85,13 @@ void ff_flv2_encode_ac_esc(PutBitContext *pb, int slevel, int level, int run, in
85 85
 }
86 86
 
87 87
 AVCodec ff_flv_encoder = {
88
-    "flv",
89
-    AVMEDIA_TYPE_VIDEO,
90
-    CODEC_ID_FLV1,
91
-    sizeof(MpegEncContext),
92
-    MPV_encode_init,
93
-    MPV_encode_picture,
94
-    MPV_encode_end,
88
+    .name           = "flv",
89
+    .type           = AVMEDIA_TYPE_VIDEO,
90
+    .id             = CODEC_ID_FLV1,
91
+    .priv_data_size = sizeof(MpegEncContext),
92
+    .init           = MPV_encode_init,
93
+    .encode         = MPV_encode_picture,
94
+    .close          = MPV_encode_end,
95 95
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
96 96
     .long_name= NULL_IF_CONFIG_SMALL("Flash Video (FLV) / Sorenson Spark / Sorenson H.263"),
97 97
 };
... ...
@@ -361,14 +361,13 @@ static av_cold int decode_end(AVCodecContext *avctx)
361 361
 
362 362
 
363 363
 AVCodec ff_fraps_decoder = {
364
-    "fraps",
365
-    AVMEDIA_TYPE_VIDEO,
366
-    CODEC_ID_FRAPS,
367
-    sizeof(FrapsContext),
368
-    decode_init,
369
-    NULL,
370
-    decode_end,
371
-    decode_frame,
372
-    CODEC_CAP_DR1,
364
+    .name           = "fraps",
365
+    .type           = AVMEDIA_TYPE_VIDEO,
366
+    .id             = CODEC_ID_FRAPS,
367
+    .priv_data_size = sizeof(FrapsContext),
368
+    .init           = decode_init,
369
+    .close          = decode_end,
370
+    .decode         = decode_frame,
371
+    .capabilities   = CODEC_CAP_DR1,
373 372
     .long_name = NULL_IF_CONFIG_SMALL("Fraps"),
374 373
 };
... ...
@@ -110,14 +110,12 @@ static av_cold int decode_close(AVCodecContext *avctx)
110 110
 }
111 111
 
112 112
 AVCodec ff_frwu_decoder = {
113
-    "frwu",
114
-    AVMEDIA_TYPE_VIDEO,
115
-    CODEC_ID_FRWU,
116
-    0,
117
-    decode_init,
118
-    NULL,
119
-    decode_close,
120
-    decode_frame,
121
-    CODEC_CAP_DR1,
113
+    .name           = "FRWU",
114
+    .type           = AVMEDIA_TYPE_VIDEO,
115
+    .id             = CODEC_ID_FRWU,
116
+    .init           = decode_init,
117
+    .close          = decode_close,
118
+    .decode         = decode_frame,
119
+    .capabilities   = CODEC_CAP_DR1,
122 120
     .long_name = NULL_IF_CONFIG_SMALL("Forward Uncompressed"),
123 121
 };
... ...
@@ -392,14 +392,13 @@ static int g726_decode_frame(AVCodecContext *avctx,
392 392
 
393 393
 #if CONFIG_ADPCM_G726_ENCODER
394 394
 AVCodec ff_adpcm_g726_encoder = {
395
-    "g726",
396
-    AVMEDIA_TYPE_AUDIO,
397
-    CODEC_ID_ADPCM_G726,
398
-    sizeof(G726Context),
399
-    g726_init,
400
-    g726_encode_frame,
401
-    g726_close,
402
-    NULL,
395
+    .name           = "g726",
396
+    .type           = AVMEDIA_TYPE_AUDIO,
397
+    .id             = CODEC_ID_ADPCM_G726,
398
+    .priv_data_size = sizeof(G726Context),
399
+    .init           = g726_init,
400
+    .encode         = g726_encode_frame,
401
+    .close          = g726_close,
403 402
     .capabilities = CODEC_CAP_SMALL_LAST_FRAME,
404 403
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
405 404
     .long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
... ...
@@ -407,13 +406,12 @@ AVCodec ff_adpcm_g726_encoder = {
407 407
 #endif
408 408
 
409 409
 AVCodec ff_adpcm_g726_decoder = {
410
-    "g726",
411
-    AVMEDIA_TYPE_AUDIO,
412
-    CODEC_ID_ADPCM_G726,
413
-    sizeof(G726Context),
414
-    g726_init,
415
-    NULL,
416
-    g726_close,
417
-    g726_decode_frame,
410
+    .name           = "g726",
411
+    .type           = AVMEDIA_TYPE_AUDIO,
412
+    .id             = CODEC_ID_ADPCM_G726,
413
+    .priv_data_size = sizeof(G726Context),
414
+    .init           = g726_init,
415
+    .close          = g726_close,
416
+    .decode         = g726_decode_frame,
418 417
     .long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
419 418
 };
... ...
@@ -167,13 +167,13 @@ static int gif_encode_close(AVCodecContext *avctx)
167 167
 }
168 168
 
169 169
 AVCodec ff_gif_encoder = {
170
-    "gif",
171
-    AVMEDIA_TYPE_VIDEO,
172
-    CODEC_ID_GIF,
173
-    sizeof(GIFContext),
174
-    gif_encode_init,
175
-    gif_encode_frame,
176
-    gif_encode_close,
170
+    .name           = "gif",
171
+    .type           = AVMEDIA_TYPE_VIDEO,
172
+    .id             = CODEC_ID_GIF,
173
+    .priv_data_size = sizeof(GIFContext),
174
+    .init           = gif_encode_init,
175
+    .encode         = gif_encode_frame,
176
+    .close          = gif_encode_close,
177 177
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB8, PIX_FMT_BGR8, PIX_FMT_RGB4_BYTE, PIX_FMT_BGR4_BYTE, PIX_FMT_GRAY8, PIX_FMT_PAL8, PIX_FMT_NONE},
178 178
     .long_name= NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
179 179
 };
... ...
@@ -326,14 +326,13 @@ static av_cold int gif_decode_close(AVCodecContext *avctx)
326 326
 }
327 327
 
328 328
 AVCodec ff_gif_decoder = {
329
-    "gif",
330
-    AVMEDIA_TYPE_VIDEO,
331
-    CODEC_ID_GIF,
332
-    sizeof(GifState),
333
-    gif_decode_init,
334
-    NULL,
335
-    gif_decode_close,
336
-    gif_decode_frame,
337
-    CODEC_CAP_DR1,
329
+    .name           = "gif",
330
+    .type           = AVMEDIA_TYPE_VIDEO,
331
+    .id             = CODEC_ID_GIF,
332
+    .priv_data_size = sizeof(GifState),
333
+    .init           = gif_decode_init,
334
+    .close          = gif_decode_close,
335
+    .decode         = gif_decode_frame,
336
+    .capabilities   = CODEC_CAP_DR1,
338 337
     .long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
339 338
 };
... ...
@@ -85,25 +85,21 @@ static int gsm_decode_frame(AVCodecContext *avctx, void *data,
85 85
 }
86 86
 
87 87
 AVCodec ff_gsm_decoder = {
88
-    "gsm",
89
-    AVMEDIA_TYPE_AUDIO,
90
-    CODEC_ID_GSM,
91
-    sizeof(GSMContext),
92
-    gsm_init,
93
-    NULL,
94
-    NULL,
95
-    gsm_decode_frame,
88
+    .name           = "gsm",
89
+    .type           = AVMEDIA_TYPE_AUDIO,
90
+    .id             = CODEC_ID_GSM,
91
+    .priv_data_size = sizeof(GSMContext),
92
+    .init           = gsm_init,
93
+    .decode         = gsm_decode_frame,
96 94
     .long_name = NULL_IF_CONFIG_SMALL("GSM"),
97 95
 };
98 96
 
99 97
 AVCodec ff_gsm_ms_decoder = {
100
-    "gsm_ms",
101
-    AVMEDIA_TYPE_AUDIO,
102
-    CODEC_ID_GSM_MS,
103
-    sizeof(GSMContext),
104
-    gsm_init,
105
-    NULL,
106
-    NULL,
107
-    gsm_decode_frame,
98
+    .name           = "gsm_ms",
99
+    .type           = AVMEDIA_TYPE_AUDIO,
100
+    .id             = CODEC_ID_GSM_MS,
101
+    .priv_data_size = sizeof(GSMContext),
102
+    .init           = gsm_init,
103
+    .decode         = gsm_decode_frame,
108 104
     .long_name = NULL_IF_CONFIG_SMALL("GSM Microsoft variant"),
109 105
 };
... ...
@@ -640,15 +640,14 @@ static av_cold int h261_decode_end(AVCodecContext *avctx)
640 640
 }
641 641
 
642 642
 AVCodec ff_h261_decoder = {
643
-    "h261",
644
-    AVMEDIA_TYPE_VIDEO,
645
-    CODEC_ID_H261,
646
-    sizeof(H261Context),
647
-    h261_decode_init,
648
-    NULL,
649
-    h261_decode_end,
650
-    h261_decode_frame,
651
-    CODEC_CAP_DR1,
643
+    .name           = "h261",
644
+    .type           = AVMEDIA_TYPE_VIDEO,
645
+    .id             = CODEC_ID_H261,
646
+    .priv_data_size = sizeof(H261Context),
647
+    .init           = h261_decode_init,
648
+    .close          = h261_decode_end,
649
+    .decode         = h261_decode_frame,
650
+    .capabilities   = CODEC_CAP_DR1,
652 651
     .max_lowres = 3,
653 652
     .long_name = NULL_IF_CONFIG_SMALL("H.261"),
654 653
 };
... ...
@@ -322,13 +322,13 @@ static void h261_encode_block(H261Context * h, DCTELEM * block, int n){
322 322
 }
323 323
 
324 324
 AVCodec ff_h261_encoder = {
325
-    "h261",
326
-    AVMEDIA_TYPE_VIDEO,
327
-    CODEC_ID_H261,
328
-    sizeof(H261Context),
329
-    MPV_encode_init,
330
-    MPV_encode_picture,
331
-    MPV_encode_end,
325
+    .name           = "h261",
326
+    .type           = AVMEDIA_TYPE_VIDEO,
327
+    .id             = CODEC_ID_H261,
328
+    .priv_data_size = sizeof(H261Context),
329
+    .init           = MPV_encode_init,
330
+    .encode         = MPV_encode_picture,
331
+    .close          = MPV_encode_end,
332 332
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
333 333
     .long_name= NULL_IF_CONFIG_SMALL("H.261"),
334 334
 };
... ...
@@ -734,15 +734,14 @@ av_log(avctx, AV_LOG_DEBUG, "%"PRId64"\n", rdtsc()-time);
734 734
 }
735 735
 
736 736
 AVCodec ff_h263_decoder = {
737
-    "h263",
738
-    AVMEDIA_TYPE_VIDEO,
739
-    CODEC_ID_H263,
740
-    sizeof(MpegEncContext),
741
-    ff_h263_decode_init,
742
-    NULL,
743
-    ff_h263_decode_end,
744
-    ff_h263_decode_frame,
745
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY,
737
+    .name           = "h263",
738
+    .type           = AVMEDIA_TYPE_VIDEO,
739
+    .id             = CODEC_ID_H263,
740
+    .priv_data_size = sizeof(MpegEncContext),
741
+    .init           = ff_h263_decode_init,
742
+    .close          = ff_h263_decode_end,
743
+    .decode         = ff_h263_decode_frame,
744
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY,
746 745
     .flush= ff_mpeg_flush,
747 746
     .max_lowres= 3,
748 747
     .long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2"),
... ...
@@ -4006,16 +4006,15 @@ static const AVProfile profiles[] = {
4006 4006
 };
4007 4007
 
4008 4008
 AVCodec ff_h264_decoder = {
4009
-    "h264",
4010
-    AVMEDIA_TYPE_VIDEO,
4011
-    CODEC_ID_H264,
4012
-    sizeof(H264Context),
4013
-    ff_h264_decode_init,
4014
-    NULL,
4015
-    ff_h264_decode_end,
4016
-    decode_frame,
4017
-    /*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_DELAY |
4018
-        CODEC_CAP_SLICE_THREADS | CODEC_CAP_FRAME_THREADS,
4009
+    .name           = "h264",
4010
+    .type           = AVMEDIA_TYPE_VIDEO,
4011
+    .id             = CODEC_ID_H264,
4012
+    .priv_data_size = sizeof(H264Context),
4013
+    .init           = ff_h264_decode_init,
4014
+    .close          = ff_h264_decode_end,
4015
+    .decode         = decode_frame,
4016
+    .capabilities   = /*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_DELAY |
4017
+                      CODEC_CAP_SLICE_THREADS | CODEC_CAP_FRAME_THREADS,
4019 4018
     .flush= flush_dpb,
4020 4019
     .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
4021 4020
     .init_thread_copy      = ONLY_IF_THREADS_ENABLED(decode_init_thread_copy),
... ...
@@ -4025,15 +4024,14 @@ AVCodec ff_h264_decoder = {
4025 4025
 
4026 4026
 #if CONFIG_H264_VDPAU_DECODER
4027 4027
 AVCodec ff_h264_vdpau_decoder = {
4028
-    "h264_vdpau",
4029
-    AVMEDIA_TYPE_VIDEO,
4030
-    CODEC_ID_H264,
4031
-    sizeof(H264Context),
4032
-    ff_h264_decode_init,
4033
-    NULL,
4034
-    ff_h264_decode_end,
4035
-    decode_frame,
4036
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
4028
+    .name           = "h264_vdpau",
4029
+    .type           = AVMEDIA_TYPE_VIDEO,
4030
+    .id             = CODEC_ID_H264,
4031
+    .priv_data_size = sizeof(H264Context),
4032
+    .init           = ff_h264_decode_init,
4033
+    .close          = ff_h264_decode_end,
4034
+    .decode         = decode_frame,
4035
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
4037 4036
     .flush= flush_dpb,
4038 4037
     .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)"),
4039 4038
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_H264, PIX_FMT_NONE},
... ...
@@ -1436,16 +1436,14 @@ static av_cold int encode_end(AVCodecContext *avctx)
1436 1436
 
1437 1437
 #if CONFIG_HUFFYUV_DECODER
1438 1438
 AVCodec ff_huffyuv_decoder = {
1439
-    "huffyuv",
1440
-    AVMEDIA_TYPE_VIDEO,
1441
-    CODEC_ID_HUFFYUV,
1442
-    sizeof(HYuvContext),
1443
-    decode_init,
1444
-    NULL,
1445
-    decode_end,
1446
-    decode_frame,
1447
-    CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
1448
-    NULL,
1439
+    .name           = "huffyuv",
1440
+    .type           = AVMEDIA_TYPE_VIDEO,
1441
+    .id             = CODEC_ID_HUFFYUV,
1442
+    .priv_data_size = sizeof(HYuvContext),
1443
+    .init           = decode_init,
1444
+    .close          = decode_end,
1445
+    .decode         = decode_frame,
1446
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
1449 1447
     .init_thread_copy = ONLY_IF_THREADS_ENABLED(decode_init_thread_copy),
1450 1448
     .long_name = NULL_IF_CONFIG_SMALL("Huffyuv / HuffYUV"),
1451 1449
 };
... ...
@@ -1453,16 +1451,14 @@ AVCodec ff_huffyuv_decoder = {
1453 1453
 
1454 1454
 #if CONFIG_FFVHUFF_DECODER
1455 1455
 AVCodec ff_ffvhuff_decoder = {
1456
-    "ffvhuff",
1457
-    AVMEDIA_TYPE_VIDEO,
1458
-    CODEC_ID_FFVHUFF,
1459
-    sizeof(HYuvContext),
1460
-    decode_init,
1461
-    NULL,
1462
-    decode_end,
1463
-    decode_frame,
1464
-    CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
1465
-    NULL,
1456
+    .name           = "ffvhuff",
1457
+    .type           = AVMEDIA_TYPE_VIDEO,
1458
+    .id             = CODEC_ID_FFVHUFF,
1459
+    .priv_data_size = sizeof(HYuvContext),
1460
+    .init           = decode_init,
1461
+    .close          = decode_end,
1462
+    .decode         = decode_frame,
1463
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
1466 1464
     .init_thread_copy = ONLY_IF_THREADS_ENABLED(decode_init_thread_copy),
1467 1465
     .long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"),
1468 1466
 };
... ...
@@ -1470,13 +1466,13 @@ AVCodec ff_ffvhuff_decoder = {
1470 1470
 
1471 1471
 #if CONFIG_HUFFYUV_ENCODER
1472 1472
 AVCodec ff_huffyuv_encoder = {
1473
-    "huffyuv",
1474
-    AVMEDIA_TYPE_VIDEO,
1475
-    CODEC_ID_HUFFYUV,
1476
-    sizeof(HYuvContext),
1477
-    encode_init,
1478
-    encode_frame,
1479
-    encode_end,
1473
+    .name           = "huffyuv",
1474
+    .type           = AVMEDIA_TYPE_VIDEO,
1475
+    .id             = CODEC_ID_HUFFYUV,
1476
+    .priv_data_size = sizeof(HYuvContext),
1477
+    .init           = encode_init,
1478
+    .encode         = encode_frame,
1479
+    .close          = encode_end,
1480 1480
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV422P, PIX_FMT_RGB32, PIX_FMT_NONE},
1481 1481
     .long_name = NULL_IF_CONFIG_SMALL("Huffyuv / HuffYUV"),
1482 1482
 };
... ...
@@ -1484,13 +1480,13 @@ AVCodec ff_huffyuv_encoder = {
1484 1484
 
1485 1485
 #if CONFIG_FFVHUFF_ENCODER
1486 1486
 AVCodec ff_ffvhuff_encoder = {
1487
-    "ffvhuff",
1488
-    AVMEDIA_TYPE_VIDEO,
1489
-    CODEC_ID_FFVHUFF,
1490
-    sizeof(HYuvContext),
1491
-    encode_init,
1492
-    encode_frame,
1493
-    encode_end,
1487
+    .name           = "ffvhuff",
1488
+    .type           = AVMEDIA_TYPE_VIDEO,
1489
+    .id             = CODEC_ID_FFVHUFF,
1490
+    .priv_data_size = sizeof(HYuvContext),
1491
+    .init           = encode_init,
1492
+    .encode         = encode_frame,
1493
+    .close          = encode_end,
1494 1494
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_RGB32, PIX_FMT_NONE},
1495 1495
     .long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"),
1496 1496
 };
... ...
@@ -255,15 +255,14 @@ static av_cold int idcin_decode_end(AVCodecContext *avctx)
255 255
 }
256 256
 
257 257
 AVCodec ff_idcin_decoder = {
258
-    "idcinvideo",
259
-    AVMEDIA_TYPE_VIDEO,
260
-    CODEC_ID_IDCIN,
261
-    sizeof(IdcinContext),
262
-    idcin_decode_init,
263
-    NULL,
264
-    idcin_decode_end,
265
-    idcin_decode_frame,
266
-    CODEC_CAP_DR1,
258
+    .name           = "idcinvideo",
259
+    .type           = AVMEDIA_TYPE_VIDEO,
260
+    .id             = CODEC_ID_IDCIN,
261
+    .priv_data_size = sizeof(IdcinContext),
262
+    .init           = idcin_decode_init,
263
+    .close          = idcin_decode_end,
264
+    .decode         = idcin_decode_frame,
265
+    .capabilities   = CODEC_CAP_DR1,
267 266
     .long_name = NULL_IF_CONFIG_SMALL("id Quake II CIN video"),
268 267
 };
269 268
 
... ...
@@ -576,27 +576,25 @@ static av_cold int decode_end(AVCodecContext *avctx)
576 576
 }
577 577
 
578 578
 AVCodec ff_iff_ilbm_decoder = {
579
-    "iff_ilbm",
580
-    AVMEDIA_TYPE_VIDEO,
581
-    CODEC_ID_IFF_ILBM,
582
-    sizeof(IffContext),
583
-    decode_init,
584
-    NULL,
585
-    decode_end,
586
-    decode_frame_ilbm,
587
-    CODEC_CAP_DR1,
579
+    .name           = "iff_ilbm",
580
+    .type           = AVMEDIA_TYPE_VIDEO,
581
+    .id             = CODEC_ID_IFF_ILBM,
582
+    .priv_data_size = sizeof(IffContext),
583
+    .init           = decode_init,
584
+    .close          = decode_end,
585
+    .decode         = decode_frame_ilbm,
586
+    .capabilities   = CODEC_CAP_DR1,
588 587
     .long_name = NULL_IF_CONFIG_SMALL("IFF ILBM"),
589 588
 };
590 589
 
591 590
 AVCodec ff_iff_byterun1_decoder = {
592
-    "iff_byterun1",
593
-    AVMEDIA_TYPE_VIDEO,
594
-    CODEC_ID_IFF_BYTERUN1,
595
-    sizeof(IffContext),
596
-    decode_init,
597
-    NULL,
598
-    decode_end,
599
-    decode_frame_byterun1,
600
-    CODEC_CAP_DR1,
591
+    .name           = "iff_byterun1",
592
+    .type           = AVMEDIA_TYPE_VIDEO,
593
+    .id             = CODEC_ID_IFF_BYTERUN1,
594
+    .priv_data_size = sizeof(IffContext),
595
+    .init           = decode_init,
596
+    .close          = decode_end,
597
+    .decode         = decode_frame_byterun1,
598
+    .capabilities   = CODEC_CAP_DR1,
601 599
     .long_name = NULL_IF_CONFIG_SMALL("IFF ByteRun1"),
602 600
 };
... ...
@@ -223,14 +223,13 @@ static av_cold int ir2_decode_end(AVCodecContext *avctx){
223 223
 }
224 224
 
225 225
 AVCodec ff_indeo2_decoder = {
226
-    "indeo2",
227
-    AVMEDIA_TYPE_VIDEO,
228
-    CODEC_ID_INDEO2,
229
-    sizeof(Ir2Context),
230
-    ir2_decode_init,
231
-    NULL,
232
-    ir2_decode_end,
233
-    ir2_decode_frame,
234
-    CODEC_CAP_DR1,
226
+    .name           = "indeo2",
227
+    .type           = AVMEDIA_TYPE_VIDEO,
228
+    .id             = CODEC_ID_INDEO2,
229
+    .priv_data_size = sizeof(Ir2Context),
230
+    .init           = ir2_decode_init,
231
+    .close          = ir2_decode_end,
232
+    .decode         = ir2_decode_frame,
233
+    .capabilities   = CODEC_CAP_DR1,
235 234
     .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 2"),
236 235
 };
... ...
@@ -1147,15 +1147,13 @@ static av_cold int indeo3_decode_end(AVCodecContext *avctx)
1147 1147
 }
1148 1148
 
1149 1149
 AVCodec ff_indeo3_decoder = {
1150
-    "indeo3",
1151
-    AVMEDIA_TYPE_VIDEO,
1152
-    CODEC_ID_INDEO3,
1153
-    sizeof(Indeo3DecodeContext),
1154
-    indeo3_decode_init,
1155
-    NULL,
1156
-    indeo3_decode_end,
1157
-    indeo3_decode_frame,
1158
-    CODEC_CAP_DR1,
1159
-    NULL,
1150
+    .name           = "indeo3",
1151
+    .type           = AVMEDIA_TYPE_VIDEO,
1152
+    .id             = CODEC_ID_INDEO3,
1153
+    .priv_data_size = sizeof(Indeo3DecodeContext),
1154
+    .init           = indeo3_decode_init,
1155
+    .close          = indeo3_decode_end,
1156
+    .decode         = indeo3_decode_frame,
1157
+    .capabilities   = CODEC_CAP_DR1,
1160 1158
     .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 3"),
1161 1159
 };
... ...
@@ -125,15 +125,14 @@ int ff_intel_h263_decode_picture_header(MpegEncContext *s)
125 125
 }
126 126
 
127 127
 AVCodec ff_h263i_decoder = {
128
-    "h263i",
129
-    AVMEDIA_TYPE_VIDEO,
130
-    CODEC_ID_H263I,
131
-    sizeof(MpegEncContext),
132
-    ff_h263_decode_init,
133
-    NULL,
134
-    ff_h263_decode_end,
135
-    ff_h263_decode_frame,
136
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
128
+    .name           = "h263i",
129
+    .type           = AVMEDIA_TYPE_VIDEO,
130
+    .id             = CODEC_ID_H263I,
131
+    .priv_data_size = sizeof(MpegEncContext),
132
+    .init           = ff_h263_decode_init,
133
+    .close          = ff_h263_decode_end,
134
+    .decode         = ff_h263_decode_frame,
135
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
137 136
     .long_name = NULL_IF_CONFIG_SMALL("Intel H.263"),
138 137
     .pix_fmts= ff_pixfmt_list_420,
139 138
 };
... ...
@@ -1092,14 +1092,13 @@ static av_cold int ipvideo_decode_end(AVCodecContext *avctx)
1092 1092
 }
1093 1093
 
1094 1094
 AVCodec ff_interplay_video_decoder = {
1095
-    "interplayvideo",
1096
-    AVMEDIA_TYPE_VIDEO,
1097
-    CODEC_ID_INTERPLAY_VIDEO,
1098
-    sizeof(IpvideoContext),
1099
-    ipvideo_decode_init,
1100
-    NULL,
1101
-    ipvideo_decode_end,
1102
-    ipvideo_decode_frame,
1103
-    CODEC_CAP_DR1,
1095
+    .name           = "interplayvideo",
1096
+    .type           = AVMEDIA_TYPE_VIDEO,
1097
+    .id             = CODEC_ID_INTERPLAY_VIDEO,
1098
+    .priv_data_size = sizeof(IpvideoContext),
1099
+    .init           = ipvideo_decode_init,
1100
+    .close          = ipvideo_decode_end,
1101
+    .decode         = ipvideo_decode_frame,
1102
+    .capabilities   = CODEC_CAP_DR1,
1104 1103
     .long_name = NULL_IF_CONFIG_SMALL("Interplay MVE video"),
1105 1104
 };
... ...
@@ -364,14 +364,13 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, int point_transfor
364 364
 
365 365
 
366 366
 AVCodec ff_jpegls_decoder = {
367
-    "jpegls",
368
-    AVMEDIA_TYPE_VIDEO,
369
-    CODEC_ID_JPEGLS,
370
-    sizeof(MJpegDecodeContext),
371
-    ff_mjpeg_decode_init,
372
-    NULL,
373
-    ff_mjpeg_decode_end,
374
-    ff_mjpeg_decode_frame,
375
-    CODEC_CAP_DR1,
367
+    .name           = "jpegls",
368
+    .type           = AVMEDIA_TYPE_VIDEO,
369
+    .id             = CODEC_ID_JPEGLS,
370
+    .priv_data_size = sizeof(MJpegDecodeContext),
371
+    .init           = ff_mjpeg_decode_init,
372
+    .close          = ff_mjpeg_decode_end,
373
+    .decode         = ff_mjpeg_decode_frame,
374
+    .capabilities   = CODEC_CAP_DR1,
376 375
     .long_name = NULL_IF_CONFIG_SMALL("JPEG-LS"),
377 376
 };
... ...
@@ -166,13 +166,12 @@ static av_cold int decode_end(AVCodecContext *avctx)
166 166
 }
167 167
 
168 168
 AVCodec ff_kgv1_decoder = {
169
-    "kgv1",
170
-    AVMEDIA_TYPE_VIDEO,
171
-    CODEC_ID_KGV1,
172
-    sizeof(KgvContext),
173
-    decode_init,
174
-    NULL,
175
-    decode_end,
176
-    decode_frame,
169
+    .name           = "kgv1",
170
+    .type           = AVMEDIA_TYPE_VIDEO,
171
+    .id             = CODEC_ID_KGV1,
172
+    .priv_data_size = sizeof(KgvContext),
173
+    .init           = decode_init,
174
+    .close          = decode_end,
175
+    .decode         = decode_frame,
177 176
     .long_name = NULL_IF_CONFIG_SMALL("Kega Game Video"),
178 177
 };
... ...
@@ -399,14 +399,13 @@ static av_cold int decode_end(AVCodecContext * avctx)
399 399
 }
400 400
 
401 401
 AVCodec ff_kmvc_decoder = {
402
-    "kmvc",
403
-    AVMEDIA_TYPE_VIDEO,
404
-    CODEC_ID_KMVC,
405
-    sizeof(KmvcContext),
406
-    decode_init,
407
-    NULL,
408
-    decode_end,
409
-    decode_frame,
410
-    CODEC_CAP_DR1,
402
+    .name           = "kmvc",
403
+    .type           = AVMEDIA_TYPE_VIDEO,
404
+    .id             = CODEC_ID_KMVC,
405
+    .priv_data_size = sizeof(KmvcContext),
406
+    .init           = decode_init,
407
+    .close          = decode_end,
408
+    .decode         = decode_frame,
409
+    .capabilities   = CODEC_CAP_DR1,
411 410
     .long_name = NULL_IF_CONFIG_SMALL("Karl Morton's video codec"),
412 411
 };
... ...
@@ -509,14 +509,13 @@ static av_cold int lag_decode_end(AVCodecContext *avctx)
509 509
 }
510 510
 
511 511
 AVCodec ff_lagarith_decoder = {
512
-    "lagarith",
513
-    AVMEDIA_TYPE_VIDEO,
514
-    CODEC_ID_LAGARITH,
515
-    sizeof(LagarithContext),
516
-    lag_decode_init,
517
-    NULL,
518
-    lag_decode_end,
519
-    lag_decode_frame,
520
-    CODEC_CAP_DR1,
512
+    .name           = "lagarith",
513
+    .type           = AVMEDIA_TYPE_VIDEO,
514
+    .id             = CODEC_ID_LAGARITH,
515
+    .priv_data_size = sizeof(LagarithContext),
516
+    .init           = lag_decode_init,
517
+    .close          = lag_decode_end,
518
+    .decode         = lag_decode_frame,
519
+    .capabilities   = CODEC_CAP_DR1,
521 520
     .long_name = NULL_IF_CONFIG_SMALL("Lagarith lossless"),
522 521
 };
... ...
@@ -611,30 +611,28 @@ static av_cold int decode_end(AVCodecContext *avctx)
611 611
 
612 612
 #if CONFIG_MSZH_DECODER
613 613
 AVCodec ff_mszh_decoder = {
614
-    "mszh",
615
-    AVMEDIA_TYPE_VIDEO,
616
-    CODEC_ID_MSZH,
617
-    sizeof(LclDecContext),
618
-    decode_init,
619
-    NULL,
620
-    decode_end,
621
-    decode_frame,
622
-    CODEC_CAP_DR1,
614
+    .name           = "mszh",
615
+    .type           = AVMEDIA_TYPE_VIDEO,
616
+    .id             = CODEC_ID_MSZH,
617
+    .priv_data_size = sizeof(LclDecContext),
618
+    .init           = decode_init,
619
+    .close          = decode_end,
620
+    .decode         = decode_frame,
621
+    .capabilities   = CODEC_CAP_DR1,
623 622
     .long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) MSZH"),
624 623
 };
625 624
 #endif
626 625
 
627 626
 #if CONFIG_ZLIB_DECODER
628 627
 AVCodec ff_zlib_decoder = {
629
-    "zlib",
630
-    AVMEDIA_TYPE_VIDEO,
631
-    CODEC_ID_ZLIB,
632
-    sizeof(LclDecContext),
633
-    decode_init,
634
-    NULL,
635
-    decode_end,
636
-    decode_frame,
637
-    CODEC_CAP_DR1,
628
+    .name           = "zlib",
629
+    .type           = AVMEDIA_TYPE_VIDEO,
630
+    .id             = CODEC_ID_ZLIB,
631
+    .priv_data_size = sizeof(LclDecContext),
632
+    .init           = decode_init,
633
+    .close          = decode_end,
634
+    .decode         = decode_frame,
635
+    .capabilities   = CODEC_CAP_DR1,
638 636
     .long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) ZLIB"),
639 637
 };
640 638
 #endif
... ...
@@ -171,13 +171,13 @@ static av_cold int encode_end(AVCodecContext *avctx)
171 171
 }
172 172
 
173 173
 AVCodec ff_zlib_encoder = {
174
-    "zlib",
175
-    AVMEDIA_TYPE_VIDEO,
176
-    CODEC_ID_ZLIB,
177
-    sizeof(LclEncContext),
178
-    encode_init,
179
-    encode_frame,
180
-    encode_end,
174
+    .name           = "zlib",
175
+    .type           = AVMEDIA_TYPE_VIDEO,
176
+    .id             = CODEC_ID_ZLIB,
177
+    .priv_data_size = sizeof(LclEncContext),
178
+    .init           = encode_init,
179
+    .encode         = encode_frame,
180
+    .close          = encode_end,
181 181
     .pix_fmts = (const enum PixelFormat[]) { PIX_FMT_BGR24, PIX_FMT_NONE },
182 182
     .long_name = NULL_IF_CONFIG_SMALL("LCL (LossLess Codec Library) ZLIB"),
183 183
 };
... ...
@@ -195,15 +195,14 @@ static void libdirac_flush(AVCodecContext *avccontext)
195 195
 
196 196
 
197 197
 AVCodec ff_libdirac_decoder = {
198
-    "libdirac",
199
-    AVMEDIA_TYPE_VIDEO,
200
-    CODEC_ID_DIRAC,
201
-    sizeof(FfmpegDiracDecoderParams),
202
-    libdirac_decode_init,
203
-    NULL,
204
-    libdirac_decode_close,
205
-    libdirac_decode_frame,
206
-    CODEC_CAP_DELAY,
198
+    .name           = "libdirac",
199
+    .type           = AVMEDIA_TYPE_VIDEO,
200
+    .id             = CODEC_ID_DIRAC,
201
+    .priv_data_size = sizeof(FfmpegDiracDecoderParams),
202
+    .init           = libdirac_decode_init,
203
+    .close          = libdirac_decode_close,
204
+    .decode         = libdirac_decode_frame,
205
+    .capabilities   = CODEC_CAP_DELAY,
207 206
     .flush = libdirac_flush,
208 207
     .long_name = NULL_IF_CONFIG_SMALL("libdirac Dirac 2.2"),
209 208
 };
... ...
@@ -392,13 +392,13 @@ static av_cold int libdirac_encode_close(AVCodecContext *avccontext)
392 392
 
393 393
 
394 394
 AVCodec ff_libdirac_encoder = {
395
-    "libdirac",
396
-    AVMEDIA_TYPE_VIDEO,
397
-    CODEC_ID_DIRAC,
398
-    sizeof(FfmpegDiracEncoderParams),
399
-    libdirac_encode_init,
400
-    libdirac_encode_frame,
401
-    libdirac_encode_close,
395
+    .name           = "libdirac",
396
+    .type           = AVMEDIA_TYPE_VIDEO,
397
+    .id             = CODEC_ID_DIRAC,
398
+    .priv_data_size = sizeof(FfmpegDiracEncoderParams),
399
+    .init           = libdirac_encode_init,
400
+    .encode         = libdirac_encode_frame,
401
+    .close          = libdirac_encode_close,
402 402
    .capabilities = CODEC_CAP_DELAY,
403 403
    .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_NONE},
404 404
    .long_name = NULL_IF_CONFIG_SMALL("libdirac Dirac 2.2"),
... ...
@@ -165,13 +165,13 @@ static const AVProfile profiles[] = {
165 165
 };
166 166
 
167 167
 AVCodec ff_libfaac_encoder = {
168
-    "libfaac",
169
-    AVMEDIA_TYPE_AUDIO,
170
-    CODEC_ID_AAC,
171
-    sizeof(FaacAudioContext),
172
-    Faac_encode_init,
173
-    Faac_encode_frame,
174
-    Faac_encode_close,
168
+    .name           = "libfaac",
169
+    .type           = AVMEDIA_TYPE_AUDIO,
170
+    .id             = CODEC_ID_AAC,
171
+    .priv_data_size = sizeof(FaacAudioContext),
172
+    .init           = Faac_encode_init,
173
+    .encode         = Faac_encode_frame,
174
+    .close          = Faac_encode_close,
175 175
     .capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY,
176 176
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
177 177
     .long_name = NULL_IF_CONFIG_SMALL("libfaac AAC (Advanced Audio Codec)"),
... ...
@@ -113,25 +113,23 @@ static int libgsm_encode_frame(AVCodecContext *avctx,
113 113
 
114 114
 
115 115
 AVCodec ff_libgsm_encoder = {
116
-    "libgsm",
117
-    AVMEDIA_TYPE_AUDIO,
118
-    CODEC_ID_GSM,
119
-    0,
120
-    libgsm_init,
121
-    libgsm_encode_frame,
122
-    libgsm_close,
116
+    .name           = "libgsm",
117
+    .type           = AVMEDIA_TYPE_AUDIO,
118
+    .id             = CODEC_ID_GSM,
119
+    .init           = libgsm_init,
120
+    .encode         = libgsm_encode_frame,
121
+    .close          = libgsm_close,
123 122
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
124 123
     .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
125 124
 };
126 125
 
127 126
 AVCodec ff_libgsm_ms_encoder = {
128
-    "libgsm_ms",
129
-    AVMEDIA_TYPE_AUDIO,
130
-    CODEC_ID_GSM_MS,
131
-    0,
132
-    libgsm_init,
133
-    libgsm_encode_frame,
134
-    libgsm_close,
127
+    .name           = "libgsm_ms",
128
+    .type           = AVMEDIA_TYPE_AUDIO,
129
+    .id             = CODEC_ID_GSM_MS,
130
+    .init           = libgsm_init,
131
+    .encode         = libgsm_encode_frame,
132
+    .close          = libgsm_close,
135 133
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
136 134
     .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
137 135
 };
... ...
@@ -157,25 +155,21 @@ static int libgsm_decode_frame(AVCodecContext *avctx,
157 157
 }
158 158
 
159 159
 AVCodec ff_libgsm_decoder = {
160
-    "libgsm",
161
-    AVMEDIA_TYPE_AUDIO,
162
-    CODEC_ID_GSM,
163
-    0,
164
-    libgsm_init,
165
-    NULL,
166
-    libgsm_close,
167
-    libgsm_decode_frame,
160
+    .name           = "libgsm",
161
+    .type           = AVMEDIA_TYPE_AUDIO,
162
+    .id             = CODEC_ID_GSM,
163
+    .init           = libgsm_init,
164
+    .close          = libgsm_close,
165
+    .decode         = libgsm_decode_frame,
168 166
     .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
169 167
 };
170 168
 
171 169
 AVCodec ff_libgsm_ms_decoder = {
172
-    "libgsm_ms",
173
-    AVMEDIA_TYPE_AUDIO,
174
-    CODEC_ID_GSM_MS,
175
-    0,
176
-    libgsm_init,
177
-    NULL,
178
-    libgsm_close,
179
-    libgsm_decode_frame,
170
+    .name           = "libgsm_ms",
171
+    .type           = AVMEDIA_TYPE_AUDIO,
172
+    .id             = CODEC_ID_GSM_MS,
173
+    .init           = libgsm_init,
174
+    .close          = libgsm_close,
175
+    .decode         = libgsm_decode_frame,
180 176
     .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
181 177
 };
... ...
@@ -269,13 +269,13 @@ static av_cold int MP3lame_encode_close(AVCodecContext *avctx)
269 269
 
270 270
 
271 271
 AVCodec ff_libmp3lame_encoder = {
272
-    "libmp3lame",
273
-    AVMEDIA_TYPE_AUDIO,
274
-    CODEC_ID_MP3,
275
-    sizeof(Mp3AudioContext),
276
-    MP3lame_encode_init,
277
-    MP3lame_encode_frame,
278
-    MP3lame_encode_close,
272
+    .name           = "libmp3lame",
273
+    .type           = AVMEDIA_TYPE_AUDIO,
274
+    .id             = CODEC_ID_MP3,
275
+    .priv_data_size = sizeof(Mp3AudioContext),
276
+    .init           = MP3lame_encode_init,
277
+    .encode         = MP3lame_encode_frame,
278
+    .close          = MP3lame_encode_close,
279 279
     .capabilities= CODEC_CAP_DELAY,
280 280
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,
281 281
 #if 2147483647 == INT_MAX
... ...
@@ -158,14 +158,13 @@ static int amr_nb_decode_frame(AVCodecContext *avctx, void *data,
158 158
 }
159 159
 
160 160
 AVCodec ff_libopencore_amrnb_decoder = {
161
-    "libopencore_amrnb",
162
-    AVMEDIA_TYPE_AUDIO,
163
-    CODEC_ID_AMR_NB,
164
-    sizeof(AMRContext),
165
-    amr_nb_decode_init,
166
-    NULL,
167
-    amr_nb_decode_close,
168
-    amr_nb_decode_frame,
161
+    .name           = "libopencore_amrnb",
162
+    .type           = AVMEDIA_TYPE_AUDIO,
163
+    .id             = CODEC_ID_AMR_NB,
164
+    .priv_data_size = sizeof(AMRContext),
165
+    .init           = amr_nb_decode_init,
166
+    .close          = amr_nb_decode_close,
167
+    .decode         = amr_nb_decode_frame,
169 168
     .long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band"),
170 169
 };
171 170
 
... ...
@@ -230,14 +229,13 @@ static int amr_nb_encode_frame(AVCodecContext *avctx,
230 230
 }
231 231
 
232 232
 AVCodec ff_libopencore_amrnb_encoder = {
233
-    "libopencore_amrnb",
234
-    AVMEDIA_TYPE_AUDIO,
235
-    CODEC_ID_AMR_NB,
236
-    sizeof(AMRContext),
237
-    amr_nb_encode_init,
238
-    amr_nb_encode_frame,
239
-    amr_nb_encode_close,
240
-    NULL,
233
+    .name           = "libopencore_amrnb",
234
+    .type           = AVMEDIA_TYPE_AUDIO,
235
+    .id             = CODEC_ID_AMR_NB,
236
+    .priv_data_size = sizeof(AMRContext),
237
+    .init           = amr_nb_encode_init,
238
+    .encode         = amr_nb_encode_frame,
239
+    .close          = amr_nb_encode_close,
241 240
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
242 241
     .long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band"),
243 242
     .priv_class = &class,
... ...
@@ -308,14 +306,13 @@ static int amr_wb_decode_close(AVCodecContext *avctx)
308 308
 }
309 309
 
310 310
 AVCodec ff_libopencore_amrwb_decoder = {
311
-    "libopencore_amrwb",
312
-    AVMEDIA_TYPE_AUDIO,
313
-    CODEC_ID_AMR_WB,
314
-    sizeof(AMRWBContext),
315
-    amr_wb_decode_init,
316
-    NULL,
317
-    amr_wb_decode_close,
318
-    amr_wb_decode_frame,
311
+    .name           = "libopencore_amrwb",
312
+    .type           = AVMEDIA_TYPE_AUDIO,
313
+    .id             = CODEC_ID_AMR_WB,
314
+    .priv_data_size = sizeof(AMRWBContext),
315
+    .init           = amr_wb_decode_init,
316
+    .close          = amr_wb_decode_close,
317
+    .decode         = amr_wb_decode_frame,
319 318
     .long_name = NULL_IF_CONFIG_SMALL("OpenCORE Adaptive Multi-Rate (AMR) Wide-Band"),
320 319
 };
321 320
 
... ...
@@ -345,15 +345,14 @@ static void libschroedinger_flush(AVCodecContext *avccontext)
345 345
 }
346 346
 
347 347
 AVCodec ff_libschroedinger_decoder = {
348
-    "libschroedinger",
349
-    AVMEDIA_TYPE_VIDEO,
350
-    CODEC_ID_DIRAC,
351
-    sizeof(FfmpegSchroDecoderParams),
352
-    libschroedinger_decode_init,
353
-    NULL,
354
-    libschroedinger_decode_close,
355
-    libschroedinger_decode_frame,
356
-    CODEC_CAP_DELAY,
348
+    .name           = "libschroedinger",
349
+    .type           = AVMEDIA_TYPE_VIDEO,
350
+    .id             = CODEC_ID_DIRAC,
351
+    .priv_data_size = sizeof(FfmpegSchroDecoderParams),
352
+    .init           = libschroedinger_decode_init,
353
+    .close          = libschroedinger_decode_close,
354
+    .decode         = libschroedinger_decode_frame,
355
+    .capabilities   = CODEC_CAP_DELAY,
357 356
     .flush = libschroedinger_flush,
358 357
     .long_name = NULL_IF_CONFIG_SMALL("libschroedinger Dirac 2.2"),
359 358
 };
... ...
@@ -423,13 +423,13 @@ static int libschroedinger_encode_close(AVCodecContext *avccontext)
423 423
 
424 424
 
425 425
 AVCodec ff_libschroedinger_encoder = {
426
-    "libschroedinger",
427
-    AVMEDIA_TYPE_VIDEO,
428
-    CODEC_ID_DIRAC,
429
-    sizeof(FfmpegSchroEncoderParams),
430
-    libschroedinger_encode_init,
431
-    libschroedinger_encode_frame,
432
-    libschroedinger_encode_close,
426
+    .name           = "libschroedinger",
427
+    .type           = AVMEDIA_TYPE_VIDEO,
428
+    .id             = CODEC_ID_DIRAC,
429
+    .priv_data_size = sizeof(FfmpegSchroEncoderParams),
430
+    .init           = libschroedinger_encode_init,
431
+    .encode         = libschroedinger_encode_frame,
432
+    .close          = libschroedinger_encode_close,
433 433
    .capabilities = CODEC_CAP_DELAY,
434 434
    .pix_fmts     = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_NONE},
435 435
    .long_name    = NULL_IF_CONFIG_SMALL("libschroedinger Dirac 2.2"),
... ...
@@ -139,13 +139,12 @@ static av_cold int libspeex_decode_close(AVCodecContext *avctx)
139 139
 }
140 140
 
141 141
 AVCodec ff_libspeex_decoder = {
142
-    "libspeex",
143
-    AVMEDIA_TYPE_AUDIO,
144
-    CODEC_ID_SPEEX,
145
-    sizeof(LibSpeexContext),
146
-    libspeex_decode_init,
147
-    NULL,
148
-    libspeex_decode_close,
149
-    libspeex_decode_frame,
142
+    .name           = "libspeex",
143
+    .type           = AVMEDIA_TYPE_AUDIO,
144
+    .id             = CODEC_ID_SPEEX,
145
+    .priv_data_size = sizeof(LibSpeexContext),
146
+    .init           = libspeex_decode_init,
147
+    .close          = libspeex_decode_close,
148
+    .decode         = libspeex_decode_frame,
150 149
     .long_name = NULL_IF_CONFIG_SMALL("libspeex Speex"),
151 150
 };
... ...
@@ -116,14 +116,13 @@ static int aac_encode_frame(AVCodecContext *avctx,
116 116
 }
117 117
 
118 118
 AVCodec ff_libvo_aacenc_encoder = {
119
-    "libvo_aacenc",
120
-    AVMEDIA_TYPE_AUDIO,
121
-    CODEC_ID_AAC,
122
-    sizeof(AACContext),
123
-    aac_encode_init,
124
-    aac_encode_frame,
125
-    aac_encode_close,
126
-    NULL,
119
+    .name           = "libvo_aacenc",
120
+    .type           = AVMEDIA_TYPE_AUDIO,
121
+    .id             = CODEC_ID_AAC,
122
+    .priv_data_size = sizeof(AACContext),
123
+    .init           = aac_encode_init,
124
+    .encode         = aac_encode_frame,
125
+    .close          = aac_encode_close,
127 126
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
128 127
     .long_name = NULL_IF_CONFIG_SMALL("Android VisualOn AAC"),
129 128
 };
... ...
@@ -118,14 +118,13 @@ static int amr_wb_encode_frame(AVCodecContext *avctx,
118 118
 }
119 119
 
120 120
 AVCodec ff_libvo_amrwbenc_encoder = {
121
-    "libvo_amrwbenc",
122
-    AVMEDIA_TYPE_AUDIO,
123
-    CODEC_ID_AMR_WB,
124
-    sizeof(AMRWBContext),
125
-    amr_wb_encode_init,
126
-    amr_wb_encode_frame,
127
-    amr_wb_encode_close,
128
-    NULL,
121
+    .name           = "libvo_amrwbenc",
122
+    .type           = AVMEDIA_TYPE_AUDIO,
123
+    .id             = CODEC_ID_AMR_WB,
124
+    .priv_data_size = sizeof(AMRWBContext),
125
+    .init           = amr_wb_encode_init,
126
+    .encode         = amr_wb_encode_frame,
127
+    .close          = amr_wb_encode_close,
129 128
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
130 129
     .long_name = NULL_IF_CONFIG_SMALL("Android VisualOn Adaptive Multi-Rate "
131 130
                                       "(AMR) Wide-Band"),
... ...
@@ -112,14 +112,12 @@ static av_cold int vp8_free(AVCodecContext *avctx)
112 112
 }
113 113
 
114 114
 AVCodec ff_libvpx_decoder = {
115
-    "libvpx",
116
-    AVMEDIA_TYPE_VIDEO,
117
-    CODEC_ID_VP8,
118
-    sizeof(VP8Context),
119
-    vp8_init,
120
-    NULL, /* encode */
121
-    vp8_free,
122
-    vp8_decode,
123
-    0, /* capabilities */
115
+    .name           = "libvpx",
116
+    .type           = AVMEDIA_TYPE_VIDEO,
117
+    .id             = CODEC_ID_VP8,
118
+    .priv_data_size = sizeof(VP8Context),
119
+    .init           = vp8_init,
120
+    .close          = vp8_free,
121
+    .decode         = vp8_decode,
124 122
     .long_name = NULL_IF_CONFIG_SMALL("libvpx VP8"),
125 123
 };
... ...
@@ -546,15 +546,14 @@ static int vp8_encode(AVCodecContext *avctx, uint8_t *buf, int buf_size,
546 546
 }
547 547
 
548 548
 AVCodec ff_libvpx_encoder = {
549
-    "libvpx",
550
-    AVMEDIA_TYPE_VIDEO,
551
-    CODEC_ID_VP8,
552
-    sizeof(VP8Context),
553
-    vp8_init,
554
-    vp8_encode,
555
-    vp8_free,
556
-    NULL,
557
-    CODEC_CAP_DELAY,
549
+    .name           = "libvpx",
550
+    .type           = AVMEDIA_TYPE_VIDEO,
551
+    .id             = CODEC_ID_VP8,
552
+    .priv_data_size = sizeof(VP8Context),
553
+    .init           = vp8_init,
554
+    .encode         = vp8_encode,
555
+    .close          = vp8_free,
556
+    .capabilities   = CODEC_CAP_DELAY,
558 557
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
559 558
     .long_name = NULL_IF_CONFIG_SMALL("libvpx VP8"),
560 559
     .priv_class= &class,
... ...
@@ -810,13 +810,13 @@ int xvid_ff_2pass(void *ref, int cmd, void *p1, void *p2) {
810 810
  * Xvid codec definition for libavcodec.
811 811
  */
812 812
 AVCodec ff_libxvid_encoder = {
813
-    "libxvid",
814
-    AVMEDIA_TYPE_VIDEO,
815
-    CODEC_ID_MPEG4,
816
-    sizeof(struct xvid_context),
817
-    xvid_encode_init,
818
-    xvid_encode_frame,
819
-    xvid_encode_close,
813
+    .name           = "libxvid",
814
+    .type           = AVMEDIA_TYPE_VIDEO,
815
+    .id             = CODEC_ID_MPEG4,
816
+    .priv_data_size = sizeof(struct xvid_context),
817
+    .init           = xvid_encode_init,
818
+    .encode         = xvid_encode_frame,
819
+    .close          = xvid_encode_close,
820 820
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
821 821
     .long_name= NULL_IF_CONFIG_SMALL("libxvidcore MPEG-4 part 2"),
822 822
 };
... ...
@@ -288,14 +288,13 @@ static av_cold int decode_end(AVCodecContext *avctx){
288 288
 }
289 289
 
290 290
 AVCodec ff_loco_decoder = {
291
-    "loco",
292
-    AVMEDIA_TYPE_VIDEO,
293
-    CODEC_ID_LOCO,
294
-    sizeof(LOCOContext),
295
-    decode_init,
296
-    NULL,
297
-    decode_end,
298
-    decode_frame,
299
-    CODEC_CAP_DR1,
291
+    .name           = "loco",
292
+    .type           = AVMEDIA_TYPE_VIDEO,
293
+    .id             = CODEC_ID_LOCO,
294
+    .priv_data_size = sizeof(LOCOContext),
295
+    .init           = decode_init,
296
+    .close          = decode_end,
297
+    .decode         = decode_frame,
298
+    .capabilities   = CODEC_CAP_DR1,
300 299
     .long_name = NULL_IF_CONFIG_SMALL("LOCO"),
301 300
 };
... ...
@@ -280,26 +280,22 @@ static int mace_decode_frame(AVCodecContext *avctx,
280 280
 }
281 281
 
282 282
 AVCodec ff_mace3_decoder = {
283
-    "mace3",
284
-    AVMEDIA_TYPE_AUDIO,
285
-    CODEC_ID_MACE3,
286
-    sizeof(MACEContext),
287
-    mace_decode_init,
288
-    NULL,
289
-    NULL,
290
-    mace_decode_frame,
283
+    .name           = "mace3",
284
+    .type           = AVMEDIA_TYPE_AUDIO,
285
+    .id             = CODEC_ID_MACE3,
286
+    .priv_data_size = sizeof(MACEContext),
287
+    .init           = mace_decode_init,
288
+    .decode         = mace_decode_frame,
291 289
     .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 3:1"),
292 290
 };
293 291
 
294 292
 AVCodec ff_mace6_decoder = {
295
-    "mace6",
296
-    AVMEDIA_TYPE_AUDIO,
297
-    CODEC_ID_MACE6,
298
-    sizeof(MACEContext),
299
-    mace_decode_init,
300
-    NULL,
301
-    NULL,
302
-    mace_decode_frame,
293
+    .name           = "mace6",
294
+    .type           = AVMEDIA_TYPE_AUDIO,
295
+    .id             = CODEC_ID_MACE6,
296
+    .priv_data_size = sizeof(MACEContext),
297
+    .init           = mace_decode_init,
298
+    .decode         = mace_decode_frame,
303 299
     .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 6:1"),
304 300
 };
305 301
 
... ...
@@ -267,15 +267,14 @@ static av_cold int decode_end(AVCodecContext *avctx){
267 267
 }
268 268
 
269 269
 AVCodec ff_mdec_decoder = {
270
-    "mdec",
271
-    AVMEDIA_TYPE_VIDEO,
272
-    CODEC_ID_MDEC,
273
-    sizeof(MDECContext),
274
-    decode_init,
275
-    NULL,
276
-    decode_end,
277
-    decode_frame,
278
-    CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
270
+    .name           = "mdec",
271
+    .type           = AVMEDIA_TYPE_VIDEO,
272
+    .id             = CODEC_ID_MDEC,
273
+    .priv_data_size = sizeof(MDECContext),
274
+    .init           = decode_init,
275
+    .close          = decode_end,
276
+    .decode         = decode_frame,
277
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
279 278
     .long_name= NULL_IF_CONFIG_SMALL("Sony PlayStation MDEC (Motion DECoder)"),
280 279
     .init_thread_copy= ONLY_IF_THREADS_ENABLED(decode_init_thread_copy)
281 280
 };
... ...
@@ -416,15 +416,14 @@ static av_cold int mimic_decode_end(AVCodecContext *avctx)
416 416
 }
417 417
 
418 418
 AVCodec ff_mimic_decoder = {
419
-    "mimic",
420
-    AVMEDIA_TYPE_VIDEO,
421
-    CODEC_ID_MIMIC,
422
-    sizeof(MimicContext),
423
-    mimic_decode_init,
424
-    NULL,
425
-    mimic_decode_end,
426
-    mimic_decode_frame,
427
-    CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
419
+    .name           = "mimic",
420
+    .type           = AVMEDIA_TYPE_VIDEO,
421
+    .id             = CODEC_ID_MIMIC,
422
+    .priv_data_size = sizeof(MimicContext),
423
+    .init           = mimic_decode_init,
424
+    .close          = mimic_decode_end,
425
+    .decode         = mimic_decode_frame,
426
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
428 427
     .long_name = NULL_IF_CONFIG_SMALL("Mimic"),
429 428
     .update_thread_context = ONLY_IF_THREADS_ENABLED(mimic_decode_update_thread_context)
430 429
 };
... ...
@@ -146,16 +146,14 @@ read_header:
146 146
 }
147 147
 
148 148
 AVCodec ff_mjpegb_decoder = {
149
-    "mjpegb",
150
-    AVMEDIA_TYPE_VIDEO,
151
-    CODEC_ID_MJPEGB,
152
-    sizeof(MJpegDecodeContext),
153
-    ff_mjpeg_decode_init,
154
-    NULL,
155
-    ff_mjpeg_decode_end,
156
-    mjpegb_decode_frame,
157
-    CODEC_CAP_DR1,
158
-    NULL,
149
+    .name           = "mjpegb",
150
+    .type           = AVMEDIA_TYPE_VIDEO,
151
+    .id             = CODEC_ID_MJPEGB,
152
+    .priv_data_size = sizeof(MJpegDecodeContext),
153
+    .init           = ff_mjpeg_decode_init,
154
+    .close          = ff_mjpeg_decode_end,
155
+    .decode         = mjpegb_decode_frame,
156
+    .capabilities   = CODEC_CAP_DR1,
159 157
     .max_lowres = 3,
160 158
     .long_name = NULL_IF_CONFIG_SMALL("Apple MJPEG-B"),
161 159
 };
... ...
@@ -1578,31 +1578,27 @@ av_cold int ff_mjpeg_decode_end(AVCodecContext *avctx)
1578 1578
 }
1579 1579
 
1580 1580
 AVCodec ff_mjpeg_decoder = {
1581
-    "mjpeg",
1582
-    AVMEDIA_TYPE_VIDEO,
1583
-    CODEC_ID_MJPEG,
1584
-    sizeof(MJpegDecodeContext),
1585
-    ff_mjpeg_decode_init,
1586
-    NULL,
1587
-    ff_mjpeg_decode_end,
1588
-    ff_mjpeg_decode_frame,
1589
-    CODEC_CAP_DR1,
1590
-    NULL,
1581
+    .name           = "mjpeg",
1582
+    .type           = AVMEDIA_TYPE_VIDEO,
1583
+    .id             = CODEC_ID_MJPEG,
1584
+    .priv_data_size = sizeof(MJpegDecodeContext),
1585
+    .init           = ff_mjpeg_decode_init,
1586
+    .close          = ff_mjpeg_decode_end,
1587
+    .decode         = ff_mjpeg_decode_frame,
1588
+    .capabilities   = CODEC_CAP_DR1,
1591 1589
     .max_lowres = 3,
1592 1590
     .long_name = NULL_IF_CONFIG_SMALL("MJPEG (Motion JPEG)"),
1593 1591
 };
1594 1592
 
1595 1593
 AVCodec ff_thp_decoder = {
1596
-    "thp",
1597
-    AVMEDIA_TYPE_VIDEO,
1598
-    CODEC_ID_THP,
1599
-    sizeof(MJpegDecodeContext),
1600
-    ff_mjpeg_decode_init,
1601
-    NULL,
1602
-    ff_mjpeg_decode_end,
1603
-    ff_mjpeg_decode_frame,
1604
-    CODEC_CAP_DR1,
1605
-    NULL,
1594
+    .name           = "thp",
1595
+    .type           = AVMEDIA_TYPE_VIDEO,
1596
+    .id             = CODEC_ID_THP,
1597
+    .priv_data_size = sizeof(MJpegDecodeContext),
1598
+    .init           = ff_mjpeg_decode_init,
1599
+    .close          = ff_mjpeg_decode_end,
1600
+    .decode         = ff_mjpeg_decode_frame,
1601
+    .capabilities   = CODEC_CAP_DR1,
1606 1602
     .max_lowres = 3,
1607 1603
     .long_name = NULL_IF_CONFIG_SMALL("Nintendo Gamecube THP video"),
1608 1604
 };
... ...
@@ -446,13 +446,13 @@ void ff_mjpeg_encode_mb(MpegEncContext *s, DCTELEM block[6][64])
446 446
 }
447 447
 
448 448
 AVCodec ff_mjpeg_encoder = {
449
-    "mjpeg",
450
-    AVMEDIA_TYPE_VIDEO,
451
-    CODEC_ID_MJPEG,
452
-    sizeof(MpegEncContext),
453
-    MPV_encode_init,
454
-    MPV_encode_picture,
455
-    MPV_encode_end,
449
+    .name           = "mjpeg",
450
+    .type           = AVMEDIA_TYPE_VIDEO,
451
+    .id             = CODEC_ID_MJPEG,
452
+    .priv_data_size = sizeof(MpegEncContext),
453
+    .init           = MPV_encode_init,
454
+    .encode         = MPV_encode_picture,
455
+    .close          = MPV_encode_end,
456 456
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_NONE},
457 457
     .long_name= NULL_IF_CONFIG_SMALL("MJPEG (Motion JPEG)"),
458 458
 };
... ...
@@ -1179,27 +1179,23 @@ error:
1179 1179
 }
1180 1180
 
1181 1181
 AVCodec ff_mlp_decoder = {
1182
-    "mlp",
1183
-    AVMEDIA_TYPE_AUDIO,
1184
-    CODEC_ID_MLP,
1185
-    sizeof(MLPDecodeContext),
1186
-    mlp_decode_init,
1187
-    NULL,
1188
-    NULL,
1189
-    read_access_unit,
1182
+    .name           = "mlp",
1183
+    .type           = AVMEDIA_TYPE_AUDIO,
1184
+    .id             = CODEC_ID_MLP,
1185
+    .priv_data_size = sizeof(MLPDecodeContext),
1186
+    .init           = mlp_decode_init,
1187
+    .decode         = read_access_unit,
1190 1188
     .long_name = NULL_IF_CONFIG_SMALL("MLP (Meridian Lossless Packing)"),
1191 1189
 };
1192 1190
 
1193 1191
 #if CONFIG_TRUEHD_DECODER
1194 1192
 AVCodec ff_truehd_decoder = {
1195
-    "truehd",
1196
-    AVMEDIA_TYPE_AUDIO,
1197
-    CODEC_ID_TRUEHD,
1198
-    sizeof(MLPDecodeContext),
1199
-    mlp_decode_init,
1200
-    NULL,
1201
-    NULL,
1202
-    read_access_unit,
1193
+    .name           = "truehd",
1194
+    .type           = AVMEDIA_TYPE_AUDIO,
1195
+    .id             = CODEC_ID_TRUEHD,
1196
+    .priv_data_size = sizeof(MLPDecodeContext),
1197
+    .init           = mlp_decode_init,
1198
+    .decode         = read_access_unit,
1203 1199
     .long_name = NULL_IF_CONFIG_SMALL("TrueHD"),
1204 1200
 };
1205 1201
 #endif /* CONFIG_TRUEHD_DECODER */
... ...
@@ -215,14 +215,13 @@ static av_cold int mm_decode_end(AVCodecContext *avctx)
215 215
 }
216 216
 
217 217
 AVCodec ff_mmvideo_decoder = {
218
-    "mmvideo",
219
-    AVMEDIA_TYPE_VIDEO,
220
-    CODEC_ID_MMVIDEO,
221
-    sizeof(MmContext),
222
-    mm_decode_init,
223
-    NULL,
224
-    mm_decode_end,
225
-    mm_decode_frame,
226
-    CODEC_CAP_DR1,
218
+    .name           = "mmvideo",
219
+    .type           = AVMEDIA_TYPE_VIDEO,
220
+    .id             = CODEC_ID_MMVIDEO,
221
+    .priv_data_size = sizeof(MmContext),
222
+    .init           = mm_decode_init,
223
+    .close          = mm_decode_end,
224
+    .decode         = mm_decode_frame,
225
+    .capabilities   = CODEC_CAP_DR1,
227 226
     .long_name = NULL_IF_CONFIG_SMALL("American Laser Games MM Video"),
228 227
 };
... ...
@@ -304,14 +304,13 @@ static av_cold int mp_decode_end(AVCodecContext *avctx)
304 304
 }
305 305
 
306 306
 AVCodec ff_motionpixels_decoder = {
307
-    "motionpixels",
308
-    AVMEDIA_TYPE_VIDEO,
309
-    CODEC_ID_MOTIONPIXELS,
310
-    sizeof(MotionPixelsContext),
311
-    mp_decode_init,
312
-    NULL,
313
-    mp_decode_end,
314
-    mp_decode_frame,
315
-    CODEC_CAP_DR1,
307
+    .name           = "motionpixels",
308
+    .type           = AVMEDIA_TYPE_VIDEO,
309
+    .id             = CODEC_ID_MOTIONPIXELS,
310
+    .priv_data_size = sizeof(MotionPixelsContext),
311
+    .init           = mp_decode_init,
312
+    .close          = mp_decode_end,
313
+    .decode         = mp_decode_frame,
314
+    .capabilities   = CODEC_CAP_DR1,
316 315
     .long_name = NULL_IF_CONFIG_SMALL("Motion Pixels video"),
317 316
 };
... ...
@@ -291,14 +291,12 @@ static void mpc7_decode_flush(AVCodecContext *avctx)
291 291
 }
292 292
 
293 293
 AVCodec ff_mpc7_decoder = {
294
-    "mpc7",
295
-    AVMEDIA_TYPE_AUDIO,
296
-    CODEC_ID_MUSEPACK7,
297
-    sizeof(MPCContext),
298
-    mpc7_decode_init,
299
-    NULL,
300
-    NULL,
301
-    mpc7_decode_frame,
294
+    .name           = "mpc7",
295
+    .type           = AVMEDIA_TYPE_AUDIO,
296
+    .id             = CODEC_ID_MUSEPACK7,
297
+    .priv_data_size = sizeof(MPCContext),
298
+    .init           = mpc7_decode_init,
299
+    .decode         = mpc7_decode_frame,
302 300
     .flush = mpc7_decode_flush,
303 301
     .long_name = NULL_IF_CONFIG_SMALL("Musepack SV7"),
304 302
 };
... ...
@@ -406,13 +406,11 @@ static int mpc8_decode_frame(AVCodecContext * avctx,
406 406
 }
407 407
 
408 408
 AVCodec ff_mpc8_decoder = {
409
-    "mpc8",
410
-    AVMEDIA_TYPE_AUDIO,
411
-    CODEC_ID_MUSEPACK8,
412
-    sizeof(MPCContext),
413
-    mpc8_decode_init,
414
-    NULL,
415
-    NULL,
416
-    mpc8_decode_frame,
409
+    .name           = "mpc8",
410
+    .type           = AVMEDIA_TYPE_AUDIO,
411
+    .id             = CODEC_ID_MUSEPACK8,
412
+    .priv_data_size = sizeof(MPCContext),
413
+    .init           = mpc8_decode_init,
414
+    .decode         = mpc8_decode_frame,
417 415
     .long_name = NULL_IF_CONFIG_SMALL("Musepack SV8"),
418 416
 };
... ...
@@ -2569,15 +2569,14 @@ static const AVProfile mpeg2_video_profiles[] = {
2569 2569
 
2570 2570
 
2571 2571
 AVCodec ff_mpeg1video_decoder = {
2572
-    "mpeg1video",
2573
-    AVMEDIA_TYPE_VIDEO,
2574
-    CODEC_ID_MPEG1VIDEO,
2575
-    sizeof(Mpeg1Context),
2576
-    mpeg_decode_init,
2577
-    NULL,
2578
-    mpeg_decode_end,
2579
-    mpeg_decode_frame,
2580
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
2572
+    .name           = "mpeg1video",
2573
+    .type           = AVMEDIA_TYPE_VIDEO,
2574
+    .id             = CODEC_ID_MPEG1VIDEO,
2575
+    .priv_data_size = sizeof(Mpeg1Context),
2576
+    .init           = mpeg_decode_init,
2577
+    .close          = mpeg_decode_end,
2578
+    .decode         = mpeg_decode_frame,
2579
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
2581 2580
     .flush= flush,
2582 2581
     .max_lowres= 3,
2583 2582
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-1 video"),
... ...
@@ -2585,15 +2584,14 @@ AVCodec ff_mpeg1video_decoder = {
2585 2585
 };
2586 2586
 
2587 2587
 AVCodec ff_mpeg2video_decoder = {
2588
-    "mpeg2video",
2589
-    AVMEDIA_TYPE_VIDEO,
2590
-    CODEC_ID_MPEG2VIDEO,
2591
-    sizeof(Mpeg1Context),
2592
-    mpeg_decode_init,
2593
-    NULL,
2594
-    mpeg_decode_end,
2595
-    mpeg_decode_frame,
2596
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
2588
+    .name           = "mpeg2video",
2589
+    .type           = AVMEDIA_TYPE_VIDEO,
2590
+    .id             = CODEC_ID_MPEG2VIDEO,
2591
+    .priv_data_size = sizeof(Mpeg1Context),
2592
+    .init           = mpeg_decode_init,
2593
+    .close          = mpeg_decode_end,
2594
+    .decode         = mpeg_decode_frame,
2595
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
2597 2596
     .flush= flush,
2598 2597
     .max_lowres= 3,
2599 2598
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-2 video"),
... ...
@@ -2602,15 +2600,14 @@ AVCodec ff_mpeg2video_decoder = {
2602 2602
 
2603 2603
 //legacy decoder
2604 2604
 AVCodec ff_mpegvideo_decoder = {
2605
-    "mpegvideo",
2606
-    AVMEDIA_TYPE_VIDEO,
2607
-    CODEC_ID_MPEG2VIDEO,
2608
-    sizeof(Mpeg1Context),
2609
-    mpeg_decode_init,
2610
-    NULL,
2611
-    mpeg_decode_end,
2612
-    mpeg_decode_frame,
2613
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
2605
+    .name           = "mpegvideo",
2606
+    .type           = AVMEDIA_TYPE_VIDEO,
2607
+    .id             = CODEC_ID_MPEG2VIDEO,
2608
+    .priv_data_size = sizeof(Mpeg1Context),
2609
+    .init           = mpeg_decode_init,
2610
+    .close          = mpeg_decode_end,
2611
+    .decode         = mpeg_decode_frame,
2612
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
2614 2613
     .flush= flush,
2615 2614
     .max_lowres= 3,
2616 2615
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-1 video"),
... ...
@@ -2634,15 +2631,14 @@ static av_cold int mpeg_mc_decode_init(AVCodecContext *avctx){
2634 2634
 }
2635 2635
 
2636 2636
 AVCodec ff_mpeg_xvmc_decoder = {
2637
-    "mpegvideo_xvmc",
2638
-    AVMEDIA_TYPE_VIDEO,
2639
-    CODEC_ID_MPEG2VIDEO_XVMC,
2640
-    sizeof(Mpeg1Context),
2641
-    mpeg_mc_decode_init,
2642
-    NULL,
2643
-    mpeg_decode_end,
2644
-    mpeg_decode_frame,
2645
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED| CODEC_CAP_HWACCEL | CODEC_CAP_DELAY,
2637
+    .name           = "mpegvideo_xvmc",
2638
+    .type           = AVMEDIA_TYPE_VIDEO,
2639
+    .id             = CODEC_ID_MPEG2VIDEO_XVMC,
2640
+    .priv_data_size = sizeof(Mpeg1Context),
2641
+    .init           = mpeg_mc_decode_init,
2642
+    .close          = mpeg_decode_end,
2643
+    .decode         = mpeg_decode_frame,
2644
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED| CODEC_CAP_HWACCEL | CODEC_CAP_DELAY,
2646 2645
     .flush= flush,
2647 2646
     .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video XvMC (X-Video Motion Compensation)"),
2648 2647
 };
... ...
@@ -2651,15 +2647,14 @@ AVCodec ff_mpeg_xvmc_decoder = {
2651 2651
 
2652 2652
 #if CONFIG_MPEG_VDPAU_DECODER
2653 2653
 AVCodec ff_mpeg_vdpau_decoder = {
2654
-    "mpegvideo_vdpau",
2655
-    AVMEDIA_TYPE_VIDEO,
2656
-    CODEC_ID_MPEG2VIDEO,
2657
-    sizeof(Mpeg1Context),
2658
-    mpeg_decode_init,
2659
-    NULL,
2660
-    mpeg_decode_end,
2661
-    mpeg_decode_frame,
2662
-    CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_HWACCEL_VDPAU | CODEC_CAP_DELAY,
2654
+    .name           = "mpegvideo_vdpau",
2655
+    .type           = AVMEDIA_TYPE_VIDEO,
2656
+    .id             = CODEC_ID_MPEG2VIDEO,
2657
+    .priv_data_size = sizeof(Mpeg1Context),
2658
+    .init           = mpeg_decode_init,
2659
+    .close          = mpeg_decode_end,
2660
+    .decode         = mpeg_decode_frame,
2661
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_HWACCEL_VDPAU | CODEC_CAP_DELAY,
2663 2662
     .flush= flush,
2664 2663
     .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video (VDPAU acceleration)"),
2665 2664
 };
... ...
@@ -2667,15 +2662,14 @@ AVCodec ff_mpeg_vdpau_decoder = {
2667 2667
 
2668 2668
 #if CONFIG_MPEG1_VDPAU_DECODER
2669 2669
 AVCodec ff_mpeg1_vdpau_decoder = {
2670
-    "mpeg1video_vdpau",
2671
-    AVMEDIA_TYPE_VIDEO,
2672
-    CODEC_ID_MPEG1VIDEO,
2673
-    sizeof(Mpeg1Context),
2674
-    mpeg_decode_init,
2675
-    NULL,
2676
-    mpeg_decode_end,
2677
-    mpeg_decode_frame,
2678
-    CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_HWACCEL_VDPAU | CODEC_CAP_DELAY,
2670
+    .name           = "mpeg1video_vdpau",
2671
+    .type           = AVMEDIA_TYPE_VIDEO,
2672
+    .id             = CODEC_ID_MPEG1VIDEO,
2673
+    .priv_data_size = sizeof(Mpeg1Context),
2674
+    .init           = mpeg_decode_init,
2675
+    .close          = mpeg_decode_end,
2676
+    .decode         = mpeg_decode_frame,
2677
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_HWACCEL_VDPAU | CODEC_CAP_DELAY,
2679 2678
     .flush= flush,
2680 2679
     .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video (VDPAU acceleration)"),
2681 2680
 };
... ...
@@ -926,13 +926,13 @@ static void mpeg1_encode_block(MpegEncContext *s,
926 926
 }
927 927
 
928 928
 AVCodec ff_mpeg1video_encoder = {
929
-    "mpeg1video",
930
-    AVMEDIA_TYPE_VIDEO,
931
-    CODEC_ID_MPEG1VIDEO,
932
-    sizeof(MpegEncContext),
933
-    encode_init,
934
-    MPV_encode_picture,
935
-    MPV_encode_end,
929
+    .name           = "mpeg1video",
930
+    .type           = AVMEDIA_TYPE_VIDEO,
931
+    .id             = CODEC_ID_MPEG1VIDEO,
932
+    .priv_data_size = sizeof(MpegEncContext),
933
+    .init           = encode_init,
934
+    .encode         = MPV_encode_picture,
935
+    .close          = MPV_encode_end,
936 936
     .supported_framerates= ff_frame_rate_tab+1,
937 937
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
938 938
     .capabilities= CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
... ...
@@ -940,13 +940,13 @@ AVCodec ff_mpeg1video_encoder = {
940 940
 };
941 941
 
942 942
 AVCodec ff_mpeg2video_encoder = {
943
-    "mpeg2video",
944
-    AVMEDIA_TYPE_VIDEO,
945
-    CODEC_ID_MPEG2VIDEO,
946
-    sizeof(MpegEncContext),
947
-    encode_init,
948
-    MPV_encode_picture,
949
-    MPV_encode_end,
943
+    .name           = "mpeg2video",
944
+    .type           = AVMEDIA_TYPE_VIDEO,
945
+    .id             = CODEC_ID_MPEG2VIDEO,
946
+    .priv_data_size = sizeof(MpegEncContext),
947
+    .init           = encode_init,
948
+    .encode         = MPV_encode_picture,
949
+    .close          = MPV_encode_end,
950 950
     .supported_framerates= ff_frame_rate_tab+1,
951 951
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_NONE},
952 952
     .capabilities= CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
... ...
@@ -2277,15 +2277,14 @@ static const AVProfile mpeg4_video_profiles[] = {
2277 2277
 };
2278 2278
 
2279 2279
 AVCodec ff_mpeg4_decoder = {
2280
-    "mpeg4",
2281
-    AVMEDIA_TYPE_VIDEO,
2282
-    CODEC_ID_MPEG4,
2283
-    sizeof(MpegEncContext),
2284
-    decode_init,
2285
-    NULL,
2286
-    ff_h263_decode_end,
2287
-    ff_h263_decode_frame,
2288
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_FRAME_THREADS,
2280
+    .name           = "mpeg4",
2281
+    .type           = AVMEDIA_TYPE_VIDEO,
2282
+    .id             = CODEC_ID_MPEG4,
2283
+    .priv_data_size = sizeof(MpegEncContext),
2284
+    .init           = decode_init,
2285
+    .close          = ff_h263_decode_end,
2286
+    .decode         = ff_h263_decode_frame,
2287
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_FRAME_THREADS,
2289 2288
     .flush= ff_mpeg_flush,
2290 2289
     .max_lowres= 3,
2291 2290
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),
... ...
@@ -2297,15 +2296,14 @@ AVCodec ff_mpeg4_decoder = {
2297 2297
 
2298 2298
 #if CONFIG_MPEG4_VDPAU_DECODER
2299 2299
 AVCodec ff_mpeg4_vdpau_decoder = {
2300
-    "mpeg4_vdpau",
2301
-    AVMEDIA_TYPE_VIDEO,
2302
-    CODEC_ID_MPEG4,
2303
-    sizeof(MpegEncContext),
2304
-    decode_init,
2305
-    NULL,
2306
-    ff_h263_decode_end,
2307
-    ff_h263_decode_frame,
2308
-    CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
2300
+    .name           = "mpeg4_vdpau",
2301
+    .type           = AVMEDIA_TYPE_VIDEO,
2302
+    .id             = CODEC_ID_MPEG4,
2303
+    .priv_data_size = sizeof(MpegEncContext),
2304
+    .init           = decode_init,
2305
+    .close          = ff_h263_decode_end,
2306
+    .decode         = ff_h263_decode_frame,
2307
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
2309 2308
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 (VDPAU)"),
2310 2309
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_VDPAU_MPEG4, PIX_FMT_NONE},
2311 2310
 };
... ...
@@ -1285,13 +1285,13 @@ void ff_mpeg4_encode_video_packet_header(MpegEncContext *s)
1285 1285
 }
1286 1286
 
1287 1287
 AVCodec ff_mpeg4_encoder = {
1288
-    "mpeg4",
1289
-    AVMEDIA_TYPE_VIDEO,
1290
-    CODEC_ID_MPEG4,
1291
-    sizeof(MpegEncContext),
1292
-    encode_init,
1293
-    MPV_encode_picture,
1294
-    MPV_encode_end,
1288
+    .name           = "mpeg4",
1289
+    .type           = AVMEDIA_TYPE_VIDEO,
1290
+    .id             = CODEC_ID_MPEG4,
1291
+    .priv_data_size = sizeof(MpegEncContext),
1292
+    .init           = encode_init,
1293
+    .encode         = MPV_encode_picture,
1294
+    .close          = MPV_encode_end,
1295 1295
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
1296 1296
     .capabilities= CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
1297 1297
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),
... ...
@@ -764,14 +764,13 @@ static av_cold int MPA_encode_close(AVCodecContext *avctx)
764 764
 }
765 765
 
766 766
 AVCodec ff_mp2_encoder = {
767
-    "mp2",
768
-    AVMEDIA_TYPE_AUDIO,
769
-    CODEC_ID_MP2,
770
-    sizeof(MpegAudioContext),
771
-    MPA_encode_init,
772
-    MPA_encode_frame,
773
-    MPA_encode_close,
774
-    NULL,
767
+    .name           = "mp2",
768
+    .type           = AVMEDIA_TYPE_AUDIO,
769
+    .id             = CODEC_ID_MP2,
770
+    .priv_data_size = sizeof(MpegAudioContext),
771
+    .init           = MPA_encode_init,
772
+    .encode         = MPA_encode_frame,
773
+    .close          = MPA_encode_close,
775 774
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
776 775
     .supported_samplerates= (const int[]){44100, 48000,  32000, 22050, 24000, 16000, 0},
777 776
     .long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
... ...
@@ -3770,62 +3770,62 @@ int dct_quantize_c(MpegEncContext *s,
3770 3770
 }
3771 3771
 
3772 3772
 AVCodec ff_h263_encoder = {
3773
-    "h263",
3774
-    AVMEDIA_TYPE_VIDEO,
3775
-    CODEC_ID_H263,
3776
-    sizeof(MpegEncContext),
3777
-    MPV_encode_init,
3778
-    MPV_encode_picture,
3779
-    MPV_encode_end,
3773
+    .name           = "h263",
3774
+    .type           = AVMEDIA_TYPE_VIDEO,
3775
+    .id             = CODEC_ID_H263,
3776
+    .priv_data_size = sizeof(MpegEncContext),
3777
+    .init           = MPV_encode_init,
3778
+    .encode         = MPV_encode_picture,
3779
+    .close          = MPV_encode_end,
3780 3780
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
3781 3781
     .long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996"),
3782 3782
 };
3783 3783
 
3784 3784
 AVCodec ff_h263p_encoder = {
3785
-    "h263p",
3786
-    AVMEDIA_TYPE_VIDEO,
3787
-    CODEC_ID_H263P,
3788
-    sizeof(MpegEncContext),
3789
-    MPV_encode_init,
3790
-    MPV_encode_picture,
3791
-    MPV_encode_end,
3785
+    .name           = "h263p",
3786
+    .type           = AVMEDIA_TYPE_VIDEO,
3787
+    .id             = CODEC_ID_H263P,
3788
+    .priv_data_size = sizeof(MpegEncContext),
3789
+    .init           = MPV_encode_init,
3790
+    .encode         = MPV_encode_picture,
3791
+    .close          = MPV_encode_end,
3792 3792
     .capabilities = CODEC_CAP_SLICE_THREADS,
3793 3793
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
3794 3794
     .long_name= NULL_IF_CONFIG_SMALL("H.263+ / H.263-1998 / H.263 version 2"),
3795 3795
 };
3796 3796
 
3797 3797
 AVCodec ff_msmpeg4v2_encoder = {
3798
-    "msmpeg4v2",
3799
-    AVMEDIA_TYPE_VIDEO,
3800
-    CODEC_ID_MSMPEG4V2,
3801
-    sizeof(MpegEncContext),
3802
-    MPV_encode_init,
3803
-    MPV_encode_picture,
3804
-    MPV_encode_end,
3798
+    .name           = "msmpeg4v2",
3799
+    .type           = AVMEDIA_TYPE_VIDEO,
3800
+    .id             = CODEC_ID_MSMPEG4V2,
3801
+    .priv_data_size = sizeof(MpegEncContext),
3802
+    .init           = MPV_encode_init,
3803
+    .encode         = MPV_encode_picture,
3804
+    .close          = MPV_encode_end,
3805 3805
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
3806 3806
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
3807 3807
 };
3808 3808
 
3809 3809
 AVCodec ff_msmpeg4v3_encoder = {
3810
-    "msmpeg4",
3811
-    AVMEDIA_TYPE_VIDEO,
3812
-    CODEC_ID_MSMPEG4V3,
3813
-    sizeof(MpegEncContext),
3814
-    MPV_encode_init,
3815
-    MPV_encode_picture,
3816
-    MPV_encode_end,
3810
+    .name           = "msmpeg4",
3811
+    .type           = AVMEDIA_TYPE_VIDEO,
3812
+    .id             = CODEC_ID_MSMPEG4V3,
3813
+    .priv_data_size = sizeof(MpegEncContext),
3814
+    .init           = MPV_encode_init,
3815
+    .encode         = MPV_encode_picture,
3816
+    .close          = MPV_encode_end,
3817 3817
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
3818 3818
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
3819 3819
 };
3820 3820
 
3821 3821
 AVCodec ff_wmv1_encoder = {
3822
-    "wmv1",
3823
-    AVMEDIA_TYPE_VIDEO,
3824
-    CODEC_ID_WMV1,
3825
-    sizeof(MpegEncContext),
3826
-    MPV_encode_init,
3827
-    MPV_encode_picture,
3828
-    MPV_encode_end,
3822
+    .name           = "wmv1",
3823
+    .type           = AVMEDIA_TYPE_VIDEO,
3824
+    .id             = CODEC_ID_WMV1,
3825
+    .priv_data_size = sizeof(MpegEncContext),
3826
+    .init           = MPV_encode_init,
3827
+    .encode         = MPV_encode_picture,
3828
+    .close          = MPV_encode_end,
3829 3829
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
3830 3830
     .long_name= NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
3831 3831
 };
... ...
@@ -1884,60 +1884,56 @@ int ff_msmpeg4_decode_motion(MpegEncContext * s,
1884 1884
 }
1885 1885
 
1886 1886
 AVCodec ff_msmpeg4v1_decoder = {
1887
-    "msmpeg4v1",
1888
-    AVMEDIA_TYPE_VIDEO,
1889
-    CODEC_ID_MSMPEG4V1,
1890
-    sizeof(MpegEncContext),
1891
-    ff_msmpeg4_decode_init,
1892
-    NULL,
1893
-    ff_h263_decode_end,
1894
-    ff_h263_decode_frame,
1895
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
1887
+    .name           = "msmpeg4v1",
1888
+    .type           = AVMEDIA_TYPE_VIDEO,
1889
+    .id             = CODEC_ID_MSMPEG4V1,
1890
+    .priv_data_size = sizeof(MpegEncContext),
1891
+    .init           = ff_msmpeg4_decode_init,
1892
+    .close          = ff_h263_decode_end,
1893
+    .decode         = ff_h263_decode_frame,
1894
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
1896 1895
     .max_lowres= 3,
1897 1896
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 1"),
1898 1897
     .pix_fmts= ff_pixfmt_list_420,
1899 1898
 };
1900 1899
 
1901 1900
 AVCodec ff_msmpeg4v2_decoder = {
1902
-    "msmpeg4v2",
1903
-    AVMEDIA_TYPE_VIDEO,
1904
-    CODEC_ID_MSMPEG4V2,
1905
-    sizeof(MpegEncContext),
1906
-    ff_msmpeg4_decode_init,
1907
-    NULL,
1908
-    ff_h263_decode_end,
1909
-    ff_h263_decode_frame,
1910
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
1901
+    .name           = "msmpeg4v2",
1902
+    .type           = AVMEDIA_TYPE_VIDEO,
1903
+    .id             = CODEC_ID_MSMPEG4V2,
1904
+    .priv_data_size = sizeof(MpegEncContext),
1905
+    .init           = ff_msmpeg4_decode_init,
1906
+    .close          = ff_h263_decode_end,
1907
+    .decode         = ff_h263_decode_frame,
1908
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
1911 1909
     .max_lowres= 3,
1912 1910
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
1913 1911
     .pix_fmts= ff_pixfmt_list_420,
1914 1912
 };
1915 1913
 
1916 1914
 AVCodec ff_msmpeg4v3_decoder = {
1917
-    "msmpeg4",
1918
-    AVMEDIA_TYPE_VIDEO,
1919
-    CODEC_ID_MSMPEG4V3,
1920
-    sizeof(MpegEncContext),
1921
-    ff_msmpeg4_decode_init,
1922
-    NULL,
1923
-    ff_h263_decode_end,
1924
-    ff_h263_decode_frame,
1925
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
1915
+    .name           = "msmpeg4",
1916
+    .type           = AVMEDIA_TYPE_VIDEO,
1917
+    .id             = CODEC_ID_MSMPEG4V3,
1918
+    .priv_data_size = sizeof(MpegEncContext),
1919
+    .init           = ff_msmpeg4_decode_init,
1920
+    .close          = ff_h263_decode_end,
1921
+    .decode         = ff_h263_decode_frame,
1922
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
1926 1923
     .max_lowres= 3,
1927 1924
     .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
1928 1925
     .pix_fmts= ff_pixfmt_list_420,
1929 1926
 };
1930 1927
 
1931 1928
 AVCodec ff_wmv1_decoder = {
1932
-    "wmv1",
1933
-    AVMEDIA_TYPE_VIDEO,
1934
-    CODEC_ID_WMV1,
1935
-    sizeof(MpegEncContext),
1936
-    ff_msmpeg4_decode_init,
1937
-    NULL,
1938
-    ff_h263_decode_end,
1939
-    ff_h263_decode_frame,
1940
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
1929
+    .name           = "wmv1",
1930
+    .type           = AVMEDIA_TYPE_VIDEO,
1931
+    .id             = CODEC_ID_WMV1,
1932
+    .priv_data_size = sizeof(MpegEncContext),
1933
+    .init           = ff_msmpeg4_decode_init,
1934
+    .close          = ff_h263_decode_end,
1935
+    .decode         = ff_h263_decode_frame,
1936
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
1941 1937
     .max_lowres= 3,
1942 1938
     .long_name= NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
1943 1939
     .pix_fmts= ff_pixfmt_list_420,
... ...
@@ -149,14 +149,13 @@ static av_cold int msrle_decode_end(AVCodecContext *avctx)
149 149
 }
150 150
 
151 151
 AVCodec ff_msrle_decoder = {
152
-    "msrle",
153
-    AVMEDIA_TYPE_VIDEO,
154
-    CODEC_ID_MSRLE,
155
-    sizeof(MsrleContext),
156
-    msrle_decode_init,
157
-    NULL,
158
-    msrle_decode_end,
159
-    msrle_decode_frame,
160
-    CODEC_CAP_DR1,
152
+    .name           = "msrle",
153
+    .type           = AVMEDIA_TYPE_VIDEO,
154
+    .id             = CODEC_ID_MSRLE,
155
+    .priv_data_size = sizeof(MsrleContext),
156
+    .init           = msrle_decode_init,
157
+    .close          = msrle_decode_end,
158
+    .decode         = msrle_decode_frame,
159
+    .capabilities   = CODEC_CAP_DR1,
161 160
     .long_name= NULL_IF_CONFIG_SMALL("Microsoft RLE"),
162 161
 };
... ...
@@ -335,14 +335,13 @@ static av_cold int msvideo1_decode_end(AVCodecContext *avctx)
335 335
 }
336 336
 
337 337
 AVCodec ff_msvideo1_decoder = {
338
-    "msvideo1",
339
-    AVMEDIA_TYPE_VIDEO,
340
-    CODEC_ID_MSVIDEO1,
341
-    sizeof(Msvideo1Context),
342
-    msvideo1_decode_init,
343
-    NULL,
344
-    msvideo1_decode_end,
345
-    msvideo1_decode_frame,
346
-    CODEC_CAP_DR1,
338
+    .name           = "msvideo1",
339
+    .type           = AVMEDIA_TYPE_VIDEO,
340
+    .id             = CODEC_ID_MSVIDEO1,
341
+    .priv_data_size = sizeof(Msvideo1Context),
342
+    .init           = msvideo1_decode_init,
343
+    .close          = msvideo1_decode_end,
344
+    .decode         = msvideo1_decode_frame,
345
+    .capabilities   = CODEC_CAP_DR1,
347 346
     .long_name= NULL_IF_CONFIG_SMALL("Microsoft Video 1"),
348 347
 };
... ...
@@ -194,14 +194,13 @@ static av_cold int decode_end(AVCodecContext * avctx) {
194 194
 }
195 195
 
196 196
 AVCodec ff_nellymoser_decoder = {
197
-    "nellymoser",
198
-    AVMEDIA_TYPE_AUDIO,
199
-    CODEC_ID_NELLYMOSER,
200
-    sizeof(NellyMoserDecodeContext),
201
-    decode_init,
202
-    NULL,
203
-    decode_end,
204
-    decode_tag,
197
+    .name           = "nellymoser",
198
+    .type           = AVMEDIA_TYPE_AUDIO,
199
+    .id             = CODEC_ID_NELLYMOSER,
200
+    .priv_data_size = sizeof(NellyMoserDecodeContext),
201
+    .init           = decode_init,
202
+    .close          = decode_end,
203
+    .decode         = decode_tag,
205 204
     .long_name = NULL_IF_CONFIG_SMALL("Nellymoser Asao"),
206 205
 };
207 206
 
... ...
@@ -273,15 +273,14 @@ static av_cold int decode_end(AVCodecContext *avctx) {
273 273
 }
274 274
 
275 275
 AVCodec ff_nuv_decoder = {
276
-    "nuv",
277
-    AVMEDIA_TYPE_VIDEO,
278
-    CODEC_ID_NUV,
279
-    sizeof(NuvContext),
280
-    decode_init,
281
-    NULL,
282
-    decode_end,
283
-    decode_frame,
284
-    CODEC_CAP_DR1,
276
+    .name           = "nuv",
277
+    .type           = AVMEDIA_TYPE_VIDEO,
278
+    .id             = CODEC_ID_NUV,
279
+    .priv_data_size = sizeof(NuvContext),
280
+    .init           = decode_init,
281
+    .close          = decode_end,
282
+    .decode         = decode_frame,
283
+    .capabilities   = CODEC_CAP_DR1,
285 284
     .long_name = NULL_IF_CONFIG_SMALL("NuppelVideo/RTJPEG"),
286 285
 };
287 286
 
... ...
@@ -109,12 +109,12 @@ static int pam_encode_frame(AVCodecContext *avctx, unsigned char *outbuf,
109 109
 
110 110
 
111 111
 AVCodec ff_pam_encoder = {
112
-    "pam",
113
-    AVMEDIA_TYPE_VIDEO,
114
-    CODEC_ID_PAM,
115
-    sizeof(PNMContext),
116
-    ff_pnm_init,
117
-    pam_encode_frame,
112
+    .name           = "pam",
113
+    .type           = AVMEDIA_TYPE_VIDEO,
114
+    .id             = CODEC_ID_PAM,
115
+    .priv_data_size = sizeof(PNMContext),
116
+    .init           = ff_pnm_init,
117
+    .encode         = pam_encode_frame,
118 118
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_GRAY8, PIX_FMT_MONOWHITE, PIX_FMT_NONE},
119 119
     .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"),
120 120
 };
... ...
@@ -297,14 +297,10 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx,
297 297
 }
298 298
 
299 299
 AVCodec ff_pcm_bluray_decoder = {
300
-    "pcm_bluray",
301
-    AVMEDIA_TYPE_AUDIO,
302
-    CODEC_ID_PCM_BLURAY,
303
-    0,
304
-    NULL,
305
-    NULL,
306
-    NULL,
307
-    pcm_bluray_decode_frame,
300
+    .name           = "pcm_bluray",
301
+    .type           = AVMEDIA_TYPE_AUDIO,
302
+    .id             = CODEC_ID_PCM_BLURAY,
303
+    .decode         = pcm_bluray_decode_frame,
308 304
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32,
309 305
                                          AV_SAMPLE_FMT_NONE},
310 306
     .long_name = NULL_IF_CONFIG_SMALL("PCM signed 16|20|24-bit big-endian for Blu-ray media"),
... ...
@@ -248,15 +248,13 @@ static av_cold int pcx_end(AVCodecContext *avctx) {
248 248
 }
249 249
 
250 250
 AVCodec ff_pcx_decoder = {
251
-    "pcx",
252
-    AVMEDIA_TYPE_VIDEO,
253
-    CODEC_ID_PCX,
254
-    sizeof(PCXContext),
255
-    pcx_init,
256
-    NULL,
257
-    pcx_end,
258
-    pcx_decode_frame,
259
-    CODEC_CAP_DR1,
260
-    NULL,
251
+    .name           = "pcx",
252
+    .type           = AVMEDIA_TYPE_VIDEO,
253
+    .id             = CODEC_ID_PCX,
254
+    .priv_data_size = sizeof(PCXContext),
255
+    .init           = pcx_init,
256
+    .close          = pcx_end,
257
+    .decode         = pcx_decode_frame,
258
+    .capabilities   = CODEC_CAP_DR1,
261 259
     .long_name = NULL_IF_CONFIG_SMALL("PC Paintbrush PCX image"),
262 260
 };
... ...
@@ -190,13 +190,12 @@ static int pcx_encode_frame(AVCodecContext *avctx,
190 190
 }
191 191
 
192 192
 AVCodec ff_pcx_encoder = {
193
-    "pcx",
194
-    AVMEDIA_TYPE_VIDEO,
195
-    CODEC_ID_PCX,
196
-    sizeof(PCXContext),
197
-    pcx_encode_init,
198
-    pcx_encode_frame,
199
-    NULL,
193
+    .name           = "pcx",
194
+    .type           = AVMEDIA_TYPE_VIDEO,
195
+    .id             = CODEC_ID_PCX,
196
+    .priv_data_size = sizeof(PCXContext),
197
+    .init           = pcx_encode_init,
198
+    .encode         = pcx_encode_frame,
200 199
     .pix_fmts = (const enum PixelFormat[]){
201 200
         PIX_FMT_RGB24,
202 201
         PIX_FMT_RGB8, PIX_FMT_BGR8, PIX_FMT_RGB4_BYTE, PIX_FMT_BGR4_BYTE, PIX_FMT_GRAY8, PIX_FMT_PAL8,
... ...
@@ -468,13 +468,12 @@ static int decode(AVCodecContext *avctx, void *data, int *data_size,
468 468
 }
469 469
 
470 470
 AVCodec ff_pgssub_decoder = {
471
-    "pgssub",
472
-    AVMEDIA_TYPE_SUBTITLE,
473
-    CODEC_ID_HDMV_PGS_SUBTITLE,
474
-    sizeof(PGSSubContext),
475
-    init_decoder,
476
-    NULL,
477
-    close_decoder,
478
-    decode,
471
+    .name           = "pgssub",
472
+    .type           = AVMEDIA_TYPE_SUBTITLE,
473
+    .id             = CODEC_ID_HDMV_PGS_SUBTITLE,
474
+    .priv_data_size = sizeof(PGSSubContext),
475
+    .init           = init_decoder,
476
+    .close          = close_decoder,
477
+    .decode         = decode,
479 478
     .long_name = NULL_IF_CONFIG_SMALL("HDMV Presentation Graphic Stream subtitles"),
480 479
 };
... ...
@@ -246,14 +246,13 @@ static av_cold int decode_end(AVCodecContext *avctx)
246 246
 }
247 247
 
248 248
 AVCodec ff_pictor_decoder = {
249
-    "pictor",
250
-    AVMEDIA_TYPE_VIDEO,
251
-    CODEC_ID_PICTOR,
252
-    sizeof(PicContext),
249
+    .name           = "pictor",
250
+    .type           = AVMEDIA_TYPE_VIDEO,
251
+    .id             = CODEC_ID_PICTOR,
252
+    .priv_data_size = sizeof(PicContext),
253 253
     decode_init,
254
-    NULL,
255
-    decode_end,
256
-    decode_frame,
257
-    CODEC_CAP_DR1,
254
+    .close          = decode_end,
255
+    .decode         = decode_frame,
256
+    .capabilities   = CODEC_CAP_DR1,
258 257
     .long_name = NULL_IF_CONFIG_SMALL("Pictor/PC Paint"),
259 258
 };
... ...
@@ -647,15 +647,13 @@ static av_cold int png_dec_end(AVCodecContext *avctx)
647 647
 }
648 648
 
649 649
 AVCodec ff_png_decoder = {
650
-    "png",
651
-    AVMEDIA_TYPE_VIDEO,
652
-    CODEC_ID_PNG,
653
-    sizeof(PNGDecContext),
654
-    png_dec_init,
655
-    NULL,
656
-    png_dec_end,
657
-    decode_frame,
658
-    CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/,
659
-    NULL,
650
+    .name           = "png",
651
+    .type           = AVMEDIA_TYPE_VIDEO,
652
+    .id             = CODEC_ID_PNG,
653
+    .priv_data_size = sizeof(PNGDecContext),
654
+    .init           = png_dec_init,
655
+    .close          = png_dec_end,
656
+    .decode         = decode_frame,
657
+    .capabilities   = CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/,
660 658
     .long_name = NULL_IF_CONFIG_SMALL("PNG image"),
661 659
 };
... ...
@@ -437,13 +437,12 @@ static av_cold int png_enc_init(AVCodecContext *avctx){
437 437
 }
438 438
 
439 439
 AVCodec ff_png_encoder = {
440
-    "png",
441
-    AVMEDIA_TYPE_VIDEO,
442
-    CODEC_ID_PNG,
443
-    sizeof(PNGEncContext),
444
-    png_enc_init,
445
-    encode_frame,
446
-    NULL, //encode_end,
440
+    .name           = "png",
441
+    .type           = AVMEDIA_TYPE_VIDEO,
442
+    .id             = CODEC_ID_PNG,
443
+    .priv_data_size = sizeof(PNGEncContext),
444
+    .init           = png_enc_init,
445
+    .encode         = encode_frame,
447 446
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_PAL8, PIX_FMT_GRAY8, PIX_FMT_MONOBLACK, PIX_FMT_NONE},
448 447
     .long_name= NULL_IF_CONFIG_SMALL("PNG image"),
449 448
 };
... ...
@@ -196,15 +196,14 @@ static int pnm_decode_frame(AVCodecContext *avctx, void *data,
196 196
 
197 197
 #if CONFIG_PGM_DECODER
198 198
 AVCodec ff_pgm_decoder = {
199
-    "pgm",
200
-    AVMEDIA_TYPE_VIDEO,
201
-    CODEC_ID_PGM,
202
-    sizeof(PNMContext),
203
-    ff_pnm_init,
204
-    NULL,
205
-    ff_pnm_end,
206
-    pnm_decode_frame,
207
-    CODEC_CAP_DR1,
199
+    .name           = "pgm",
200
+    .type           = AVMEDIA_TYPE_VIDEO,
201
+    .id             = CODEC_ID_PGM,
202
+    .priv_data_size = sizeof(PNMContext),
203
+    .init           = ff_pnm_init,
204
+    .close          = ff_pnm_end,
205
+    .decode         = pnm_decode_frame,
206
+    .capabilities   = CODEC_CAP_DR1,
208 207
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_GRAY8, PIX_FMT_GRAY16BE, PIX_FMT_NONE},
209 208
     .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"),
210 209
 };
... ...
@@ -212,15 +211,14 @@ AVCodec ff_pgm_decoder = {
212 212
 
213 213
 #if CONFIG_PGMYUV_DECODER
214 214
 AVCodec ff_pgmyuv_decoder = {
215
-    "pgmyuv",
216
-    AVMEDIA_TYPE_VIDEO,
217
-    CODEC_ID_PGMYUV,
218
-    sizeof(PNMContext),
219
-    ff_pnm_init,
220
-    NULL,
221
-    ff_pnm_end,
222
-    pnm_decode_frame,
223
-    CODEC_CAP_DR1,
215
+    .name           = "pgmyuv",
216
+    .type           = AVMEDIA_TYPE_VIDEO,
217
+    .id             = CODEC_ID_PGMYUV,
218
+    .priv_data_size = sizeof(PNMContext),
219
+    .init           = ff_pnm_init,
220
+    .close          = ff_pnm_end,
221
+    .decode         = pnm_decode_frame,
222
+    .capabilities   = CODEC_CAP_DR1,
224 223
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
225 224
     .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"),
226 225
 };
... ...
@@ -228,15 +226,14 @@ AVCodec ff_pgmyuv_decoder = {
228 228
 
229 229
 #if CONFIG_PPM_DECODER
230 230
 AVCodec ff_ppm_decoder = {
231
-    "ppm",
232
-    AVMEDIA_TYPE_VIDEO,
233
-    CODEC_ID_PPM,
234
-    sizeof(PNMContext),
235
-    ff_pnm_init,
236
-    NULL,
237
-    ff_pnm_end,
238
-    pnm_decode_frame,
239
-    CODEC_CAP_DR1,
231
+    .name           = "ppm",
232
+    .type           = AVMEDIA_TYPE_VIDEO,
233
+    .id             = CODEC_ID_PPM,
234
+    .priv_data_size = sizeof(PNMContext),
235
+    .init           = ff_pnm_init,
236
+    .close          = ff_pnm_end,
237
+    .decode         = pnm_decode_frame,
238
+    .capabilities   = CODEC_CAP_DR1,
240 239
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB48BE, PIX_FMT_NONE},
241 240
     .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"),
242 241
 };
... ...
@@ -244,15 +241,14 @@ AVCodec ff_ppm_decoder = {
244 244
 
245 245
 #if CONFIG_PBM_DECODER
246 246
 AVCodec ff_pbm_decoder = {
247
-    "pbm",
248
-    AVMEDIA_TYPE_VIDEO,
249
-    CODEC_ID_PBM,
250
-    sizeof(PNMContext),
251
-    ff_pnm_init,
252
-    NULL,
253
-    ff_pnm_end,
254
-    pnm_decode_frame,
255
-    CODEC_CAP_DR1,
247
+    .name           = "pbm",
248
+    .type           = AVMEDIA_TYPE_VIDEO,
249
+    .id             = CODEC_ID_PBM,
250
+    .priv_data_size = sizeof(PNMContext),
251
+    .init           = ff_pnm_init,
252
+    .close          = ff_pnm_end,
253
+    .decode         = pnm_decode_frame,
254
+    .capabilities   = CODEC_CAP_DR1,
256 255
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_MONOWHITE, PIX_FMT_NONE},
257 256
     .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"),
258 257
 };
... ...
@@ -260,15 +256,14 @@ AVCodec ff_pbm_decoder = {
260 260
 
261 261
 #if CONFIG_PAM_DECODER
262 262
 AVCodec ff_pam_decoder = {
263
-    "pam",
264
-    AVMEDIA_TYPE_VIDEO,
265
-    CODEC_ID_PAM,
266
-    sizeof(PNMContext),
267
-    ff_pnm_init,
268
-    NULL,
269
-    ff_pnm_end,
270
-    pnm_decode_frame,
271
-    CODEC_CAP_DR1,
263
+    .name           = "pam",
264
+    .type           = AVMEDIA_TYPE_VIDEO,
265
+    .id             = CODEC_ID_PAM,
266
+    .priv_data_size = sizeof(PNMContext),
267
+    .init           = ff_pnm_init,
268
+    .close          = ff_pnm_end,
269
+    .decode         = pnm_decode_frame,
270
+    .capabilities   = CODEC_CAP_DR1,
272 271
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_GRAY8, PIX_FMT_MONOWHITE, PIX_FMT_NONE},
273 272
     .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"),
274 273
 };
... ...
@@ -114,12 +114,12 @@ static int pnm_encode_frame(AVCodecContext *avctx, unsigned char *outbuf,
114 114
 
115 115
 #if CONFIG_PGM_ENCODER
116 116
 AVCodec ff_pgm_encoder = {
117
-    "pgm",
118
-    AVMEDIA_TYPE_VIDEO,
119
-    CODEC_ID_PGM,
120
-    sizeof(PNMContext),
121
-    ff_pnm_init,
122
-    pnm_encode_frame,
117
+    .name           = "pgm",
118
+    .type           = AVMEDIA_TYPE_VIDEO,
119
+    .id             = CODEC_ID_PGM,
120
+    .priv_data_size = sizeof(PNMContext),
121
+    .init           = ff_pnm_init,
122
+    .encode         = pnm_encode_frame,
123 123
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_GRAY8, PIX_FMT_GRAY16BE, PIX_FMT_NONE},
124 124
     .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"),
125 125
 };
... ...
@@ -127,12 +127,12 @@ AVCodec ff_pgm_encoder = {
127 127
 
128 128
 #if CONFIG_PGMYUV_ENCODER
129 129
 AVCodec ff_pgmyuv_encoder = {
130
-    "pgmyuv",
131
-    AVMEDIA_TYPE_VIDEO,
132
-    CODEC_ID_PGMYUV,
133
-    sizeof(PNMContext),
134
-    ff_pnm_init,
135
-    pnm_encode_frame,
130
+    .name           = "pgmyuv",
131
+    .type           = AVMEDIA_TYPE_VIDEO,
132
+    .id             = CODEC_ID_PGMYUV,
133
+    .priv_data_size = sizeof(PNMContext),
134
+    .init           = ff_pnm_init,
135
+    .encode         = pnm_encode_frame,
136 136
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
137 137
     .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"),
138 138
 };
... ...
@@ -140,12 +140,12 @@ AVCodec ff_pgmyuv_encoder = {
140 140
 
141 141
 #if CONFIG_PPM_ENCODER
142 142
 AVCodec ff_ppm_encoder = {
143
-    "ppm",
144
-    AVMEDIA_TYPE_VIDEO,
145
-    CODEC_ID_PPM,
146
-    sizeof(PNMContext),
147
-    ff_pnm_init,
148
-    pnm_encode_frame,
143
+    .name           = "ppm",
144
+    .type           = AVMEDIA_TYPE_VIDEO,
145
+    .id             = CODEC_ID_PPM,
146
+    .priv_data_size = sizeof(PNMContext),
147
+    .init           = ff_pnm_init,
148
+    .encode         = pnm_encode_frame,
149 149
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB48BE, PIX_FMT_NONE},
150 150
     .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"),
151 151
 };
... ...
@@ -153,12 +153,12 @@ AVCodec ff_ppm_encoder = {
153 153
 
154 154
 #if CONFIG_PBM_ENCODER
155 155
 AVCodec ff_pbm_encoder = {
156
-    "pbm",
157
-    AVMEDIA_TYPE_VIDEO,
158
-    CODEC_ID_PBM,
159
-    sizeof(PNMContext),
160
-    ff_pnm_init,
161
-    pnm_encode_frame,
156
+    .name           = "pbm",
157
+    .type           = AVMEDIA_TYPE_VIDEO,
158
+    .id             = CODEC_ID_PBM,
159
+    .priv_data_size = sizeof(PNMContext),
160
+    .init           = ff_pnm_init,
161
+    .encode         = pnm_encode_frame,
162 162
     .pix_fmts  = (const enum PixelFormat[]){PIX_FMT_MONOWHITE, PIX_FMT_NONE},
163 163
     .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"),
164 164
 };
... ...
@@ -107,15 +107,13 @@ static av_cold int ptx_end(AVCodecContext *avctx) {
107 107
 }
108 108
 
109 109
 AVCodec ff_ptx_decoder = {
110
-    "ptx",
111
-    AVMEDIA_TYPE_VIDEO,
112
-    CODEC_ID_PTX,
113
-    sizeof(PTXContext),
114
-    ptx_init,
115
-    NULL,
116
-    ptx_end,
117
-    ptx_decode_frame,
118
-    CODEC_CAP_DR1,
119
-    NULL,
110
+    .name           = "ptx",
111
+    .type           = AVMEDIA_TYPE_VIDEO,
112
+    .id             = CODEC_ID_PTX,
113
+    .priv_data_size = sizeof(PTXContext),
114
+    .init           = ptx_init,
115
+    .close          = ptx_end,
116
+    .decode         = ptx_decode_frame,
117
+    .capabilities   = CODEC_CAP_DR1,
120 118
     .long_name = NULL_IF_CONFIG_SMALL("V.Flash PTX image"),
121 119
 };
... ...
@@ -152,14 +152,13 @@ static av_cold int decode_end(AVCodecContext *avctx){
152 152
 }
153 153
 
154 154
 AVCodec ff_qdraw_decoder = {
155
-    "qdraw",
156
-    AVMEDIA_TYPE_VIDEO,
157
-    CODEC_ID_QDRAW,
158
-    sizeof(QdrawContext),
159
-    decode_init,
160
-    NULL,
161
-    decode_end,
162
-    decode_frame,
163
-    CODEC_CAP_DR1,
155
+    .name           = "qdraw",
156
+    .type           = AVMEDIA_TYPE_VIDEO,
157
+    .id             = CODEC_ID_QDRAW,
158
+    .priv_data_size = sizeof(QdrawContext),
159
+    .init           = decode_init,
160
+    .close          = decode_end,
161
+    .decode         = decode_frame,
162
+    .capabilities   = CODEC_CAP_DR1,
164 163
     .long_name = NULL_IF_CONFIG_SMALL("Apple QuickDraw"),
165 164
 };
... ...
@@ -317,14 +317,13 @@ static av_cold int decode_end(AVCodecContext *avctx){
317 317
 }
318 318
 
319 319
 AVCodec ff_qpeg_decoder = {
320
-    "qpeg",
321
-    AVMEDIA_TYPE_VIDEO,
322
-    CODEC_ID_QPEG,
323
-    sizeof(QpegContext),
324
-    decode_init,
325
-    NULL,
326
-    decode_end,
327
-    decode_frame,
328
-    CODEC_CAP_DR1,
320
+    .name           = "qpeg",
321
+    .type           = AVMEDIA_TYPE_VIDEO,
322
+    .id             = CODEC_ID_QPEG,
323
+    .priv_data_size = sizeof(QpegContext),
324
+    .init           = decode_init,
325
+    .close          = decode_end,
326
+    .decode         = decode_frame,
327
+    .capabilities   = CODEC_CAP_DR1,
329 328
     .long_name = NULL_IF_CONFIG_SMALL("Q-team QPEG"),
330 329
 };
... ...
@@ -543,15 +543,14 @@ static av_cold int qtrle_decode_end(AVCodecContext *avctx)
543 543
 }
544 544
 
545 545
 AVCodec ff_qtrle_decoder = {
546
-    "qtrle",
547
-    AVMEDIA_TYPE_VIDEO,
548
-    CODEC_ID_QTRLE,
549
-    sizeof(QtrleContext),
550
-    qtrle_decode_init,
551
-    NULL,
552
-    qtrle_decode_end,
553
-    qtrle_decode_frame,
554
-    CODEC_CAP_DR1,
546
+    .name           = "qtrle",
547
+    .type           = AVMEDIA_TYPE_VIDEO,
548
+    .id             = CODEC_ID_QTRLE,
549
+    .priv_data_size = sizeof(QtrleContext),
550
+    .init           = qtrle_decode_init,
551
+    .close          = qtrle_decode_end,
552
+    .decode         = qtrle_decode_frame,
553
+    .capabilities   = CODEC_CAP_DR1,
555 554
     .long_name = NULL_IF_CONFIG_SMALL("QuickTime Animation (RLE) video"),
556 555
 };
557 556
 
... ...
@@ -344,13 +344,13 @@ static av_cold int qtrle_encode_end(AVCodecContext *avctx)
344 344
 }
345 345
 
346 346
 AVCodec ff_qtrle_encoder = {
347
-    "qtrle",
348
-    AVMEDIA_TYPE_VIDEO,
349
-    CODEC_ID_QTRLE,
350
-    sizeof(QtrleEncContext),
351
-    qtrle_encode_init,
352
-    qtrle_encode_frame,
353
-    qtrle_encode_end,
347
+    .name           = "qtrle",
348
+    .type           = AVMEDIA_TYPE_VIDEO,
349
+    .id             = CODEC_ID_QTRLE,
350
+    .priv_data_size = sizeof(QtrleEncContext),
351
+    .init           = qtrle_encode_init,
352
+    .encode         = qtrle_encode_frame,
353
+    .close          = qtrle_encode_end,
354 354
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB555BE, PIX_FMT_ARGB, PIX_FMT_GRAY8, PIX_FMT_NONE},
355 355
     .long_name = NULL_IF_CONFIG_SMALL("QuickTime Animation (RLE) video"),
356 356
 };
... ...
@@ -98,29 +98,25 @@ static av_cold int decode_close(AVCodecContext *avctx)
98 98
 
99 99
 #if CONFIG_R210_DECODER
100 100
 AVCodec ff_r210_decoder = {
101
-    "r210",
102
-    AVMEDIA_TYPE_VIDEO,
103
-    CODEC_ID_R210,
104
-    0,
105
-    decode_init,
106
-    NULL,
107
-    decode_close,
108
-    decode_frame,
109
-    CODEC_CAP_DR1,
101
+    .name           = "r210",
102
+    .type           = AVMEDIA_TYPE_VIDEO,
103
+    .id             = CODEC_ID_R210,
104
+    .init           = decode_init,
105
+    .close          = decode_close,
106
+    .decode         = decode_frame,
107
+    .capabilities   = CODEC_CAP_DR1,
110 108
     .long_name = NULL_IF_CONFIG_SMALL("Uncompressed RGB 10-bit"),
111 109
 };
112 110
 #endif
113 111
 #if CONFIG_R10K_DECODER
114 112
 AVCodec ff_r10k_decoder = {
115
-    "r10k",
116
-    AVMEDIA_TYPE_VIDEO,
117
-    CODEC_ID_R10K,
118
-    0,
119
-    decode_init,
120
-    NULL,
121
-    decode_close,
122
-    decode_frame,
123
-    CODEC_CAP_DR1,
113
+    .name           = "r10k",
114
+    .type           = AVMEDIA_TYPE_VIDEO,
115
+    .id             = CODEC_ID_R10K,
116
+    .init           = decode_init,
117
+    .close          = decode_close,
118
+    .decode         = decode_frame,
119
+    .capabilities   = CODEC_CAP_DR1,
124 120
     .long_name = NULL_IF_CONFIG_SMALL("AJA Kona 10-bit RGB Codec"),
125 121
 };
126 122
 #endif
... ...
@@ -236,14 +236,13 @@ static av_cold int raw_close_decoder(AVCodecContext *avctx)
236 236
 }
237 237
 
238 238
 AVCodec ff_rawvideo_decoder = {
239
-    "rawvideo",
240
-    AVMEDIA_TYPE_VIDEO,
241
-    CODEC_ID_RAWVIDEO,
242
-    sizeof(RawVideoContext),
243
-    raw_init_decoder,
244
-    NULL,
245
-    raw_close_decoder,
246
-    raw_decode,
239
+    .name           = "rawvideo",
240
+    .type           = AVMEDIA_TYPE_VIDEO,
241
+    .id             = CODEC_ID_RAWVIDEO,
242
+    .priv_data_size = sizeof(RawVideoContext),
243
+    .init           = raw_init_decoder,
244
+    .close          = raw_close_decoder,
245
+    .decode         = raw_decode,
247 246
     .long_name = NULL_IF_CONFIG_SMALL("raw video"),
248 247
     .priv_class= &class,
249 248
 };
... ...
@@ -56,11 +56,11 @@ static int raw_encode(AVCodecContext *avctx,
56 56
 }
57 57
 
58 58
 AVCodec ff_rawvideo_encoder = {
59
-    "rawvideo",
60
-    AVMEDIA_TYPE_VIDEO,
61
-    CODEC_ID_RAWVIDEO,
62
-    sizeof(AVFrame),
63
-    raw_init_encoder,
64
-    raw_encode,
59
+    .name           = "rawvideo",
60
+    .type           = AVMEDIA_TYPE_VIDEO,
61
+    .id             = CODEC_ID_RAWVIDEO,
62
+    .priv_data_size = sizeof(AVFrame),
63
+    .init           = raw_init_encoder,
64
+    .encode         = raw_encode,
65 65
     .long_name = NULL_IF_CONFIG_SMALL("raw video"),
66 66
 };
... ...
@@ -220,15 +220,14 @@ static av_cold int rl2_decode_end(AVCodecContext *avctx)
220 220
 
221 221
 
222 222
 AVCodec ff_rl2_decoder = {
223
-    "rl2",
224
-    AVMEDIA_TYPE_VIDEO,
225
-    CODEC_ID_RL2,
226
-    sizeof(Rl2Context),
227
-    rl2_decode_init,
228
-    NULL,
229
-    rl2_decode_end,
230
-    rl2_decode_frame,
231
-    CODEC_CAP_DR1,
223
+    .name           = "rl2",
224
+    .type           = AVMEDIA_TYPE_VIDEO,
225
+    .id             = CODEC_ID_RL2,
226
+    .priv_data_size = sizeof(Rl2Context),
227
+    .init           = rl2_decode_init,
228
+    .close          = rl2_decode_end,
229
+    .decode         = rl2_decode_frame,
230
+    .capabilities   = CODEC_CAP_DR1,
232 231
     .long_name = NULL_IF_CONFIG_SMALL("RL2 video"),
233 232
 };
234 233
 
... ...
@@ -154,14 +154,13 @@ static av_cold int roq_dpcm_encode_close(AVCodecContext *avctx)
154 154
 }
155 155
 
156 156
 AVCodec ff_roq_dpcm_encoder = {
157
-    "roq_dpcm",
158
-    AVMEDIA_TYPE_AUDIO,
159
-    CODEC_ID_ROQ_DPCM,
160
-    sizeof(ROQDPCMContext),
161
-    roq_dpcm_encode_init,
162
-    roq_dpcm_encode_frame,
163
-    roq_dpcm_encode_close,
164
-    NULL,
157
+    .name           = "roq_dpcm",
158
+    .type           = AVMEDIA_TYPE_AUDIO,
159
+    .id             = CODEC_ID_ROQ_DPCM,
160
+    .priv_data_size = sizeof(ROQDPCMContext),
161
+    .init           = roq_dpcm_encode_init,
162
+    .encode         = roq_dpcm_encode_frame,
163
+    .close          = roq_dpcm_encode_close,
165 164
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
166 165
     .long_name = NULL_IF_CONFIG_SMALL("id RoQ DPCM"),
167 166
 };
... ...
@@ -213,14 +213,13 @@ static av_cold int roq_decode_end(AVCodecContext *avctx)
213 213
 }
214 214
 
215 215
 AVCodec ff_roq_decoder = {
216
-    "roqvideo",
217
-    AVMEDIA_TYPE_VIDEO,
218
-    CODEC_ID_ROQ,
219
-    sizeof(RoqContext),
220
-    roq_decode_init,
221
-    NULL,
222
-    roq_decode_end,
223
-    roq_decode_frame,
224
-    CODEC_CAP_DR1,
216
+    .name           = "roqvideo",
217
+    .type           = AVMEDIA_TYPE_VIDEO,
218
+    .id             = CODEC_ID_ROQ,
219
+    .priv_data_size = sizeof(RoqContext),
220
+    .init           = roq_decode_init,
221
+    .close          = roq_decode_end,
222
+    .decode         = roq_decode_frame,
223
+    .capabilities   = CODEC_CAP_DR1,
225 224
     .long_name = NULL_IF_CONFIG_SMALL("id RoQ video"),
226 225
 };
... ...
@@ -277,14 +277,13 @@ static av_cold int rpza_decode_end(AVCodecContext *avctx)
277 277
 }
278 278
 
279 279
 AVCodec ff_rpza_decoder = {
280
-    "rpza",
281
-    AVMEDIA_TYPE_VIDEO,
282
-    CODEC_ID_RPZA,
283
-    sizeof(RpzaContext),
284
-    rpza_decode_init,
285
-    NULL,
286
-    rpza_decode_end,
287
-    rpza_decode_frame,
288
-    CODEC_CAP_DR1,
280
+    .name           = "rpza",
281
+    .type           = AVMEDIA_TYPE_VIDEO,
282
+    .id             = CODEC_ID_RPZA,
283
+    .priv_data_size = sizeof(RpzaContext),
284
+    .init           = rpza_decode_init,
285
+    .close          = rpza_decode_end,
286
+    .decode         = rpza_decode_frame,
287
+    .capabilities   = CODEC_CAP_DR1,
289 288
     .long_name = NULL_IF_CONFIG_SMALL("QuickTime video (RPZA)"),
290 289
 };
... ...
@@ -710,30 +710,28 @@ static int rv10_decode_frame(AVCodecContext *avctx,
710 710
 }
711 711
 
712 712
 AVCodec ff_rv10_decoder = {
713
-    "rv10",
714
-    AVMEDIA_TYPE_VIDEO,
715
-    CODEC_ID_RV10,
716
-    sizeof(MpegEncContext),
717
-    rv10_decode_init,
718
-    NULL,
719
-    rv10_decode_end,
720
-    rv10_decode_frame,
721
-    CODEC_CAP_DR1,
713
+    .name           = "rv10",
714
+    .type           = AVMEDIA_TYPE_VIDEO,
715
+    .id             = CODEC_ID_RV10,
716
+    .priv_data_size = sizeof(MpegEncContext),
717
+    .init           = rv10_decode_init,
718
+    .close          = rv10_decode_end,
719
+    .decode         = rv10_decode_frame,
720
+    .capabilities   = CODEC_CAP_DR1,
722 721
     .max_lowres = 3,
723 722
     .long_name = NULL_IF_CONFIG_SMALL("RealVideo 1.0"),
724 723
     .pix_fmts= ff_pixfmt_list_420,
725 724
 };
726 725
 
727 726
 AVCodec ff_rv20_decoder = {
728
-    "rv20",
729
-    AVMEDIA_TYPE_VIDEO,
730
-    CODEC_ID_RV20,
731
-    sizeof(MpegEncContext),
732
-    rv10_decode_init,
733
-    NULL,
734
-    rv10_decode_end,
735
-    rv10_decode_frame,
736
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY,
727
+    .name           = "rv20",
728
+    .type           = AVMEDIA_TYPE_VIDEO,
729
+    .id             = CODEC_ID_RV20,
730
+    .priv_data_size = sizeof(MpegEncContext),
731
+    .init           = rv10_decode_init,
732
+    .close          = rv10_decode_end,
733
+    .decode         = rv10_decode_frame,
734
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY,
737 735
     .flush= ff_mpeg_flush,
738 736
     .max_lowres = 3,
739 737
     .long_name = NULL_IF_CONFIG_SMALL("RealVideo 2.0"),
... ...
@@ -57,13 +57,13 @@ void rv10_encode_picture_header(MpegEncContext *s, int picture_number)
57 57
 }
58 58
 
59 59
 AVCodec ff_rv10_encoder = {
60
-    "rv10",
61
-    AVMEDIA_TYPE_VIDEO,
62
-    CODEC_ID_RV10,
63
-    sizeof(MpegEncContext),
64
-    MPV_encode_init,
65
-    MPV_encode_picture,
66
-    MPV_encode_end,
60
+    .name           = "rv10",
61
+    .type           = AVMEDIA_TYPE_VIDEO,
62
+    .id             = CODEC_ID_RV10,
63
+    .priv_data_size = sizeof(MpegEncContext),
64
+    .init           = MPV_encode_init,
65
+    .encode         = MPV_encode_picture,
66
+    .close          = MPV_encode_end,
67 67
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
68 68
     .long_name= NULL_IF_CONFIG_SMALL("RealVideo 1.0"),
69 69
 };
... ...
@@ -58,13 +58,13 @@ void rv20_encode_picture_header(MpegEncContext *s, int picture_number){
58 58
 }
59 59
 
60 60
 AVCodec ff_rv20_encoder = {
61
-    "rv20",
62
-    AVMEDIA_TYPE_VIDEO,
63
-    CODEC_ID_RV20,
64
-    sizeof(MpegEncContext),
65
-    MPV_encode_init,
66
-    MPV_encode_picture,
67
-    MPV_encode_end,
61
+    .name           = "rv20",
62
+    .type           = AVMEDIA_TYPE_VIDEO,
63
+    .id             = CODEC_ID_RV20,
64
+    .priv_data_size = sizeof(MpegEncContext),
65
+    .init           = MPV_encode_init,
66
+    .encode         = MPV_encode_picture,
67
+    .close          = MPV_encode_end,
68 68
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
69 69
     .long_name= NULL_IF_CONFIG_SMALL("RealVideo 2.0"),
70 70
 };
... ...
@@ -267,15 +267,14 @@ static av_cold int rv30_decode_init(AVCodecContext *avctx)
267 267
 }
268 268
 
269 269
 AVCodec ff_rv30_decoder = {
270
-    "rv30",
271
-    AVMEDIA_TYPE_VIDEO,
272
-    CODEC_ID_RV30,
273
-    sizeof(RV34DecContext),
274
-    rv30_decode_init,
275
-    NULL,
276
-    ff_rv34_decode_end,
277
-    ff_rv34_decode_frame,
278
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY,
270
+    .name           = "rv30",
271
+    .type           = AVMEDIA_TYPE_VIDEO,
272
+    .id             = CODEC_ID_RV30,
273
+    .priv_data_size = sizeof(RV34DecContext),
274
+    .init           = rv30_decode_init,
275
+    .close          = ff_rv34_decode_end,
276
+    .decode         = ff_rv34_decode_frame,
277
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY,
279 278
     .flush = ff_mpeg_flush,
280 279
     .long_name = NULL_IF_CONFIG_SMALL("RealVideo 3.0"),
281 280
     .pix_fmts= ff_pixfmt_list_420,
... ...
@@ -669,15 +669,14 @@ static av_cold int rv40_decode_init(AVCodecContext *avctx)
669 669
 }
670 670
 
671 671
 AVCodec ff_rv40_decoder = {
672
-    "rv40",
673
-    AVMEDIA_TYPE_VIDEO,
674
-    CODEC_ID_RV40,
675
-    sizeof(RV34DecContext),
676
-    rv40_decode_init,
677
-    NULL,
678
-    ff_rv34_decode_end,
679
-    ff_rv34_decode_frame,
680
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY,
672
+    .name           = "rv40",
673
+    .type           = AVMEDIA_TYPE_VIDEO,
674
+    .id             = CODEC_ID_RV40,
675
+    .priv_data_size = sizeof(RV34DecContext),
676
+    .init           = rv40_decode_init,
677
+    .close          = ff_rv34_decode_end,
678
+    .decode         = ff_rv34_decode_frame,
679
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY,
681 680
     .flush = ff_mpeg_flush,
682 681
     .long_name = NULL_IF_CONFIG_SMALL("RealVideo 4.0"),
683 682
     .pix_fmts= ff_pixfmt_list_420,
... ...
@@ -58,9 +58,9 @@ static int s302m_parse_frame_header(AVCodecContext *avctx, const uint8_t *buf,
58 58
     /* Set output properties */
59 59
     avctx->bits_per_coded_sample = bits;
60 60
     if (bits > 16)
61
-        avctx->sample_fmt = SAMPLE_FMT_S32;
61
+        avctx->sample_fmt = AV_SAMPLE_FMT_S32;
62 62
     else
63
-        avctx->sample_fmt = SAMPLE_FMT_S16;
63
+        avctx->sample_fmt = AV_SAMPLE_FMT_S16;
64 64
 
65 65
     avctx->channels    = channels;
66 66
     switch(channels) {
... ...
@@ -260,14 +260,13 @@ static av_cold int sgi_end(AVCodecContext *avctx)
260 260
 }
261 261
 
262 262
 AVCodec ff_sgi_decoder = {
263
-    "sgi",
264
-    AVMEDIA_TYPE_VIDEO,
265
-    CODEC_ID_SGI,
266
-    sizeof(SgiState),
267
-    sgi_init,
268
-    NULL,
269
-    sgi_end,
270
-    decode_frame,
263
+    .name           = "sgi",
264
+    .type           = AVMEDIA_TYPE_VIDEO,
265
+    .id             = CODEC_ID_SGI,
266
+    .priv_data_size = sizeof(SgiState),
267
+    .init           = sgi_init,
268
+    .close          = sgi_end,
269
+    .decode         = decode_frame,
271 270
     .long_name = NULL_IF_CONFIG_SMALL("SGI image"),
272 271
 };
273 272
 
... ...
@@ -160,13 +160,12 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf,
160 160
 }
161 161
 
162 162
 AVCodec ff_sgi_encoder = {
163
-    "sgi",
164
-    AVMEDIA_TYPE_VIDEO,
165
-    CODEC_ID_SGI,
166
-    sizeof(SgiContext),
167
-    encode_init,
168
-    encode_frame,
169
-    NULL,
163
+    .name           = "sgi",
164
+    .type           = AVMEDIA_TYPE_VIDEO,
165
+    .id             = CODEC_ID_SGI,
166
+    .priv_data_size = sizeof(SgiContext),
167
+    .init           = encode_init,
168
+    .encode         = encode_frame,
170 169
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGBA, PIX_FMT_GRAY8, PIX_FMT_NONE},
171 170
     .long_name= NULL_IF_CONFIG_SMALL("SGI image"),
172 171
 };
... ...
@@ -536,14 +536,13 @@ static void shorten_flush(AVCodecContext *avctx){
536 536
 }
537 537
 
538 538
 AVCodec ff_shorten_decoder = {
539
-    "shorten",
540
-    AVMEDIA_TYPE_AUDIO,
541
-    CODEC_ID_SHORTEN,
542
-    sizeof(ShortenContext),
543
-    shorten_decode_init,
544
-    NULL,
545
-    shorten_decode_close,
546
-    shorten_decode_frame,
539
+    .name           = "shorten",
540
+    .type           = AVMEDIA_TYPE_AUDIO,
541
+    .id             = CODEC_ID_SHORTEN,
542
+    .priv_data_size = sizeof(ShortenContext),
543
+    .init           = shorten_decode_init,
544
+    .close          = shorten_decode_close,
545
+    .decode         = shorten_decode_frame,
547 546
     .flush= shorten_flush,
548 547
     .long_name= NULL_IF_CONFIG_SMALL("Shorten"),
549 548
 };
... ...
@@ -549,13 +549,11 @@ static int sipr_decode_frame(AVCodecContext *avctx, void *datap,
549 549
 }
550 550
 
551 551
 AVCodec ff_sipr_decoder = {
552
-    "sipr",
553
-    AVMEDIA_TYPE_AUDIO,
554
-    CODEC_ID_SIPR,
555
-    sizeof(SiprContext),
556
-    sipr_decoder_init,
557
-    NULL,
558
-    NULL,
559
-    sipr_decode_frame,
552
+    .name           = "sipr",
553
+    .type           = AVMEDIA_TYPE_AUDIO,
554
+    .id             = CODEC_ID_SIPR,
555
+    .priv_data_size = sizeof(SiprContext),
556
+    .init           = sipr_decoder_init,
557
+    .decode         = sipr_decode_frame,
560 558
     .long_name = NULL_IF_CONFIG_SMALL("RealAudio SIPR / ACELP.NET"),
561 559
 };
... ...
@@ -687,27 +687,23 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
687 687
 }
688 688
 
689 689
 AVCodec ff_smacker_decoder = {
690
-    "smackvid",
691
-    AVMEDIA_TYPE_VIDEO,
692
-    CODEC_ID_SMACKVIDEO,
693
-    sizeof(SmackVContext),
694
-    decode_init,
695
-    NULL,
696
-    decode_end,
697
-    decode_frame,
698
-    CODEC_CAP_DR1,
690
+    .name           = "smackvid",
691
+    .type           = AVMEDIA_TYPE_VIDEO,
692
+    .id             = CODEC_ID_SMACKVIDEO,
693
+    .priv_data_size = sizeof(SmackVContext),
694
+    .init           = decode_init,
695
+    .close          = decode_end,
696
+    .decode         = decode_frame,
697
+    .capabilities   = CODEC_CAP_DR1,
699 698
     .long_name = NULL_IF_CONFIG_SMALL("Smacker video"),
700 699
 };
701 700
 
702 701
 AVCodec ff_smackaud_decoder = {
703
-    "smackaud",
704
-    AVMEDIA_TYPE_AUDIO,
705
-    CODEC_ID_SMACKAUDIO,
706
-    0,
707
-    smka_decode_init,
708
-    NULL,
709
-    NULL,
710
-    smka_decode_frame,
702
+    .name           = "smackaud",
703
+    .type           = AVMEDIA_TYPE_AUDIO,
704
+    .id             = CODEC_ID_SMACKAUDIO,
705
+    .init           = smka_decode_init,
706
+    .decode         = smka_decode_frame,
711 707
     .long_name = NULL_IF_CONFIG_SMALL("Smacker audio"),
712 708
 };
713 709
 
... ...
@@ -476,14 +476,13 @@ static av_cold int smc_decode_end(AVCodecContext *avctx)
476 476
 }
477 477
 
478 478
 AVCodec ff_smc_decoder = {
479
-    "smc",
480
-    AVMEDIA_TYPE_VIDEO,
481
-    CODEC_ID_SMC,
482
-    sizeof(SmcContext),
483
-    smc_decode_init,
484
-    NULL,
485
-    smc_decode_end,
486
-    smc_decode_frame,
487
-    CODEC_CAP_DR1,
479
+    .name           = "smc",
480
+    .type           = AVMEDIA_TYPE_VIDEO,
481
+    .id             = CODEC_ID_SMC,
482
+    .priv_data_size = sizeof(SmcContext),
483
+    .init           = smc_decode_init,
484
+    .close          = smc_decode_end,
485
+    .decode         = smc_decode_frame,
486
+    .capabilities   = CODEC_CAP_DR1,
488 487
     .long_name = NULL_IF_CONFIG_SMALL("QuickTime Graphics (SMC)"),
489 488
 };
... ...
@@ -1930,16 +1930,14 @@ static av_cold int decode_end(AVCodecContext *avctx)
1930 1930
 }
1931 1931
 
1932 1932
 AVCodec ff_snow_decoder = {
1933
-    "snow",
1934
-    AVMEDIA_TYPE_VIDEO,
1935
-    CODEC_ID_SNOW,
1936
-    sizeof(SnowContext),
1937
-    decode_init,
1938
-    NULL,
1939
-    decode_end,
1940
-    decode_frame,
1941
-    CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/,
1942
-    NULL,
1933
+    .name           = "snow",
1934
+    .type           = AVMEDIA_TYPE_VIDEO,
1935
+    .id             = CODEC_ID_SNOW,
1936
+    .priv_data_size = sizeof(SnowContext),
1937
+    .init           = decode_init,
1938
+    .close          = decode_end,
1939
+    .decode         = decode_frame,
1940
+    .capabilities   = CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/,
1943 1941
     .long_name = NULL_IF_CONFIG_SMALL("Snow"),
1944 1942
 };
1945 1943
 
... ...
@@ -3679,13 +3677,13 @@ static av_cold int encode_end(AVCodecContext *avctx)
3679 3679
 }
3680 3680
 
3681 3681
 AVCodec ff_snow_encoder = {
3682
-    "snow",
3683
-    AVMEDIA_TYPE_VIDEO,
3684
-    CODEC_ID_SNOW,
3685
-    sizeof(SnowContext),
3686
-    encode_init,
3687
-    encode_frame,
3688
-    encode_end,
3682
+    .name           = "snow",
3683
+    .type           = AVMEDIA_TYPE_VIDEO,
3684
+    .id             = CODEC_ID_SNOW,
3685
+    .priv_data_size = sizeof(SnowContext),
3686
+    .init           = encode_init,
3687
+    .encode         = encode_frame,
3688
+    .close          = encode_end,
3689 3689
     .long_name = NULL_IF_CONFIG_SMALL("Snow"),
3690 3690
 };
3691 3691
 #endif
... ...
@@ -94,29 +94,25 @@ static int sp5x_decode_frame(AVCodecContext *avctx,
94 94
 }
95 95
 
96 96
 AVCodec ff_sp5x_decoder = {
97
-    "sp5x",
98
-    AVMEDIA_TYPE_VIDEO,
99
-    CODEC_ID_SP5X,
100
-    sizeof(MJpegDecodeContext),
101
-    ff_mjpeg_decode_init,
102
-    NULL,
103
-    ff_mjpeg_decode_end,
104
-    sp5x_decode_frame,
105
-    CODEC_CAP_DR1,
106
-    NULL,
97
+    .name           = "sp5x",
98
+    .type           = AVMEDIA_TYPE_VIDEO,
99
+    .id             = CODEC_ID_SP5X,
100
+    .priv_data_size = sizeof(MJpegDecodeContext),
101
+    .init           = ff_mjpeg_decode_init,
102
+    .close          = ff_mjpeg_decode_end,
103
+    .decode         = sp5x_decode_frame,
104
+    .capabilities   = CODEC_CAP_DR1,
107 105
     .max_lowres = 3,
108 106
     .long_name = NULL_IF_CONFIG_SMALL("Sunplus JPEG (SP5X)"),
109 107
 };
110 108
 
111 109
 AVCodec ff_amv_decoder = {
112
-    "amv",
113
-    AVMEDIA_TYPE_VIDEO,
114
-    CODEC_ID_AMV,
115
-    sizeof(MJpegDecodeContext),
116
-    ff_mjpeg_decode_init,
117
-    NULL,
118
-    ff_mjpeg_decode_end,
119
-    sp5x_decode_frame,
120
-    0,
110
+    .name           = "amv",
111
+    .type           = AVMEDIA_TYPE_VIDEO,
112
+    .id             = CODEC_ID_AMV,
113
+    .priv_data_size = sizeof(MJpegDecodeContext),
114
+    .init           = ff_mjpeg_decode_init,
115
+    .close          = ff_mjpeg_decode_end,
116
+    .decode         = sp5x_decode_frame,
121 117
     .long_name = NULL_IF_CONFIG_SMALL("AMV Video"),
122 118
 };
... ...
@@ -185,15 +185,13 @@ static av_cold int sunrast_end(AVCodecContext *avctx) {
185 185
 }
186 186
 
187 187
 AVCodec ff_sunrast_decoder = {
188
-    "sunrast",
189
-    AVMEDIA_TYPE_VIDEO,
190
-    CODEC_ID_SUNRAST,
191
-    sizeof(SUNRASTContext),
192
-    sunrast_init,
193
-    NULL,
194
-    sunrast_end,
195
-    sunrast_decode_frame,
196
-    CODEC_CAP_DR1,
197
-    NULL,
188
+    .name           = "sunrast",
189
+    .type           = AVMEDIA_TYPE_VIDEO,
190
+    .id             = CODEC_ID_SUNRAST,
191
+    .priv_data_size = sizeof(SUNRASTContext),
192
+    .init           = sunrast_init,
193
+    .close          = sunrast_end,
194
+    .decode         = sunrast_decode_frame,
195
+    .capabilities   = CODEC_CAP_DR1,
198 196
     .long_name = NULL_IF_CONFIG_SMALL("Sun Rasterfile image"),
199 197
 };
... ...
@@ -808,15 +808,14 @@ static av_cold int svq1_decode_end(AVCodecContext *avctx)
808 808
 
809 809
 
810 810
 AVCodec ff_svq1_decoder = {
811
-    "svq1",
812
-    AVMEDIA_TYPE_VIDEO,
813
-    CODEC_ID_SVQ1,
814
-    sizeof(MpegEncContext),
815
-    svq1_decode_init,
816
-    NULL,
817
-    svq1_decode_end,
818
-    svq1_decode_frame,
819
-    CODEC_CAP_DR1,
811
+    .name           = "svq1",
812
+    .type           = AVMEDIA_TYPE_VIDEO,
813
+    .id             = CODEC_ID_SVQ1,
814
+    .priv_data_size = sizeof(MpegEncContext),
815
+    .init           = svq1_decode_init,
816
+    .close          = svq1_decode_end,
817
+    .decode         = svq1_decode_frame,
818
+    .capabilities   = CODEC_CAP_DR1,
820 819
     .flush= ff_mpeg_flush,
821 820
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV410P, PIX_FMT_NONE},
822 821
     .long_name= NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1"),
... ...
@@ -573,13 +573,13 @@ static av_cold int svq1_encode_end(AVCodecContext *avctx)
573 573
 
574 574
 
575 575
 AVCodec ff_svq1_encoder = {
576
-    "svq1",
577
-    AVMEDIA_TYPE_VIDEO,
578
-    CODEC_ID_SVQ1,
579
-    sizeof(SVQ1Context),
580
-    svq1_encode_init,
581
-    svq1_encode_frame,
582
-    svq1_encode_end,
576
+    .name           = "svq1",
577
+    .type           = AVMEDIA_TYPE_VIDEO,
578
+    .id             = CODEC_ID_SVQ1,
579
+    .priv_data_size = sizeof(SVQ1Context),
580
+    .init           = svq1_encode_init,
581
+    .encode         = svq1_encode_frame,
582
+    .close          = svq1_encode_end,
583 583
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV410P, PIX_FMT_NONE},
584 584
     .long_name= NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1"),
585 585
 };
... ...
@@ -1120,15 +1120,14 @@ static int svq3_decode_end(AVCodecContext *avctx)
1120 1120
 }
1121 1121
 
1122 1122
 AVCodec ff_svq3_decoder = {
1123
-    "svq3",
1124
-    AVMEDIA_TYPE_VIDEO,
1125
-    CODEC_ID_SVQ3,
1126
-    sizeof(SVQ3Context),
1127
-    svq3_decode_init,
1128
-    NULL,
1129
-    svq3_decode_end,
1130
-    svq3_decode_frame,
1131
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_DELAY,
1123
+    .name           = "svq3",
1124
+    .type           = AVMEDIA_TYPE_VIDEO,
1125
+    .id             = CODEC_ID_SVQ3,
1126
+    .priv_data_size = sizeof(SVQ3Context),
1127
+    .init           = svq3_decode_init,
1128
+    .close          = svq3_decode_end,
1129
+    .decode         = svq3_decode_frame,
1130
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_DELAY,
1132 1131
     .long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3"),
1133 1132
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUVJ420P, PIX_FMT_NONE},
1134 1133
 };
... ...
@@ -257,15 +257,13 @@ static av_cold int targa_end(AVCodecContext *avctx){
257 257
 }
258 258
 
259 259
 AVCodec ff_targa_decoder = {
260
-    "targa",
261
-    AVMEDIA_TYPE_VIDEO,
262
-    CODEC_ID_TARGA,
263
-    sizeof(TargaContext),
264
-    targa_init,
265
-    NULL,
266
-    targa_end,
267
-    decode_frame,
268
-    CODEC_CAP_DR1,
269
-    NULL,
260
+    .name           = "targa",
261
+    .type           = AVMEDIA_TYPE_VIDEO,
262
+    .id             = CODEC_ID_TARGA,
263
+    .priv_data_size = sizeof(TargaContext),
264
+    .init           = targa_init,
265
+    .close          = targa_end,
266
+    .decode         = decode_frame,
267
+    .capabilities   = CODEC_CAP_DR1,
270 268
     .long_name = NULL_IF_CONFIG_SMALL("Truevision Targa image"),
271 269
 };
... ...
@@ -221,14 +221,13 @@ static av_cold int seqvideo_decode_end(AVCodecContext *avctx)
221 221
 }
222 222
 
223 223
 AVCodec ff_tiertexseqvideo_decoder = {
224
-    "tiertexseqvideo",
225
-    AVMEDIA_TYPE_VIDEO,
226
-    CODEC_ID_TIERTEXSEQVIDEO,
227
-    sizeof(SeqVideoContext),
228
-    seqvideo_decode_init,
229
-    NULL,
230
-    seqvideo_decode_end,
231
-    seqvideo_decode_frame,
232
-    CODEC_CAP_DR1,
224
+    .name           = "tiertexseqvideo",
225
+    .type           = AVMEDIA_TYPE_VIDEO,
226
+    .id             = CODEC_ID_TIERTEXSEQVIDEO,
227
+    .priv_data_size = sizeof(SeqVideoContext),
228
+    .init           = seqvideo_decode_init,
229
+    .close          = seqvideo_decode_end,
230
+    .decode         = seqvideo_decode_frame,
231
+    .capabilities   = CODEC_CAP_DR1,
233 232
     .long_name = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ video"),
234 233
 };
... ...
@@ -621,15 +621,13 @@ static av_cold int tiff_end(AVCodecContext *avctx)
621 621
 }
622 622
 
623 623
 AVCodec ff_tiff_decoder = {
624
-    "tiff",
625
-    AVMEDIA_TYPE_VIDEO,
626
-    CODEC_ID_TIFF,
627
-    sizeof(TiffContext),
628
-    tiff_init,
629
-    NULL,
630
-    tiff_end,
631
-    decode_frame,
632
-    CODEC_CAP_DR1,
633
-    NULL,
624
+    .name           = "tiff",
625
+    .type           = AVMEDIA_TYPE_VIDEO,
626
+    .id             = CODEC_ID_TIFF,
627
+    .priv_data_size = sizeof(TiffContext),
628
+    .init           = tiff_init,
629
+    .close          = tiff_end,
630
+    .decode         = decode_frame,
631
+    .capabilities   = CODEC_CAP_DR1,
634 632
     .long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
635 633
 };
... ...
@@ -442,16 +442,11 @@ fail:
442 442
 }
443 443
 
444 444
 AVCodec ff_tiff_encoder = {
445
-    "tiff",
446
-    AVMEDIA_TYPE_VIDEO,
447
-    CODEC_ID_TIFF,
448
-    sizeof(TiffEncoderContext),
449
-    NULL,
450
-    encode_frame,
451
-    NULL,
452
-    NULL,
453
-    0,
454
-    NULL,
445
+    .name           = "tiff",
446
+    .type           = AVMEDIA_TYPE_VIDEO,
447
+    .id             = CODEC_ID_TIFF,
448
+    .priv_data_size = sizeof(TiffEncoderContext),
449
+    .encode         = encode_frame,
455 450
     .pix_fmts =
456 451
         (const enum PixelFormat[]) {PIX_FMT_RGB24, PIX_FMT_PAL8, PIX_FMT_GRAY8,
457 452
                               PIX_FMT_MONOBLACK, PIX_FMT_MONOWHITE,
... ...
@@ -893,14 +893,13 @@ static av_cold int truemotion1_decode_end(AVCodecContext *avctx)
893 893
 }
894 894
 
895 895
 AVCodec ff_truemotion1_decoder = {
896
-    "truemotion1",
897
-    AVMEDIA_TYPE_VIDEO,
898
-    CODEC_ID_TRUEMOTION1,
899
-    sizeof(TrueMotion1Context),
900
-    truemotion1_decode_init,
901
-    NULL,
902
-    truemotion1_decode_end,
903
-    truemotion1_decode_frame,
904
-    CODEC_CAP_DR1,
896
+    .name           = "truemotion1",
897
+    .type           = AVMEDIA_TYPE_VIDEO,
898
+    .id             = CODEC_ID_TRUEMOTION1,
899
+    .priv_data_size = sizeof(TrueMotion1Context),
900
+    .init           = truemotion1_decode_init,
901
+    .close          = truemotion1_decode_end,
902
+    .decode         = truemotion1_decode_frame,
903
+    .capabilities   = CODEC_CAP_DR1,
905 904
     .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 1.0"),
906 905
 };
... ...
@@ -865,14 +865,13 @@ static av_cold int decode_end(AVCodecContext *avctx){
865 865
 }
866 866
 
867 867
 AVCodec ff_truemotion2_decoder = {
868
-    "truemotion2",
869
-    AVMEDIA_TYPE_VIDEO,
870
-    CODEC_ID_TRUEMOTION2,
871
-    sizeof(TM2Context),
872
-    decode_init,
873
-    NULL,
874
-    decode_end,
875
-    decode_frame,
876
-    CODEC_CAP_DR1,
868
+    .name           = "truemotion2",
869
+    .type           = AVMEDIA_TYPE_VIDEO,
870
+    .id             = CODEC_ID_TRUEMOTION2,
871
+    .priv_data_size = sizeof(TM2Context),
872
+    .init           = decode_init,
873
+    .close          = decode_end,
874
+    .decode         = decode_frame,
875
+    .capabilities   = CODEC_CAP_DR1,
877 876
     .long_name = NULL_IF_CONFIG_SMALL("Duck TrueMotion 2.0"),
878 877
 };
... ...
@@ -382,13 +382,11 @@ static int truespeech_decode_frame(AVCodecContext *avctx,
382 382
 }
383 383
 
384 384
 AVCodec ff_truespeech_decoder = {
385
-    "truespeech",
386
-    AVMEDIA_TYPE_AUDIO,
387
-    CODEC_ID_TRUESPEECH,
388
-    sizeof(TSContext),
389
-    truespeech_decode_init,
390
-    NULL,
391
-    NULL,
392
-    truespeech_decode_frame,
385
+    .name           = "truespeech",
386
+    .type           = AVMEDIA_TYPE_AUDIO,
387
+    .id             = CODEC_ID_TRUESPEECH,
388
+    .priv_data_size = sizeof(TSContext),
389
+    .init           = truespeech_decode_init,
390
+    .decode         = truespeech_decode_frame,
393 391
     .long_name = NULL_IF_CONFIG_SMALL("DSP Group TrueSpeech"),
394 392
 };
... ...
@@ -200,15 +200,14 @@ static av_cold int decode_end(AVCodecContext *avctx)
200 200
 }
201 201
 
202 202
 AVCodec ff_tscc_decoder = {
203
-        "camtasia",
204
-        AVMEDIA_TYPE_VIDEO,
205
-        CODEC_ID_TSCC,
206
-        sizeof(CamtasiaContext),
207
-        decode_init,
208
-        NULL,
209
-        decode_end,
210
-        decode_frame,
211
-        CODEC_CAP_DR1,
203
+    .name           = "camtasia",
204
+    .type           = AVMEDIA_TYPE_VIDEO,
205
+    .id             = CODEC_ID_TSCC,
206
+    .priv_data_size = sizeof(CamtasiaContext),
207
+    .init           = decode_init,
208
+    .close          = decode_end,
209
+    .decode         = decode_frame,
210
+    .capabilities   = CODEC_CAP_DR1,
212 211
         .long_name = NULL_IF_CONFIG_SMALL("TechSmith Screen Capture Codec"),
213 212
 };
214 213
 
... ...
@@ -454,13 +454,12 @@ static av_cold int tta_decode_close(AVCodecContext *avctx) {
454 454
 }
455 455
 
456 456
 AVCodec ff_tta_decoder = {
457
-    "tta",
458
-    AVMEDIA_TYPE_AUDIO,
459
-    CODEC_ID_TTA,
460
-    sizeof(TTAContext),
461
-    tta_decode_init,
462
-    NULL,
463
-    tta_decode_close,
464
-    tta_decode_frame,
457
+    .name           = "tta",
458
+    .type           = AVMEDIA_TYPE_AUDIO,
459
+    .id             = CODEC_ID_TTA,
460
+    .priv_data_size = sizeof(TTAContext),
461
+    .init           = tta_decode_init,
462
+    .close          = tta_decode_close,
463
+    .decode         = tta_decode_frame,
465 464
     .long_name = NULL_IF_CONFIG_SMALL("True Audio (TTA)"),
466 465
 };
... ...
@@ -156,15 +156,13 @@ static av_cold int txd_end(AVCodecContext *avctx) {
156 156
 }
157 157
 
158 158
 AVCodec ff_txd_decoder = {
159
-    "txd",
160
-    AVMEDIA_TYPE_VIDEO,
161
-    CODEC_ID_TXD,
162
-    sizeof(TXDContext),
163
-    txd_init,
164
-    NULL,
165
-    txd_end,
166
-    txd_decode_frame,
167
-    CODEC_CAP_DR1,
168
-    NULL,
159
+    .name           = "txd",
160
+    .type           = AVMEDIA_TYPE_VIDEO,
161
+    .id             = CODEC_ID_TXD,
162
+    .priv_data_size = sizeof(TXDContext),
163
+    .init           = txd_init,
164
+    .close          = txd_end,
165
+    .decode         = txd_decode_frame,
166
+    .capabilities   = CODEC_CAP_DR1,
169 167
     .long_name = NULL_IF_CONFIG_SMALL("Renderware TXD (TeXture Dictionary) image"),
170 168
 };
... ...
@@ -403,16 +403,14 @@ static int ulti_decode_frame(AVCodecContext *avctx,
403 403
 }
404 404
 
405 405
 AVCodec ff_ulti_decoder = {
406
-    "ultimotion",
407
-    AVMEDIA_TYPE_VIDEO,
408
-    CODEC_ID_ULTI,
409
-    sizeof(UltimotionDecodeContext),
410
-    ulti_decode_init,
411
-    NULL,
412
-    ulti_decode_end,
413
-    ulti_decode_frame,
414
-    CODEC_CAP_DR1,
415
-    NULL,
406
+    .name           = "ultimotion",
407
+    .type           = AVMEDIA_TYPE_VIDEO,
408
+    .id             = CODEC_ID_ULTI,
409
+    .priv_data_size = sizeof(UltimotionDecodeContext),
410
+    .init           = ulti_decode_init,
411
+    .close          = ulti_decode_end,
412
+    .decode         = ulti_decode_frame,
413
+    .capabilities   = CODEC_CAP_DR1,
416 414
     .long_name = NULL_IF_CONFIG_SMALL("IBM UltiMotion"),
417 415
 };
418 416
 
... ...
@@ -121,14 +121,12 @@ static av_cold int decode_close(AVCodecContext *avctx)
121 121
 }
122 122
 
123 123
 AVCodec ff_v210_decoder = {
124
-    "v210",
125
-    AVMEDIA_TYPE_VIDEO,
126
-    CODEC_ID_V210,
127
-    0,
128
-    decode_init,
129
-    NULL,
130
-    decode_close,
131
-    decode_frame,
132
-    CODEC_CAP_DR1,
124
+    .name           = "v210",
125
+    .type           = AVMEDIA_TYPE_VIDEO,
126
+    .id             = CODEC_ID_V210,
127
+    .init           = decode_init,
128
+    .close          = decode_close,
129
+    .decode         = decode_frame,
130
+    .capabilities   = CODEC_CAP_DR1,
133 131
     .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
134 132
 };
... ...
@@ -118,13 +118,12 @@ static av_cold int encode_close(AVCodecContext *avctx)
118 118
 }
119 119
 
120 120
 AVCodec ff_v210_encoder = {
121
-    "v210",
122
-    AVMEDIA_TYPE_VIDEO,
123
-    CODEC_ID_V210,
124
-    0,
125
-    encode_init,
126
-    encode_frame,
127
-    encode_close,
121
+    .name           = "v210",
122
+    .type           = AVMEDIA_TYPE_VIDEO,
123
+    .id             = CODEC_ID_V210,
124
+    .init           = encode_init,
125
+    .encode         = encode_frame,
126
+    .close          = encode_close,
128 127
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_YUV422P10, PIX_FMT_NONE},
129 128
     .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
130 129
 };
... ...
@@ -133,14 +133,12 @@ static av_cold int decode_close(AVCodecContext *avctx)
133 133
 }
134 134
 
135 135
 AVCodec ff_v210x_decoder = {
136
-    "v210x",
137
-    AVMEDIA_TYPE_VIDEO,
138
-    CODEC_ID_V210X,
139
-    0,
140
-    decode_init,
141
-    NULL,
142
-    decode_close,
143
-    decode_frame,
144
-    CODEC_CAP_DR1,
136
+    .name           = "v210x",
137
+    .type           = AVMEDIA_TYPE_VIDEO,
138
+    .id             = CODEC_ID_V210X,
139
+    .init           = decode_init,
140
+    .close          = decode_close,
141
+    .decode         = decode_frame,
142
+    .capabilities   = CODEC_CAP_DR1,
145 143
     .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
146 144
 };
... ...
@@ -289,14 +289,13 @@ static av_cold int decode_end(AVCodecContext *avctx)
289 289
 }
290 290
 
291 291
 AVCodec ff_vb_decoder = {
292
-    "vb",
293
-    AVMEDIA_TYPE_VIDEO,
294
-    CODEC_ID_VB,
295
-    sizeof(VBDecContext),
296
-    decode_init,
297
-    NULL,
298
-    decode_end,
299
-    decode_frame,
292
+    .name           = "vb",
293
+    .type           = AVMEDIA_TYPE_VIDEO,
294
+    .id             = CODEC_ID_VB,
295
+    .priv_data_size = sizeof(VBDecContext),
296
+    .init           = decode_init,
297
+    .close          = decode_end,
298
+    .decode         = decode_frame,
300 299
     .long_name = NULL_IF_CONFIG_SMALL("Beam Software VB"),
301 300
 };
302 301
 
... ...
@@ -3829,16 +3829,14 @@ static const AVProfile profiles[] = {
3829 3829
 };
3830 3830
 
3831 3831
 AVCodec ff_vc1_decoder = {
3832
-    "vc1",
3833
-    AVMEDIA_TYPE_VIDEO,
3834
-    CODEC_ID_VC1,
3835
-    sizeof(VC1Context),
3836
-    vc1_decode_init,
3837
-    NULL,
3838
-    vc1_decode_end,
3839
-    vc1_decode_frame,
3840
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY,
3841
-    NULL,
3832
+    .name           = "vc1",
3833
+    .type           = AVMEDIA_TYPE_VIDEO,
3834
+    .id             = CODEC_ID_VC1,
3835
+    .priv_data_size = sizeof(VC1Context),
3836
+    .init           = vc1_decode_init,
3837
+    .close          = vc1_decode_end,
3838
+    .decode         = vc1_decode_frame,
3839
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY,
3842 3840
     .long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),
3843 3841
     .pix_fmts = ff_hwaccel_pixfmt_list_420,
3844 3842
     .profiles = NULL_IF_CONFIG_SMALL(profiles)
... ...
@@ -3846,16 +3844,14 @@ AVCodec ff_vc1_decoder = {
3846 3846
 
3847 3847
 #if CONFIG_WMV3_DECODER
3848 3848
 AVCodec ff_wmv3_decoder = {
3849
-    "wmv3",
3850
-    AVMEDIA_TYPE_VIDEO,
3851
-    CODEC_ID_WMV3,
3852
-    sizeof(VC1Context),
3853
-    vc1_decode_init,
3854
-    NULL,
3855
-    vc1_decode_end,
3856
-    vc1_decode_frame,
3857
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY,
3858
-    NULL,
3849
+    .name           = "wmv3",
3850
+    .type           = AVMEDIA_TYPE_VIDEO,
3851
+    .id             = CODEC_ID_WMV3,
3852
+    .priv_data_size = sizeof(VC1Context),
3853
+    .init           = vc1_decode_init,
3854
+    .close          = vc1_decode_end,
3855
+    .decode         = vc1_decode_frame,
3856
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY,
3859 3857
     .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9"),
3860 3858
     .pix_fmts = ff_hwaccel_pixfmt_list_420,
3861 3859
     .profiles = NULL_IF_CONFIG_SMALL(profiles)
... ...
@@ -3864,16 +3860,14 @@ AVCodec ff_wmv3_decoder = {
3864 3864
 
3865 3865
 #if CONFIG_WMV3_VDPAU_DECODER
3866 3866
 AVCodec ff_wmv3_vdpau_decoder = {
3867
-    "wmv3_vdpau",
3868
-    AVMEDIA_TYPE_VIDEO,
3869
-    CODEC_ID_WMV3,
3870
-    sizeof(VC1Context),
3871
-    vc1_decode_init,
3872
-    NULL,
3873
-    vc1_decode_end,
3874
-    vc1_decode_frame,
3875
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
3876
-    NULL,
3867
+    .name           = "wmv3_vdpau",
3868
+    .type           = AVMEDIA_TYPE_VIDEO,
3869
+    .id             = CODEC_ID_WMV3,
3870
+    .priv_data_size = sizeof(VC1Context),
3871
+    .init           = vc1_decode_init,
3872
+    .close          = vc1_decode_end,
3873
+    .decode         = vc1_decode_frame,
3874
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
3877 3875
     .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 VDPAU"),
3878 3876
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_WMV3, PIX_FMT_NONE},
3879 3877
     .profiles = NULL_IF_CONFIG_SMALL(profiles)
... ...
@@ -3882,16 +3876,14 @@ AVCodec ff_wmv3_vdpau_decoder = {
3882 3882
 
3883 3883
 #if CONFIG_VC1_VDPAU_DECODER
3884 3884
 AVCodec ff_vc1_vdpau_decoder = {
3885
-    "vc1_vdpau",
3886
-    AVMEDIA_TYPE_VIDEO,
3887
-    CODEC_ID_VC1,
3888
-    sizeof(VC1Context),
3889
-    vc1_decode_init,
3890
-    NULL,
3891
-    vc1_decode_end,
3892
-    vc1_decode_frame,
3893
-    CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
3894
-    NULL,
3885
+    .name           = "vc1_vdpau",
3886
+    .type           = AVMEDIA_TYPE_VIDEO,
3887
+    .id             = CODEC_ID_VC1,
3888
+    .priv_data_size = sizeof(VC1Context),
3889
+    .init           = vc1_decode_init,
3890
+    .close          = vc1_decode_end,
3891
+    .decode         = vc1_decode_frame,
3892
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
3895 3893
     .long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1 VDPAU"),
3896 3894
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_VC1, PIX_FMT_NONE},
3897 3895
     .profiles = NULL_IF_CONFIG_SMALL(profiles)
... ...
@@ -178,26 +178,25 @@ static av_cold int encode_init(AVCodecContext *avctx){
178 178
 #endif
179 179
 
180 180
 AVCodec ff_vcr1_decoder = {
181
-    "vcr1",
182
-    AVMEDIA_TYPE_VIDEO,
183
-    CODEC_ID_VCR1,
184
-    sizeof(VCR1Context),
185
-    decode_init,
186
-    NULL,
187
-    decode_end,
188
-    decode_frame,
189
-    CODEC_CAP_DR1,
181
+    .name           = "vcr1",
182
+    .type           = AVMEDIA_TYPE_VIDEO,
183
+    .id             = CODEC_ID_VCR1,
184
+    .priv_data_size = sizeof(VCR1Context),
185
+    .init           = decode_init,
186
+    .close          = decode_end,
187
+    .decode         = decode_frame,
188
+    .capabilities   = CODEC_CAP_DR1,
190 189
     .long_name = NULL_IF_CONFIG_SMALL("ATI VCR1"),
191 190
 };
192 191
 
193 192
 #if CONFIG_VCR1_ENCODER
194 193
 AVCodec ff_vcr1_encoder = {
195
-    "vcr1",
196
-    AVMEDIA_TYPE_VIDEO,
197
-    CODEC_ID_VCR1,
198
-    sizeof(VCR1Context),
199
-    encode_init,
200
-    encode_frame,
194
+    .name           = "vcr1",
195
+    .type           = AVMEDIA_TYPE_VIDEO,
196
+    .id             = CODEC_ID_VCR1,
197
+    .priv_data_size = sizeof(VCR1Context),
198
+    .init           = encode_init,
199
+    .encode         = encode_frame,
201 200
     //encode_end,
202 201
     .long_name = NULL_IF_CONFIG_SMALL("ATI VCR1"),
203 202
 };
... ...
@@ -547,26 +547,23 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx,
547 547
  */
548 548
 
549 549
 AVCodec ff_vmdvideo_decoder = {
550
-    "vmdvideo",
551
-    AVMEDIA_TYPE_VIDEO,
552
-    CODEC_ID_VMDVIDEO,
553
-    sizeof(VmdVideoContext),
554
-    vmdvideo_decode_init,
555
-    NULL,
556
-    vmdvideo_decode_end,
557
-    vmdvideo_decode_frame,
558
-    CODEC_CAP_DR1,
550
+    .name           = "vmdvideo",
551
+    .type           = AVMEDIA_TYPE_VIDEO,
552
+    .id             = CODEC_ID_VMDVIDEO,
553
+    .priv_data_size = sizeof(VmdVideoContext),
554
+    .init           = vmdvideo_decode_init,
555
+    .close          = vmdvideo_decode_end,
556
+    .decode         = vmdvideo_decode_frame,
557
+    .capabilities   = CODEC_CAP_DR1,
559 558
     .long_name = NULL_IF_CONFIG_SMALL("Sierra VMD video"),
560 559
 };
561 560
 
562 561
 AVCodec ff_vmdaudio_decoder = {
563
-    "vmdaudio",
564
-    AVMEDIA_TYPE_AUDIO,
565
-    CODEC_ID_VMDAUDIO,
566
-    sizeof(VmdAudioContext),
567
-    vmdaudio_decode_init,
568
-    NULL,
569
-    NULL,
570
-    vmdaudio_decode_frame,
562
+    .name           = "vmdaudio",
563
+    .type           = AVMEDIA_TYPE_AUDIO,
564
+    .id             = CODEC_ID_VMDAUDIO,
565
+    .priv_data_size = sizeof(VmdAudioContext),
566
+    .init           = vmdaudio_decode_init,
567
+    .decode         = vmdaudio_decode_frame,
571 568
     .long_name = NULL_IF_CONFIG_SMALL("Sierra VMD audio"),
572 569
 };
... ...
@@ -510,15 +510,14 @@ static av_cold int decode_end(AVCodecContext *avctx)
510 510
 }
511 511
 
512 512
 AVCodec ff_vmnc_decoder = {
513
-    "vmnc",
514
-    AVMEDIA_TYPE_VIDEO,
515
-    CODEC_ID_VMNC,
516
-    sizeof(VmncContext),
517
-    decode_init,
518
-    NULL,
519
-    decode_end,
520
-    decode_frame,
521
-    CODEC_CAP_DR1,
513
+    .name           = "vmnc",
514
+    .type           = AVMEDIA_TYPE_VIDEO,
515
+    .id             = CODEC_ID_VMNC,
516
+    .priv_data_size = sizeof(VmncContext),
517
+    .init           = decode_init,
518
+    .close          = decode_end,
519
+    .decode         = decode_frame,
520
+    .capabilities   = CODEC_CAP_DR1,
522 521
     .long_name = NULL_IF_CONFIG_SMALL("VMware Screen Codec / VMware Video"),
523 522
 };
524 523
 
... ...
@@ -1669,14 +1669,13 @@ static av_cold int vorbis_decode_close(AVCodecContext *avccontext)
1669 1669
 }
1670 1670
 
1671 1671
 AVCodec ff_vorbis_decoder = {
1672
-    "vorbis",
1673
-    AVMEDIA_TYPE_AUDIO,
1674
-    CODEC_ID_VORBIS,
1675
-    sizeof(vorbis_context),
1676
-    vorbis_decode_init,
1677
-    NULL,
1678
-    vorbis_decode_close,
1679
-    vorbis_decode_frame,
1672
+    .name           = "vorbis",
1673
+    .type           = AVMEDIA_TYPE_AUDIO,
1674
+    .id             = CODEC_ID_VORBIS,
1675
+    .priv_data_size = sizeof(vorbis_context),
1676
+    .init           = vorbis_decode_init,
1677
+    .close          = vorbis_decode_close,
1678
+    .decode         = vorbis_decode_frame,
1680 1679
     .long_name = NULL_IF_CONFIG_SMALL("Vorbis"),
1681 1680
     .channel_layouts = ff_vorbis_channel_layouts,
1682 1681
     .sample_fmts = (const enum AVSampleFormat[]) {
... ...
@@ -1103,13 +1103,13 @@ static av_cold int vorbis_encode_close(AVCodecContext *avccontext)
1103 1103
 }
1104 1104
 
1105 1105
 AVCodec ff_vorbis_encoder = {
1106
-    "vorbis",
1107
-    AVMEDIA_TYPE_AUDIO,
1108
-    CODEC_ID_VORBIS,
1109
-    sizeof(vorbis_enc_context),
1110
-    vorbis_encode_init,
1111
-    vorbis_encode_frame,
1112
-    vorbis_encode_close,
1106
+    .name           = "vorbis",
1107
+    .type           = AVMEDIA_TYPE_AUDIO,
1108
+    .id             = CODEC_ID_VORBIS,
1109
+    .priv_data_size = sizeof(vorbis_enc_context),
1110
+    .init           = vorbis_encode_init,
1111
+    .encode         = vorbis_encode_frame,
1112
+    .close          = vorbis_encode_close,
1113 1113
     .capabilities= CODEC_CAP_DELAY | CODEC_CAP_EXPERIMENTAL,
1114 1114
     .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
1115 1115
     .long_name = NULL_IF_CONFIG_SMALL("Vorbis"),
... ...
@@ -2342,16 +2342,14 @@ static void vp3_decode_flush(AVCodecContext *avctx)
2342 2342
 }
2343 2343
 
2344 2344
 AVCodec ff_theora_decoder = {
2345
-    "theora",
2346
-    AVMEDIA_TYPE_VIDEO,
2347
-    CODEC_ID_THEORA,
2348
-    sizeof(Vp3DecodeContext),
2349
-    theora_decode_init,
2350
-    NULL,
2351
-    vp3_decode_end,
2352
-    vp3_decode_frame,
2353
-    CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
2354
-    NULL,
2345
+    .name           = "theora",
2346
+    .type           = AVMEDIA_TYPE_VIDEO,
2347
+    .id             = CODEC_ID_THEORA,
2348
+    .priv_data_size = sizeof(Vp3DecodeContext),
2349
+    .init           = theora_decode_init,
2350
+    .close          = vp3_decode_end,
2351
+    .decode         = vp3_decode_frame,
2352
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
2355 2353
     .flush = vp3_decode_flush,
2356 2354
     .long_name = NULL_IF_CONFIG_SMALL("Theora"),
2357 2355
     .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
... ...
@@ -2359,16 +2357,14 @@ AVCodec ff_theora_decoder = {
2359 2359
 #endif
2360 2360
 
2361 2361
 AVCodec ff_vp3_decoder = {
2362
-    "vp3",
2363
-    AVMEDIA_TYPE_VIDEO,
2364
-    CODEC_ID_VP3,
2365
-    sizeof(Vp3DecodeContext),
2366
-    vp3_decode_init,
2367
-    NULL,
2368
-    vp3_decode_end,
2369
-    vp3_decode_frame,
2370
-    CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
2371
-    NULL,
2362
+    .name           = "vp3",
2363
+    .type           = AVMEDIA_TYPE_VIDEO,
2364
+    .id             = CODEC_ID_VP3,
2365
+    .priv_data_size = sizeof(Vp3DecodeContext),
2366
+    .init           = vp3_decode_init,
2367
+    .close          = vp3_decode_end,
2368
+    .decode         = vp3_decode_frame,
2369
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS,
2372 2370
     .flush = vp3_decode_flush,
2373 2371
     .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
2374 2372
     .update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context)
... ...
@@ -269,14 +269,13 @@ static av_cold int vp5_decode_init(AVCodecContext *avctx)
269 269
 }
270 270
 
271 271
 AVCodec ff_vp5_decoder = {
272
-    "vp5",
273
-    AVMEDIA_TYPE_VIDEO,
274
-    CODEC_ID_VP5,
275
-    sizeof(VP56Context),
276
-    vp5_decode_init,
277
-    NULL,
278
-    ff_vp56_free,
279
-    ff_vp56_decode_frame,
280
-    CODEC_CAP_DR1,
272
+    .name           = "vp5",
273
+    .type           = AVMEDIA_TYPE_VIDEO,
274
+    .id             = CODEC_ID_VP5,
275
+    .priv_data_size = sizeof(VP56Context),
276
+    .init           = vp5_decode_init,
277
+    .close          = ff_vp56_free,
278
+    .decode         = ff_vp56_decode_frame,
279
+    .capabilities   = CODEC_CAP_DR1,
281 280
     .long_name = NULL_IF_CONFIG_SMALL("On2 VP5"),
282 281
 };
... ...
@@ -609,42 +609,39 @@ static av_cold int vp6_decode_free(AVCodecContext *avctx)
609 609
 }
610 610
 
611 611
 AVCodec ff_vp6_decoder = {
612
-    "vp6",
613
-    AVMEDIA_TYPE_VIDEO,
614
-    CODEC_ID_VP6,
615
-    sizeof(VP56Context),
616
-    vp6_decode_init,
617
-    NULL,
618
-    vp6_decode_free,
619
-    ff_vp56_decode_frame,
620
-    CODEC_CAP_DR1,
612
+    .name           = "vp6",
613
+    .type           = AVMEDIA_TYPE_VIDEO,
614
+    .id             = CODEC_ID_VP6,
615
+    .priv_data_size = sizeof(VP56Context),
616
+    .init           = vp6_decode_init,
617
+    .close          = vp6_decode_free,
618
+    .decode         = ff_vp56_decode_frame,
619
+    .capabilities   = CODEC_CAP_DR1,
621 620
     .long_name = NULL_IF_CONFIG_SMALL("On2 VP6"),
622 621
 };
623 622
 
624 623
 /* flash version, not flipped upside-down */
625 624
 AVCodec ff_vp6f_decoder = {
626
-    "vp6f",
627
-    AVMEDIA_TYPE_VIDEO,
628
-    CODEC_ID_VP6F,
629
-    sizeof(VP56Context),
630
-    vp6_decode_init,
631
-    NULL,
632
-    vp6_decode_free,
633
-    ff_vp56_decode_frame,
634
-    CODEC_CAP_DR1,
625
+    .name           = "vp6f",
626
+    .type           = AVMEDIA_TYPE_VIDEO,
627
+    .id             = CODEC_ID_VP6F,
628
+    .priv_data_size = sizeof(VP56Context),
629
+    .init           = vp6_decode_init,
630
+    .close          = vp6_decode_free,
631
+    .decode         = ff_vp56_decode_frame,
632
+    .capabilities   = CODEC_CAP_DR1,
635 633
     .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version)"),
636 634
 };
637 635
 
638 636
 /* flash version, not flipped upside-down, with alpha channel */
639 637
 AVCodec ff_vp6a_decoder = {
640
-    "vp6a",
641
-    AVMEDIA_TYPE_VIDEO,
642
-    CODEC_ID_VP6A,
643
-    sizeof(VP56Context),
644
-    vp6_decode_init,
645
-    NULL,
646
-    vp6_decode_free,
647
-    ff_vp56_decode_frame,
648
-    CODEC_CAP_DR1,
638
+    .name           = "vp6a",
639
+    .type           = AVMEDIA_TYPE_VIDEO,
640
+    .id             = CODEC_ID_VP6A,
641
+    .priv_data_size = sizeof(VP56Context),
642
+    .init           = vp6_decode_init,
643
+    .close          = vp6_decode_free,
644
+    .decode         = ff_vp56_decode_frame,
645
+    .capabilities   = CODEC_CAP_DR1,
649 646
     .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version, with alpha channel)"),
650 647
 };
... ...
@@ -1764,15 +1764,14 @@ static int vp8_decode_update_thread_context(AVCodecContext *dst, const AVCodecCo
1764 1764
 }
1765 1765
 
1766 1766
 AVCodec ff_vp8_decoder = {
1767
-    "vp8",
1768
-    AVMEDIA_TYPE_VIDEO,
1769
-    CODEC_ID_VP8,
1770
-    sizeof(VP8Context),
1771
-    vp8_decode_init,
1772
-    NULL,
1773
-    vp8_decode_free,
1774
-    vp8_decode_frame,
1775
-    CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
1767
+    .name           = "vp8",
1768
+    .type           = AVMEDIA_TYPE_VIDEO,
1769
+    .id             = CODEC_ID_VP8,
1770
+    .priv_data_size = sizeof(VP8Context),
1771
+    .init           = vp8_decode_init,
1772
+    .close          = vp8_decode_free,
1773
+    .decode         = vp8_decode_frame,
1774
+    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
1776 1775
     .flush = vp8_decode_flush,
1777 1776
     .long_name = NULL_IF_CONFIG_SMALL("On2 VP8"),
1778 1777
     .init_thread_copy      = ONLY_IF_THREADS_ENABLED(vp8_decode_init_thread_copy),
... ...
@@ -601,14 +601,13 @@ static av_cold int vqa_decode_end(AVCodecContext *avctx)
601 601
 }
602 602
 
603 603
 AVCodec ff_vqa_decoder = {
604
-    "vqavideo",
605
-    AVMEDIA_TYPE_VIDEO,
606
-    CODEC_ID_WS_VQA,
607
-    sizeof(VqaContext),
608
-    vqa_decode_init,
609
-    NULL,
610
-    vqa_decode_end,
611
-    vqa_decode_frame,
612
-    CODEC_CAP_DR1,
604
+    .name           = "vqavideo",
605
+    .type           = AVMEDIA_TYPE_VIDEO,
606
+    .id             = CODEC_ID_WS_VQA,
607
+    .priv_data_size = sizeof(VqaContext),
608
+    .init           = vqa_decode_init,
609
+    .close          = vqa_decode_end,
610
+    .decode         = vqa_decode_frame,
611
+    .capabilities   = CODEC_CAP_DR1,
613 612
     .long_name = NULL_IF_CONFIG_SMALL("Westwood Studios VQA (Vector Quantized Animation) video"),
614 613
 };
... ...
@@ -1190,14 +1190,13 @@ static int wavpack_decode_frame(AVCodecContext *avctx,
1190 1190
 }
1191 1191
 
1192 1192
 AVCodec ff_wavpack_decoder = {
1193
-    "wavpack",
1194
-    AVMEDIA_TYPE_AUDIO,
1195
-    CODEC_ID_WAVPACK,
1196
-    sizeof(WavpackContext),
1197
-    wavpack_decode_init,
1198
-    NULL,
1199
-    wavpack_decode_end,
1200
-    wavpack_decode_frame,
1193
+    .name           = "wavpack",
1194
+    .type           = AVMEDIA_TYPE_AUDIO,
1195
+    .id             = CODEC_ID_WAVPACK,
1196
+    .priv_data_size = sizeof(WavpackContext),
1197
+    .init           = wavpack_decode_init,
1198
+    .close          = wavpack_decode_end,
1199
+    .decode         = wavpack_decode_frame,
1201 1200
     .capabilities = CODEC_CAP_SUBFRAMES,
1202 1201
     .long_name = NULL_IF_CONFIG_SMALL("WavPack"),
1203 1202
 };
... ...
@@ -1605,14 +1605,13 @@ static void flush(AVCodecContext *avctx)
1605 1605
  *@brief wmapro decoder
1606 1606
  */
1607 1607
 AVCodec ff_wmapro_decoder = {
1608
-    "wmapro",
1609
-    AVMEDIA_TYPE_AUDIO,
1610
-    CODEC_ID_WMAPRO,
1611
-    sizeof(WMAProDecodeCtx),
1612
-    decode_init,
1613
-    NULL,
1614
-    decode_end,
1615
-    decode_packet,
1608
+    .name           = "wmapro",
1609
+    .type           = AVMEDIA_TYPE_AUDIO,
1610
+    .id             = CODEC_ID_WMAPRO,
1611
+    .priv_data_size = sizeof(WMAProDecodeCtx),
1612
+    .init           = decode_init,
1613
+    .close          = decode_end,
1614
+    .decode         = decode_packet,
1616 1615
     .capabilities = CODEC_CAP_SUBFRAMES,
1617 1616
     .flush= flush,
1618 1617
     .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 9 Professional"),
... ...
@@ -2022,15 +2022,14 @@ static av_cold void wmavoice_flush(AVCodecContext *ctx)
2022 2022
 }
2023 2023
 
2024 2024
 AVCodec ff_wmavoice_decoder = {
2025
-    "wmavoice",
2026
-    AVMEDIA_TYPE_AUDIO,
2027
-    CODEC_ID_WMAVOICE,
2028
-    sizeof(WMAVoiceContext),
2029
-    wmavoice_decode_init,
2030
-    NULL,
2031
-    wmavoice_decode_end,
2032
-    wmavoice_decode_packet,
2033
-    CODEC_CAP_SUBFRAMES,
2025
+    .name           = "wmavoice",
2026
+    .type           = AVMEDIA_TYPE_AUDIO,
2027
+    .id             = CODEC_ID_WMAVOICE,
2028
+    .priv_data_size = sizeof(WMAVoiceContext),
2029
+    .init           = wmavoice_decode_init,
2030
+    .close          = wmavoice_decode_end,
2031
+    .decode         = wmavoice_decode_packet,
2032
+    .capabilities   = CODEC_CAP_SUBFRAMES,
2034 2033
     .flush     = wmavoice_flush,
2035 2034
     .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio Voice"),
2036 2035
 };
... ...
@@ -471,15 +471,14 @@ static av_cold int wmv2_decode_end(AVCodecContext *avctx)
471 471
 }
472 472
 
473 473
 AVCodec ff_wmv2_decoder = {
474
-    "wmv2",
475
-    AVMEDIA_TYPE_VIDEO,
476
-    CODEC_ID_WMV2,
477
-    sizeof(Wmv2Context),
478
-    wmv2_decode_init,
479
-    NULL,
480
-    wmv2_decode_end,
481
-    ff_h263_decode_frame,
482
-    CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
474
+    .name           = "wmv2",
475
+    .type           = AVMEDIA_TYPE_VIDEO,
476
+    .id             = CODEC_ID_WMV2,
477
+    .priv_data_size = sizeof(Wmv2Context),
478
+    .init           = wmv2_decode_init,
479
+    .close          = wmv2_decode_end,
480
+    .decode         = ff_h263_decode_frame,
481
+    .capabilities   = CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
483 482
     .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 8"),
484 483
     .pix_fmts= ff_pixfmt_list_420,
485 484
 };
... ...
@@ -212,13 +212,13 @@ void ff_wmv2_encode_mb(MpegEncContext * s,
212 212
 }
213 213
 
214 214
 AVCodec ff_wmv2_encoder = {
215
-    "wmv2",
216
-    AVMEDIA_TYPE_VIDEO,
217
-    CODEC_ID_WMV2,
218
-    sizeof(Wmv2Context),
219
-    wmv2_encode_init,
220
-    MPV_encode_picture,
221
-    MPV_encode_end,
215
+    .name           = "wmv2",
216
+    .type           = AVMEDIA_TYPE_VIDEO,
217
+    .id             = CODEC_ID_WMV2,
218
+    .priv_data_size = sizeof(Wmv2Context),
219
+    .init           = wmv2_encode_init,
220
+    .encode         = MPV_encode_picture,
221
+    .close          = MPV_encode_end,
222 222
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
223 223
     .long_name= NULL_IF_CONFIG_SMALL("Windows Media Video 8"),
224 224
 };
... ...
@@ -158,14 +158,13 @@ static av_cold int decode_end(AVCodecContext *avctx){
158 158
 }
159 159
 
160 160
 AVCodec ff_wnv1_decoder = {
161
-    "wnv1",
162
-    AVMEDIA_TYPE_VIDEO,
163
-    CODEC_ID_WNV1,
164
-    sizeof(WNV1Context),
165
-    decode_init,
166
-    NULL,
167
-    decode_end,
168
-    decode_frame,
169
-    CODEC_CAP_DR1,
161
+    .name           = "wnv1",
162
+    .type           = AVMEDIA_TYPE_VIDEO,
163
+    .id             = CODEC_ID_WNV1,
164
+    .priv_data_size = sizeof(WNV1Context),
165
+    .init           = decode_init,
166
+    .close          = decode_end,
167
+    .decode         = decode_frame,
168
+    .capabilities   = CODEC_CAP_DR1,
170 169
     .long_name = NULL_IF_CONFIG_SMALL("Winnov WNV1"),
171 170
 };
... ...
@@ -147,13 +147,10 @@ static int ws_snd_decode_frame(AVCodecContext *avctx,
147 147
 }
148 148
 
149 149
 AVCodec ff_ws_snd1_decoder = {
150
-    "ws_snd1",
151
-    AVMEDIA_TYPE_AUDIO,
152
-    CODEC_ID_WESTWOOD_SND1,
153
-    0,
154
-    ws_snd_decode_init,
155
-    NULL,
156
-    NULL,
157
-    ws_snd_decode_frame,
150
+    .name           = "ws_snd1",
151
+    .type           = AVMEDIA_TYPE_AUDIO,
152
+    .id             = CODEC_ID_WESTWOOD_SND1,
153
+    .init           = ws_snd_decode_init,
154
+    .decode         = ws_snd_decode_frame,
158 155
     .long_name = NULL_IF_CONFIG_SMALL("Westwood Audio (SND1)"),
159 156
 };
... ...
@@ -67,7 +67,7 @@
67 67
         "test   "lowword"   , "lowword"                                 \n\t"\
68 68
         " jnz   1f                                                      \n\t"\
69 69
         "mov "byte"("cabac"), %%"REG_c"                                 \n\t"\
70
-        "add    $2          , "byte    "("cabac")                       \n\t"\
70
+        "add"OPSIZE" $2     , "byte    "("cabac")                       \n\t"\
71 71
         "movzwl (%%"REG_c")     , "tmp"                                 \n\t"\
72 72
         "lea    -1("low")   , %%ecx                                     \n\t"\
73 73
         "xor    "low"       , %%ecx                                     \n\t"\
... ...
@@ -456,12 +456,12 @@ static void put_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_si
456 456
          "movdqu (%1,%3), %%xmm1        \n\t"
457 457
          "movdqu (%1,%3,2), %%xmm2      \n\t"
458 458
          "movdqu (%1,%4), %%xmm3        \n\t"
459
+         "lea (%1,%3,4), %1             \n\t"
459 460
          "movdqa %%xmm0, (%2)           \n\t"
460 461
          "movdqa %%xmm1, (%2,%3)        \n\t"
461 462
          "movdqa %%xmm2, (%2,%3,2)      \n\t"
462 463
          "movdqa %%xmm3, (%2,%4)        \n\t"
463 464
          "subl $4, %0                   \n\t"
464
-         "lea (%1,%3,4), %1             \n\t"
465 465
          "lea (%2,%3,4), %2             \n\t"
466 466
          "jnz 1b                        \n\t"
467 467
          : "+g"(h), "+r" (pixels),  "+r" (block)
... ...
@@ -478,6 +478,7 @@ static void avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_si
478 478
          "movdqu (%1,%3), %%xmm1        \n\t"
479 479
          "movdqu (%1,%3,2), %%xmm2      \n\t"
480 480
          "movdqu (%1,%4), %%xmm3        \n\t"
481
+         "lea (%1,%3,4), %1             \n\t"
481 482
          "pavgb  (%2), %%xmm0           \n\t"
482 483
          "pavgb  (%2,%3), %%xmm1        \n\t"
483 484
          "pavgb  (%2,%3,2), %%xmm2      \n\t"
... ...
@@ -487,7 +488,6 @@ static void avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_si
487 487
          "movdqa %%xmm2, (%2,%3,2)      \n\t"
488 488
          "movdqa %%xmm3, (%2,%4)        \n\t"
489 489
          "subl $4, %0                   \n\t"
490
-         "lea (%1,%3,4), %1             \n\t"
491 490
          "lea (%2,%3,4), %2             \n\t"
492 491
          "jnz 1b                        \n\t"
493 492
          : "+g"(h), "+r" (pixels),  "+r" (block)
... ...
@@ -72,17 +72,17 @@ SECTION .text
72 72
 .next4rows
73 73
     movq         mm0, [r1   ]
74 74
     movq         mm1, [r1+r2]
75
+    add           r1, r4
75 76
     CHROMAMC_AVG mm0, [r0   ]
76 77
     CHROMAMC_AVG mm1, [r0+r2]
77 78
     movq     [r0   ], mm0
78 79
     movq     [r0+r2], mm1
79 80
     add           r0, r4
80
-    add           r1, r4
81 81
     movq         mm0, [r1   ]
82 82
     movq         mm1, [r1+r2]
83
+    add           r1, r4
83 84
     CHROMAMC_AVG mm0, [r0   ]
84 85
     CHROMAMC_AVG mm1, [r0+r2]
85
-    add           r1, r4
86 86
     movq     [r0   ], mm0
87 87
     movq     [r0+r2], mm1
88 88
     add           r0, r4
... ...
@@ -472,8 +472,8 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7, 8
472 472
     mov          r6d, r4d
473 473
     shl          r4d, 8
474 474
     sub           r4, r6
475
-    add           r4, 8           ; x*288+8 = x<<8 | (8-x)
476 475
     mov           r6, 8
476
+    add           r4, 8           ; x*288+8 = x<<8 | (8-x)
477 477
     sub          r6d, r5d
478 478
     imul          r6, r4          ; (8-y)*(x*255+8) = (8-y)*x<<8 | (8-y)*(8-x)
479 479
     imul         r4d, r5d         ;    y *(x*255+8) =    y *x<<8 |    y *(8-x)
... ...
@@ -481,24 +481,23 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7, 8
481 481
     movd          m7, r6d
482 482
     movd          m6, r4d
483 483
     movdqa        m5, [rnd_2d_%2]
484
+    movq          m0, [r1  ]
485
+    movq          m1, [r1+1]
484 486
     pshuflw       m7, m7, 0
485 487
     pshuflw       m6, m6, 0
488
+    punpcklbw     m0, m1
486 489
     movlhps       m7, m7
487 490
     movlhps       m6, m6
488 491
 
489
-    movq          m0, [r1     ]
490
-    movq          m1, [r1   +1]
491
-    punpcklbw     m0, m1
492
-    add           r1, r2
493 492
 .next2rows
494
-    movq          m1, [r1     ]
495
-    movq          m2, [r1   +1]
496
-    movq          m3, [r1+r2  ]
497
-    movq          m4, [r1+r2+1]
493
+    movq          m1, [r1+r2*1   ]
494
+    movq          m2, [r1+r2*1+1]
495
+    movq          m3, [r1+r2*2  ]
496
+    movq          m4, [r1+r2*2+1]
498 497
     lea           r1, [r1+r2*2]
499 498
     punpcklbw     m1, m2
500
-    punpcklbw     m3, m4
501 499
     movdqa        m2, m1
500
+    punpcklbw     m3, m4
502 501
     movdqa        m4, m3
503 502
     pmaddubsw     m0, m7
504 503
     pmaddubsw     m1, m6
... ...
@@ -508,8 +507,8 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7, 8
508 508
     paddw         m2, m5
509 509
     paddw         m1, m0
510 510
     paddw         m3, m2
511
-    movdqa        m0, m4
512 511
     psrlw         m1, 6
512
+    movdqa        m0, m4
513 513
     psrlw         m3, 6
514 514
 %ifidn %1, avg
515 515
     movq          m2, [r0   ]
... ...
@@ -576,6 +575,7 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7, 8
576 576
     movq          m1, [r1+r2  ]
577 577
     movdqa        m2, m1
578 578
     movq          m3, [r1+r2*2]
579
+    lea           r1, [r1+r2*2]
579 580
     punpcklbw     m0, m1
580 581
     punpcklbw     m2, m3
581 582
     pmaddubsw     m0, m7
... ...
@@ -594,7 +594,6 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7, 8
594 594
     movhps   [r0+r2], m0
595 595
     sub          r3d, 2
596 596
     lea           r0, [r0+r2*2]
597
-    lea           r1, [r1+r2*2]
598 597
     jg .next2yrows
599 598
     REP_RET
600 599
 %endmacro
... ...
@@ -607,8 +606,8 @@ cglobal %1_%2_chroma_mc4_%3, 6, 7, 0
607 607
     mov           r6, r4
608 608
     shl          r4d, 8
609 609
     sub          r4d, r6d
610
-    add          r4d, 8           ; x*288+8
611 610
     mov           r6, 8
611
+    add          r4d, 8           ; x*288+8
612 612
     sub          r6d, r5d
613 613
     imul         r6d, r4d         ; (8-y)*(x*255+8) = (8-y)*x<<8 | (8-y)*(8-x)
614 614
     imul         r4d, r5d         ;    y *(x*255+8) =    y *x<<8 |    y *(8-x)
... ...
@@ -616,17 +615,16 @@ cglobal %1_%2_chroma_mc4_%3, 6, 7, 0
616 616
     movd          m7, r6d
617 617
     movd          m6, r4d
618 618
     movq          m5, [pw_32]
619
+    movd          m0, [r1  ]
619 620
     pshufw        m7, m7, 0
621
+    punpcklbw     m0, [r1+1]
620 622
     pshufw        m6, m6, 0
621 623
 
622
-    movd          m0, [r1     ]
623
-    punpcklbw     m0, [r1   +1]
624
-    add           r1, r2
625 624
 .next2rows
626
-    movd          m1, [r1     ]
627
-    movd          m3, [r1+r2  ]
628
-    punpcklbw     m1, [r1   +1]
629
-    punpcklbw     m3, [r1+r2+1]
625
+    movd          m1, [r1+r2*1  ]
626
+    movd          m3, [r1+r2*2  ]
627
+    punpcklbw     m1, [r1+r2*1+1]
628
+    punpcklbw     m3, [r1+r2*2+1]
630 629
     lea           r1, [r1+r2*2]
631 630
     movq          m2, m1
632 631
     movq          m4, m3
... ...
@@ -638,8 +636,8 @@ cglobal %1_%2_chroma_mc4_%3, 6, 7, 0
638 638
     paddw         m2, m5
639 639
     paddw         m1, m0
640 640
     paddw         m3, m2
641
-    movq          m0, m4
642 641
     psrlw         m1, 6
642
+    movq          m0, m4
643 643
     psrlw         m3, 6
644 644
     packuswb      m1, m1
645 645
     packuswb      m3, m3
... ...
@@ -240,17 +240,17 @@ cextern pb_A1
240 240
 ; out: m1=p0' m2=q0'
241 241
 ; clobbers: m0,3-6
242 242
 %macro DEBLOCK_P0_Q0 0
243
-    pxor    m5, m1, m2   ; p0^q0
244
-    pand    m5, [pb_1]   ; (p0^q0)&1
245 243
     pcmpeqb m4, m4
244
+    pxor    m5, m1, m2   ; p0^q0
246 245
     pxor    m3, m4
246
+    pand    m5, [pb_1]   ; (p0^q0)&1
247 247
     pavgb   m3, m0       ; (p1 - q1 + 256)>>1
248
-    pavgb   m3, [pb_3]   ; (((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2
249 248
     pxor    m4, m1
249
+    pavgb   m3, [pb_3]   ; (((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2
250 250
     pavgb   m4, m2       ; (q0 - p0 + 256)>>1
251 251
     pavgb   m3, m5
252
-    paddusb m3, m4       ; d+128+33
253 252
     mova    m6, [pb_A1]
253
+    paddusb m3, m4       ; d+128+33
254 254
     psubusb m6, m3
255 255
     psubusb m3, [pb_A1]
256 256
     pminub  m6, m7
... ...
@@ -413,16 +413,16 @@ cglobal deblock_%2_luma_8_%1, 5,5
413 413
     LOAD_MASK r2, r3
414 414
 
415 415
     mov     r3, r4mp
416
+    pcmpeqb m3, m3
416 417
     movd    m4, [r3] ; tc0
417 418
     punpcklbw m4, m4
418 419
     punpcklbw m4, m4 ; tc = 4x tc0[3], 4x tc0[2], 4x tc0[1], 4x tc0[0]
419 420
     mova   [esp+%3], m4 ; tc
420
-    pcmpeqb m3, m3
421 421
     pcmpgtb m4, m3
422
+    mova    m3, [r4] ; p2
422 423
     pand    m4, m7
423 424
     mova   [esp], m4 ; mask
424 425
 
425
-    mova    m3, [r4] ; p2
426 426
     DIFF_GT2 m1, m3, m5, m6, m7 ; |p2-p0| > beta-1
427 427
     pand    m6, m4
428 428
     pand    m4, [esp+%3] ; tc
... ...
@@ -432,11 +432,10 @@ cglobal deblock_%2_luma_8_%1, 5,5
432 432
 
433 433
     mova    m4, [r0+2*r1] ; q2
434 434
     DIFF_GT2 m2, m4, m5, m6, m3 ; |q2-q0| > beta-1
435
-    mova    m5, [esp] ; mask
436
-    pand    m6, m5
435
+    pand    m6, [esp] ; mask
437 436
     mova    m5, [esp+%3] ; tc
438
-    pand    m5, m6
439 437
     psubb   m7, m6
438
+    pand    m5, m6
440 439
     mova    m3, [r0+r1]
441 440
     LUMA_Q1 m3, m4, [r0+2*r1], [r0+r1], m5, m6
442 441
 
... ...
@@ -484,10 +483,10 @@ cglobal deblock_h_luma_8_%1, 0,5
484 484
     ; transpose 16x4 -> original space  (only the middle 4 rows were changed by the filter)
485 485
     mov    r0, r0mp
486 486
     sub    r0, 2
487
-    lea    r1, [r0+r4]
488 487
 
489 488
     movq   m0, [pix_tmp+0x10]
490 489
     movq   m1, [pix_tmp+0x20]
490
+    lea    r1, [r0+r4]
491 491
     movq   m2, [pix_tmp+0x30]
492 492
     movq   m3, [pix_tmp+0x40]
493 493
     TRANSPOSE8x4B_STORE  PASS8ROWS(r0, r1, r3, r4)
... ...
@@ -67,7 +67,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff,
67 67
         "test $1, %4                            \n\t"
68 68
         " jnz 4f                                \n\t"
69 69
 
70
-        "add  $4, %2                            \n\t"
70
+        "add"OPSIZE"  $4, %2                    \n\t"
71 71
 
72 72
         "3:                                     \n\t"
73 73
         "add  $1, %1                            \n\t"
... ...
@@ -125,7 +125,7 @@ static int decode_significance_8x8_x86(CABACContext *c,
125 125
         "test $1, %4                            \n\t"
126 126
         " jnz 4f                                \n\t"
127 127
 
128
-        "add  $4, %2                            \n\t"
128
+        "add"OPSIZE"  $4, %2                    \n\t"
129 129
 
130 130
         "3:                                     \n\t"
131 131
         "addl $1, %k6                           \n\t"
... ...
@@ -82,10 +82,10 @@ cglobal h264_idct_add_8_mmx, 3, 3, 0
82 82
     RET
83 83
 
84 84
 %macro IDCT8_1D 2
85
-    mova         m4, m5
86 85
     mova         m0, m1
87
-    psraw        m4, 1
88 86
     psraw        m1, 1
87
+    mova         m4, m5
88
+    psraw        m4, 1
89 89
     paddw        m4, m5
90 90
     paddw        m1, m0
91 91
     paddw        m4, m7
... ...
@@ -95,16 +95,16 @@ cglobal h264_idct_add_8_mmx, 3, 3, 0
95 95
 
96 96
     psubw        m0, m3
97 97
     psubw        m5, m3
98
+    psraw        m3, 1
98 99
     paddw        m0, m7
99 100
     psubw        m5, m7
100
-    psraw        m3, 1
101 101
     psraw        m7, 1
102 102
     psubw        m0, m3
103 103
     psubw        m5, m7
104 104
 
105
-    mova         m3, m4
106 105
     mova         m7, m1
107 106
     psraw        m1, 2
107
+    mova         m3, m4
108 108
     psraw        m3, 2
109 109
     paddw        m3, m0
110 110
     psraw        m0, 2
... ...
@@ -113,12 +113,12 @@ cglobal h264_idct_add_8_mmx, 3, 3, 0
113 113
     psubw        m0, m4
114 114
     psubw        m7, m5
115 115
 
116
-    mova         m4, m2
117 116
     mova         m5, m6
118
-    psraw        m4, 1
119 117
     psraw        m6, 1
120
-    psubw        m4, m5
118
+    mova         m4, m2
119
+    psraw        m4, 1
121 120
     paddw        m6, m2
121
+    psubw        m4, m5
122 122
 
123 123
     mova         m2, %1
124 124
     mova         m5, %2
... ...
@@ -337,7 +337,7 @@ cglobal h264_idct8_add4_8_mmx, 5, 7, 0
337 337
     test         r6, r6
338 338
     jz .skipblock
339 339
     mov         r6d, dword [r1+r5*4]
340
-    lea          r6, [r0+r6]
340
+    add          r6, r0
341 341
     add   word [r2], 32
342 342
     IDCT8_ADD_MMX_START r2  , rsp
343 343
     IDCT8_ADD_MMX_START r2+8, rsp+64
... ...
@@ -391,7 +391,7 @@ cglobal h264_idct_add16_8_mmx2, 5, 7, 0
391 391
     REP_RET
392 392
 .no_dc
393 393
     mov         r6d, dword [r1+r5*4]
394
-    lea          r6, [r0+r6]
394
+    add          r6, r0
395 395
     IDCT4_ADD    r6, r2, r3
396 396
 .skipblock
397 397
     inc          r5
... ...
@@ -414,7 +414,7 @@ cglobal h264_idct_add16intra_8_mmx, 5, 7, 0
414 414
     test         r6, r6
415 415
     jz .skipblock
416 416
     mov         r6d, dword [r1+r5*4]
417
-    lea          r6, [r0+r6]
417
+    add          r6, r0
418 418
     IDCT4_ADD    r6, r2, r3
419 419
 .skipblock
420 420
     inc          r5
... ...
@@ -456,7 +456,7 @@ cglobal h264_idct_add16intra_8_mmx2, 5, 7, 0
456 456
 %define dst_regd r1d
457 457
 %endif
458 458
     mov    dst_regd, dword [r1+r5*4]
459
-    lea     dst_reg, [r0+dst_reg]
459
+    add     dst_reg, r0
460 460
     DC_ADD_MMX2_OP movh, dst_reg, r3, r6
461 461
 %ifndef ARCH_X86_64
462 462
     mov          r1, r1m
... ...
@@ -513,7 +513,7 @@ cglobal h264_idct8_add4_8_mmx2, 5, 7, 0
513 513
     RET
514 514
 .no_dc
515 515
     mov         r6d, dword [r1+r5*4]
516
-    lea          r6, [r0+r6]
516
+    add          r6, r0
517 517
     add   word [r2], 32
518 518
     IDCT8_ADD_MMX_START r2  , rsp
519 519
     IDCT8_ADD_MMX_START r2+8, rsp+64
... ...
@@ -558,7 +558,7 @@ INIT_MMX
558 558
 %define dst_regd r1d
559 559
 %endif
560 560
     mov    dst_regd, dword [r1+r5*4]
561
-    lea     dst_reg, [r0+dst_reg]
561
+    add     dst_reg, r0
562 562
     DC_ADD_MMX2_OP mova, dst_reg, r3, r6
563 563
     lea     dst_reg, [dst_reg+r3*4]
564 564
     DC_ADD_MMX2_OP mova, dst_reg, r3, r6
... ...
@@ -573,7 +573,7 @@ INIT_MMX
573 573
 .no_dc
574 574
 INIT_XMM
575 575
     mov    dst_regd, dword [r1+r5*4]
576
-    lea     dst_reg, [r0+dst_reg]
576
+    add     dst_reg, r0
577 577
     IDCT8_ADD_SSE dst_reg, r2, r3, r6
578 578
 %ifndef ARCH_X86_64
579 579
     mov          r1, r1m
... ...
@@ -497,10 +497,10 @@
497 497
 %macro STORE_DIFFx2 8 ; add1, add2, reg1, reg2, zero, shift, source, stride
498 498
     movh       %3, [%7]
499 499
     movh       %4, [%7+%8]
500
-    punpcklbw  %3, %5
501
-    punpcklbw  %4, %5
502 500
     psraw      %1, %6
503 501
     psraw      %2, %6
502
+    punpcklbw  %3, %5
503
+    punpcklbw  %4, %5
504 504
     paddw      %3, %1
505 505
     paddw      %4, %2
506 506
     packuswb   %3, %5
... ...
@@ -553,15 +553,14 @@ static av_cold int xan_decode_end(AVCodecContext *avctx)
553 553
 }
554 554
 
555 555
 AVCodec ff_xan_wc3_decoder = {
556
-    "xan_wc3",
557
-    AVMEDIA_TYPE_VIDEO,
558
-    CODEC_ID_XAN_WC3,
559
-    sizeof(XanContext),
560
-    xan_decode_init,
561
-    NULL,
562
-    xan_decode_end,
563
-    xan_decode_frame,
564
-    CODEC_CAP_DR1,
556
+    .name           = "xan_wc3",
557
+    .type           = AVMEDIA_TYPE_VIDEO,
558
+    .id             = CODEC_ID_XAN_WC3,
559
+    .priv_data_size = sizeof(XanContext),
560
+    .init           = xan_decode_init,
561
+    .close          = xan_decode_end,
562
+    .decode         = xan_decode_frame,
563
+    .capabilities   = CODEC_CAP_DR1,
565 564
     .long_name = NULL_IF_CONFIG_SMALL("Wing Commander III / Xan"),
566 565
 };
567 566
 
... ...
@@ -140,14 +140,13 @@ static av_cold int decode_end(AVCodecContext *avctx){
140 140
 }
141 141
 
142 142
 AVCodec ff_xl_decoder = {
143
-    "xl",
144
-    AVMEDIA_TYPE_VIDEO,
145
-    CODEC_ID_VIXL,
146
-    sizeof(VideoXLContext),
147
-    decode_init,
148
-    NULL,
149
-    decode_end,
150
-    decode_frame,
151
-    CODEC_CAP_DR1,
143
+    .name           = "xl",
144
+    .type           = AVMEDIA_TYPE_VIDEO,
145
+    .id             = CODEC_ID_VIXL,
146
+    .priv_data_size = sizeof(VideoXLContext),
147
+    .init           = decode_init,
148
+    .close          = decode_end,
149
+    .decode         = decode_frame,
150
+    .capabilities   = CODEC_CAP_DR1,
152 151
     .long_name = NULL_IF_CONFIG_SMALL("Miro VideoXL"),
153 152
 };
... ...
@@ -136,13 +136,10 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
136 136
 }
137 137
 
138 138
 AVCodec ff_xsub_decoder = {
139
-    "xsub",
140
-    AVMEDIA_TYPE_SUBTITLE,
141
-    CODEC_ID_XSUB,
142
-    0,
143
-    decode_init,
144
-    NULL,
145
-    NULL,
146
-    decode_frame,
139
+    .name           = "xsub",
140
+    .type           = AVMEDIA_TYPE_SUBTITLE,
141
+    .id             = CODEC_ID_XSUB,
142
+    .init           = decode_init,
143
+    .decode         = decode_frame,
147 144
     .long_name = NULL_IF_CONFIG_SMALL("XSUB"),
148 145
 };
... ...
@@ -211,12 +211,10 @@ static av_cold int xsub_encoder_init(AVCodecContext *avctx)
211 211
 }
212 212
 
213 213
 AVCodec ff_xsub_encoder = {
214
-    "xsub",
215
-    AVMEDIA_TYPE_SUBTITLE,
216
-    CODEC_ID_XSUB,
217
-    0,
218
-    xsub_encoder_init,
219
-    xsub_encode,
220
-    NULL,
214
+    .name           = "xsub",
215
+    .type           = AVMEDIA_TYPE_SUBTITLE,
216
+    .id             = CODEC_ID_XSUB,
217
+    .init           = xsub_encoder_init,
218
+    .encode         = xsub_encode,
221 219
     .long_name = NULL_IF_CONFIG_SMALL("DivX subtitles (XSUB)"),
222 220
 };
... ...
@@ -415,15 +415,14 @@ static av_cold int xan_decode_end(AVCodecContext *avctx)
415 415
 }
416 416
 
417 417
 AVCodec ff_xan_wc4_decoder = {
418
-    "xan_wc4",
419
-    AVMEDIA_TYPE_VIDEO,
420
-    CODEC_ID_XAN_WC4,
421
-    sizeof(XanContext),
422
-    xan_decode_init,
423
-    NULL,
424
-    xan_decode_end,
425
-    xan_decode_frame,
426
-    CODEC_CAP_DR1,
418
+    .name           = "xan_wc4",
419
+    .type           = AVMEDIA_TYPE_VIDEO,
420
+    .id             = CODEC_ID_XAN_WC4,
421
+    .priv_data_size = sizeof(XanContext),
422
+    .init           = xan_decode_init,
423
+    .close          = xan_decode_end,
424
+    .decode         = xan_decode_frame,
425
+    .capabilities   = CODEC_CAP_DR1,
427 426
     .long_name = NULL_IF_CONFIG_SMALL("Wing Commander IV / Xxan"),
428 427
 };
429 428
 
... ...
@@ -249,13 +249,12 @@ static int yop_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
249 249
 }
250 250
 
251 251
 AVCodec ff_yop_decoder = {
252
-    "yop",
253
-    AVMEDIA_TYPE_VIDEO,
254
-    CODEC_ID_YOP,
255
-    sizeof(YopDecContext),
256
-    yop_decode_init,
257
-    NULL,
258
-    yop_decode_close,
259
-    yop_decode_frame,
252
+    .name           = "yop",
253
+    .type           = AVMEDIA_TYPE_VIDEO,
254
+    .id             = CODEC_ID_YOP,
255
+    .priv_data_size = sizeof(YopDecContext),
256
+    .init           = yop_decode_init,
257
+    .close          = yop_decode_close,
258
+    .decode         = yop_decode_frame,
260 259
     .long_name = NULL_IF_CONFIG_SMALL("Psygnosis YOP Video"),
261 260
 };
... ...
@@ -652,15 +652,14 @@ static av_cold int decode_end(AVCodecContext *avctx)
652 652
 }
653 653
 
654 654
 AVCodec ff_zmbv_decoder = {
655
-    "zmbv",
656
-    AVMEDIA_TYPE_VIDEO,
657
-    CODEC_ID_ZMBV,
658
-    sizeof(ZmbvContext),
659
-    decode_init,
660
-    NULL,
661
-    decode_end,
662
-    decode_frame,
663
-    CODEC_CAP_DR1,
655
+    .name           = "zmbv",
656
+    .type           = AVMEDIA_TYPE_VIDEO,
657
+    .id             = CODEC_ID_ZMBV,
658
+    .priv_data_size = sizeof(ZmbvContext),
659
+    .init           = decode_init,
660
+    .close          = decode_end,
661
+    .decode         = decode_frame,
662
+    .capabilities   = CODEC_CAP_DR1,
664 663
     .long_name = NULL_IF_CONFIG_SMALL("Zip Motion Blocks Video"),
665 664
 };
666 665
 
... ...
@@ -324,13 +324,13 @@ static av_cold int encode_end(AVCodecContext *avctx)
324 324
 }
325 325
 
326 326
 AVCodec ff_zmbv_encoder = {
327
-    "zmbv",
328
-    AVMEDIA_TYPE_VIDEO,
329
-    CODEC_ID_ZMBV,
330
-    sizeof(ZmbvEncContext),
331
-    encode_init,
332
-    encode_frame,
333
-    encode_end,
327
+    .name           = "zmbv",
328
+    .type           = AVMEDIA_TYPE_VIDEO,
329
+    .id             = CODEC_ID_ZMBV,
330
+    .priv_data_size = sizeof(ZmbvEncContext),
331
+    .init           = encode_init,
332
+    .encode         = encode_frame,
333
+    .close          = encode_end,
334 334
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_PAL8, PIX_FMT_NONE},
335 335
     .long_name = NULL_IF_CONFIG_SMALL("Zip Motion Blocks Video"),
336 336
 };
... ...
@@ -1491,10 +1491,6 @@ static int mpegts_read_header(AVFormatContext *s,
1491 1491
     if (ap) {
1492 1492
         if (ap->mpeg2ts_compute_pcr)
1493 1493
             ts->mpeg2ts_compute_pcr = ap->mpeg2ts_compute_pcr;
1494
-        if(ap->mpeg2ts_raw){
1495
-            av_log(s, AV_LOG_ERROR, "use mpegtsraw_demuxer!\n");
1496
-            return -1;
1497
-        }
1498 1494
     }
1499 1495
 #endif
1500 1496
 
... ...
@@ -600,7 +600,7 @@ static int mxf_read_generic_descriptor(void *arg, AVIOContext *pb, int tag, int
600 600
     default:
601 601
         /* Private uid used by SONY C0023S01.mxf */
602 602
         if (IS_KLV_KEY(uid, mxf_sony_mpeg4_extradata)) {
603
-            descriptor->extradata = av_malloc(size);
603
+            descriptor->extradata = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
604 604
             if (!descriptor->extradata)
605 605
                 return -1;
606 606
             descriptor->extradata_size = size;
... ...
@@ -522,9 +522,9 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
522 522
         return AVERROR(EINVAL);
523 523
     }
524 524
 
525
-    for(probe_size= PROBE_BUF_MIN; probe_size<=max_probe_size && !*fmt && ret >= 0;
525
+    for(probe_size= PROBE_BUF_MIN; probe_size<=max_probe_size && !*fmt;
526 526
         probe_size = FFMIN(probe_size<<1, FFMAX(max_probe_size, probe_size+1))) {
527
-        int ret, score = probe_size < max_probe_size ? AVPROBE_SCORE_MAX/4 : 0;
527
+        int score = probe_size < max_probe_size ? AVPROBE_SCORE_MAX/4 : 0;
528 528
         int buf_offset = (probe_size == PROBE_BUF_MIN) ? 0 : probe_size>>1;
529 529
 
530 530
         if (probe_size < offset) {