diff --git a/libavcodec/aac_adtstoasc_bsf.c b/libavcodec/aac_adtstoasc_bsf.c index a6599345bd..df9a3958db 100644 --- a/libavcodec/aac_adtstoasc_bsf.c +++ b/libavcodec/aac_adtstoasc_bsf.c @@ -62,7 +62,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc, if (!hdr.crc_absent && hdr.num_aac_frames > 1) { av_log_missing_feature(avctx, "Multiple RDBs per frame with CRC", 0); - return -1; + return AVERROR_PATCHWELCOME; } buf += AAC_ADTS_HEADER_SIZE + 2*!hdr.crc_absent; @@ -75,7 +75,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc, init_get_bits(&gb, buf, buf_size * 8); if (get_bits(&gb, 3) != 5) { av_log_missing_feature(avctx, "PCE based channel configuration, where the PCE is not the first syntax element", 0); - return -1; + return AVERROR_PATCHWELCOME; } init_put_bits(&pb, pce_data, MAX_PCE_SIZE); pce_size = avpriv_copy_pce_data(&pb, &gb)/8; diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index 859414adc9..4a6d3905f4 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -634,7 +634,7 @@ static int decode_ga_specific_config(AACContext *ac, AVCodecContext *avctx, if (get_bits1(gb)) { // frameLengthFlag av_log_missing_feature(avctx, "960/120 MDCT window", 1); - return -1; + return AVERROR_PATCHWELCOME; } if (get_bits1(gb)) // dependsOnCoreCoder @@ -1635,7 +1635,7 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce, return -1; if (get_bits1(gb)) { av_log_missing_feature(ac->avctx, "SSR", 1); - return -1; + return AVERROR_PATCHWELCOME; } } @@ -2324,7 +2324,7 @@ static int parse_adts_frame_header(AACContext *ac, GetBitContext *gb) if (size > 0) { if (hdr_info.num_aac_frames != 1) { av_log_missing_feature(ac->avctx, "More than one AAC RDB per ADTS frame", 0); - return -1; + return AVERROR_PATCHWELCOME; } push_output_configuration(ac); if (hdr_info.chan_config) { @@ -2609,7 +2609,7 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx, if (config_start_bit % 8) { av_log_missing_feature(latmctx->aac_ctx.avctx, "Non-byte-aligned audio-specific config", 1); - return AVERROR_INVALIDDATA; + return AVERROR_PATCHWELCOME; } if (asclen <= 0) return AVERROR_INVALIDDATA; diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c index 12770db2de..4336ca5374 100644 --- a/libavcodec/ac3dec.c +++ b/libavcodec/ac3dec.c @@ -876,7 +876,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) if (s->eac3 && get_bits1(gbc)) { /* TODO: parse enhanced coupling strategy info */ av_log_missing_feature(s->avctx, "Enhanced coupling", 1); - return -1; + return AVERROR_PATCHWELCOME; } /* determine which channels are coupled */ diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c index 1c3f0cbdb5..ba9f3bba2e 100644 --- a/libavcodec/alsdec.c +++ b/libavcodec/alsdec.c @@ -427,9 +427,9 @@ static int check_specific_config(ALSDecContext *ctx) } \ } - MISSING_ERR(sconf->floating, "Floating point decoding", -1); - MISSING_ERR(sconf->rlslms, "Adaptive RLS-LMS prediction", -1); - MISSING_ERR(sconf->chan_sort, "Channel sorting", 0); + MISSING_ERR(sconf->floating, "Floating point decoding", AVERROR_PATCHWELCOME); + MISSING_ERR(sconf->rlslms, "Adaptive RLS-LMS prediction", AVERROR_PATCHWELCOME); + MISSING_ERR(sconf->chan_sort, "Channel sorting", 0); return error; } diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c index d0ad76c7ea..2cb06a6ead 100644 --- a/libavcodec/amrnbdec.c +++ b/libavcodec/amrnbdec.c @@ -951,7 +951,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data, } if (p->cur_frame_mode == MODE_DTX) { av_log_missing_feature(avctx, "dtx mode", 1); - return -1; + return AVERROR_PATCHWELCOME; } if (p->cur_frame_mode == MODE_12k2) { diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c index 18b34cff9b..5cc96ab713 100644 --- a/libavcodec/amrwbdec.c +++ b/libavcodec/amrwbdec.c @@ -1111,7 +1111,7 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data, if (ctx->fr_cur_mode == MODE_SID) { /* Comfort noise frame */ av_log_missing_feature(avctx, "SID mode", 1); - return -1; + return AVERROR_PATCHWELCOME; } ff_amr_bit_reorder((uint16_t *) &ctx->frame, sizeof(AMRWBFrame), diff --git a/libavcodec/eac3dec.c b/libavcodec/eac3dec.c index 7072f783e4..626698839d 100644 --- a/libavcodec/eac3dec.c +++ b/libavcodec/eac3dec.c @@ -322,7 +322,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s) handled like AC-3 DolbyNet, but we cannot be sure until we have a sample which utilizes this feature. */ av_log_missing_feature(s->avctx, "Reduced sampling rates", 1); - return -1; + return AVERROR_PATCHWELCOME; } skip_bits(gbc, 5); // skip bitstream id diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index f3f1b3a283..b39feb679b 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -372,7 +372,7 @@ static inline int decode_subframe(FLACContext *s, int channel) } if (bps > 32) { av_log_missing_feature(s->avctx, "decorrelated bit depth > 32", 0); - return -1; + return AVERROR_PATCHWELCOME; } //FIXME use av_log2 for types diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c index 91e228b07c..0331789bbb 100644 --- a/libavcodec/mpc8.c +++ b/libavcodec/mpc8.c @@ -130,7 +130,7 @@ static av_cold int mpc8_decode_init(AVCodecContext * avctx) channels = get_bits(&gb, 4) + 1; if (channels > 2) { av_log_missing_feature(avctx, "Multichannel MPC SV8", 1); - return -1; + return AVERROR_PATCHWELCOME; } c->MSS = get_bits1(&gb); c->frames = 1 << (get_bits(&gb, 3) * 2); diff --git a/libavcodec/tta.c b/libavcodec/tta.c index 7825c0c980..e6117488dc 100644 --- a/libavcodec/tta.c +++ b/libavcodec/tta.c @@ -222,7 +222,7 @@ static av_cold int tta_decode_init(AVCodecContext * avctx) } if (s->format == FORMAT_ENCRYPTED) { av_log_missing_feature(s->avctx, "Encrypted TTA", 0); - return AVERROR(EINVAL); + return AVERROR_PATCHWELCOME; } avctx->channels = s->channels = get_bits(&s->gb, 16); avctx->bits_per_coded_sample = get_bits(&s->gb, 16); diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index 1c9c6671e4..50f85e2938 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -314,7 +314,7 @@ static av_cold int decode_init(AVCodecContext *avctx) bits = ff_wma_get_frame_len_bits(avctx->sample_rate, 3, s->decode_flags); if (bits > WMAPRO_BLOCK_MAX_BITS) { av_log_missing_feature(avctx, "14-bits block sizes", 1); - return AVERROR_INVALIDDATA; + return AVERROR_PATCHWELCOME; } s->samples_per_frame = 1 << bits; diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c index 4a7ba6dabc..2ed79a6302 100644 --- a/libavcodec/wmavoice.c +++ b/libavcodec/wmavoice.c @@ -1763,7 +1763,7 @@ static int synth_superframe(AVCodecContext *ctx, int *got_frame_ptr) * the wild yet. */ if (!get_bits1(gb)) { av_log_missing_feature(ctx, "WMAPro-in-WMAVoice support", 1); - return -1; + return AVERROR_PATCHWELCOME; } /* (optional) nr. of samples in superframe; always <= 480 and >= 0 */ diff --git a/libavformat/rtpdec_qt.c b/libavformat/rtpdec_qt.c index 5dd1af1bc8..3093132672 100644 --- a/libavformat/rtpdec_qt.c +++ b/libavformat/rtpdec_qt.c @@ -99,7 +99,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, if (!is_start || !is_finish) { av_log_missing_feature(s, "RTP-X-QT with payload description " "split over several packets", 1); - return AVERROR(ENOSYS); + return AVERROR_PATCHWELCOME; } skip_bits(&gb, 12); // reserved data_len = get_bits(&gb, 16); @@ -162,7 +162,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, if (has_packet_info) { av_log_missing_feature(s, "RTP-X-QT with packet specific info", 1); - return AVERROR(ENOSYS); + return AVERROR_PATCHWELCOME; } alen = len - avio_tell(&pb); @@ -225,7 +225,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, default: /* unimplemented */ av_log_missing_feature(NULL, "RTP-X-QT with packing scheme 2", 1); - return AVERROR(ENOSYS); + return AVERROR_PATCHWELCOME; } }