h261: Signal freeze picture release for intra frames

Message ID 20150708141303.51C9C5DD4A@aruru.libav.org
State New
Headers show

Commit Message

Janne Grunau July 8, 2015, 2:13 p.m.
Module: libav
Branch: master
Commit: 02b7c630875c0bc63cee5ec597aa33baf9bf4e20

Author:    Stian Selnes <stian@pexip.com>
Committer: Luca Barbato <lu_zero@gentoo.org>
Date:      Tue Dec  2 18:55:13 2014 +0100

h261: Signal freeze picture release for intra frames

Freeze picture release should be set to 1 when we're responding to a
fast update request. For simplicity we set it for all intra frames,
including those that starts a GOP.

Fixes issue where Tandberg MXP1700 does not recover from packet loss
state since it's waiting for the freeze picture relase indication.

Bug-Id: 873
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>

---

 libavcodec/h261enc.c          |    2 +-
 tests/ref/vsynth/vsynth1-h261 |    2 +-
 tests/ref/vsynth/vsynth2-h261 |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Patch

diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c
index 30ba137..94e8cec 100644
--- a/libavcodec/h261enc.c
+++ b/libavcodec/h261enc.c
@@ -64,7 +64,7 @@  void ff_h261_encode_picture_header(MpegEncContext *s, int picture_number)
 
     put_bits(&s->pb, 1, 0); /* split screen off */
     put_bits(&s->pb, 1, 0); /* camera  off */
-    put_bits(&s->pb, 1, 0); /* freeze picture release off */
+    put_bits(&s->pb, 1, s->pict_type == AV_PICTURE_TYPE_I); /* freeze picture release on/off */
 
     format = ff_h261_get_picture_format(s->width, s->height);
 
diff --git a/tests/ref/vsynth/vsynth1-h261 b/tests/ref/vsynth/vsynth1-h261
index 4526f57..5d667fc 100644
--- a/tests/ref/vsynth/vsynth1-h261
+++ b/tests/ref/vsynth/vsynth1-h261
@@ -1,4 +1,4 @@ 
-34263080870c91c5e6c3c7dca799c50d *tests/data/fate/vsynth1-h261.avi
+e7adc829541417888df4ac031768679f *tests/data/fate/vsynth1-h261.avi
 707576 tests/data/fate/vsynth1-h261.avi
 716e83cb51afb1246bfaa80967df48ea *tests/data/fate/vsynth1-h261.out.rawvideo
 stddev:    9.11 PSNR: 28.93 MAXDIFF:  113 bytes:  7603200/  7603200
diff --git a/tests/ref/vsynth/vsynth2-h261 b/tests/ref/vsynth/vsynth2-h261
index 611da55..465e2f9 100644
--- a/tests/ref/vsynth/vsynth2-h261
+++ b/tests/ref/vsynth/vsynth2-h261
@@ -1,4 +1,4 @@ 
-70e9342de71456cd6fbe9a771cceefd5 *tests/data/fate/vsynth2-h261.avi
+0292ca022247f978f6e894831310682b *tests/data/fate/vsynth2-h261.avi
 257928 tests/data/fate/vsynth2-h261.avi
 1a9bb0d52bd24cb62162c5e3c2aed317 *tests/data/fate/vsynth2-h261.out.rawvideo
 stddev:    7.21 PSNR: 30.97 MAXDIFF:   96 bytes:  7603200/  7603200