Я пытаюсь проверить, возможно ли использовать документирование HW для связи в реальном времени, скажем, 100 мс для задержки клиента 720p, 40 мс для системной задержки и 60 мс для сети, iOS с VT уже в порядке.Когда я попробовал это с AMediaCodec, похоже, что кодек всегда буферизует более 8 кадров до того, как будет доступен первый вывод.Продолжайте вызывать AMediaCodec_queueInputBuffer для ввода видеокадров AMediaCodec_dequeueOutputBuffer для обработки вывода.Но я не получу никаких доступных выходных данных, пока не будет введено 8 или более кадров. Вместо этого получил AMEDIACODEC_INFO_TRY_AGAIN_LATER.Пробовал как H264 высокий профиль и базовый уровень.Я получил DPB (Decoded Picture Buffer) размера 8, когда я проверял выгруженный поток h264 с помощью Codecvisa, похоже на подсказку для дополнительной буферизации?
Я также выполнил простое тестирование MoviePlayer.java в Grafika MediaCodec.образец кода.Я обращаю внимание на то, сколько выходных буферов хранит кодек после начальной задержки декодирования. Первоначальная задержка - это то, что я могу принять, так как это только в начале.Я добавляю extra_buffer_cnt, который ++, когда queueInputBuffer succuss и - когда dequeueOutputBuffer, и я также добавляю цикл while для вызова dequeueOutputBuffer, чтобы убедиться, что dequeueOutputBuffer может быть вызван во времени.Из журналов видно, что дополнительный буфер всегда равен 8 для одних потоков и может быть 0 для остальных.
12-07 10:57:45.614 : decoderInputBuffers pts 0
submitted frame 0 to dec, size=40658
12-07 10:57:45.634 : no output from decoder available
loop
decoderInputBuffers pts 98000
submitted frame 1 to dec, size=17438
12-07 10:57:45.664 : no output from decoder available
loop
decoderInputBuffers pts 200000
submitted frame 2 to dec, size=17410
decoder output buffers changed
12-07 10:57:45.674 : no output from decoder available
loop
decoderInputBuffers pts 351000
submitted frame 3 to dec, size=22043
12-07 10:57:45.704 : no output from decoder available
loop
decoderInputBuffers pts 450000
submitted frame 4 to dec, size=21515
12-07 10:57:45.724 : no output from decoder available
loop
decoderInputBuffers pts 550000
submitted frame 5 to dec, size=21449
12-07 10:57:45.754 : no output from decoder available
loop
decoderInputBuffers pts 650000
submitted frame 6 to dec, size=21640
12-07 10:57:45.774 : no output from decoder available
loop
decoderInputBuffers pts 750000
submitted frame 7 to dec, size=25636
12-07 10:57:45.804 : no output from decoder available
loop
decoderInputBuffers pts 848000
submitted frame 8 to dec, size=21466
12-07 10:57:45.814 : no output from decoder available
decoder output format changed: {mime=video/raw, crop-top=0, crop-right=359, slice-height=640, color-format=2141391876, height=640, width=368, what=1869968451, buffer-size=380928, crop-bottom=639, crop-left=0, stride=384}
loop
decoderInputBuffers pts 950000
12-07 10:57:45.824 : submitted frame 9 to dec, size=25224
startup lag 210.543229 ms
surface decoder given buffer 14 (size=8)
dequeueOutputBuffer pts 0 extra buffer 9
12-07 10:57:45.834 : surface decoder given buffer 13 (size=8)
dequeueOutputBuffer pts 98000 extra buffer 8
loop
decoderInputBuffers pts 1046000
submitted frame 10 to dec, size=25172
12-07 10:57:45.844 : surface decoder given buffer 12 (size=8)
dequeueOutputBuffer pts 200000 extra buffer 8
12-07 10:57:45.864 : no output from decoder available
loop
decoderInputBuffers pts 1149000
submitted frame 11 to dec, size=25137
12-07 10:57:45.874 : surface decoder given buffer 11 (size=8)
dequeueOutputBuffer pts 351000 extra buffer 8
12-07 10:57:45.884 : no output from decoder available
loop
decoderInputBuffers pts 1248000
submitted frame 12 to dec, size=25343
12-07 10:57:45.894 : surface decoder given buffer 10 (size=8)
dequeueOutputBuffer pts 450000 extra buffer 8
12-07 10:57:45.914 : no output from decoder available
loop
decoderInputBuffers pts 1400000
submitted frame 13 to dec, size=22197
12-07 10:57:45.924 : surface decoder given buffer 9 (size=8)
dequeueOutputBuffer pts 550000 extra buffer 8
12-07 10:57:45.934 : no output from decoder available
loop
decoderInputBuffers pts 1499000
submitted frame 14 to dec, size=26267
12-07 10:57:45.944 : surface decoder given buffer 8 (size=8)
dequeueOutputBuffer pts 650000 extra buffer 8
12-07 10:57:45.954 : no output from decoder available
loop
decoderInputBuffers pts 1600000
submitted frame 15 to dec, size=25947
12-07 10:57:45.964 : surface decoder given buffer 7 (size=8)
dequeueOutputBuffer pts 750000 extra buffer 8
12-07 10:57:45.984 : loop
decoderInputBuffers pts 1700000
submitted frame 16 to dec, size=26060
12-07 10:57:45.994 : surface decoder given buffer 6 (size=8)
dequeueOutputBuffer pts 848000 extra buffer 8
12-07 10:57:46.004 : no output from decoder available
loop
decoderInputBuffers pts 1799000
submitted frame 17 to dec, size=26003
12-07 10:57:46.014 : surface decoder given buffer 5 (size=8)
dequeueOutputBuffer pts 950000 extra buffer 8
12-07 10:57:46.024 : no output from decoder available
loop
decoderInputBuffers pts 1900000
submitted frame 18 to dec, size=22085
12-07 10:57:46.034 : surface decoder given buffer 13 (size=8)
dequeueOutputBuffer pts 1046000 extra buffer 8
12-07 10:57:46.044 : no output from decoder available
loop
decoderInputBuffers pts 2012000
12-07 10:57:46.054 : submitted frame 19 to dec, size=26195
surface decoder given buffer 12 (size=8)
dequeueOutputBuffer pts 1149000 extra buffer 8
12-07 10:57:46.074 : no output from decoder available
loop
decoderInputBuffers pts 2097000
submitted frame 20 to dec, size=25963
12-07 10:57:46.084 : surface decoder given buffer 11 (size=8)
dequeueOutputBuffer pts 1248000 extra buffer 8
12-07 10:57:46.094 : no output from decoder available
loop
decoderInputBuffers pts 2200000
submitted frame 21 to dec, size=25869