if (!context->has_video) {
switch_clear_flag(handle, SWITCH_FILE_FLAG_VIDEO);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "video pix_fmt: %d\n", context->video_st.st->codec->pix_fmt);
+ switch (context->video_st.st->codec->pix_fmt) {
+ case AV_PIX_FMT_YUVA420P:
+ case AV_PIX_FMT_RGBA:
+ case AV_PIX_FMT_ARGB:
+ case AV_PIX_FMT_BGRA:
+ context->handle->mm.fmt = SWITCH_IMG_FMT_ARGB;
+ default:
+ context->handle->mm.fmt = SWITCH_IMG_FMT_I420;
+ }
}
return status;
continue;
}
}
-
+
context->handle->mm.fmt = fmt;
img = switch_img_alloc(NULL, fmt, vframe->width, vframe->height, 1);
if (context->file_read_thread_running) {
context->file_read_thread_running = 0;
}
-
+
if (context->file_read_thread) {
switch_thread_join(&status, context->file_read_thread);
context->file_read_thread = NULL;