mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ffv1: Store a flag in the global header that indicates if all frames are keyframes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
cc5c155959
commit
1a392fc550
@ -106,6 +106,7 @@ typedef struct FFV1Context {
|
|||||||
int16_t *sample_buffer;
|
int16_t *sample_buffer;
|
||||||
|
|
||||||
int ec;
|
int ec;
|
||||||
|
int intra;
|
||||||
int slice_damaged;
|
int slice_damaged;
|
||||||
int key_frame_ok;
|
int key_frame_ok;
|
||||||
|
|
||||||
|
@ -498,6 +498,8 @@ static int read_extra_header(FFV1Context *f)
|
|||||||
|
|
||||||
if (f->version > 2) {
|
if (f->version > 2) {
|
||||||
f->ec = get_symbol(c, state, 0);
|
f->ec = get_symbol(c, state, 0);
|
||||||
|
if (f->minor_version > 2)
|
||||||
|
f->intra = get_symbol(c, state, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (f->version > 2) {
|
if (f->version > 2) {
|
||||||
|
@ -534,7 +534,7 @@ static int write_extradata(FFV1Context *f)
|
|||||||
put_symbol(c, state, f->version, 0);
|
put_symbol(c, state, f->version, 0);
|
||||||
if (f->version > 2) {
|
if (f->version > 2) {
|
||||||
if (f->version == 3)
|
if (f->version == 3)
|
||||||
f->minor_version = 2;
|
f->minor_version = 3;
|
||||||
put_symbol(c, state, f->minor_version, 0);
|
put_symbol(c, state, f->minor_version, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -575,6 +575,7 @@ static int write_extradata(FFV1Context *f)
|
|||||||
|
|
||||||
if (f->version > 2) {
|
if (f->version > 2) {
|
||||||
put_symbol(c, state, f->ec, 0);
|
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);
|
f->avctx->extradata_size = ff_rac_terminate(c);
|
||||||
|
Loading…
Reference in New Issue
Block a user