summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorSeungha Yang <seungha@centricular.com>2021-01-10 22:01:27 +0900
committerSeungha Yang <seungha@centricular.com>2021-01-10 22:02:54 +0900
commit6366435e19fc9a30288b4d7b2e47be196ef6f06c (patch)
tree4ae0bef891f8e74b0df44bf6107bfb352e766670 /gst-libs
parent88e007fb21feaa06a7a4779ed6081d2c9f0b0292 (diff)
downloadgstreamer-plugins-bad-6366435e19fc9a30288b4d7b2e47be196ef6f06c.tar.gz
codecs: h264decoder: Remove unused private variables
... and reset() method to clear internal status at one place Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1947>
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/codecs/gsth264decoder.c41
1 files changed, 19 insertions, 22 deletions
diff --git a/gst-libs/gst/codecs/gsth264decoder.c b/gst-libs/gst/codecs/gsth264decoder.c
index e295e5d37..588d494ef 100644
--- a/gst-libs/gst/codecs/gsth264decoder.c
+++ b/gst-libs/gst/codecs/gsth264decoder.c
@@ -80,11 +80,7 @@ typedef enum
struct _GstH264DecoderPrivate
{
gint width, height;
- gint fps_num, fps_den;
- gint upstream_par_n, upstream_par_d;
- gint parsed_par_n, parsed_par_d;
- gint parsed_fps_n, parsed_fps_d;
- GstVideoColorimetry parsed_colorimetry;
+
/* input codec_data, if any */
GstBuffer *codec_data;
guint nal_length_size;
@@ -277,12 +273,29 @@ gst_h264_decoder_finalize (GObject * object)
G_OBJECT_CLASS (parent_class)->finalize (object);
}
+static void
+gst_h264_decoder_reset (GstH264Decoder * self)
+{
+ GstH264DecoderPrivate *priv = self->priv;
+
+ gst_clear_buffer (&priv->codec_data);
+ g_clear_pointer (&self->input_state, gst_video_codec_state_unref);
+ g_clear_pointer (&priv->parser, gst_h264_nal_parser_free);
+ g_clear_pointer (&priv->dpb, gst_h264_dpb_free);
+
+ priv->width = 0;
+ priv->height = 0;
+ priv->nal_length_size = 4;
+}
+
static gboolean
gst_h264_decoder_start (GstVideoDecoder * decoder)
{
GstH264Decoder *self = GST_H264_DECODER (decoder);
GstH264DecoderPrivate *priv = self->priv;
+ gst_h264_decoder_reset (self);
+
priv->parser = gst_h264_nal_parser_new ();
priv->dpb = gst_h264_dpb_new ();
@@ -293,24 +306,8 @@ static gboolean
gst_h264_decoder_stop (GstVideoDecoder * decoder)
{
GstH264Decoder *self = GST_H264_DECODER (decoder);
- GstH264DecoderPrivate *priv = self->priv;
- if (self->input_state) {
- gst_video_codec_state_unref (self->input_state);
- self->input_state = NULL;
- }
-
- gst_clear_buffer (&priv->codec_data);
-
- if (priv->parser) {
- gst_h264_nal_parser_free (priv->parser);
- priv->parser = NULL;
- }
-
- if (priv->dpb) {
- gst_h264_dpb_free (priv->dpb);
- priv->dpb = NULL;
- }
+ gst_h264_decoder_reset (self);
return TRUE;
}