[FFmpeg-cvslog] Use proper return values in case of missing features

Diego Biurrun git at videolan.org
Sat Oct 13 15:48:55 CEST 2012


ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Tue Oct  9 00:41:34 2012 +0200| [717addecad77d85d329a4b502f4098d4912679d7] | committer: Diego Biurrun

Use proper return values in case of missing features

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=717addecad77d85d329a4b502f4098d4912679d7
---

 libavcodec/aac_adtstoasc_bsf.c |    4 ++--
 libavcodec/aacdec.c            |    8 ++++----
 libavcodec/ac3dec.c            |    2 +-
 libavcodec/alsdec.c            |    6 +++---
 libavcodec/amrnbdec.c          |    2 +-
 libavcodec/amrwbdec.c          |    2 +-
 libavcodec/eac3dec.c           |    2 +-
 libavcodec/flacdec.c           |    2 +-
 libavcodec/mpc8.c              |    2 +-
 libavcodec/tta.c               |    2 +-
 libavcodec/wmaprodec.c         |    2 +-
 libavcodec/wmavoice.c          |    2 +-
 libavformat/rtpdec_qt.c        |    6 +++---
 13 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/libavcodec/aac_adtstoasc_bsf.c b/libavcodec/aac_adtstoasc_bsf.c
index a659934..df9a395 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 859414a..4a6d390 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 12770db..4336ca5 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 1c3f0cb..ba9f3bb 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 d0ad76c..2cb06a6 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 18b34cf..5cc96ab 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 7072f78..6266988 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 f3f1b3a..b39feb6 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 91e228b..0331789 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 7825c0c..e611748 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 1c9c667..50f85e2 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 4a7ba6d..2ed79a6 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 5dd1af1..3093132 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;
     }
 }
 



More information about the ffmpeg-cvslog mailing list