vp9dec: Get input width/height from the codec instead of the input caps

They are reported properly by libvpx if the correct struct members are used.
This also fixes handling of resolution changes without input caps changes.

https://bugzilla.gnome.org/show_bug.cgi?id=719359
This commit is contained in:
Sebastian Dröge 2014-09-02 09:09:49 +03:00
parent 5430b6c351
commit 9eb22a533b

View file

@ -554,20 +554,17 @@ gst_vp9_dec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame)
break;
}
/* FIXME: Width/height in the img is wrong */
if (!dec->output_state || dec->output_state->info.finfo->format != fmt /*||
dec->output_state->info.width != img->w ||
dec->output_state->info.height != img->h */ ) {
if (!dec->output_state || dec->output_state->info.finfo->format != fmt ||
dec->output_state->info.width != img->d_w ||
dec->output_state->info.height != img->d_h) {
gboolean send_tags = !dec->output_state;
if (dec->output_state)
gst_video_codec_state_unref (dec->output_state);
/* FIXME: The width/height in the img is wrong */
dec->output_state =
gst_video_decoder_set_output_state (GST_VIDEO_DECODER (dec),
fmt, dec->input_state->info.width, dec->input_state->info.height,
dec->input_state);
fmt, img->d_w, img->d_h, dec->input_state);
gst_video_decoder_negotiate (GST_VIDEO_DECODER (dec));
if (send_tags)