mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 14:06:23 +00:00
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:
parent
8a745529c7
commit
c9d10e2277
3 changed files with 7 additions and 9 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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__ */
|
||||
|
|
Loading…
Reference in a new issue