Skip to content
CourvilleSoftware edited this page Nov 14, 2022 · 17 revisions

Introduction

Buffering is handled in the native avos multimedia engine.

Debugging

In order to debug av.sh script can be used and av.sh smb should display current max buffer size. Buffer starvation should be handled via av.sh dbgv 2 to check fill rate.

Usage

  • avos_mp_video.c:avos_mp_video_open stream_set_buffer_size(video->s, 48): streaming buffer size to adjust with resolution, peak bitrate...
  • stream.h VIDEO_MINDATA_SIZE: to cope with video frames size (can be HUGE, needs to be increased with resolution increase)
  • stream.h STREAM_LARGE_BUFFER_SIZE
  • stream.h STREAM_DEFAULT_BUFFER_SIZE
  • stream.h stream_buffer_sec
  • stream.h STREAM_MAX_FRAMES
  • stream.h CHUNK_CACHE_MAX
  • stream.h STREAM_INDEX_SIZE

History

  • avos_mp_video.c:avos_mp_video_open stream_set_buffer_size(video->s, 48): 2022 24->48MB for 2x playback speed, 2015 12->24MB (20 NOK) for high bitrate 4k streaming. This is used as cache before parser to tackle buffering issues.
  • stream.h VIDEO_MINDATA_SIZE: history 2019 *2 again for H264 4K peak rates -> 1024 * 1536 * 4, 2015 *2 for H265 4K -> 1024 * 1536 * 2, 2011 1024 * 1024 -> 1024 * 1536 for HD frames. Represents the max compressed iframe size to cope with macroblock or decoding errors.
  • stream.h STREAM_LARGE_BUFFER_SIZE
  • stream.h STREAM_DEFAULT_BUFFER_SIZE 2011 without HDD we can stay at 20MB but 20->64
  • stream.h stream_buffer_sec
Clone this wiki locally