From c9d10e22772a16f39e9226cd77a97afe88bc7681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sun, 23 Jun 2013 16:38:49 +0100 Subject: mpeg2enc: store video encoder instance directly in stream writer class Instead of storing the pad and then only using it to get the element. Part-of: --- ext/mpeg2enc/gstmpeg2encoder.cc | 2 +- ext/mpeg2enc/gstmpeg2encstreamwriter.cc | 8 +++----- ext/mpeg2enc/gstmpeg2encstreamwriter.hh | 6 +++--- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/ext/mpeg2enc/gstmpeg2encoder.cc b/ext/mpeg2enc/gstmpeg2encoder.cc index 441735af8..ada07ad92 100644 --- a/ext/mpeg2enc/gstmpeg2encoder.cc +++ b/ext/mpeg2enc/gstmpeg2encoder.cc @@ -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); diff --git a/ext/mpeg2enc/gstmpeg2encstreamwriter.cc b/ext/mpeg2enc/gstmpeg2encstreamwriter.cc index de8cf827c..9f48aa0ce 100644 --- a/ext/mpeg2enc/gstmpeg2encstreamwriter.cc +++ b/ext/mpeg2enc/gstmpeg2encstreamwriter.cc @@ -32,16 +32,15 @@ * 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); diff --git a/ext/mpeg2enc/gstmpeg2encstreamwriter.hh b/ext/mpeg2enc/gstmpeg2encstreamwriter.hh index 247059108..84152ed11 100644 --- a/ext/mpeg2enc/gstmpeg2encstreamwriter.hh +++ b/ext/mpeg2enc/gstmpeg2encstreamwriter.hh @@ -23,13 +23,13 @@ #ifndef __GST_MPEG2ENCSTREAMWRITER_H__ #define __GST_MPEG2ENCSTREAMWRITER_H__ -#include +#include #include 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__ */ -- cgit v1.2.1