Browse code

Merge commit '67deba8a416d818f3d95aef0aa916589090396e2'

* commit '67deba8a416d818f3d95aef0aa916589090396e2':
Use avpriv_report_missing_feature() where appropriate

Merged-by: Clément Bœsch <cboesch@gopro.com>

Clément Bœsch authored on 2017/03/31 17:40:34
Showing 27 changed files
... ...
@@ -251,7 +251,7 @@ static int decode_element(AVCodecContext *avctx, AVFrame *frame, int ch_index,
251 251
     alac->extra_bits = get_bits(&alac->gb, 2) << 3;
252 252
     bps = alac->sample_size - alac->extra_bits + channels - 1;
253 253
     if (bps > 32U) {
254
-        av_log(avctx, AV_LOG_ERROR, "bps is unsupported: %d\n", bps);
254
+        avpriv_report_missing_feature(avctx, "bps %d", bps);
255 255
         return AVERROR_PATCHWELCOME;
256 256
     }
257 257
 
... ...
@@ -431,7 +431,7 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data,
431 431
             break;
432 432
         }
433 433
         if (element > TYPE_CPE && element != TYPE_LFE) {
434
-            av_log(avctx, AV_LOG_ERROR, "syntax element unsupported: %d\n", element);
434
+            avpriv_report_missing_feature(avctx, "Syntax element %d", element);
435 435
             return AVERROR_PATCHWELCOME;
436 436
         }
437 437
 
... ...
@@ -583,8 +583,8 @@ static av_cold int alac_decode_init(AVCodecContext * avctx)
583 583
             avctx->channels = alac->channels;
584 584
     }
585 585
     if (avctx->channels > ALAC_MAX_CHANNELS || avctx->channels <= 0 ) {
586
-        av_log(avctx, AV_LOG_ERROR, "Unsupported channel count: %d\n",
587
-               avctx->channels);
586
+        avpriv_report_missing_feature(avctx, "Channel count %d",
587
+                                      avctx->channels);
588 588
         return AVERROR_PATCHWELCOME;
589 589
     }
590 590
     avctx->channel_layout = ff_alac_channel_layouts[alac->channels - 1];
... ...
@@ -100,7 +100,8 @@ static int bmp_decode_frame(AVCodecContext *avctx,
100 100
         height = bytestream_get_le16(&buf);
101 101
         break;
102 102
     default:
103
-        av_log(avctx, AV_LOG_ERROR, "unsupported BMP file, patch welcome\n");
103
+        avpriv_report_missing_feature(avctx, "Information header size %u",
104
+                                      ihsize);
104 105
         return AVERROR_PATCHWELCOME;
105 106
     }
106 107
 
... ...
@@ -160,9 +160,7 @@ static int decode_frame(AVCodecContext *avctx,
160 160
     header_size = (header & (1<<30))? 8 : 4; /* bit 30 means pad to 8 bytes */
161 161
 
162 162
     if (version > 5) {
163
-        av_log(avctx, AV_LOG_ERROR,
164
-               "This file is encoded with Fraps version %u. "
165
-               "This codec can only decode versions <= 5.\n", version);
163
+        avpriv_report_missing_feature(avctx, "Fraps version %u", version);
166 164
         return AVERROR_PATCHWELCOME;
167 165
     }
168 166
 
... ...
@@ -1442,9 +1442,8 @@ static int g2m_decode_frame(AVCodecContext *avctx, void *data,
1442 1442
             }
1443 1443
             c->compression = bytestream2_get_be32(&bc);
1444 1444
             if (c->compression != 2 && c->compression != 3) {
1445
-                av_log(avctx, AV_LOG_ERROR,
1446
-                       "Unknown compression method %d\n",
1447
-                       c->compression);
1445
+                avpriv_report_missing_feature(avctx, "Compression method %d",
1446
+                                              c->compression);
1448 1447
                 ret = AVERROR_PATCHWELCOME;
1449 1448
                 goto header_fail;
1450 1449
             }
... ...
@@ -1475,9 +1474,9 @@ static int g2m_decode_frame(AVCodecContext *avctx, void *data,
1475 1475
                 g_mask = bytestream2_get_be32(&bc);
1476 1476
                 b_mask = bytestream2_get_be32(&bc);
1477 1477
                 if (r_mask != 0xFF0000 || g_mask != 0xFF00 || b_mask != 0xFF) {
1478
-                    av_log(avctx, AV_LOG_ERROR,
1479
-                           "Invalid or unsupported bitmasks: R=%"PRIX32", G=%"PRIX32", B=%"PRIX32"\n",
1480
-                           r_mask, g_mask, b_mask);
1478
+                    avpriv_report_missing_feature(avctx,
1479
+                                                  "Bitmasks: R=%"PRIX32", G=%"PRIX32", B=%"PRIX32,
1480
+                                                  r_mask, g_mask, b_mask);
1481 1481
                     ret = AVERROR_PATCHWELCOME;
1482 1482
                     goto header_fail;
1483 1483
                 }
... ...
@@ -57,7 +57,8 @@ static av_cold int g723_1_encode_init(AVCodecContext *avctx)
57 57
     if (avctx->bit_rate == 6300) {
58 58
         p->cur_rate = RATE_6300;
59 59
     } else if (avctx->bit_rate == 5300) {
60
-        av_log(avctx, AV_LOG_ERROR, "Bitrate not supported yet, use 6300\n");
60
+        av_log(avctx, AV_LOG_ERROR, "Use bitrate 6300 instead of 5300.\n");
61
+        avpriv_report_missing_feature(avctx, "Bitrate 5300");
61 62
         return AVERROR_PATCHWELCOME;
62 63
     } else {
63 64
         av_log(avctx, AV_LOG_ERROR, "Bitrate not supported, use 6300\n");
... ...
@@ -774,8 +774,8 @@ int ff_h264_decode_picture_parameter_set(GetBitContext *gb, AVCodecContext *avct
774 774
         ret = AVERROR_INVALIDDATA;
775 775
         goto fail;
776 776
     } else if (sps->bit_depth_luma == 11 || sps->bit_depth_luma == 13) {
777
-        av_log(avctx, AV_LOG_ERROR,
778
-               "Unimplemented luma bit depth=%d\n",
777
+        avpriv_report_missing_feature(avctx,
778
+               "Unimplemented luma bit depth=%d",
779 779
                sps->bit_depth_luma);
780 780
         ret = AVERROR_PATCHWELCOME;
781 781
         goto fail;
... ...
@@ -90,9 +90,10 @@ int ff_hevc_encode_nal_vps(HEVCVPS *vps, unsigned int id,
90 90
     put_bits(&pb, 6, vps->vps_max_layer_id);
91 91
     set_ue_golomb(&pb, vps->vps_num_layer_sets - 1);
92 92
 
93
-    // writing layer_id_included_flag not supported
94
-    if (vps->vps_num_layer_sets > 1)
93
+    if (vps->vps_num_layer_sets > 1) {
94
+        avpriv_report_missing_feature(NULL, "Writing layer_id_included_flag");
95 95
         return AVERROR_PATCHWELCOME;
96
+    }
96 97
 
97 98
     put_bits(&pb, 1, vps->vps_timing_info_present_flag);
98 99
     if (vps->vps_timing_info_present_flag) {
... ...
@@ -102,9 +103,10 @@ int ff_hevc_encode_nal_vps(HEVCVPS *vps, unsigned int id,
102 102
         if (vps->vps_poc_proportional_to_timing_flag)
103 103
             set_ue_golomb(&pb, vps->vps_num_ticks_poc_diff_one - 1);
104 104
 
105
-        // writing HRD parameters not supported
106
-        if (vps->vps_num_hrd_parameters)
105
+        if (vps->vps_num_hrd_parameters) {
106
+            avpriv_report_missing_feature(NULL, "Writing HRD parameters");
107 107
             return AVERROR_PATCHWELCOME;
108
+        }
108 109
     }
109 110
 
110 111
     put_bits(&pb, 1, 0);    // extension flag
... ...
@@ -540,7 +540,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
540 540
         }
541 541
         break;
542 542
     default:
543
-        av_log(avctx, AV_LOG_ERROR, "unsupported pixel size %d\n", pixel_size);
543
+        avpriv_report_missing_feature(avctx, "Pixel size %d", pixel_size);
544 544
         ret = AVERROR_PATCHWELCOME;
545 545
         goto done;
546 546
     }
... ...
@@ -586,13 +586,13 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
586 586
         break;
587 587
     default:
588 588
 unk_pixfmt:
589
-        av_log(s->avctx, AV_LOG_ERROR, "Unhandled pixel format 0x%x bits:%d\n", pix_fmt_id, s->bits);
589
+        avpriv_report_missing_feature(s->avctx, "Pixel format 0x%x bits:%d", pix_fmt_id, s->bits);
590 590
         memset(s->upscale_h, 0, sizeof(s->upscale_h));
591 591
         memset(s->upscale_v, 0, sizeof(s->upscale_v));
592 592
         return AVERROR_PATCHWELCOME;
593 593
     }
594 594
     if ((AV_RB32(s->upscale_h) || AV_RB32(s->upscale_v)) && s->avctx->lowres) {
595
-        av_log(s->avctx, AV_LOG_ERROR, "lowres not supported for weird subsampling\n");
595
+        avpriv_report_missing_feature(s->avctx, "Lowres for weird subsampling");
596 596
         return AVERROR_PATCHWELCOME;
597 597
     }
598 598
     if (s->ls) {
... ...
@@ -1483,8 +1483,9 @@ int ff_mjpeg_decode_sos(MJpegDecodeContext *s, const uint8_t *mb_bitmask,
1483 1483
     len = get_bits(&s->gb, 16);
1484 1484
     nb_components = get_bits(&s->gb, 8);
1485 1485
     if (nb_components == 0 || nb_components > MAX_COMPONENTS) {
1486
-        av_log(s->avctx, AV_LOG_ERROR,
1487
-               "decode_sos: nb_components (%d) unsupported\n", nb_components);
1486
+        avpriv_report_missing_feature(s->avctx,
1487
+                                      "decode_sos: nb_components (%d)",
1488
+                                      nb_components);
1488 1489
         return AVERROR_PATCHWELCOME;
1489 1490
     }
1490 1491
     if (len != 6 + 2 * nb_components) {
... ...
@@ -807,7 +807,7 @@ int ff_silk_decode_superframe(SilkContext *s, OpusRangeCoder *rc,
807 807
 
808 808
         redundancy[i] = ff_opus_rc_dec_log(rc, 1);
809 809
         if (redundancy[i]) {
810
-            av_log(s->avctx, AV_LOG_ERROR, "LBRR frames present; this is unsupported\n");
810
+            avpriv_report_missing_feature(s->avctx, "LBRR frames");
811 811
             return AVERROR_PATCHWELCOME;
812 812
         }
813 813
     }
... ...
@@ -627,8 +627,8 @@ static int shorten_decode_frame(AVCodecContext *avctx, void *data,
627 627
             case FN_BLOCKSIZE: {
628 628
                 unsigned blocksize = get_uint(s, av_log2(s->blocksize));
629 629
                 if (blocksize > s->blocksize) {
630
-                    av_log(avctx, AV_LOG_ERROR,
631
-                           "Increasing block size is not supported\n");
630
+                    avpriv_report_missing_feature(avctx,
631
+                                                  "Increasing block size");
632 632
                     return AVERROR_PATCHWELCOME;
633 633
                 }
634 634
                 if (!blocksize || blocksize > MAX_BLOCKSIZE) {
... ...
@@ -702,7 +702,7 @@ static int tak_decode_frame(AVCodecContext *avctx, void *data,
702 702
 
703 703
     if (s->ti.codec != TAK_CODEC_MONO_STEREO &&
704 704
         s->ti.codec != TAK_CODEC_MULTICHANNEL) {
705
-        av_log(avctx, AV_LOG_ERROR, "unsupported codec: %d\n", s->ti.codec);
705
+        avpriv_report_missing_feature(avctx, "TAK codec type %d", s->ti.codec);
706 706
         return AVERROR_PATCHWELCOME;
707 707
     }
708 708
     if (s->ti.data_type) {
... ...
@@ -56,8 +56,7 @@ static int txd_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
56 56
     flags           = bytestream2_get_byte(&gb);
57 57
 
58 58
     if (version < 8 || version > 9) {
59
-        av_log(avctx, AV_LOG_ERROR, "texture data version %u is unsupported\n",
60
-                                                                    version);
59
+        avpriv_report_missing_feature(avctx, "Texture data version %u", version);
61 60
         return AVERROR_PATCHWELCOME;
62 61
     }
63 62
 
... ...
@@ -66,7 +65,7 @@ static int txd_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
66 66
     } else if (depth == 16 || depth == 32) {
67 67
         avctx->pix_fmt = AV_PIX_FMT_RGBA;
68 68
     } else {
69
-        av_log(avctx, AV_LOG_ERROR, "depth of %u is unsupported\n", depth);
69
+        avpriv_report_missing_feature(avctx, "Color depth of %u", depth);
70 70
         return AVERROR_PATCHWELCOME;
71 71
     }
72 72
 
... ...
@@ -149,7 +148,7 @@ static int txd_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
149 149
     return avpkt->size;
150 150
 
151 151
 unsupported:
152
-    av_log(avctx, AV_LOG_ERROR, "unsupported d3d format (%08x)\n", d3d_format);
152
+    avpriv_report_missing_feature(avctx, "d3d format (%08x)", d3d_format);
153 153
     return AVERROR_PATCHWELCOME;
154 154
 }
155 155
 
... ...
@@ -53,7 +53,7 @@ static int vp5_parse_header(VP56Context *s, const uint8_t *buf, int buf_size)
53 53
             return AVERROR_INVALIDDATA;
54 54
         vp56_rac_gets(c, 2);
55 55
         if (vp56_rac_get(c)) {
56
-            av_log(s->avctx, AV_LOG_ERROR, "interlacing not supported\n");
56
+            avpriv_report_missing_feature(s->avctx, "Interlacing");
57 57
             return AVERROR_PATCHWELCOME;
58 58
         }
59 59
         rows = vp56_rac_gets(c, 8);  /* number of stored macroblock rows */
... ...
@@ -387,8 +387,7 @@ static int vfw_read_header(AVFormatContext *s)
387 387
     if (par->format == AV_PIX_FMT_NONE) {
388 388
         par->codec_id = vfw_codecid(biCompression);
389 389
         if (par->codec_id == AV_CODEC_ID_NONE) {
390
-            av_log(s, AV_LOG_ERROR, "Unknown compression type. "
391
-                             "Please report verbose (-v 9) debug information.\n");
390
+            avpriv_report_missing_feature(s, "This compression type");
392 391
             vfw_read_close(s);
393 392
             return AVERROR_PATCHWELCOME;
394 393
         }
... ...
@@ -509,7 +509,7 @@ static int pixfmt_from_pixmap_format(AVFormatContext *s, int depth,
509 509
 
510 510
         fmt++;
511 511
     }
512
-    av_log(s, AV_LOG_ERROR, "Pixmap format not mappable.\n");
512
+    avpriv_report_missing_feature(s, "Mapping this pixmap format");
513 513
 
514 514
     return AVERROR_PATCHWELCOME;
515 515
 }
... ...
@@ -368,8 +368,7 @@ static int avi_write_header(AVFormatContext *s)
368 368
             // XSUB subtitles behave like video tracks, other subtitles
369 369
             // are not (yet) supported.
370 370
             if (par->codec_id != AV_CODEC_ID_XSUB) {
371
-                av_log(s, AV_LOG_ERROR,
372
-                       "Subtitle streams other than DivX XSUB are not supported by the AVI muxer.\n");
371
+                avpriv_report_missing_feature(s, "Subtitle streams other than DivX XSUB");
373 372
                 return AVERROR_PATCHWELCOME;
374 373
             }
375 374
         case AVMEDIA_TYPE_VIDEO:
... ...
@@ -181,7 +181,7 @@ static int get_packet_header(AVFormatContext *s)
181 181
         st->codecpar->bits_per_coded_sample = (audio_format >> 6) & 0x3F;
182 182
 
183 183
         if (st->codecpar->bits_per_coded_sample != (audio_format & 0x3F)) {
184
-            av_log(s, AV_LOG_WARNING, "only tightly packed PCM currently supported\n");
184
+            avpriv_report_missing_feature(s, "Not tightly packed PCM");
185 185
             return AVERROR_PATCHWELCOME;
186 186
         }
187 187
 
... ...
@@ -191,8 +191,7 @@ static int get_packet_header(AVFormatContext *s)
191 191
         case 24: st->codecpar->codec_id = AV_CODEC_ID_PCM_S24LE_PLANAR; break;
192 192
         case 32: st->codecpar->codec_id = AV_CODEC_ID_PCM_S32LE_PLANAR; break;
193 193
         default:
194
-            av_log(s, AV_LOG_WARNING,
195
-                   "only 16-, 20-, 24- and 32-bit PCM currently supported\n");
194
+            avpriv_report_missing_feature(s, "PCM not 16-, 20-, 24- or 32-bits");
196 195
             return AVERROR_PATCHWELCOME;
197 196
         }
198 197
 
... ...
@@ -2548,10 +2548,9 @@ static int matroska_read_header(AVFormatContext *s)
2548 2548
         ebml.max_size        > sizeof(uint64_t)  ||
2549 2549
         ebml.id_length       > sizeof(uint32_t)  ||
2550 2550
         ebml.doctype_version > 3) {
2551
-        av_log(matroska->ctx, AV_LOG_ERROR,
2552
-               "EBML header using unsupported features\n"
2553
-               "(EBML version %"PRIu64", doctype %s, doc version %"PRIu64")\n",
2554
-               ebml.version, ebml.doctype, ebml.doctype_version);
2551
+        avpriv_report_missing_feature(matroska->ctx,
2552
+                                      "EBML version %"PRIu64", doctype %s, doc version %"PRIu64,
2553
+                                      ebml.version, ebml.doctype, ebml.doctype_version);
2555 2554
         ebml_free(ebml_syntax, &ebml);
2556 2555
         return AVERROR_PATCHWELCOME;
2557 2556
     } else if (ebml.doctype_version == 3) {
... ...
@@ -239,7 +239,7 @@ static int mpc8_read_header(AVFormatContext *s)
239 239
     avio_skip(pb, 4); //CRC
240 240
     c->ver = avio_r8(pb);
241 241
     if(c->ver != 8){
242
-        av_log(s, AV_LOG_ERROR, "Unknown stream version %d\n", c->ver);
242
+        avpriv_report_missing_feature(s, "Stream version %d", c->ver);
243 243
         return AVERROR_PATCHWELCOME;
244 244
     }
245 245
     c->samples = ffio_read_varlen(pb);
... ...
@@ -50,7 +50,7 @@ static int rso_write_header(AVFormatContext *s)
50 50
     }
51 51
 
52 52
     if (par->codec_id == AV_CODEC_ID_ADPCM_IMA_WAV) {
53
-        av_log(s, AV_LOG_ERROR, "ADPCM in RSO not implemented\n");
53
+        avpriv_report_missing_feature(s, "ADPCM in RSO");
54 54
         return AVERROR_PATCHWELCOME;
55 55
     }
56 56
 
... ...
@@ -247,7 +247,7 @@ static int jpeg_parse_packet(AVFormatContext *ctx, PayloadContext *jpeg,
247 247
         type &= ~0x40;
248 248
     }
249 249
     if (type > 1) {
250
-        av_log(ctx, AV_LOG_ERROR, "Unimplemented RTP/JPEG type %"PRIu8"\n", type);
250
+        avpriv_report_missing_feature(ctx, "RTP/JPEG type %"PRIu8, type);
251 251
         return AVERROR_PATCHWELCOME;
252 252
     }
253 253
 
... ...
@@ -109,9 +109,9 @@ static int parse_fmtp_config(AVStream *st, const char *value)
109 109
     num_layers        = get_bits(&gb, 3);
110 110
     if (audio_mux_version != 0 || same_time_framing != 1 || num_programs != 0 ||
111 111
         num_layers != 0) {
112
-        av_log(NULL, AV_LOG_WARNING, "Unsupported LATM config (%d,%d,%d,%d)\n",
113
-                                     audio_mux_version, same_time_framing,
114
-                                     num_programs, num_layers);
112
+        avpriv_report_missing_feature(NULL, "LATM config (%d,%d,%d,%d)",
113
+                                      audio_mux_version, same_time_framing,
114
+                                      num_programs, num_layers);
115 115
         ret = AVERROR_PATCHWELCOME;
116 116
         goto end;
117 117
     }
... ...
@@ -108,15 +108,14 @@ static int xiph_handle_packet(AVFormatContext *ctx, PayloadContext *data,
108 108
     }
109 109
 
110 110
     if (ident != data->ident) {
111
-        av_log(ctx, AV_LOG_ERROR,
112
-               "Unimplemented Xiph SDP configuration change detected\n");
111
+        avpriv_report_missing_feature(ctx, "Xiph SDP configuration change");
113 112
         return AVERROR_PATCHWELCOME;
114 113
     }
115 114
 
116 115
     if (tdt) {
117
-        av_log(ctx, AV_LOG_ERROR,
118
-               "Unimplemented RTP Xiph packet settings (%d,%d,%d)\n",
119
-               fragmented, tdt, num_pkts);
116
+        avpriv_report_missing_feature(ctx,
117
+                                      "RTP Xiph packet settings (%d,%d,%d)",
118
+                                      fragmented, tdt, num_pkts);
120 119
         return AVERROR_PATCHWELCOME;
121 120
     }
122 121
 
... ...
@@ -246,9 +245,8 @@ parse_packed_headers(AVFormatContext *s,
246 246
     length2            = get_base128(&packed_headers, packed_headers_end);
247 247
 
248 248
     if (num_packed != 1 || num_headers > 3) {
249
-        av_log(s, AV_LOG_ERROR,
250
-               "Unimplemented number of headers: %u packed headers, %u headers\n",
251
-               num_packed, num_headers);
249
+        avpriv_report_missing_feature(s, "%u packed headers, %u headers",
250
+                                      num_packed, num_headers);
252 251
         return AVERROR_PATCHWELCOME;
253 252
     }
254 253
 
... ...
@@ -1340,8 +1340,7 @@ static int rtsp_send_cmd_with_content_async(AVFormatContext *s,
1340 1340
     ffurl_write(rt->rtsp_hd_out, out_buf, strlen(out_buf));
1341 1341
     if (send_content_length > 0 && send_content) {
1342 1342
         if (rt->control_transport == RTSP_MODE_TUNNEL) {
1343
-            av_log(s, AV_LOG_ERROR, "tunneling of RTSP requests "
1344
-                                    "with content data not supported\n");
1343
+            avpriv_report_missing_feature(s, "Tunneling of RTSP requests with content data");
1345 1344
             return AVERROR_PATCHWELCOME;
1346 1345
         }
1347 1346
         ffurl_write(rt->rtsp_hd_out, send_content, send_content_length);
... ...
@@ -470,7 +470,8 @@ static int spdif_write_header(AVFormatContext *s)
470 470
             return AVERROR(ENOMEM);
471 471
         break;
472 472
     default:
473
-        av_log(s, AV_LOG_ERROR, "codec not supported\n");
473
+        avpriv_report_missing_feature(s, "Codec %d",
474
+                                      s->streams[0]->codecpar->codec_id);
474 475
         return AVERROR_PATCHWELCOME;
475 476
     }
476 477
     return 0;
... ...
@@ -98,7 +98,8 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb)
98 98
     }
99 99
 
100 100
     if (wc->header.version < 0x402 || wc->header.version > 0x410) {
101
-        av_log(ctx, AV_LOG_ERROR, "Unsupported version %03X\n", wc->header.version);
101
+        avpriv_report_missing_feature(ctx, "WV version 0x%03X",
102
+                                      wc->header.version);
102 103
         return AVERROR_PATCHWELCOME;
103 104
     }
104 105