I now have code that runs but eats up CPU cycles and memory. The code I now have is
using GLMakie
using VideoIO
io = VideoIO.testvideo("annie_oakley") # for testing purposes
f = VideoIO.openvideo(io)
img = read(f)
fig = Figure()
ax = Axis(fig[1,1], aspect = DataAspect())
hidedecorations!(ax)
makieimg = image!(rotr90(img))
framerate = 30
i = 0
while !eof(f)
i += 1
print("Frame $i\r")
read!(f, img)
makieimg = image!(rotr90(img))
sleep(1/framerate)
end
when I look at the memory used after I run the program I obtain:
julia> varinfo()
name size summary
–––––––––––––––– ––––––––––– –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Base Module
Core Module
InteractiveUtils 272.678 KiB Module
Main Module
ans 0 bytes typeof(varinfo)
ax 801.817 MiB Axis
f 1.440 KiB VideoIO.VideoReader{true, VideoIO.SwsTransform, String}
fig 801.817 MiB Figure
framerate 8 bytes Int64
i 8 bytes Int64
img 225.047 KiB 240×320 PermutedDimsArray(::Array{RGB{N0f8},2}, (2, 1)) with eltype ColorTypes.RGB{FixedPointNumbers.N0f8}
io 1.440 KiB VideoIO.AVInput{String}
makieimg 801.817 MiB Image{Tuple{IntervalSets.ClosedInterval{Float32}, IntervalSets.ClosedInterval{Float32}, Matrix{ColorTypes.RGB{Float32}}}}
subtypetree 0 bytes typeof(subtypetree)
julia>
Watching the task manager the memory consumption increases while the code is running. Watching the video as it progresses, the framerate decreases. When I play a cellphone video, the program totally stalls. I am sure there is a more efficient way of doing things, some help is appreciated.