mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-26 00:58:12 +00:00
parent
1ca115c44b
commit
ce7f65f752
1 changed files with 13 additions and 12 deletions
|
@ -1073,20 +1073,21 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
|
||||||
(guint64) ffmpegdec->picture->reordered_opaque);
|
(guint64) ffmpegdec->picture->reordered_opaque);
|
||||||
GST_DEBUG_OBJECT (ffmpegdec, "repeat_pict:%d",
|
GST_DEBUG_OBJECT (ffmpegdec, "repeat_pict:%d",
|
||||||
ffmpegdec->picture->repeat_pict);
|
ffmpegdec->picture->repeat_pict);
|
||||||
GST_DEBUG_OBJECT (ffmpegdec, "interlaced_frame:%d",
|
GST_DEBUG_OBJECT (ffmpegdec, "interlaced_frame:%d (current:%d)",
|
||||||
ffmpegdec->picture->interlaced_frame);
|
ffmpegdec->picture->interlaced_frame,
|
||||||
|
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->input_state->info));
|
||||||
|
|
||||||
if (G_UNLIKELY (ffmpegdec->output_state
|
if (G_UNLIKELY (ffmpegdec->input_state
|
||||||
&& ffmpegdec->picture->interlaced_frame !=
|
&& ffmpegdec->picture->interlaced_frame !=
|
||||||
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->output_state->info))) {
|
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->input_state->info))) {
|
||||||
GST_WARNING ("Change in interlacing ! picture:%d, recorded:%d",
|
GST_WARNING ("Change in interlacing ! picture:%d, recorded:%d",
|
||||||
ffmpegdec->picture->interlaced_frame,
|
ffmpegdec->picture->interlaced_frame,
|
||||||
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->output_state->info));
|
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->input_state->info));
|
||||||
if (ffmpegdec->picture->interlaced_frame)
|
if (ffmpegdec->picture->interlaced_frame)
|
||||||
GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->output_state->info) =
|
GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->input_state->info) =
|
||||||
GST_VIDEO_INTERLACE_MODE_INTERLEAVED;
|
GST_VIDEO_INTERLACE_MODE_INTERLEAVED;
|
||||||
else
|
else
|
||||||
GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->output_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);
|
gst_ffmpegviddec_negotiate (ffmpegdec, TRUE);
|
||||||
}
|
}
|
||||||
|
@ -1097,17 +1098,17 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
|
||||||
if (G_UNLIKELY (*ret != GST_FLOW_OK))
|
if (G_UNLIKELY (*ret != GST_FLOW_OK))
|
||||||
goto no_output;
|
goto no_output;
|
||||||
|
|
||||||
if (G_UNLIKELY (ffmpegdec->output_state
|
if (G_UNLIKELY (ffmpegdec->input_state
|
||||||
&& ffmpegdec->picture->interlaced_frame !=
|
&& ffmpegdec->picture->interlaced_frame !=
|
||||||
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->output_state->info))) {
|
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->input_state->info))) {
|
||||||
GST_WARNING ("Change in interlacing ! picture:%d, recorded:%d",
|
GST_WARNING ("Change in interlacing ! picture:%d, recorded:%d",
|
||||||
ffmpegdec->picture->interlaced_frame,
|
ffmpegdec->picture->interlaced_frame,
|
||||||
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->output_state->info));
|
GST_VIDEO_INFO_IS_INTERLACED (&ffmpegdec->input_state->info));
|
||||||
if (ffmpegdec->picture->interlaced_frame)
|
if (ffmpegdec->picture->interlaced_frame)
|
||||||
GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->output_state->info) =
|
GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->input_state->info) =
|
||||||
GST_VIDEO_INTERLACE_MODE_INTERLEAVED;
|
GST_VIDEO_INTERLACE_MODE_INTERLEAVED;
|
||||||
else
|
else
|
||||||
GST_VIDEO_INFO_INTERLACE_MODE (&ffmpegdec->output_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);
|
gst_ffmpegviddec_negotiate (ffmpegdec, TRUE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue