fixed linesize regression when exporting, fixes #447

This commit is contained in:
itsmattkc
2019-02-07 03:45:02 +11:00
parent fc96ad7735
commit 04084c36d2
3 changed files with 22 additions and 7 deletions
+3 -3
View File
@@ -348,7 +348,7 @@ void ExportThread::run() {
if (video_enabled) {
do {
// TODO optimize by rendering the next frame while encoding the last
renderer->start_render(nullptr, sequence, nullptr, video_frame->data[0]);
renderer->start_render(nullptr, sequence, nullptr, video_frame->data[0], video_frame->linesize[0]/4);
waitCond.wait(&mutex);
if (!continueEncode) break;
} while (renderer->did_texture_fail());
@@ -371,11 +371,11 @@ void ExportThread::run() {
sws_frame = av_frame_alloc();
sws_frame->format = vcodec_ctx->pix_fmt;
sws_frame->width = video_width;
sws_frame->height = video_height;
sws_frame->height = video_height;
av_frame_get_buffer(sws_frame, 0);
// convert pixel format to format expected by the encoder
sws_scale(sws_ctx, video_frame->data, video_frame->linesize, 0, video_frame->height, sws_frame->data, sws_frame->linesize);
sws_scale(sws_ctx, video_frame->data, video_frame->linesize, 0, video_frame->height, sws_frame->data, sws_frame->linesize);
sws_frame->pts = qRound(timecode_secs/av_q2d(video_stream->time_base));
// send converted frame to encoder