From: jiyong.min Date: Mon, 30 Jan 2023 06:05:39 +0000 (+0900) Subject: avenc_mpeg2video:Apply the patch for breaking some encoders X-Git-Tag: accepted/tizen/unified/20230215.155637~3^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a5b91a18a0016d73f2047fb71210aa9b7878645a;p=platform%2Fupstream%2Fgstreamer.git avenc_mpeg2video:Apply the patch for breaking some encoders - https://github.com/GStreamer/gstreamer/commit/5372b77987cbdf16f681526152325bee8388ab62 Revert "avvidenc: Set timebase in the ffmpeg context to nanoseconds a… …nd set framerate" This reverts commit 50db594. This broke the MPEG-1 video encoder as it requires the framerate to be used for the timebase. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1734 Part-of: Change-Id: I40383d874e929d1eade6f586e5a977631d4d556e --- diff --git a/packaging/gstreamer.spec b/packaging/gstreamer.spec index 08dcd5e798..0c10182016 100644 --- a/packaging/gstreamer.spec +++ b/packaging/gstreamer.spec @@ -62,7 +62,7 @@ Name: %{_name} Version: 1.22.0 -Release: 2 +Release: 3 Summary: Streaming-Media Framework Runtime License: LGPL-2.0+ Group: Multimedia/Framework diff --git a/subprojects/gst-libav/ext/libav/gstavcodecmap.c b/subprojects/gst-libav/ext/libav/gstavcodecmap.c index 0dfcd49837..bc2becbd61 100644 --- a/subprojects/gst-libav/ext/libav/gstavcodecmap.c +++ b/subprojects/gst-libav/ext/libav/gstavcodecmap.c @@ -2959,13 +2959,14 @@ gst_ffmpeg_videoinfo_to_context (GstVideoInfo * info, AVCodecContext * context) bpp += GST_VIDEO_INFO_COMP_DEPTH (info, i); context->bits_per_coded_sample = bpp; - context->time_base.den = 1000000000; - context->time_base.num = 1; context->ticks_per_frame = 1; - - if (GST_VIDEO_INFO_FPS_N (info) != 0) { - context->framerate.num = GST_VIDEO_INFO_FPS_N (info); - context->framerate.den = GST_VIDEO_INFO_FPS_D (info); + if (GST_VIDEO_INFO_FPS_N (info) == 0) { + GST_DEBUG ("Using 25/1 framerate"); + context->time_base.den = 25; + context->time_base.num = 1; + } else { + context->time_base.den = GST_VIDEO_INFO_FPS_N (info); + context->time_base.num = GST_VIDEO_INFO_FPS_D (info); } context->sample_aspect_ratio.num = GST_VIDEO_INFO_PAR_N (info); diff --git a/subprojects/gst-libav/ext/libav/gstavvidenc.c b/subprojects/gst-libav/ext/libav/gstavvidenc.c index 9659d694d4..34d4165a2e 100644 --- a/subprojects/gst-libav/ext/libav/gstavvidenc.c +++ b/subprojects/gst-libav/ext/libav/gstavvidenc.c @@ -308,7 +308,9 @@ gst_ffmpegvidenc_set_format (GstVideoEncoder * encoder, * (1<<16) - 1 . We therefore scale them down. * Agreed, it will not be the exact framerate... but the difference * shouldn't be that noticeable */ - ffmpegenc->context->time_base.num = 1; + ffmpegenc->context->time_base.num = + (gint) gst_util_uint64_scale_int (ffmpegenc->context->time_base.num, + 65535, ffmpegenc->context->time_base.den); ffmpegenc->context->time_base.den = 65535; GST_LOG_OBJECT (ffmpegenc, "MPEG4 : scaled down framerate to %d / %d", ffmpegenc->context->time_base.den, ffmpegenc->context->time_base.num);