[VDPAU] ffmpeg and HEVC: Reference handling

Philip Langdale philipl at overt.org
Tue Jun 2 15:16:23 PDT 2015


Hi José,

On 2015-06-02 13:33, José Hiram Soltren wrote:
>> As for specific glitches, one that really stands out to me is if I try
>> and decode RPS_C_ericsson_4.bit
> 
> I'm not able to find this one. We have a stream called 
> RPS_C_ericsson_5.bit
> internally:
> 
> $ sha1sum RPS_C_ericsson_5.bit
> a148b9ec005bfcf82310cc01a5cef4ab6c05d90f  RPS_C_ericsson_5.bit

http://fate-suite.ffmpeg.org/hevc-conformance/RPS_C_ericsson_4.bit

> The RPS_* bit streams test reference picture sets. Recall from the
> Specification that the decoder must maintain a number of reference 
> picture sets
> and switch between them during decoding.
> 
> This is all more clear in the internal video playing application that I 
> am
> hoping to be able to release in the near future.
> 
>> , everything seems fine until I get to
>> frame 23, at which point it suddenly outputs a frame that is
>> bit-identical to frame 21 and then everything goes south from there. I
>> don't know what to make of that.
> 
> Does the value of short_term_ref_pic_set_idx happen to change around 
> frame 21,
> 22, or 23?

Indeed. I did more research over the weekend and what I see is my code 
works fine
when the slice is using the RPS in the slice header. It all goes wrong 
when it tries
to use one of the SPS RPS entries. I'm tracking the idx correctly, as 
best I can tell,
so I must be doing something else wrong.

On that subject:

I'm current basing the RefPic entries and the 
StCurrBefore/StCurrAfter/LtCurr on data
that the primary hevc decoder in ffmpeg is calculating and publishing at 
the frame
level. This seems to be the right thing to do, but given these problems, 
I fear I'm
missing something. The logic I have here is the same as the dxva 
implementation which
works, I'm told, so I don't know what to make of it.

My code is here, FWIW:

https://github.com/philipl/FFmpeg/commits/vdpau-hevc

Thanks,

--phil


More information about the VDPAU mailing list