mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-01 14:11:15 +00:00
vpxdec: Include vpx error details in errors and warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6636>
This commit is contained in:
parent
ce16646190
commit
e87ecf448b
2 changed files with 20 additions and 8 deletions
|
@ -51,4 +51,13 @@ typedef enum gst_vpx_img_fmt
|
||||||
GST_STR_NULL(element->encoder.err_detail)); \
|
GST_STR_NULL(element->encoder.err_detail)); \
|
||||||
} \
|
} \
|
||||||
G_STMT_END
|
G_STMT_END
|
||||||
|
|
||||||
|
#define GST_VPX_DEC_WARN(element, message, status) \
|
||||||
|
G_STMT_START { \
|
||||||
|
GST_WARNING_OBJECT(element, "%s: %s (details: %s)", #message, \
|
||||||
|
gst_vpx_error_name(status), \
|
||||||
|
GST_STR_NULL(element->decoder.err_detail)); \
|
||||||
|
} \
|
||||||
|
G_STMT_END
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
|
@ -600,8 +600,7 @@ gst_vpx_dec_open_codec (GstVPXDec * dec, GstVideoCodecFrame * frame)
|
||||||
gst_buffer_unmap (frame->input_buffer, &minfo);
|
gst_buffer_unmap (frame->input_buffer, &minfo);
|
||||||
|
|
||||||
if (status != VPX_CODEC_OK) {
|
if (status != VPX_CODEC_OK) {
|
||||||
GST_INFO_OBJECT (dec, "VPX preprocessing error: %s",
|
GST_VPX_DEC_WARN (dec, "VPX preprocessing error", status);
|
||||||
gst_vpx_error_name (status));
|
|
||||||
return GST_FLOW_CUSTOM_SUCCESS_1;
|
return GST_FLOW_CUSTOM_SUCCESS_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -639,9 +638,12 @@ gst_vpx_dec_open_codec (GstVPXDec * dec, GstVideoCodecFrame * frame)
|
||||||
status =
|
status =
|
||||||
vpx_codec_dec_init (&dec->decoder, vpxclass->codec_algo, &cfg, flags);
|
vpx_codec_dec_init (&dec->decoder, vpxclass->codec_algo, &cfg, flags);
|
||||||
if (status != VPX_CODEC_OK) {
|
if (status != VPX_CODEC_OK) {
|
||||||
GST_ELEMENT_ERROR (dec, LIBRARY, INIT,
|
GST_ELEMENT_ERROR_WITH_DETAILS (dec, LIBRARY, INIT,
|
||||||
("Failed to initialize VP8 decoder"), ("%s",
|
("Failed to initialize VP8 decoder"), ("%s (details: %s)",
|
||||||
gst_vpx_error_name (status)));
|
gst_vpx_error_name (status),
|
||||||
|
GST_STR_NULL (dec->decoder.err_detail)), ("error", G_TYPE_STRING,
|
||||||
|
gst_vpx_error_name (status), "details", G_TYPE_STRING,
|
||||||
|
GST_STR_NULL (dec->decoder.err_detail), NULL));
|
||||||
return GST_FLOW_ERROR;
|
return GST_FLOW_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -654,8 +656,7 @@ gst_vpx_dec_open_codec (GstVPXDec * dec, GstVideoCodecFrame * frame)
|
||||||
|
|
||||||
status = vpx_codec_control (&dec->decoder, VP8_SET_POSTPROC, &pp_cfg);
|
status = vpx_codec_control (&dec->decoder, VP8_SET_POSTPROC, &pp_cfg);
|
||||||
if (status != VPX_CODEC_OK) {
|
if (status != VPX_CODEC_OK) {
|
||||||
GST_WARNING_OBJECT (dec, "Couldn't set postprocessing settings: %s",
|
GST_VPX_DEC_WARN (dec, "Couldn't set postprocessing settings", status);
|
||||||
gst_vpx_error_name (status));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vpx_codec_set_frame_buffer_functions (&dec->decoder,
|
vpx_codec_set_frame_buffer_functions (&dec->decoder,
|
||||||
|
@ -726,7 +727,9 @@ gst_vpx_dec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame)
|
||||||
GstVideoDecoderRequestSyncPointFlags flags = 0;
|
GstVideoDecoderRequestSyncPointFlags flags = 0;
|
||||||
|
|
||||||
GST_VIDEO_DECODER_ERROR (decoder, 1, STREAM, DECODE,
|
GST_VIDEO_DECODER_ERROR (decoder, 1, STREAM, DECODE,
|
||||||
("Failed to decode frame"), ("%s", gst_vpx_error_name (status)), ret);
|
("Failed to decode frame"), ("%s (details: %s)",
|
||||||
|
gst_vpx_error_name (status),
|
||||||
|
GST_STR_NULL (dec->decoder.err_detail)), ret);
|
||||||
|
|
||||||
if (gst_video_decoder_get_needs_sync_point (decoder))
|
if (gst_video_decoder_get_needs_sync_point (decoder))
|
||||||
flags |= GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT;
|
flags |= GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT;
|
||||||
|
|
Loading…
Reference in a new issue