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: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
This commit is contained in:
Tim-Philipp Müller 2013-06-23 16:38:49 +01:00 committed by GStreamer Merge Bot
parent 8a745529c7
commit c9d10e2277
3 changed files with 7 additions and 9 deletions

View 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);

View file

@ -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);

View file

@ -23,13 +23,13 @@
#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__ */