So which addressing function is wrong? or needs to have changes made if its a video clip? i have no idea how I'd detect that, except perhaps from the file name.
vid_get_viewport_fb_d() is used for the playback viewport address.
There are two (probably) separate issues:
1) Finding the current playback buffer for stills. Even outside of the video problem, you will probably notice that scrolling that you sometimes see the wrong image when scrolling through stills. Pre digic 6 ports mostly do this correctly, but so far the equivalent variable has not been found in digic 6.
2) The buffer used when a video is selected. As I mentioned earlier, even pre-digic 6 ports have problems in this case. I'm not aware of a way to detect whether a video or still is being shown in playback.
edit:
I found the playback buffers for g7x (see comments on vid_get_viewport_fb_d) but as yet I have not figured out how to determine the active buffer. I have also not looked at the video case beyond noticing it has similar problems to earlier ports.