Buffering - nova-video-player/aos-AVP GitHub Wiki
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->64stream.h
stream_buffer_sec