mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:07:45 +00:00
LibVideo: Only print non-fatal playback errors when debug mode is on
This commit is contained in:
parent
393cfdd5c5
commit
e216d1a65f
1 changed files with 11 additions and 10 deletions
|
@ -109,12 +109,13 @@ Time PlaybackManager::duration()
|
||||||
|
|
||||||
void PlaybackManager::on_decoder_error(DecoderError error)
|
void PlaybackManager::on_decoder_error(DecoderError error)
|
||||||
{
|
{
|
||||||
dbgln("Playback error encountered: {}", error.string_literal());
|
|
||||||
switch (error.category()) {
|
switch (error.category()) {
|
||||||
case DecoderErrorCategory::EndOfStream:
|
case DecoderErrorCategory::EndOfStream:
|
||||||
|
dbgln_if(PLAYBACK_MANAGER_DEBUG, "{}", error.string_literal());
|
||||||
set_playback_status(PlaybackStatus::Stopped);
|
set_playback_status(PlaybackStatus::Stopped);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
dbgln("Playback error encountered: {}", error.string_literal());
|
||||||
set_playback_status(PlaybackStatus::Corrupted);
|
set_playback_status(PlaybackStatus::Corrupted);
|
||||||
m_main_loop.post_event(m_event_handler, make<DecoderErrorEvent>(move(error)));
|
m_main_loop.post_event(m_event_handler, make<DecoderErrorEvent>(move(error)));
|
||||||
break;
|
break;
|
||||||
|
@ -197,15 +198,15 @@ bool PlaybackManager::decode_and_queue_one_sample()
|
||||||
auto start_time = Time::now_monotonic();
|
auto start_time = Time::now_monotonic();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TRY_OR_ENQUEUE_ERROR(expression) \
|
#define TRY_OR_ENQUEUE_ERROR(expression) \
|
||||||
({ \
|
({ \
|
||||||
auto _temporary_result = ((expression)); \
|
auto _temporary_result = ((expression)); \
|
||||||
if (_temporary_result.is_error()) { \
|
if (_temporary_result.is_error()) { \
|
||||||
dbgln("Enqueued decoder error: {}", _temporary_result.error().string_literal()); \
|
dbgln_if(PLAYBACK_MANAGER_DEBUG, "Enqueued decoder error: {}", _temporary_result.error().string_literal()); \
|
||||||
m_frame_queue->enqueue(FrameQueueItem::error_marker(_temporary_result.release_error())); \
|
m_frame_queue->enqueue(FrameQueueItem::error_marker(_temporary_result.release_error())); \
|
||||||
return false; \
|
return false; \
|
||||||
} \
|
} \
|
||||||
_temporary_result.release_value(); \
|
_temporary_result.release_value(); \
|
||||||
})
|
})
|
||||||
|
|
||||||
auto frame_sample = TRY_OR_ENQUEUE_ERROR(m_demuxer->get_next_video_sample_for_track(m_selected_video_track));
|
auto frame_sample = TRY_OR_ENQUEUE_ERROR(m_demuxer->get_next_video_sample_for_track(m_selected_video_track));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue