Lines Matching full:decoder

46 #define GST_MPP_DEC_TASK_STARTED(decoder) \  argument
47 (gst_pad_get_task_state ((decoder)->srcpad) == GST_TASK_STARTED)
49 #define GST_MPP_DEC_MUTEX(decoder) (&GST_MPP_DEC (decoder)->mutex) argument
51 #define GST_MPP_DEC_LOCK(decoder) \ argument
52 GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); \
53 g_mutex_lock (GST_MPP_DEC_MUTEX (decoder)); \
54 GST_VIDEO_DECODER_STREAM_LOCK (decoder);
56 #define GST_MPP_DEC_UNLOCK(decoder) \ argument
57 g_mutex_unlock (GST_MPP_DEC_MUTEX (decoder));
84 GstVideoDecoder *decoder = GST_VIDEO_DECODER (object); in gst_mpp_dec_set_property() local
85 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_set_property()
90 GST_WARNING_OBJECT (decoder, "unable to change rotation"); in gst_mpp_dec_set_property()
98 GST_WARNING_OBJECT (decoder, "unable to change width"); in gst_mpp_dec_set_property()
105 GST_WARNING_OBJECT (decoder, "unable to change height"); in gst_mpp_dec_set_property()
115 GST_WARNING_OBJECT (decoder, "too less values for crop-rectangle"); in gst_mpp_dec_set_property()
122 GST_WARNING_OBJECT (decoder, "crop-rectangle needs int values"); in gst_mpp_dec_set_property()
138 GST_WARNING_OBJECT (decoder, "unable to change error mode"); in gst_mpp_dec_set_property()
145 GST_WARNING_OBJECT (decoder, "unable to change fast mode"); in gst_mpp_dec_set_property()
164 GstVideoDecoder *decoder = GST_VIDEO_DECODER (object); in gst_mpp_dec_get_property() local
165 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_get_property()
193 gst_mpp_dec_stop_task (GstVideoDecoder * decoder, gboolean drain) in gst_mpp_dec_stop_task() argument
195 GstMppDecClass *klass = GST_MPP_DEC_GET_CLASS (decoder); in gst_mpp_dec_stop_task()
197 if (!GST_MPP_DEC_TASK_STARTED (decoder)) in gst_mpp_dec_stop_task()
200 GST_DEBUG_OBJECT (decoder, "stopping decoding thread"); in gst_mpp_dec_stop_task()
202 GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); in gst_mpp_dec_stop_task()
203 if (klass->shutdown && klass->shutdown (decoder, drain)) { in gst_mpp_dec_stop_task()
205 GstTask *task = decoder->srcpad->task; in gst_mpp_dec_stop_task()
214 gst_pad_stop_task (decoder->srcpad); in gst_mpp_dec_stop_task()
215 GST_VIDEO_DECODER_STREAM_LOCK (decoder); in gst_mpp_dec_stop_task()
219 gst_mpp_dec_reset (GstVideoDecoder * decoder, gboolean drain, gboolean final) in gst_mpp_dec_reset() argument
221 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_reset()
223 GST_MPP_DEC_LOCK (decoder); in gst_mpp_dec_reset()
230 gst_mpp_dec_stop_task (decoder, drain); in gst_mpp_dec_reset()
239 GST_MPP_DEC_UNLOCK (decoder); in gst_mpp_dec_reset()
243 gst_mpp_dec_start (GstVideoDecoder * decoder) in gst_mpp_dec_start() argument
245 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_start()
277 gst_mpp_dec_clear_allocator (GstVideoDecoder * decoder) in gst_mpp_dec_clear_allocator() argument
279 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_clear_allocator()
289 gst_mpp_dec_stop (GstVideoDecoder * decoder) in gst_mpp_dec_stop() argument
291 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_stop()
295 GST_VIDEO_DECODER_STREAM_LOCK (decoder); in gst_mpp_dec_stop()
296 gst_mpp_dec_reset (decoder, FALSE, TRUE); in gst_mpp_dec_stop()
297 GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); in gst_mpp_dec_stop()
308 gst_mpp_dec_clear_allocator (decoder); in gst_mpp_dec_stop()
316 gst_mpp_dec_flush (GstVideoDecoder * decoder) in gst_mpp_dec_flush() argument
318 GST_DEBUG_OBJECT (decoder, "flushing"); in gst_mpp_dec_flush()
319 gst_mpp_dec_reset (decoder, FALSE, FALSE); in gst_mpp_dec_flush()
324 gst_mpp_dec_drain (GstVideoDecoder * decoder) in gst_mpp_dec_drain() argument
326 GST_DEBUG_OBJECT (decoder, "draining"); in gst_mpp_dec_drain()
327 gst_mpp_dec_reset (decoder, TRUE, FALSE); in gst_mpp_dec_drain()
332 gst_mpp_dec_finish (GstVideoDecoder * decoder) in gst_mpp_dec_finish() argument
334 GST_DEBUG_OBJECT (decoder, "finishing"); in gst_mpp_dec_finish()
335 gst_mpp_dec_reset (decoder, TRUE, FALSE); in gst_mpp_dec_finish()
338 gst_mpp_dec_clear_allocator (decoder); in gst_mpp_dec_finish()
344 gst_mpp_dec_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state) in gst_mpp_dec_set_format() argument
346 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_set_format()
358 gst_mpp_dec_reset (decoder, TRUE, FALSE); in gst_mpp_dec_set_format()
361 gst_mpp_dec_clear_allocator (decoder); in gst_mpp_dec_set_format()
384 gst_mpp_dec_update_video_info (GstVideoDecoder * decoder, GstVideoFormat format, in gst_mpp_dec_update_video_info() argument
388 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_update_video_info()
395 output_state = gst_video_decoder_set_output_state (decoder, format, in gst_mpp_dec_update_video_info()
428 if (!gst_video_decoder_negotiate (decoder)) in gst_mpp_dec_update_video_info()
443 gst_mpp_dec_update_simple_video_info (GstVideoDecoder * decoder, in gst_mpp_dec_update_simple_video_info() argument
446 return gst_mpp_dec_update_video_info (decoder, format, width, height, 0, 0, in gst_mpp_dec_update_simple_video_info()
451 gst_mpp_dec_fixup_video_info (GstVideoDecoder * decoder, GstVideoFormat format, in gst_mpp_dec_fixup_video_info() argument
454 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_fixup_video_info()
485 gst_mpp_dec_apply_info_change (GstVideoDecoder * decoder, MppFrame mframe) in gst_mpp_dec_apply_info_change() argument
487 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_apply_info_change()
512 gst_mpp_dec_fixup_video_info (decoder, src_format, width, height); in gst_mpp_dec_apply_info_change()
548 if (!gst_mpp_dec_update_video_info (decoder, dst_format, in gst_mpp_dec_apply_info_change()
556 gst_mpp_dec_get_frame (GstVideoDecoder * decoder, GstClockTime pts) in gst_mpp_dec_get_frame() argument
558 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_get_frame()
566 frames = gst_video_decoder_get_frames (decoder); in gst_mpp_dec_get_frame()
650 gst_video_decoder_release_frame (decoder, f); in gst_mpp_dec_get_frame()
679 gst_mpp_dec_rga_convert (GstVideoDecoder * decoder, MppFrame mframe, in gst_mpp_dec_rga_convert() argument
682 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_rga_convert()
687 GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); in gst_mpp_dec_rga_convert()
701 GST_VIDEO_DECODER_STREAM_LOCK (decoder); in gst_mpp_dec_rga_convert()
707 gst_mpp_dec_get_gst_buffer (GstVideoDecoder * decoder, MppFrame mframe) in gst_mpp_dec_get_gst_buffer() argument
709 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_get_gst_buffer()
781 gst_mpp_dec_rga_convert (decoder, mframe, buffer)) in gst_mpp_dec_get_gst_buffer()
793 gst_mpp_dec_update_interlace_mode (GstVideoDecoder * decoder, in gst_mpp_dec_update_interlace_mode() argument
796 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_update_interlace_mode()
823 output_state = gst_video_decoder_get_output_state (decoder); in gst_mpp_dec_update_interlace_mode()
839 gst_mpp_dec_loop (GstVideoDecoder * decoder) in gst_mpp_dec_loop() argument
841 GstMppDecClass *klass = GST_MPP_DEC_GET_CLASS (decoder); in gst_mpp_dec_loop()
842 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_loop()
850 mframe = klass->poll_mpp_frame (decoder, timeout); in gst_mpp_dec_loop()
855 GST_VIDEO_DECODER_STREAM_LOCK (decoder); in gst_mpp_dec_loop()
859 self->task_ret = gst_mpp_dec_apply_info_change (decoder, mframe); in gst_mpp_dec_loop()
868 self->task_ret = gst_mpp_dec_apply_info_change (decoder, mframe); in gst_mpp_dec_loop()
888 frame = gst_mpp_dec_get_frame (decoder, mpp_frame_get_pts (mframe)); in gst_mpp_dec_loop()
895 buffer = gst_mpp_dec_get_gst_buffer (decoder, mframe); in gst_mpp_dec_loop()
901 gst_mpp_dec_update_interlace_mode (decoder, buffer, mode); in gst_mpp_dec_loop()
914 gst_video_decoder_finish_frame (decoder, frame); in gst_mpp_dec_loop()
928 gst_pad_pause_task (decoder->srcpad); in gst_mpp_dec_loop()
931 GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); in gst_mpp_dec_loop()
944 gst_video_decoder_release_frame (decoder, frame); in gst_mpp_dec_loop()
949 gst_mpp_dec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame) in gst_mpp_dec_handle_frame() argument
951 GstMppDecClass *klass = GST_MPP_DEC_GET_CLASS (decoder); in gst_mpp_dec_handle_frame()
952 GstMppDec *self = GST_MPP_DEC (decoder); in gst_mpp_dec_handle_frame()
960 GST_MPP_DEC_LOCK (decoder); in gst_mpp_dec_handle_frame()
978 if (G_UNLIKELY (!GST_MPP_DEC_TASK_STARTED (decoder))) { in gst_mpp_dec_handle_frame()
979 if (klass->startup && !klass->startup (decoder)) in gst_mpp_dec_handle_frame()
984 gst_pad_start_task (decoder->srcpad, in gst_mpp_dec_handle_frame()
985 (GstTaskFunction) gst_mpp_dec_loop, decoder, NULL); in gst_mpp_dec_handle_frame()
988 GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); in gst_mpp_dec_handle_frame()
990 mpkt = klass->get_mpp_packet (decoder, &mapinfo); in gst_mpp_dec_handle_frame()
991 GST_VIDEO_DECODER_STREAM_LOCK (decoder); in gst_mpp_dec_handle_frame()
1001 GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); in gst_mpp_dec_handle_frame()
1002 if (klass->send_mpp_packet (decoder, mpkt, interval_ms)) { in gst_mpp_dec_handle_frame()
1003 GST_VIDEO_DECODER_STREAM_LOCK (decoder); in gst_mpp_dec_handle_frame()
1006 GST_VIDEO_DECODER_STREAM_LOCK (decoder); in gst_mpp_dec_handle_frame()
1027 GST_MPP_DEC_UNLOCK (decoder); in gst_mpp_dec_handle_frame()
1058 gst_video_decoder_release_frame (decoder, frame); in gst_mpp_dec_handle_frame()
1060 GST_MPP_DEC_UNLOCK (decoder); in gst_mpp_dec_handle_frame()
1068 GstVideoDecoder *decoder = GST_VIDEO_DECODER (element); in gst_mpp_dec_change_state() local
1071 GST_VIDEO_DECODER_STREAM_LOCK (decoder); in gst_mpp_dec_change_state()
1072 gst_mpp_dec_reset (decoder, FALSE, TRUE); in gst_mpp_dec_change_state()
1073 GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); in gst_mpp_dec_change_state()
1082 GstVideoDecoder *decoder = GST_VIDEO_DECODER (self); in gst_mpp_dec_init() local
1088 gst_video_decoder_set_packetized (decoder, TRUE); in gst_mpp_dec_init()
1120 GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "mppdec", 0, "MPP decoder"); in gst_mpp_dec_class_init()