Hi Nvidia ,
I am using Video_Codec_SDK_8.2.16 for decoding and encoding for streaming application with VR processing.
For me each frame delay matters and I am getting always 5 frames delay w.r.t Input frame no and Ouput Frame no.
I have explain with example , setting and log below.
Note :-
a) (Input frame number and system time) "Video Decode PTS "
b) (Output frame number and system time) " After Decode system time "
Example
- Decoder Input frame number is 23 but processed output frame number will be 18 (=23-5).
Its constant frame number difference is 5 always.
[1055012124] (msec) After Decode system time [18]
[1055012137] (msec) Video Decode PTS = 00:00:02.320 (2.320) [23]
I modified setting then also same.
-
videoParserParameters.ulMaxNumDecodeSurfaces = 1;
-
I changed 20 to 1 , still 5 frame delay .
static unsigned long GetNumDecodeSurfaces(cudaVideoCodec eCodec, unsigned int nWidth, unsigned int nHeight) {if (eCodec == cudaVideoCodec_H264 )
{ // assume worst-case of 20 decode surfaces for H264
return 1; //retrun 20;
}
User generated logs
Initialize Decoder Handler
start Decoder handler Begin
DecoderHandler init
[1055010609] (msec) Video Decode PTS = 00:00:01.400 (1.400) [0]
[INFO ][17:11:42] Media format: MPEG-TS (MPEG-2 Transport Stream) (mpegts)
[1055010618] (msec) Video Decode PTS = 00:00:01.440 (1.440) [1]
[1055010621] (msec) Video Decode PTS = 00:00:01.480 (1.480) [2]
[h264 @ 0000022b83873e80] non-existing SPS 0 referenced in buffering period
[h264 @ 0000022b83873e80] SPS unavailable in decode_picture_timing
[h264 @ 0000022b83873e80] non-existing SPS 0 referenced in buffering period
[h264 @ 0000022b83873e80] SPS unavailable in decode_picture_timing
[1055010648] (msec) Video Decode PTS = 00:00:01.520 (1.520) [3]
[1055010663] (msec) Video Decode PTS = 00:00:01.560 (1.560) [4]
[1055010669] (msec) Video Decode PTS = 00:00:01.600 (1.600) [5]
[1055010676] (msec) Video Decode PTS = 00:00:01.640 (1.640) [6]
[1055010682] (msec) Video Decode PTS = 00:00:01.680 (1.680) [7]
[1055010694] (msec) Video Decode PTS = 00:00:01.720 (1.720) [8]
[1055010701] (msec) Video Decode PTS = 00:00:01.760 (1.760) [9]
[1055010701] (msec) Video Decode PTS = 00:00:01.800 (1.800) [10]
[1055010701] (msec) Video Decode PTS = 00:00:01.840 (1.840) [11]
[1055010701] (msec) Video Decode PTS = 00:00:01.880 (1.880) [12]
[1055010702] (msec) Video Decode PTS = 00:00:01.920 (1.920) [13]
[1055010702] (msec) Video Decode PTS = 00:00:01.960 (1.960) [14]
[1055010702] (msec) Video Decode PTS = 00:00:02.0 (2.000) [15]
[1055010703] (msec) Video Decode PTS = 00:00:02.40 (2.040) [16]
[1055010703] (msec) Video Decode PTS = 00:00:02.80 (2.080) [17]
[1055010703] (msec) Video Decode PTS = 00:00:02.120 (2.120) [18]
[1055010703] (msec) Video Decode PTS = 00:00:02.160 (2.160) [19]
[1055010705] (msec) Video Decode PTS = 00:00:02.200 (2.200) [20]
[1055010707] (msec) Video Decode PTS = 00:00:02.240 (2.240) [21]
[1055010708] (msec) Video Decode PTS = 00:00:02.280 (2.280) [22]
Decoder Init called beging
GPU in use: GeForce GTX 1070
Decode with demuxing.
InitHardwareVideoDec w=2000 h=1000
in_channel_layout 3 ,in_sample_rate=48000 , in_sample_fmt=8,out_channel_layout=3,out_sample_rate=44100,out_sample_fmt=1
start Decoder handler End
start Decoder handler Begin
Session Initialization Time: 40 ms
[1055011621] (msec) After Decode system time [0]
frame no = 0
[1055011651] (msec) After Decode system time [1]
frame no = 1
[1055011669] (msec) After Decode system time [2]
frame no = 2
[1055011712] (msec) After Decode system time [3]
frame no = 3
[1055011736] (msec) After Decode system time [4]
frame no = 4
[1055011776] (msec) After Decode system time [5]
frame no = 5
[1055011790] (msec) After Decode system time [6]
frame no = 6
[1055011820] (msec) After Decode system time [7]
frame no = 7
[1055011852] (msec) After Decode system time [8]
frame no = 8
[1055011873] (msec) After Decode system time [9]
frame no = 9
[1055011903] (msec) After Decode system time [10]
frame no = 10
[1055011940] (msec) After Decode system time [11]
frame no = 11
[1055011957] (msec) After Decode system time [12]
frame no = 12
[1055011983] (msec) After Decode system time [13]
frame no = 13
[1055012001] (msec) After Decode system time [14]
frame no = 14
[1055012044] (msec) After Decode system time [15]
frame no = 15
[1055012072] (msec) After Decode system time [16]
frame no = 16
[1055012108] (msec) After Decode system time [17]
frame no = 17
[1055012124] (msec) After Decode system time [18]
[1055012137] (msec) Video Decode PTS = 00:00:02.320 (2.320) [23]
[1055012152] (msec) After Decode system time [19]
[1055012174] (msec) Video Decode PTS = 00:00:02.360 (2.360) [24]
[1055012186] (msec) After Decode system time [20]
[1055012201] (msec) Video Decode PTS = 00:00:02.400 (2.400) [25]
[1055012214] (msec) After Decode system time [21]
[1055012236] (msec) Video Decode PTS = 00:00:02.440 (2.440) [26]
[1055012250] (msec) After Decode system time [22]
[1055012288] (msec) Video Decode PTS = 00:00:02.480 (2.480) [27]