diff --git a/mythtv/libs/libmythtv/avformatwriter.cpp b/mythtv/libs/libmythtv/avformatwriter.cpp index 282c5879226..f9c14b9b01a 100644 --- a/mythtv/libs/libmythtv/avformatwriter.cpp +++ b/mythtv/libs/libmythtv/avformatwriter.cpp @@ -171,11 +171,12 @@ bool AVFormatWriter::OpenFile(void) m_ringBuffer = RingBuffer::Create(m_filename, true); - if (!m_ringBuffer) + if (!m_ringBuffer || !m_ringBuffer->GetLastError().isEmpty()) { - Cleanup(); LOG(VB_RECORD, LOG_ERR, LOC + - "OpenFile(): RingBuffer::Create() failed"); + QString("OpenFile(): RingBuffer::Create() failed: '%1'") + .arg(m_ringBuffer ? m_ringBuffer->GetLastError() : "")); + Cleanup(); return false; } diff --git a/mythtv/programs/mythtranscode/transcode.cpp b/mythtv/programs/mythtranscode/transcode.cpp index ad8ba7eecab..9cfa27d4829 100644 --- a/mythtv/programs/mythtranscode/transcode.cpp +++ b/mythtv/programs/mythtranscode/transcode.cpp @@ -253,9 +253,20 @@ int Transcode::TranscodeFile(const QString &inputname, // Input setup PlayerContext *player_ctx = new PlayerContext(kTranscoderInUseID); player_ctx->SetPlayingInfo(m_proginfo); - player_ctx->SetRingBuffer((hls && (hlsStreamID != -1)) ? + RingBuffer *rb = (hls && (hlsStreamID != -1)) ? RingBuffer::Create(hls->GetSourceFile(), false, false) : - RingBuffer::Create(inputname, false, false)); + RingBuffer::Create(inputname, false, false); + if (!rb || !rb->GetLastError().isEmpty()) + { + LOG(VB_GENERAL, LOG_ERR, + QString("Transcoding aborted, error: '%1'") + .arg(rb? rb->GetLastError() : "")); + delete player_ctx; + if (hls) + delete hls; + return REENCODE_ERROR; + } + player_ctx->SetRingBuffer(rb); player_ctx->SetPlayer(new MythPlayer(kVideoIsNull)); SetPlayerContext(player_ctx); GetPlayer()->SetPlayerInfo(NULL, NULL, GetPlayerContext());