#include <assert.h>
#include <epoxy/egl.h>
#include <libavcodec/avcodec.h>
-#include <libavformat/avio.h>
-#include <libavutil/mathematics.h>
+#include <libavutil/channel_layout.h>
+#include <libavutil/frame.h>
#include <libavutil/rational.h>
+#include <libavutil/samplefmt.h>
#include <libdrm/drm_fourcc.h>
-#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <va/va_enc_h264.h>
#include <va/va_x11.h>
#include <condition_variable>
+#include <cstdint>
+#include <memory>
#include <mutex>
#include <queue>
#include <string>
#include <thread>
+#include <utility>
#include "context.h"
#include "httpd.h"
bitstream_put_ui(bs, 1, 1); /* colour_description_present_flag */
{
bitstream_put_ui(bs, 1, 8); /* colour_primaries (1 = BT.709) */
- bitstream_put_ui(bs, 1, 8); /* transfer_characteristics (1 = BT.709) */
- bitstream_put_ui(bs, 1, 8); /* matrix_coefficients (1 = BT.709) */
+ bitstream_put_ui(bs, 2, 8); /* transfer_characteristics (2 = unspecified, since we use sRGB) */
+ bitstream_put_ui(bs, 6, 8); /* matrix_coefficients (6 = BT.601/SMPTE 170M) */
}
}
bitstream_put_ui(bs, 0, 1); /* chroma_loc_info_present_flag */
copy_thread = std::thread([this]{
//SDL_GL_MakeCurrent(window, context);
- QOpenGLContext *context = create_context();
+ QOpenGLContext *context = create_context(this->surface);
eglBindAPI(EGL_OPENGL_API);
if (!make_current(context, this->surface)) {
printf("display=%p surface=%p context=%p curr=%p err=%d\n", eglGetCurrentDisplay(), this->surface, context, eglGetCurrentContext(),