Interactive encoder control: error resilience
authorFiona Glaser <fiona@x264.com>
Thu, 24 Jun 2010 00:29:34 +0000 (17:29 -0700)
committerFiona Glaser <fiona@x264.com>
Fri, 25 Jun 2010 07:43:39 +0000 (00:43 -0700)
commitedc1135e59416b4311f54375b6659e7340c81193
tree0e7533f2e88ac77458c90f1d6d76fa4b32f9180c
parent669cc1def2034a7ef55946df9f6e1ae13963eb8a
Interactive encoder control: error resilience
In low-latency streaming with few clients, it is often feasible to modify encoder behavior in some fashion based on feedback from clients.
One possible application of this is error resilience: if a packet is lost, mark the associated frame (and any referenced from it) as lost.
This allows quick recovery from errors with minimal expense bit-wise.

The new i_dpb_size parameter allows a calling application to tell x264 to use a larger DPB size than required by the number of reference frames.
This lets x264 and the client keep a large buffer of old references to fall back to in case of lost frames.
If no recovery is possible even with the available buffer, x264 will force a keyframe.

This initial version does not support B-frames or intra refresh.
Recommended usage is to set keyint to a very large value, so that keyframes do not occur except as necessary for extreme error recovery.

Full documentation is in x264.h.

Move DTS/PTS calculation to before encoding each frame instead of after.
Improve documentation of x264_encoder_intra_refresh.
common/common.c
common/common.h
common/frame.c
common/frame.h
common/mvpred.c
encoder/encoder.c
encoder/set.c
x264.h