summaryrefslogtreecommitdiff
path: root/libavcodec/flac.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/flac.c')
-rw-r--r--libavcodec/flac.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/libavcodec/flac.c b/libavcodec/flac.c
index 464d7999d5..9ccffe7f1e 100644
--- a/libavcodec/flac.c
+++ b/libavcodec/flac.c
@@ -142,6 +142,27 @@ static int64_t get_utf8(GetBitContext *gb)
return val;
}
+static int skip_utf8(GetBitContext *gb)
+{
+ int ones=0, bytes;
+
+ while(get_bits1(gb))
+ ones++;
+
+ if (ones==0) bytes=0;
+ else if(ones==1) return -1;
+ else bytes= ones - 1;
+
+ skip_bits(gb, 7-ones);
+ while(bytes--){
+ const int tmp = get_bits(gb, 8);
+
+ if((tmp>>6) != 2)
+ return -1;
+ }
+ return 0;
+}
+
static int get_crc8(const uint8_t *buf, int count){
int crc=0;
int i;