... | ... |
@@ -1246,8 +1246,7 @@ static int decode_ics_info(AACContext *ac, IndividualChannelStream *ics, |
1246 | 1246 |
return AVERROR_INVALIDDATA; |
1247 | 1247 |
} else { |
1248 | 1248 |
if (aot == AOT_ER_AAC_LD) { |
1249 |
- av_log(ac->avctx, AV_LOG_ERROR, |
|
1250 |
- "LTP in ER AAC LD not yet implemented.\n"); |
|
1249 |
+ avpriv_report_missing_feature(ac->avctx, "LTP in ER AAC LD"); |
|
1251 | 1250 |
return AVERROR_PATCHWELCOME; |
1252 | 1251 |
} |
1253 | 1252 |
if ((ics->ltp.present = get_bits(gb, 1))) |
... | ... |
@@ -266,7 +266,7 @@ static int decode_element(AVCodecContext *avctx, AVFrame *frame, int ch_index, |
266 | 266 |
alac->extra_bits = get_bits(&alac->gb, 2) << 3; |
267 | 267 |
bps = alac->sample_size - alac->extra_bits + channels - 1; |
268 | 268 |
if (bps > 32) { |
269 |
- av_log(avctx, AV_LOG_ERROR, "bps is unsupported: %d\n", bps); |
|
269 |
+ avpriv_report_missing_feature(avctx, "bps %d", bps); |
|
270 | 270 |
return AVERROR_PATCHWELCOME; |
271 | 271 |
} |
272 | 272 |
|
... | ... |
@@ -424,7 +424,7 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data, |
424 | 424 |
break; |
425 | 425 |
} |
426 | 426 |
if (element > TYPE_CPE && element != TYPE_LFE) { |
427 |
- av_log(avctx, AV_LOG_ERROR, "syntax element unsupported: %d", element); |
|
427 |
+ avpriv_report_missing_feature(avctx, "Syntax element %d", element); |
|
428 | 428 |
return AVERROR_PATCHWELCOME; |
429 | 429 |
} |
430 | 430 |
|
... | ... |
@@ -568,8 +568,8 @@ static av_cold int alac_decode_init(AVCodecContext * avctx) |
568 | 568 |
avctx->channels = alac->channels; |
569 | 569 |
} |
570 | 570 |
if (avctx->channels > ALAC_MAX_CHANNELS) { |
571 |
- av_log(avctx, AV_LOG_ERROR, "Unsupported channel count: %d\n", |
|
572 |
- avctx->channels); |
|
571 |
+ avpriv_report_missing_feature(avctx, "Channel count %d", |
|
572 |
+ avctx->channels); |
|
573 | 573 |
return AVERROR_PATCHWELCOME; |
574 | 574 |
} |
575 | 575 |
avctx->channel_layout = ff_alac_channel_layouts[alac->channels - 1]; |
... | ... |
@@ -98,7 +98,8 @@ static int bmp_decode_frame(AVCodecContext *avctx, |
98 | 98 |
height = bytestream_get_le16(&buf); |
99 | 99 |
break; |
100 | 100 |
default: |
101 |
- av_log(avctx, AV_LOG_ERROR, "unsupported BMP file, patch welcome\n"); |
|
101 |
+ avpriv_report_missing_feature(avctx, "Information header size %u", |
|
102 |
+ ihsize); |
|
102 | 103 |
return AVERROR_PATCHWELCOME; |
103 | 104 |
} |
104 | 105 |
|
... | ... |
@@ -163,9 +163,7 @@ static int decode_frame(AVCodecContext *avctx, |
163 | 163 |
prev_pic_bit = header & (1U << 31); /* bit 31 means same as previous pic */ |
164 | 164 |
|
165 | 165 |
if (version > 5) { |
166 |
- av_log(avctx, AV_LOG_ERROR, |
|
167 |
- "This file is encoded with Fraps version %u. " |
|
168 |
- "This codec can only decode versions <= 5.\n", version); |
|
166 |
+ avpriv_report_missing_feature(avctx, "Fraps version %u", version); |
|
169 | 167 |
return AVERROR_PATCHWELCOME; |
170 | 168 |
} |
171 | 169 |
|
... | ... |
@@ -1424,9 +1424,8 @@ static int g2m_decode_frame(AVCodecContext *avctx, void *data, |
1424 | 1424 |
} |
1425 | 1425 |
c->compression = bytestream2_get_be32(&bc); |
1426 | 1426 |
if (c->compression != 2 && c->compression != 3) { |
1427 |
- av_log(avctx, AV_LOG_ERROR, |
|
1428 |
- "Unknown compression method %d\n", |
|
1429 |
- c->compression); |
|
1427 |
+ avpriv_report_missing_feature(avctx, "Compression method %d", |
|
1428 |
+ c->compression); |
|
1430 | 1429 |
return AVERROR_PATCHWELCOME; |
1431 | 1430 |
} |
1432 | 1431 |
c->tile_width = bytestream2_get_be32(&bc); |
... | ... |
@@ -1453,9 +1452,9 @@ static int g2m_decode_frame(AVCodecContext *avctx, void *data, |
1453 | 1453 |
g_mask = bytestream2_get_be32(&bc); |
1454 | 1454 |
b_mask = bytestream2_get_be32(&bc); |
1455 | 1455 |
if (r_mask != 0xFF0000 || g_mask != 0xFF00 || b_mask != 0xFF) { |
1456 |
- av_log(avctx, AV_LOG_ERROR, |
|
1457 |
- "Invalid or unsupported bitmasks: R=%"PRIX32", G=%"PRIX32", B=%"PRIX32"\n", |
|
1458 |
- r_mask, g_mask, b_mask); |
|
1456 |
+ avpriv_report_missing_feature(avctx, |
|
1457 |
+ "Bitmasks: R=%"PRIX32", G=%"PRIX32", B=%"PRIX32, |
|
1458 |
+ r_mask, g_mask, b_mask); |
|
1459 | 1459 |
return AVERROR_PATCHWELCOME; |
1460 | 1460 |
} |
1461 | 1461 |
} else { |
... | ... |
@@ -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"); |
... | ... |
@@ -700,9 +700,8 @@ int ff_h264_decode_picture_parameter_set(GetBitContext *gb, AVCodecContext *avct |
700 | 700 |
sps = (SPS*)ps->sps_list[pps->sps_id]->data; |
701 | 701 |
|
702 | 702 |
if (sps->bit_depth_luma > 10) { |
703 |
- av_log(avctx, AV_LOG_ERROR, |
|
704 |
- "Unimplemented luma bit depth=%d (max=10)\n", |
|
705 |
- sps->bit_depth_luma); |
|
703 |
+ avpriv_report_missing_feature(avctx, "Luma bit depth=%d (max=10)", |
|
704 |
+ sps->bit_depth_luma); |
|
706 | 705 |
ret = AVERROR_PATCHWELCOME; |
707 | 706 |
goto fail; |
708 | 707 |
} |
... | ... |
@@ -657,13 +657,12 @@ static int map_pixel_format(AVCodecContext *avctx, HEVCSPS *sps) |
657 | 657 |
case 9: sps->pix_fmt = AV_PIX_FMT_YUV420P9; break; |
658 | 658 |
case 10: sps->pix_fmt = AV_PIX_FMT_YUV420P10; break; |
659 | 659 |
default: |
660 |
- av_log(avctx, AV_LOG_ERROR, "Unsupported bit depth: %d\n", |
|
661 |
- sps->bit_depth); |
|
660 |
+ avpriv_report_missing_feature(avctx, "Bit depth %d", |
|
661 |
+ sps->bit_depth); |
|
662 | 662 |
return AVERROR_PATCHWELCOME; |
663 | 663 |
} |
664 | 664 |
} else { |
665 |
- av_log(avctx, AV_LOG_ERROR, |
|
666 |
- "non-4:2:0 support is currently unspecified.\n"); |
|
665 |
+ avpriv_report_missing_feature(avctx, "Non-4:2:0 support"); |
|
667 | 666 |
return AVERROR_PATCHWELCOME; |
668 | 667 |
} |
669 | 668 |
|
... | ... |
@@ -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 |
... | ... |
@@ -396,7 +396,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, |
396 | 396 |
} |
397 | 397 |
break; |
398 | 398 |
default: |
399 |
- av_log(avctx, AV_LOG_ERROR, "unsupported pixel size %d\n", pixel_size); |
|
399 |
+ avpriv_report_missing_feature(avctx, "Pixel size %d", pixel_size); |
|
400 | 400 |
ret = AVERROR_PATCHWELCOME; |
401 | 401 |
goto done; |
402 | 402 |
} |
... | ... |
@@ -164,8 +164,9 @@ static int av_cold libopus_encode_init(AVCodecContext *avctx) |
164 | 164 |
/* FIXME: Opus can handle up to 255 channels. However, the mapping for |
165 | 165 |
* anything greater than 8 is undefined. */ |
166 | 166 |
if (avctx->channels > 8) { |
167 |
- av_log(avctx, AV_LOG_ERROR, |
|
168 |
- "Channel layout undefined for %d channels.\n", avctx->channels); |
|
167 |
+ avpriv_report_missing_feature(avctx, |
|
168 |
+ "Undefined channel layout for %d channels", |
|
169 |
+ avctx->channels); |
|
169 | 170 |
return AVERROR_PATCHWELCOME; |
170 | 171 |
} |
171 | 172 |
if (!avctx->bit_rate) { |
... | ... |
@@ -373,7 +373,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) |
373 | 373 |
s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; |
374 | 374 |
break; |
375 | 375 |
default: |
376 |
- av_log(s->avctx, AV_LOG_ERROR, "Unhandled pixel format 0x%x\n", pix_fmt_id); |
|
376 |
+ avpriv_report_missing_feature(s->avctx, "Pixel format 0x%x", pix_fmt_id); |
|
377 | 377 |
return AVERROR_PATCHWELCOME; |
378 | 378 |
} |
379 | 379 |
if (s->ls) { |
... | ... |
@@ -1035,8 +1035,9 @@ int ff_mjpeg_decode_sos(MJpegDecodeContext *s, const uint8_t *mb_bitmask, |
1035 | 1035 |
len = get_bits(&s->gb, 16); |
1036 | 1036 |
nb_components = get_bits(&s->gb, 8); |
1037 | 1037 |
if (nb_components == 0 || nb_components > MAX_COMPONENTS) { |
1038 |
- av_log(s->avctx, AV_LOG_ERROR, |
|
1039 |
- "decode_sos: nb_components (%d) unsupported\n", nb_components); |
|
1038 |
+ avpriv_report_missing_feature(s->avctx, |
|
1039 |
+ "decode_sos: nb_components (%d)", |
|
1040 |
+ nb_components); |
|
1040 | 1041 |
return AVERROR_PATCHWELCOME; |
1041 | 1042 |
} |
1042 | 1043 |
if (len != 6 + 2 * nb_components) { |
... | ... |
@@ -1530,7 +1530,7 @@ int ff_silk_decode_superframe(SilkContext *s, OpusRangeCoder *rc, |
1530 | 1530 |
|
1531 | 1531 |
redundancy[i] = opus_rc_p2model(rc, 1); |
1532 | 1532 |
if (redundancy[i]) { |
1533 |
- av_log(s->avctx, AV_LOG_ERROR, "LBRR frames present; this is unsupported\n"); |
|
1533 |
+ avpriv_report_missing_feature(s->avctx, "LBRR frames"); |
|
1534 | 1534 |
return AVERROR_PATCHWELCOME; |
1535 | 1535 |
} |
1536 | 1536 |
} |
... | ... |
@@ -515,8 +515,8 @@ static int shorten_decode_frame(AVCodecContext *avctx, void *data, |
515 | 515 |
case FN_BLOCKSIZE: { |
516 | 516 |
unsigned blocksize = get_uint(s, av_log2(s->blocksize)); |
517 | 517 |
if (blocksize > s->blocksize) { |
518 |
- av_log(avctx, AV_LOG_ERROR, |
|
519 |
- "Increasing block size is not supported\n"); |
|
518 |
+ avpriv_report_missing_feature(avctx, |
|
519 |
+ "Increasing block size"); |
|
520 | 520 |
return AVERROR_PATCHWELCOME; |
521 | 521 |
} |
522 | 522 |
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 |
|
... | ... |
@@ -143,7 +142,7 @@ static int txd_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, |
143 | 143 |
return avpkt->size; |
144 | 144 |
|
145 | 145 |
unsupported: |
146 |
- av_log(avctx, AV_LOG_ERROR, "unsupported d3d format (%08x)\n", d3d_format); |
|
146 |
+ avpriv_report_missing_feature(avctx, "d3d format (%08x)", d3d_format); |
|
147 | 147 |
return AVERROR_PATCHWELCOME; |
148 | 148 |
} |
149 | 149 |
|
... | ... |
@@ -51,7 +51,7 @@ static int vp5_parse_header(VP56Context *s, const uint8_t *buf, int buf_size, |
51 | 51 |
return AVERROR_INVALIDDATA; |
52 | 52 |
vp56_rac_gets(c, 2); |
53 | 53 |
if (vp56_rac_get(c)) { |
54 |
- av_log(s->avctx, AV_LOG_ERROR, "interlacing not supported\n"); |
|
54 |
+ avpriv_report_missing_feature(s->avctx, "Interlacing"); |
|
55 | 55 |
return AVERROR_PATCHWELCOME; |
56 | 56 |
} |
57 | 57 |
rows = vp56_rac_gets(c, 8); /* number of stored macroblock rows */ |
... | ... |
@@ -147,7 +147,7 @@ static int xwd_decode_frame(AVCodecContext *avctx, void *data, |
147 | 147 |
} |
148 | 148 |
|
149 | 149 |
if (pixformat != XWD_Z_PIXMAP) { |
150 |
- av_log(avctx, AV_LOG_ERROR, "pixmap format %"PRIu32" unsupported\n", pixformat); |
|
150 |
+ avpriv_report_missing_feature(avctx, "Pixmap format %"PRIu32, pixformat); |
|
151 | 151 |
return AVERROR_PATCHWELCOME; |
152 | 152 |
} |
153 | 153 |
|
... | ... |
@@ -383,8 +383,7 @@ static int vfw_read_header(AVFormatContext *s) |
383 | 383 |
if (par->format == AV_PIX_FMT_NONE) { |
384 | 384 |
par->codec_id = vfw_codecid(biCompression); |
385 | 385 |
if (par->codec_id == AV_CODEC_ID_NONE) { |
386 |
- av_log(s, AV_LOG_ERROR, "Unknown compression type. " |
|
387 |
- "Please report verbose (-v 9) debug information.\n"); |
|
386 |
+ avpriv_report_missing_feature(s, "This compression type"); |
|
388 | 387 |
vfw_read_close(s); |
389 | 388 |
return AVERROR_PATCHWELCOME; |
390 | 389 |
} |
... | ... |
@@ -500,7 +500,7 @@ static int pixfmt_from_pixmap_format(AVFormatContext *s, int depth, |
500 | 500 |
|
501 | 501 |
fmt++; |
502 | 502 |
} |
503 |
- av_log(s, AV_LOG_ERROR, "Pixmap format not mappable.\n"); |
|
503 |
+ avpriv_report_missing_feature(s, "Mapping this pixmap format"); |
|
504 | 504 |
|
505 | 505 |
return AVERROR_PATCHWELCOME; |
506 | 506 |
} |
... | ... |
@@ -225,8 +225,7 @@ static int avi_write_header(AVFormatContext *s) |
225 | 225 |
// XSUB subtitles behave like video tracks, other subtitles |
226 | 226 |
// are not (yet) supported. |
227 | 227 |
if (par->codec_id != AV_CODEC_ID_XSUB) { |
228 |
- av_log(s, AV_LOG_ERROR, |
|
229 |
- "Subtitle streams other than DivX XSUB are not supported by the AVI muxer.\n"); |
|
228 |
+ avpriv_report_missing_feature(s, "Subtitle streams other than DivX XSUB"); |
|
230 | 229 |
return AVERROR_PATCHWELCOME; |
231 | 230 |
} |
232 | 231 |
case AVMEDIA_TYPE_VIDEO: |
... | ... |
@@ -180,7 +180,7 @@ static int get_packet_header(AVFormatContext *s) |
180 | 180 |
st->codecpar->bits_per_coded_sample = (audio_format >> 6) & 0x3F; |
181 | 181 |
|
182 | 182 |
if (st->codecpar->bits_per_coded_sample != (audio_format & 0x3F)) { |
183 |
- av_log(s, AV_LOG_WARNING, "only tightly packed PCM currently supported\n"); |
|
183 |
+ avpriv_report_missing_feature(s, "Not tightly packed PCM"); |
|
184 | 184 |
return AVERROR_PATCHWELCOME; |
185 | 185 |
} |
186 | 186 |
|
... | ... |
@@ -190,8 +190,7 @@ static int get_packet_header(AVFormatContext *s) |
190 | 190 |
case 24: st->codecpar->codec_id = AV_CODEC_ID_PCM_S24LE_PLANAR; break; |
191 | 191 |
case 32: st->codecpar->codec_id = AV_CODEC_ID_PCM_S32LE_PLANAR; break; |
192 | 192 |
default: |
193 |
- av_log(s, AV_LOG_WARNING, |
|
194 |
- "only 16-, 20-, 24- and 32-bit PCM currently supported\n"); |
|
193 |
+ avpriv_report_missing_feature(s, "PCM not 16-, 20-, 24- or 32-bits"); |
|
195 | 194 |
return AVERROR_PATCHWELCOME; |
196 | 195 |
} |
197 | 196 |
|
... | ... |
@@ -1947,10 +1947,9 @@ static int matroska_read_header(AVFormatContext *s) |
1947 | 1947 |
ebml.max_size > sizeof(uint64_t) || |
1948 | 1948 |
ebml.id_length > sizeof(uint32_t) || |
1949 | 1949 |
ebml.doctype_version > 3) { |
1950 |
- av_log(matroska->ctx, AV_LOG_ERROR, |
|
1951 |
- "EBML header using unsupported features\n" |
|
1952 |
- "(EBML version %"PRIu64", doctype %s, doc version %"PRIu64")\n", |
|
1953 |
- ebml.version, ebml.doctype, ebml.doctype_version); |
|
1950 |
+ avpriv_report_missing_feature(matroska->ctx, |
|
1951 |
+ "EBML version %"PRIu64", doctype %s, doc version %"PRIu64, |
|
1952 |
+ ebml.version, ebml.doctype, ebml.doctype_version); |
|
1954 | 1953 |
ebml_free(ebml_syntax, &ebml); |
1955 | 1954 |
return AVERROR_PATCHWELCOME; |
1956 | 1955 |
} |
... | ... |
@@ -228,7 +228,7 @@ static int mpc8_read_header(AVFormatContext *s) |
228 | 228 |
avio_skip(pb, 4); //CRC |
229 | 229 |
c->ver = avio_r8(pb); |
230 | 230 |
if(c->ver != 8){ |
231 |
- av_log(s, AV_LOG_ERROR, "Unknown stream version %d\n", c->ver); |
|
231 |
+ avpriv_report_missing_feature(s, "Stream version %d", c->ver); |
|
232 | 232 |
return AVERROR_PATCHWELCOME; |
233 | 233 |
} |
234 | 234 |
c->samples = ffio_read_varlen(pb); |
... | ... |
@@ -123,9 +123,9 @@ static int opus_packet(AVFormatContext *avf, int idx) |
123 | 123 |
skip = FFMIN(skip, os->pduration); |
124 | 124 |
if (skip > 0) { |
125 | 125 |
os->pduration = skip < os->pduration ? os->pduration - skip : 1; |
126 |
- av_log(avf, AV_LOG_WARNING, |
|
127 |
- "Last packet is truncated to %d (because of unimplemented end trim support).\n", |
|
128 |
- os->pduration); |
|
126 |
+ avpriv_report_missing_feature(avf, |
|
127 |
+ "Last packet truncated to %u since end trim support", |
|
128 |
+ os->pduration); |
|
129 | 129 |
return AVERROR_PATCHWELCOME; |
130 | 130 |
} |
131 | 131 |
} |
... | ... |
@@ -102,10 +102,10 @@ static int qcp_read_header(AVFormatContext *s) |
102 | 102 |
if (is_qcelp_13k_guid(buf)) { |
103 | 103 |
st->codecpar->codec_id = AV_CODEC_ID_QCELP; |
104 | 104 |
} else if (!memcmp(buf, guid_evrc, 16)) { |
105 |
- av_log(s, AV_LOG_ERROR, "EVRC codec is not supported.\n"); |
|
105 |
+ avpriv_report_missing_feature(s, "EVRC codec"); |
|
106 | 106 |
return AVERROR_PATCHWELCOME; |
107 | 107 |
} else if (!memcmp(buf, guid_smv, 16)) { |
108 |
- av_log(s, AV_LOG_ERROR, "SMV codec is not supported.\n"); |
|
108 |
+ avpriv_report_missing_feature(s, "SMV codec"); |
|
109 | 109 |
return AVERROR_PATCHWELCOME; |
110 | 110 |
} else { |
111 | 111 |
av_log(s, AV_LOG_ERROR, "Unknown codec GUID.\n"); |
... | ... |
@@ -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 |
|
... | ... |
@@ -230,7 +230,7 @@ static int jpeg_parse_packet(AVFormatContext *ctx, PayloadContext *jpeg, |
230 | 230 |
len -= 8; |
231 | 231 |
|
232 | 232 |
if (type > 1) { |
233 |
- av_log(ctx, AV_LOG_ERROR, "Unimplemented RTP/JPEG type %"PRIu8"\n", type); |
|
233 |
+ avpriv_report_missing_feature(ctx, "RTP/JPEG type %"PRIu8, type); |
|
234 | 234 |
return AVERROR_PATCHWELCOME; |
235 | 235 |
} |
236 | 236 |
|
... | ... |
@@ -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 |
|
... | ... |
@@ -1333,8 +1333,7 @@ static int rtsp_send_cmd_with_content_async(AVFormatContext *s, |
1333 | 1333 |
ffurl_write(rt->rtsp_hd_out, out_buf, strlen(out_buf)); |
1334 | 1334 |
if (send_content_length > 0 && send_content) { |
1335 | 1335 |
if (rt->control_transport == RTSP_MODE_TUNNEL) { |
1336 |
- av_log(s, AV_LOG_ERROR, "tunneling of RTSP requests " |
|
1337 |
- "with content data not supported\n"); |
|
1336 |
+ avpriv_report_missing_feature(s, "Tunneling of RTSP requests with content data"); |
|
1338 | 1337 |
return AVERROR_PATCHWELCOME; |
1339 | 1338 |
} |
1340 | 1339 |
ffurl_write(rt->rtsp_hd_out, send_content, send_content_length); |
... | ... |
@@ -469,7 +469,8 @@ static int spdif_write_header(AVFormatContext *s) |
469 | 469 |
return AVERROR(ENOMEM); |
470 | 470 |
break; |
471 | 471 |
default: |
472 |
- av_log(s, AV_LOG_ERROR, "codec not supported\n"); |
|
472 |
+ avpriv_report_missing_feature(s, "Codec %d", |
|
473 |
+ s->streams[0]->codecpar->codec_id); |
|
473 | 474 |
return AVERROR_PATCHWELCOME; |
474 | 475 |
} |
475 | 476 |
return 0; |
... | ... |
@@ -95,7 +95,8 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb) |
95 | 95 |
} |
96 | 96 |
|
97 | 97 |
if (wc->header.version < 0x402 || wc->header.version > 0x410) { |
98 |
- av_log(ctx, AV_LOG_ERROR, "Unsupported version %03X\n", wc->header.version); |
|
98 |
+ avpriv_report_missing_feature(ctx, "WV version 0x%03X", |
|
99 |
+ wc->header.version); |
|
99 | 100 |
return AVERROR_PATCHWELCOME; |
100 | 101 |
} |
101 | 102 |
|