Files
FFmpeg/libavcodec
Xu Guangxin 8b5ffaea64 lavc/hevc_refs: Fix the logic of find_ref_idx()
Currently find_ref_idx() would trigger 2 scans in DPB to find the
requested POC:
1. Firstly, ignore MSB of ref->poc and search for the requested POC;
2. Secondly, compare the entire ref->poc with requested POC;

For long term reference, we are able to only check LSB if MSB is not
presented(e.g. delta_poc_msb_present_flag == 0). However, for short
term reference, we should never ignore poc's MSB and it should be
kind of bit-exact. (Details in 8.3.2)

Otherwise this leads to decoding failures like:
[hevc @ 0x5638f4328600] Error constructing the frame RPS.
[hevc @ 0x5638f4328600] Error parsing NAL unit #2.
[hevc @ 0x5638f4338a80] Could not find ref with POC 21
Error while decoding stream #0:0: Invalid data found when processing input

Search the requested POC based on whether MSB is used, and avoid
the 2-times scan for DPB buffer. This benefits both native HEVC
decoder and integrated HW decoders.

Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
Signed-off-by: Linjie Fu <linjie.fu@intel.com>
2020-05-27 14:47:55 +08:00
..
2020-02-07 13:36:57 -03:00
2020-02-19 20:48:49 +11:00
2020-05-26 10:23:06 +01:00
2020-05-19 20:09:25 +02:00
2020-05-19 20:09:25 +02:00
2019-08-11 19:13:21 +02:00
2020-03-12 20:26:48 +00:00
2020-03-12 20:26:48 +00:00
2020-05-21 09:31:08 +02:00
2020-05-10 09:55:57 +02:00
2019-11-13 09:08:43 -08:00
2020-02-22 00:15:43 +01:00
2019-12-05 20:20:05 +01:00
2020-03-22 11:55:44 -03:00
2020-04-26 18:38:25 +01:00
2020-03-17 16:07:25 +01:00
2020-03-31 20:12:15 +02:00
2019-08-29 21:04:54 +02:00
2020-02-04 11:35:02 +01:00
2020-04-26 18:38:25 +01:00
2019-08-11 19:13:21 +02:00
2019-12-10 16:09:14 +01:00
2020-01-11 23:31:18 +01:00
2020-05-19 20:09:25 +02:00
2020-05-12 01:00:28 +02:00
2019-09-02 13:46:11 -07:00
2020-05-26 10:52:12 +01:00
2020-05-26 10:52:12 +01:00
2020-05-26 10:52:12 +01:00
2020-04-16 15:05:07 -03:00
2019-10-22 10:51:42 +08:00
2020-02-19 22:37:30 +01:00
2020-04-26 18:38:25 +01:00
2020-01-30 19:57:25 +01:00
2019-08-23 22:24:07 +02:00
2020-04-04 23:26:15 +02:00
2020-05-22 22:23:18 +02:00
2019-12-31 18:43:50 +01:00
2020-01-13 23:26:25 +00:00
2019-11-09 17:59:03 +01:00
2020-01-11 23:31:18 +01:00
2020-04-26 18:38:25 +01:00
2020-04-17 19:33:43 +10:00
2019-10-25 00:22:33 +02:00
2019-08-22 18:35:44 +02:00
2020-04-26 18:38:25 +01:00
2019-09-05 19:45:53 +02:00
2020-04-16 15:05:07 -03:00
2020-03-22 11:55:44 -03:00
2020-05-23 07:07:36 +02:00