Merge remote-tracking branch 'origin/0.10'

This commit is contained in:
Sebastian Dröge 2012-06-15 12:28:54 +02:00
commit 85f0dcb1e8
2 changed files with 13 additions and 5 deletions

View file

@ -1089,7 +1089,8 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
else else
GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->input_state->info) = GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->input_state->info) =
GST_VIDEO_INTERLACE_MODE_PROGRESSIVE; GST_VIDEO_INTERLACE_MODE_PROGRESSIVE;
gst_ffmpegviddec_negotiate (ffmpegdec, TRUE); if (!gst_ffmpegviddec_negotiate (ffmpegdec, TRUE))
goto negotiation_error;
} }
if (G_UNLIKELY (out_frame->output_buffer == NULL)) if (G_UNLIKELY (out_frame->output_buffer == NULL))
@ -1110,7 +1111,8 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
else else
GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->input_state->info) = GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->input_state->info) =
GST_VIDEO_INTERLACE_MODE_PROGRESSIVE; GST_VIDEO_INTERLACE_MODE_PROGRESSIVE;
gst_ffmpegviddec_negotiate (ffmpegdec, TRUE); if (!gst_ffmpegviddec_negotiate (ffmpegdec, TRUE))
goto negotiation_error;
} }
/* check if we are dealing with a keyframe here, this will also check if we /* check if we are dealing with a keyframe here, this will also check if we
@ -1163,6 +1165,13 @@ no_output:
len = -1; len = -1;
goto beach; goto beach;
} }
negotiation_error:
{
GST_WARNING_OBJECT (ffmpegdec, "Error negotiating format");
*ret = GST_FLOW_NOT_NEGOTIATED;
goto beach;
}
} }

View file

@ -85,8 +85,7 @@ gst_ffmpegvidenc_me_method_get_type (void)
}; };
if (!ffmpegenc_me_method_type) { if (!ffmpegenc_me_method_type) {
ffmpegenc_me_method_type = ffmpegenc_me_method_type =
g_enum_register_static ("GstFFMpegVidEncMeMethod", g_enum_register_static ("GstLibAVVidEncMeMethod", ffmpegenc_me_methods);
ffmpegenc_me_methods);
} }
return ffmpegenc_me_method_type; return ffmpegenc_me_method_type;
} }
@ -679,7 +678,7 @@ gst_ffmpegvidenc_handle_frame (GstVideoEncoder * encoder,
if (c < GST_VIDEO_INFO_N_COMPONENTS (info)) { if (c < GST_VIDEO_INFO_N_COMPONENTS (info)) {
ffmpegenc->picture->data[c] = GST_VIDEO_FRAME_PLANE_DATA (&vframe, c); ffmpegenc->picture->data[c] = GST_VIDEO_FRAME_PLANE_DATA (&vframe, c);
ffmpegenc->picture->linesize[c] = ffmpegenc->picture->linesize[c] =
GST_VIDEO_FRAME_PLANE_STRIDE (&vframe, c); GST_VIDEO_FRAME_COMP_STRIDE (&vframe, c);
} else { } else {
ffmpegenc->picture->data[c] = NULL; ffmpegenc->picture->data[c] = NULL;
ffmpegenc->picture->linesize[c] = 0; ffmpegenc->picture->linesize[c] = 0;