aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-04-27 16:04:25 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-04-27 16:17:29 +0200
commit1a392fc550fde58948bd7b188c7a98d534aefadb (patch)
tree133efbca44f82ab67985c043cf04fa4a59890907
parentcc5c15595930e473d851b211e4daa4ca3b68e458 (diff)
downloadffmpeg-1a392fc550fde58948bd7b188c7a98d534aefadb.tar.gz
ffv1: Store a flag in the global header that indicates if all frames are keyframes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/ffv1.h1
-rw-r--r--libavcodec/ffv1dec.c2
-rw-r--r--libavcodec/ffv1enc.c3
3 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/ffv1.h b/libavcodec/ffv1.h
index 23633c9f9f..981004798e 100644
--- a/libavcodec/ffv1.h
+++ b/libavcodec/ffv1.h
@@ -106,6 +106,7 @@ typedef struct FFV1Context {
int16_t *sample_buffer;
int ec;
+ int intra;
int slice_damaged;
int key_frame_ok;
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index 6082507ec6..c4e8f9b406 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -498,6 +498,8 @@ static int read_extra_header(FFV1Context *f)
if (f->version > 2) {
f->ec = get_symbol(c, state, 0);
+ if (f->minor_version > 2)
+ f->intra = get_symbol(c, state, 0);
}
if (f->version > 2) {
diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index 70fcd65852..d897dc4128 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -534,7 +534,7 @@ static int write_extradata(FFV1Context *f)
put_symbol(c, state, f->version, 0);
if (f->version > 2) {
if (f->version == 3)
- f->minor_version = 2;
+ f->minor_version = 3;
put_symbol(c, state, f->minor_version, 0);
}
@@ -575,6 +575,7 @@ static int write_extradata(FFV1Context *f)
if (f->version > 2) {
put_symbol(c, state, f->ec, 0);
+ put_symbol(c, state, f->intra = (f->avctx->gop_size < 2), 0);
}
f->avctx->extradata_size = ff_rac_terminate(c);