Lines Matching refs:parse
81 static gboolean gst_jpeg_parse_set_sink_caps (GstBaseParse * parse,
83 static gboolean gst_jpeg_parse_sink_event (GstBaseParse * parse,
85 static gboolean gst_jpeg_parse_start (GstBaseParse * parse);
86 static gboolean gst_jpeg_parse_stop (GstBaseParse * parse);
126 gst_jpeg_parse_init (GstJpegParse * parse) in gst_jpeg_parse_init() argument
128 parse->next_ts = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_init()
134 GstJpegParse *parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_set_sink_caps() local
140 parse->framerate_numerator = gst_value_get_fraction_numerator (framerate); in gst_jpeg_parse_set_sink_caps()
141 parse->framerate_denominator = in gst_jpeg_parse_set_sink_caps()
143 parse->has_fps = TRUE; in gst_jpeg_parse_set_sink_caps()
144 GST_DEBUG_OBJECT (parse, "got framerate of %d/%d", in gst_jpeg_parse_set_sink_caps()
145 parse->framerate_numerator, parse->framerate_denominator); in gst_jpeg_parse_set_sink_caps()
164 gst_jpeg_parse_skip_to_jpeg_header (GstJpegParse * parse, GstMapInfo * mapinfo, in gst_jpeg_parse_skip_to_jpeg_header() argument
196 gst_jpeg_parse_get_image_length (GstJpegParse * parse, GstMapInfo * mapinfo) in gst_jpeg_parse_get_image_length() argument
216 parse->last_offset, parse->last_resync, parse->last_entropy_len); in gst_jpeg_parse_get_image_length()
223 offset = parse->last_offset; in gst_jpeg_parse_get_image_length()
237 resync = resync || parse->last_resync; in gst_jpeg_parse_get_image_length()
257 parse->last_resync = FALSE; in gst_jpeg_parse_get_image_length()
258 parse->last_offset = 0; in gst_jpeg_parse_get_image_length()
264 parse->last_resync = FALSE; in gst_jpeg_parse_get_image_length()
265 parse->last_offset = 0; in gst_jpeg_parse_get_image_length()
288 guint eseglen = parse->last_entropy_len; in gst_jpeg_parse_get_image_length()
297 parse->last_entropy_len = size - offset - 4 - frame_len - 2; in gst_jpeg_parse_get_image_length()
306 parse->last_entropy_len = 0; in gst_jpeg_parse_get_image_length()
333 parse->last_offset = offset; in gst_jpeg_parse_get_image_length()
334 parse->last_resync = resync; in gst_jpeg_parse_get_image_length()
340 gst_jpeg_parse_sof (GstJpegParse * parse, GstByteReader * reader) in gst_jpeg_parse_sof() argument
362 if (!gst_byte_reader_get_uint16_be (reader, &parse->height)) in gst_jpeg_parse_sof()
364 if (!gst_byte_reader_get_uint16_be (reader, &parse->width)) in gst_jpeg_parse_sof()
395 parse->format = ""; in gst_jpeg_parse_sof()
400 parse->format = "I420"; in gst_jpeg_parse_sof()
402 parse->format = "Y41B"; in gst_jpeg_parse_sof()
404 parse->format = "UYVY"; in gst_jpeg_parse_sof()
406 parse->format = "YV12"; in gst_jpeg_parse_sof()
408 parse->format = ""; in gst_jpeg_parse_sof()
413 GST_DEBUG_OBJECT (parse, "Header parsed"); in gst_jpeg_parse_sof()
419 gst_jpeg_parse_skip_marker (GstJpegParse * parse, in gst_jpeg_parse_skip_marker() argument
433 GST_DEBUG_OBJECT (parse, "unhandled marker %x: '%s' skipping %u bytes", in gst_jpeg_parse_skip_marker()
436 GST_DEBUG_OBJECT (parse, "unhandled marker %x skipping %u bytes", marker, in gst_jpeg_parse_skip_marker()
441 GST_DEBUG_OBJECT (parse, "unhandled marker %x skipping %u bytes", marker, in gst_jpeg_parse_skip_marker()
452 get_tag_list (GstJpegParse * parse) in get_tag_list() argument
454 if (!parse->tags) in get_tag_list()
455 parse->tags = gst_tag_list_new_empty (); in get_tag_list()
456 return parse->tags; in get_tag_list()
460 extract_and_queue_tags (GstJpegParse * parse, guint size, guint8 * data, in extract_and_queue_tags() argument
473 GstTagList *taglist = parse->tags; in extract_and_queue_tags()
478 parse->tags = tags; in extract_and_queue_tags()
480 GST_DEBUG_OBJECT (parse, "collected tags: %" GST_PTR_FORMAT, parse->tags); in extract_and_queue_tags()
485 gst_jpeg_parse_app1 (GstJpegParse * parse, GstByteReader * reader) in gst_jpeg_parse_app1() argument
509 extract_and_queue_tags (parse, size, (guint8 *) data, in gst_jpeg_parse_app1()
512 GST_LOG_OBJECT (parse, "parsed marker %x: '%s' %u bytes", in gst_jpeg_parse_app1()
526 extract_and_queue_tags (parse, size, (guint8 *) data, in gst_jpeg_parse_app1()
529 GST_LOG_OBJECT (parse, "parsed marker %x: '%s' %u bytes", in gst_jpeg_parse_app1()
536 if (!gst_jpeg_parse_skip_marker (parse, reader, APP1)) in gst_jpeg_parse_app1()
556 gst_jpeg_parse_com (GstJpegParse * parse, GstByteReader * reader) in gst_jpeg_parse_com() argument
572 GstTagList *taglist = get_tag_list (parse); in gst_jpeg_parse_com()
575 GST_DEBUG_OBJECT (parse, "collected tags: %" GST_PTR_FORMAT, taglist); in gst_jpeg_parse_com()
583 gst_jpeg_parse_read_header (GstJpegParse * parse, GstMapInfo * map, gint len) in gst_jpeg_parse_read_header() argument
601 GST_DEBUG_OBJECT (parse, "marker = %x", marker); in gst_jpeg_parse_read_header()
616 if (!gst_jpeg_parse_com (parse, &reader)) in gst_jpeg_parse_read_header()
621 if (!gst_jpeg_parse_app1 (parse, &reader)) in gst_jpeg_parse_read_header()
628 if (!gst_jpeg_parse_skip_marker (parse, &reader, marker)) in gst_jpeg_parse_read_header()
634 if (!gst_jpeg_parse_sof (parse, &reader)) in gst_jpeg_parse_read_header()
643 if (!gst_jpeg_parse_skip_marker (parse, &reader, marker)) in gst_jpeg_parse_read_header()
659 GST_WARNING_OBJECT (parse, in gst_jpeg_parse_read_header()
666 GST_WARNING_OBJECT (parse, "unhandled marker %x, leaving", marker); in gst_jpeg_parse_read_header()
674 gst_jpeg_parse_set_new_caps (GstJpegParse * parse, gboolean header_ok) in gst_jpeg_parse_set_new_caps() argument
679 GST_DEBUG_OBJECT (parse, "setting caps on srcpad (hdr_ok=%d, have_fps=%d)", in gst_jpeg_parse_set_new_caps()
680 header_ok, parse->has_fps); in gst_jpeg_parse_set_new_caps()
687 "format", G_TYPE_STRING, parse->format, in gst_jpeg_parse_set_new_caps()
688 "width", G_TYPE_INT, parse->width, in gst_jpeg_parse_set_new_caps()
689 "height", G_TYPE_INT, parse->height, NULL); in gst_jpeg_parse_set_new_caps()
692 if (parse->has_fps == TRUE) { in gst_jpeg_parse_set_new_caps()
695 parse->framerate_numerator, parse->framerate_denominator, NULL); in gst_jpeg_parse_set_new_caps()
697 if (!GST_CLOCK_TIME_IS_VALID (parse->duration) in gst_jpeg_parse_set_new_caps()
698 && parse->framerate_numerator != 0) { in gst_jpeg_parse_set_new_caps()
699 parse->duration = gst_util_uint64_scale_int (GST_SECOND, in gst_jpeg_parse_set_new_caps()
700 parse->framerate_denominator, parse->framerate_numerator); in gst_jpeg_parse_set_new_caps()
704 parse->duration = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_set_new_caps()
708 GST_DEBUG_OBJECT (parse, in gst_jpeg_parse_set_new_caps()
710 GST_DEBUG_PAD_NAME (GST_BASE_PARSE_SRC_PAD (parse)), caps); in gst_jpeg_parse_set_new_caps()
711 res = gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps); in gst_jpeg_parse_set_new_caps()
721 GstJpegParse *parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_pre_push_frame() local
724 if (parse->has_fps && parse->framerate_numerator != 0 in gst_jpeg_parse_pre_push_frame()
725 && !GST_CLOCK_TIME_IS_VALID (parse->next_ts)) in gst_jpeg_parse_pre_push_frame()
726 parse->next_ts = bparse->segment.start; in gst_jpeg_parse_pre_push_frame()
728 GST_BUFFER_TIMESTAMP (outbuf) = parse->next_ts; in gst_jpeg_parse_pre_push_frame()
730 if (parse->has_fps && GST_CLOCK_TIME_IS_VALID (parse->next_ts) in gst_jpeg_parse_pre_push_frame()
731 && GST_CLOCK_TIME_IS_VALID (parse->duration)) { in gst_jpeg_parse_pre_push_frame()
732 parse->next_ts += parse->duration; in gst_jpeg_parse_pre_push_frame()
734 parse->duration = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_pre_push_frame()
735 parse->next_ts = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_pre_push_frame()
738 GST_BUFFER_DURATION (outbuf) = parse->duration; in gst_jpeg_parse_pre_push_frame()
747 GstJpegParse *parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_handle_frame() local
760 if (!gst_jpeg_parse_skip_to_jpeg_header (parse, &mapinfo, skipsize)) { in gst_jpeg_parse_handle_frame()
765 if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (parse->next_ts))) in gst_jpeg_parse_handle_frame()
766 parse->next_ts = timestamp; in gst_jpeg_parse_handle_frame()
769 parse->duration = duration; in gst_jpeg_parse_handle_frame()
771 len = gst_jpeg_parse_get_image_length (parse, &mapinfo); in gst_jpeg_parse_handle_frame()
782 GST_LOG_OBJECT (parse, "parsed image of size %d", len); in gst_jpeg_parse_handle_frame()
785 parse->last_offset = 0; in gst_jpeg_parse_handle_frame()
786 parse->last_entropy_len = 0; in gst_jpeg_parse_handle_frame()
788 header_ok = gst_jpeg_parse_read_header (parse, &mapinfo, len); in gst_jpeg_parse_handle_frame()
792 if (parse->width != parse->caps_width in gst_jpeg_parse_handle_frame()
793 || parse->height != parse->caps_height in gst_jpeg_parse_handle_frame()
794 || parse->framerate_numerator != in gst_jpeg_parse_handle_frame()
795 parse->caps_framerate_numerator in gst_jpeg_parse_handle_frame()
796 || parse->framerate_denominator != parse->caps_framerate_denominator) { in gst_jpeg_parse_handle_frame()
797 if (!gst_jpeg_parse_set_new_caps (parse, header_ok)) { in gst_jpeg_parse_handle_frame()
798 GST_ELEMENT_ERROR (parse, CORE, NEGOTIATION, in gst_jpeg_parse_handle_frame()
803 if (parse->tags) { in gst_jpeg_parse_handle_frame()
804 GST_DEBUG_OBJECT (parse, "Pushing tags: %" GST_PTR_FORMAT, parse->tags); in gst_jpeg_parse_handle_frame()
805 gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (parse), in gst_jpeg_parse_handle_frame()
806 gst_event_new_tag (parse->tags)); in gst_jpeg_parse_handle_frame()
807 parse->tags = NULL; in gst_jpeg_parse_handle_frame()
810 parse->caps_width = parse->width; in gst_jpeg_parse_handle_frame()
811 parse->caps_height = parse->height; in gst_jpeg_parse_handle_frame()
812 parse->caps_framerate_numerator = parse->framerate_numerator; in gst_jpeg_parse_handle_frame()
813 parse->caps_framerate_denominator = parse->framerate_denominator; in gst_jpeg_parse_handle_frame()
823 GstJpegParse *parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_sink_event() local
826 GST_DEBUG_OBJECT (parse, "event : %s", GST_EVENT_TYPE_NAME (event)); in gst_jpeg_parse_sink_event()
830 parse->next_ts = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_sink_event()
831 parse->duration = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_sink_event()
832 parse->last_offset = 0; in gst_jpeg_parse_sink_event()
833 parse->last_entropy_len = 0; in gst_jpeg_parse_sink_event()
834 parse->last_resync = FALSE; in gst_jpeg_parse_sink_event()
838 if (gst_pad_has_current_caps (GST_BASE_PARSE_SRC_PAD (parse))) in gst_jpeg_parse_sink_event()
845 gst_tag_list_insert (get_tag_list (parse), taglist, in gst_jpeg_parse_sink_event()
847 GST_DEBUG ("collected tags: %" GST_PTR_FORMAT, parse->tags); in gst_jpeg_parse_sink_event()
863 GstJpegParse *parse; in gst_jpeg_parse_start() local
865 parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_start()
867 parse->has_fps = FALSE; in gst_jpeg_parse_start()
869 parse->width = parse->height = 0; in gst_jpeg_parse_start()
870 parse->framerate_numerator = 0; in gst_jpeg_parse_start()
871 parse->framerate_denominator = 1; in gst_jpeg_parse_start()
873 parse->caps_framerate_numerator = parse->caps_framerate_denominator = 0; in gst_jpeg_parse_start()
874 parse->caps_width = parse->caps_height = -1; in gst_jpeg_parse_start()
876 parse->next_ts = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_start()
877 parse->duration = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_start()
879 parse->last_offset = 0; in gst_jpeg_parse_start()
880 parse->last_entropy_len = 0; in gst_jpeg_parse_start()
881 parse->last_resync = FALSE; in gst_jpeg_parse_start()
883 parse->tags = NULL; in gst_jpeg_parse_start()
891 GstJpegParse *parse; in gst_jpeg_parse_stop() local
893 parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_stop()
895 if (parse->tags) { in gst_jpeg_parse_stop()
896 gst_tag_list_unref (parse->tags); in gst_jpeg_parse_stop()
897 parse->tags = NULL; in gst_jpeg_parse_stop()