summaryrefslogtreecommitdiffstats
path: root/examples/force_keyframe.txt
blob: a9c16be82f696400a176aa38fdd85ddae14f3693 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@TEMPLATE encoder_tmpl.c
Forcing A Keyframe
==================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ INTRODUCTION
This is an example demonstrating how to control placement of keyframes
on a frame-by-frame basis.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ INTRODUCTION


Configuration
-------------
Keyframes can be forced by setting the VPX_EFLAG_FORCE_KF bit of the
flags passed to `vpx_codec_control()`. In this example, we force a
keyframe every 8 frames.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  PER_FRAME_CFG
if(!(frame_cnt & 7))
    flags |= VPX_EFLAG_FORCE_KF;
else
    flags &= ~VPX_EFLAG_FORCE_KF;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PER_FRAME_CFG


Observing The Effects
---------------------
The output of the encoder examples shows a 'K' rather than a dot '.'
when the encoder generates a keyframe. Note that every 8 frames a 'K'
is output.