static gboolean gst_vdp_h264_dec_stop (GstBaseVideoDecoder * base_video_decoder) { GstVdpH264Dec *h264_dec = GST_VDP_H264_DEC (base_video_decoder); g_object_unref (h264_dec->parser); g_object_unref (h264_dec->dpb); return GST_BASE_VIDEO_DECODER_CLASS (parent_class)->stop (base_video_decoder); }
static gboolean gst_vdp_mpeg_dec_stop (GstBaseVideoDecoder * base_video_decoder) { GstVdpMpegDec *mpeg_dec = GST_VDP_MPEG_DEC (base_video_decoder); if (mpeg_dec->vdp_info.forward_reference != VDP_INVALID_HANDLE) mpeg_dec->vdp_info.forward_reference = VDP_INVALID_HANDLE; if (mpeg_dec->vdp_info.backward_reference != VDP_INVALID_HANDLE) mpeg_dec->vdp_info.backward_reference = VDP_INVALID_HANDLE; mpeg_dec->state = GST_VDP_MPEG_DEC_STATE_NEED_SEQUENCE; return GST_BASE_VIDEO_DECODER_CLASS (parent_class)->stop (base_video_decoder); }
static gboolean gst_vdp_mpeg4_dec_start (GstBaseVideoDecoder * base_video_decoder) { GstVdpMpeg4Dec *mpeg4_dec = GST_VDP_MPEG4_DEC (base_video_decoder); mpeg4_dec->is_configured = FALSE; mpeg4_dec->tframe = -1; mpeg4_dec->b_frame = NULL; mpeg4_dec->f_frame = NULL; return GST_BASE_VIDEO_DECODER_CLASS (parent_class)->start (base_video_decoder); }
static gboolean gst_vdp_mpeg_dec_start (GstBaseVideoDecoder * base_video_decoder) { GstVdpMpegDec *mpeg_dec = GST_VDP_MPEG_DEC (base_video_decoder); gst_vdp_mpeg_dec_init_info (&mpeg_dec->vdp_info); mpeg_dec->decoder = VDP_INVALID_HANDLE; mpeg_dec->state = GST_VDP_MPEG_DEC_STATE_NEED_SEQUENCE; memset (&mpeg_dec->stream_info, 0, sizeof (GstVdpMpegStreamInfo)); return GST_BASE_VIDEO_DECODER_CLASS (parent_class)->start (base_video_decoder); }
/* initialize the vdpaumpegdecoder's class */ static void gst_vdp_mpeg_dec_class_init (GstVdpMpegDecClass * klass) { GstBaseVideoDecoderClass *base_video_decoder_class; base_video_decoder_class = GST_BASE_VIDEO_DECODER_CLASS (klass); base_video_decoder_class->start = gst_vdp_mpeg_dec_start; base_video_decoder_class->stop = gst_vdp_mpeg_dec_stop; base_video_decoder_class->flush = gst_vdp_mpeg_dec_flush; base_video_decoder_class->scan_for_sync = gst_vdp_mpeg_dec_scan_for_sync; base_video_decoder_class->scan_for_packet_end = gst_vdp_mpeg_dec_scan_for_packet_end; base_video_decoder_class->parse_data = gst_vdp_mpeg_dec_parse_data; base_video_decoder_class->handle_frame = gst_vdp_mpeg_dec_handle_frame; base_video_decoder_class->create_frame = gst_vdp_mpeg_dec_create_frame; }
static gboolean gst_vdp_h264_dec_start (GstBaseVideoDecoder * base_video_decoder) { GstVdpH264Dec *h264_dec = GST_VDP_H264_DEC (base_video_decoder); h264_dec->packetized = FALSE; h264_dec->nal_length_size = SYNC_CODE_SIZE; h264_dec->got_idr = FALSE; h264_dec->sequence = NULL; h264_dec->parser = g_object_new (GST_TYPE_H264_PARSER, NULL); h264_dec->dpb = g_object_new (GST_TYPE_H264_DPB, NULL); gst_h264_dpb_set_output_func (h264_dec->dpb, gst_vdp_h264_dec_output, h264_dec); return GST_BASE_VIDEO_DECODER_CLASS (parent_class)->start (base_video_decoder); }
static gboolean gst_vdp_mpeg4_dec_stop (GstBaseVideoDecoder * base_video_decoder) { return GST_BASE_VIDEO_DECODER_CLASS (parent_class)->stop (base_video_decoder); }