mpeg2enc: store video encoder instance directly in stream writer class
authorTim-Philipp Müller <tim@centricular.net>
Sun, 23 Jun 2013 15:38:49 +0000 (16:38 +0100)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 6 Aug 2020 17:13:03 +0000 (17:13 +0000)
Instead of storing the pad and then only using it to get the
element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>

ext/mpeg2enc/gstmpeg2encoder.cc
ext/mpeg2enc/gstmpeg2encstreamwriter.cc
ext/mpeg2enc/gstmpeg2encstreamwriter.hh

index 441735a..ada07ad 100644 (file)
@@ -84,7 +84,7 @@ gboolean GstMpeg2Encoder::setup ()
 
     return FALSE;
   }
-  writer = new GstMpeg2EncStreamWriter (video_encoder->srcpad, &parms);
+  writer = new GstMpeg2EncStreamWriter (video_encoder, &parms);
 
   /* encoding internals */
   quantizer = new Quantizer (parms);
index de8cf82..9f48aa0 100644 (file)
  * Class init stuff.
  */
 
-GstMpeg2EncStreamWriter::GstMpeg2EncStreamWriter (GstPad * in_pad,
+GstMpeg2EncStreamWriter::GstMpeg2EncStreamWriter (GstVideoEncoder * venc,
     EncoderParams * params)
 {
-  pad = in_pad;
-  gst_object_ref (pad);
+  video_encoder = GST_VIDEO_ENCODER_CAST (gst_object_ref (venc));
 }
 
 GstMpeg2EncStreamWriter::~GstMpeg2EncStreamWriter ()
 {
-  gst_object_unref (pad);
+  gst_object_unref (video_encoder);
 }
 
 void
@@ -50,7 +49,6 @@ GstMpeg2EncStreamWriter::WriteOutBufferUpto (const guint8 * buffer,
 {
   GstVideoCodecFrame *frame;
   GstBuffer *buf;
-  GstVideoEncoder *video_encoder = GST_VIDEO_ENCODER (GST_PAD_PARENT (pad));
   GstMpeg2enc *enc = GST_MPEG2ENC (video_encoder);
 
   frame = gst_video_encoder_get_oldest_frame (video_encoder);
index 2470591..84152ed 100644 (file)
 #ifndef __GST_MPEG2ENCSTREAMWRITER_H__
 #define __GST_MPEG2ENCSTREAMWRITER_H__
 
-#include <gst/gst.h>
+#include <gst/video/video.h>
 
 #include <elemstrmwriter.hh>
 
 class GstMpeg2EncStreamWriter : public ElemStrmWriter {
   public:
-  GstMpeg2EncStreamWriter (GstPad *pad, EncoderParams *params);
+  GstMpeg2EncStreamWriter (GstVideoEncoder *venc, EncoderParams *params);
   ~GstMpeg2EncStreamWriter ();
 
   /* output functions */
@@ -38,7 +38,7 @@ class GstMpeg2EncStreamWriter : public ElemStrmWriter {
   guint64 BitCount ();
 
   private:
-  GstPad *pad;
+  GstVideoEncoder *video_encoder;
 };
 
 #endif /* __GST_MPEG2ENCSTREAMWRITER_H__ */