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);
124 gst_jpeg_parse_init (GstJpegParse * parse) in gst_jpeg_parse_init() argument
126 parse->next_ts = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_init()
132 GstJpegParse *parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_set_sink_caps() local
138 parse->framerate_numerator = gst_value_get_fraction_numerator (framerate); in gst_jpeg_parse_set_sink_caps()
139 parse->framerate_denominator = in gst_jpeg_parse_set_sink_caps()
141 parse->has_fps = TRUE; in gst_jpeg_parse_set_sink_caps()
142 GST_DEBUG_OBJECT (parse, "got framerate of %d/%d", in gst_jpeg_parse_set_sink_caps()
143 parse->framerate_numerator, parse->framerate_denominator); in gst_jpeg_parse_set_sink_caps()
162 gst_jpeg_parse_skip_to_jpeg_header (GstJpegParse * parse, GstMapInfo * mapinfo, in gst_jpeg_parse_skip_to_jpeg_header() argument
194 gst_jpeg_parse_get_image_length (GstJpegParse * parse, GstMapInfo * mapinfo) in gst_jpeg_parse_get_image_length() argument
214 parse->last_offset, parse->last_resync, parse->last_entropy_len); in gst_jpeg_parse_get_image_length()
221 offset = parse->last_offset; in gst_jpeg_parse_get_image_length()
235 resync = resync || parse->last_resync; in gst_jpeg_parse_get_image_length()
255 parse->last_resync = FALSE; in gst_jpeg_parse_get_image_length()
256 parse->last_offset = 0; in gst_jpeg_parse_get_image_length()
262 parse->last_resync = FALSE; in gst_jpeg_parse_get_image_length()
263 parse->last_offset = 0; in gst_jpeg_parse_get_image_length()
286 guint eseglen = parse->last_entropy_len; in gst_jpeg_parse_get_image_length()
295 parse->last_entropy_len = size - offset - 4 - frame_len - 2; in gst_jpeg_parse_get_image_length()
304 parse->last_entropy_len = 0; in gst_jpeg_parse_get_image_length()
331 parse->last_offset = offset; in gst_jpeg_parse_get_image_length()
332 parse->last_resync = resync; in gst_jpeg_parse_get_image_length()
338 gst_jpeg_parse_sof (GstJpegParse * parse, GstByteReader * reader) in gst_jpeg_parse_sof() argument
360 if (!gst_byte_reader_get_uint16_be (reader, &parse->height)) in gst_jpeg_parse_sof()
362 if (!gst_byte_reader_get_uint16_be (reader, &parse->width)) in gst_jpeg_parse_sof()
393 parse->format = ""; in gst_jpeg_parse_sof()
398 parse->format = "I420"; in gst_jpeg_parse_sof()
400 parse->format = "Y41B"; in gst_jpeg_parse_sof()
402 parse->format = "UYVY"; in gst_jpeg_parse_sof()
404 parse->format = "YV12"; in gst_jpeg_parse_sof()
406 parse->format = ""; in gst_jpeg_parse_sof()
411 GST_DEBUG_OBJECT (parse, "Header parsed"); in gst_jpeg_parse_sof()
417 gst_jpeg_parse_skip_marker (GstJpegParse * parse, in gst_jpeg_parse_skip_marker() argument
431 GST_DEBUG_OBJECT (parse, "unhandled marker %x: '%s' skiping %u bytes", in gst_jpeg_parse_skip_marker()
434 GST_DEBUG_OBJECT (parse, "unhandled marker %x skiping %u bytes", marker, in gst_jpeg_parse_skip_marker()
439 GST_DEBUG_OBJECT (parse, "unhandled marker %x skiping %u bytes", marker, in gst_jpeg_parse_skip_marker()
450 get_tag_list (GstJpegParse * parse) in get_tag_list() argument
452 if (!parse->tags) in get_tag_list()
453 parse->tags = gst_tag_list_new_empty (); in get_tag_list()
454 return parse->tags; in get_tag_list()
458 extract_and_queue_tags (GstJpegParse * parse, guint size, guint8 * data, in extract_and_queue_tags() argument
471 GstTagList *taglist = parse->tags; in extract_and_queue_tags()
476 parse->tags = tags; in extract_and_queue_tags()
478 GST_DEBUG_OBJECT (parse, "collected tags: %" GST_PTR_FORMAT, parse->tags); in extract_and_queue_tags()
483 gst_jpeg_parse_app1 (GstJpegParse * parse, GstByteReader * reader) in gst_jpeg_parse_app1() argument
507 extract_and_queue_tags (parse, size, (guint8 *) data, in gst_jpeg_parse_app1()
510 GST_LOG_OBJECT (parse, "parsed marker %x: '%s' %u bytes", in gst_jpeg_parse_app1()
524 extract_and_queue_tags (parse, size, (guint8 *) data, in gst_jpeg_parse_app1()
527 GST_LOG_OBJECT (parse, "parsed marker %x: '%s' %u bytes", in gst_jpeg_parse_app1()
534 if (!gst_jpeg_parse_skip_marker (parse, reader, APP1)) in gst_jpeg_parse_app1()
554 gst_jpeg_parse_com (GstJpegParse * parse, GstByteReader * reader) in gst_jpeg_parse_com() argument
570 GstTagList *taglist = get_tag_list (parse); in gst_jpeg_parse_com()
573 GST_DEBUG_OBJECT (parse, "collected tags: %" GST_PTR_FORMAT, taglist); in gst_jpeg_parse_com()
581 gst_jpeg_parse_read_header (GstJpegParse * parse, GstMapInfo * map, gint len) in gst_jpeg_parse_read_header() argument
599 GST_DEBUG_OBJECT (parse, "marker = %x", marker); in gst_jpeg_parse_read_header()
614 if (!gst_jpeg_parse_com (parse, &reader)) in gst_jpeg_parse_read_header()
619 if (!gst_jpeg_parse_app1 (parse, &reader)) in gst_jpeg_parse_read_header()
626 if (!gst_jpeg_parse_skip_marker (parse, &reader, marker)) in gst_jpeg_parse_read_header()
632 if (!gst_jpeg_parse_sof (parse, &reader)) in gst_jpeg_parse_read_header()
641 if (!gst_jpeg_parse_skip_marker (parse, &reader, marker)) in gst_jpeg_parse_read_header()
657 GST_WARNING_OBJECT (parse, in gst_jpeg_parse_read_header()
664 GST_WARNING_OBJECT (parse, "unhandled marker %x, leaving", marker); in gst_jpeg_parse_read_header()
672 gst_jpeg_parse_set_new_caps (GstJpegParse * parse, gboolean header_ok) in gst_jpeg_parse_set_new_caps() argument
677 GST_DEBUG_OBJECT (parse, "setting caps on srcpad (hdr_ok=%d, have_fps=%d)", in gst_jpeg_parse_set_new_caps()
678 header_ok, parse->has_fps); in gst_jpeg_parse_set_new_caps()
685 "format", G_TYPE_STRING, parse->format, in gst_jpeg_parse_set_new_caps()
686 "width", G_TYPE_INT, parse->width, in gst_jpeg_parse_set_new_caps()
687 "height", G_TYPE_INT, parse->height, NULL); in gst_jpeg_parse_set_new_caps()
690 if (parse->has_fps == TRUE) { in gst_jpeg_parse_set_new_caps()
693 parse->framerate_numerator, parse->framerate_denominator, NULL); in gst_jpeg_parse_set_new_caps()
695 if (!GST_CLOCK_TIME_IS_VALID (parse->duration) in gst_jpeg_parse_set_new_caps()
696 && parse->framerate_numerator != 0) { in gst_jpeg_parse_set_new_caps()
697 parse->duration = gst_util_uint64_scale_int (GST_SECOND, in gst_jpeg_parse_set_new_caps()
698 parse->framerate_denominator, parse->framerate_numerator); in gst_jpeg_parse_set_new_caps()
702 parse->duration = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_set_new_caps()
706 GST_DEBUG_OBJECT (parse, in gst_jpeg_parse_set_new_caps()
708 GST_DEBUG_PAD_NAME (GST_BASE_PARSE_SRC_PAD (parse)), caps); in gst_jpeg_parse_set_new_caps()
709 res = gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps); in gst_jpeg_parse_set_new_caps()
719 GstJpegParse *parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_pre_push_frame() local
722 if (parse->has_fps && !GST_CLOCK_TIME_IS_VALID (parse->next_ts)) in gst_jpeg_parse_pre_push_frame()
723 parse->next_ts = bparse->segment.start; in gst_jpeg_parse_pre_push_frame()
725 GST_BUFFER_TIMESTAMP (outbuf) = parse->next_ts; in gst_jpeg_parse_pre_push_frame()
727 if (parse->has_fps && GST_CLOCK_TIME_IS_VALID (parse->next_ts) in gst_jpeg_parse_pre_push_frame()
728 && GST_CLOCK_TIME_IS_VALID (parse->duration)) { in gst_jpeg_parse_pre_push_frame()
729 parse->next_ts += parse->duration; in gst_jpeg_parse_pre_push_frame()
731 parse->duration = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_pre_push_frame()
732 parse->next_ts = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_pre_push_frame()
735 GST_BUFFER_DURATION (outbuf) = parse->duration; in gst_jpeg_parse_pre_push_frame()
744 GstJpegParse *parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_handle_frame() local
757 if (!gst_jpeg_parse_skip_to_jpeg_header (parse, &mapinfo, skipsize)) { in gst_jpeg_parse_handle_frame()
762 if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (parse->next_ts))) in gst_jpeg_parse_handle_frame()
763 parse->next_ts = timestamp; in gst_jpeg_parse_handle_frame()
766 parse->duration = duration; in gst_jpeg_parse_handle_frame()
768 len = gst_jpeg_parse_get_image_length (parse, &mapinfo); in gst_jpeg_parse_handle_frame()
779 GST_LOG_OBJECT (parse, "parsed image of size %d", len); in gst_jpeg_parse_handle_frame()
782 parse->last_offset = 0; in gst_jpeg_parse_handle_frame()
783 parse->last_entropy_len = 0; in gst_jpeg_parse_handle_frame()
785 header_ok = gst_jpeg_parse_read_header (parse, &mapinfo, len); in gst_jpeg_parse_handle_frame()
789 if (parse->width != parse->caps_width in gst_jpeg_parse_handle_frame()
790 || parse->height != parse->caps_height in gst_jpeg_parse_handle_frame()
791 || parse->framerate_numerator != in gst_jpeg_parse_handle_frame()
792 parse->caps_framerate_numerator in gst_jpeg_parse_handle_frame()
793 || parse->framerate_denominator != parse->caps_framerate_denominator) { in gst_jpeg_parse_handle_frame()
794 if (!gst_jpeg_parse_set_new_caps (parse, header_ok)) { in gst_jpeg_parse_handle_frame()
795 GST_ELEMENT_ERROR (parse, CORE, NEGOTIATION, in gst_jpeg_parse_handle_frame()
800 if (parse->tags) { in gst_jpeg_parse_handle_frame()
801 GST_DEBUG_OBJECT (parse, "Pushing tags: %" GST_PTR_FORMAT, parse->tags); in gst_jpeg_parse_handle_frame()
802 gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (parse), in gst_jpeg_parse_handle_frame()
803 gst_event_new_tag (parse->tags)); in gst_jpeg_parse_handle_frame()
804 parse->tags = NULL; in gst_jpeg_parse_handle_frame()
807 parse->caps_width = parse->width; in gst_jpeg_parse_handle_frame()
808 parse->caps_height = parse->height; in gst_jpeg_parse_handle_frame()
809 parse->caps_framerate_numerator = parse->framerate_numerator; in gst_jpeg_parse_handle_frame()
810 parse->caps_framerate_denominator = parse->framerate_denominator; in gst_jpeg_parse_handle_frame()
820 GstJpegParse *parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_sink_event() local
823 GST_DEBUG_OBJECT (parse, "event : %s", GST_EVENT_TYPE_NAME (event)); in gst_jpeg_parse_sink_event()
827 parse->next_ts = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_sink_event()
828 parse->duration = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_sink_event()
829 parse->last_offset = 0; in gst_jpeg_parse_sink_event()
830 parse->last_entropy_len = 0; in gst_jpeg_parse_sink_event()
831 parse->last_resync = FALSE; in gst_jpeg_parse_sink_event()
835 if (gst_pad_has_current_caps (GST_BASE_PARSE_SRC_PAD (parse))) in gst_jpeg_parse_sink_event()
842 gst_tag_list_insert (get_tag_list (parse), taglist, in gst_jpeg_parse_sink_event()
844 GST_DEBUG ("collected tags: %" GST_PTR_FORMAT, parse->tags); in gst_jpeg_parse_sink_event()
860 GstJpegParse *parse; in gst_jpeg_parse_start() local
862 parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_start()
864 parse->has_fps = FALSE; in gst_jpeg_parse_start()
866 parse->width = parse->height = 0; in gst_jpeg_parse_start()
867 parse->framerate_numerator = 0; in gst_jpeg_parse_start()
868 parse->framerate_denominator = 1; in gst_jpeg_parse_start()
870 parse->caps_framerate_numerator = parse->caps_framerate_denominator = 0; in gst_jpeg_parse_start()
871 parse->caps_width = parse->caps_height = -1; in gst_jpeg_parse_start()
873 parse->next_ts = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_start()
874 parse->duration = GST_CLOCK_TIME_NONE; in gst_jpeg_parse_start()
876 parse->last_offset = 0; in gst_jpeg_parse_start()
877 parse->last_entropy_len = 0; in gst_jpeg_parse_start()
878 parse->last_resync = FALSE; in gst_jpeg_parse_start()
880 parse->tags = NULL; in gst_jpeg_parse_start()
888 GstJpegParse *parse; in gst_jpeg_parse_stop() local
890 parse = GST_JPEG_PARSE_CAST (bparse); in gst_jpeg_parse_stop()
892 if (parse->tags) { in gst_jpeg_parse_stop()
893 gst_tag_list_unref (parse->tags); in gst_jpeg_parse_stop()
894 parse->tags = NULL; in gst_jpeg_parse_stop()