lavf: add video device callbacks

Adds 2 callbacks to AVFormatContext
- window_size_cb
    allows device to read user provided window dimensions
- window_swap_buffers_cb
    allows device to swap buffers of user provided window

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>

Conflicts:
	libavformat/version.h
lavd: utilize video device callbacks from AVFormatContext

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
lavd: add opengl device

It can render to OpenGL context provided by application or into SDL window

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>

Conflicts:
	Changelog
opengl probe device dummy
callbacks
set pulse buffer to 100ms
add API to pause clocks
Pause clocks on pause
callback on pause status
partial seek api
avengine_is_media_opened function
read thread start/finish logs
wait for audio device before decoding
produce pts and dts for device packet
lavf/mux: allow muxing non monotonic timestamps

This is required by devices to avoid error when stream is seeked backward.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
lavd/pulse_audio_enc: allow non monotonic streams

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>

Conflicts:
	libavdevice/pulse_audio_enc.c
remove wrong comment
remove pts from packet list
lavd/opengl_enc: allow non monotonic streams
fix seeking