mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 19:21:06 +00:00
av1dec: Don't treat decoding errors as fatal and print more error details
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7041>
This commit is contained in:
parent
af8a090201
commit
a9beac80da
1 changed files with 9 additions and 6 deletions
|
@ -415,7 +415,7 @@ static GstFlowReturn
|
||||||
gst_av1_dec_handle_frame (GstVideoDecoder * dec, GstVideoCodecFrame * frame)
|
gst_av1_dec_handle_frame (GstVideoDecoder * dec, GstVideoCodecFrame * frame)
|
||||||
{
|
{
|
||||||
GstAV1Dec *av1dec = GST_AV1_DEC_CAST (dec);
|
GstAV1Dec *av1dec = GST_AV1_DEC_CAST (dec);
|
||||||
GstFlowReturn ret;
|
GstFlowReturn ret = GST_FLOW_OK;
|
||||||
GstMapInfo minfo;
|
GstMapInfo minfo;
|
||||||
aom_codec_err_t status;
|
aom_codec_err_t status;
|
||||||
aom_image_t *img;
|
aom_image_t *img;
|
||||||
|
@ -444,8 +444,11 @@ gst_av1_dec_handle_frame (GstVideoDecoder * dec, GstVideoCodecFrame * frame)
|
||||||
gst_buffer_unmap (frame->input_buffer, &minfo);
|
gst_buffer_unmap (frame->input_buffer, &minfo);
|
||||||
|
|
||||||
if (status) {
|
if (status) {
|
||||||
GST_ELEMENT_ERROR (av1dec, LIBRARY, INIT,
|
const gchar *error = aom_codec_error (&av1dec->decoder);
|
||||||
("Failed to decode frame"), ("%s", ""));
|
const gchar *details = aom_codec_error_detail (&av1dec->decoder);
|
||||||
|
GST_VIDEO_DECODER_ERROR (av1dec, 1, LIBRARY, INIT,
|
||||||
|
("Failed to decode frame"), ("%s (details: %s)", error,
|
||||||
|
GST_STR_NULL (details)), ret);
|
||||||
gst_video_codec_frame_unref (frame);
|
gst_video_codec_frame_unref (frame);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -454,11 +457,11 @@ gst_av1_dec_handle_frame (GstVideoDecoder * dec, GstVideoCodecFrame * frame)
|
||||||
if (img) {
|
if (img) {
|
||||||
if (gst_av1_dec_get_valid_format (av1dec, img, &fmt) == FALSE) {
|
if (gst_av1_dec_get_valid_format (av1dec, img, &fmt) == FALSE) {
|
||||||
aom_img_free (img);
|
aom_img_free (img);
|
||||||
GST_ELEMENT_ERROR (dec, LIBRARY, ENCODE,
|
GST_VIDEO_DECODER_ERROR (dec, 1, LIBRARY, ENCODE,
|
||||||
("Failed to decode frame"), ("Unsupported color format %d",
|
("Failed to decode frame"), ("Unsupported color format %d",
|
||||||
img->fmt));
|
img->fmt), ret);
|
||||||
gst_video_codec_frame_unref (frame);
|
gst_video_codec_frame_unref (frame);
|
||||||
return GST_FLOW_ERROR;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
gst_av1_dec_handle_resolution_change (av1dec, img, fmt);
|
gst_av1_dec_handle_resolution_change (av1dec, img, fmt);
|
||||||
|
|
Loading…
Reference in a new issue