Closed GoogleCodeExporter closed 9 years ago
The lack of test vectors for altref and golden refresh appear to be leading to
diverging implementations already.
ffvp8:
// check if golden and altref are swapped
if (s->update_altref == VP56_FRAME_GOLDEN &&
s->update_golden == VP56_FRAME_GOLDEN2)
FFSWAP(AVFrame *, s->framep[VP56_FRAME_GOLDEN], s->framep[VP56_FRAME_GOLDEN2]);
else {
if (s->update_altref != VP56_FRAME_NONE)
s->framep[VP56_FRAME_GOLDEN2] = s->framep[s->update_altref];
if (s->update_golden != VP56_FRAME_NONE)
s->framep[VP56_FRAME_GOLDEN] = s->framep[s->update_golden];
}
This looks like swapping goldref and altref is supported.
libvpx:
if (cm->copy_buffer_to_arf)
{
int new_fb = 0;
if (cm->copy_buffer_to_arf == 1)
new_fb = fb_to_update_with;
else if (cm->copy_buffer_to_arf == 2)
new_fb = cm->gld_fb_idx; // (1)
else
err = -1;
ref_cnt_fb (cm->fb_idx_ref_cnt, &cm->alt_fb_idx, new_fb);
}
if (cm->copy_buffer_to_gf)
{
int new_fb = 0;
if (cm->copy_buffer_to_gf == 1)
new_fb = fb_to_update_with;
else if (cm->copy_buffer_to_gf == 2)
new_fb = cm->alt_fb_idx; // (2)
else
err = -1;
ref_cnt_fb (cm->fb_idx_ref_cnt, &cm->gld_fb_idx, new_fb);
}
This looks like e.g. cm->alt_fb_idx can be set to cm->gld_fb_idx (line (1)),
then cm->gld_fb_idx can be set to cm->alt_fb_idx (line (2)) (which was set to
gld_fb_idx already). This would lead to both buffers having the same content,
which smells like a libvpx bug.
Test vectors would be really helpful there.
Original comment by maikmer...@googlemail.com
on 27 Jul 2010 at 9:42
Note that issue 146 was raised to address the incomplete specification on
buffer swapping.
http://code.google.com/p/webm/issues/detail?id=146
Original comment by frkoe...@google.com
on 27 Jul 2010 at 12:51
Original comment by iss...@webmproject.org
on 16 Mar 2011 at 2:51
Original comment by johannkoenig@google.com
on 24 Mar 2011 at 2:32
Original comment by albe...@google.com
on 2 Feb 2012 at 6:54
Original comment by albe...@google.com
on 8 Mar 2012 at 12:08
Original comment by albe...@google.com
on 8 Mar 2012 at 12:26
Original comment by johannkoenig@google.com
on 6 Nov 2014 at 1:38
Original issue reported on code.google.com by
lesse...@gmail.com
on 25 Jul 2010 at 7:02