1. 13 May, 2009 9 commits
    • Sebastian Dröge's avatar
      Moved 'deinterlace2' from -bad to -good · 43445935
      Sebastian Dröge authored
      And rename it to deinterlace.
      43445935
    • Sebastian Dröge's avatar
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 48/56] deinterlace2: Move output buffer from the instance... · 8020c875
      Sebastian Dröge authored
      [MOVED FROM BAD 48/56] deinterlace2: Move output buffer from the instance struct to a function parameter
      8020c875
    • Jan Schmidt's avatar
      [MOVED FROM BAD 42/56] gst/dccp/: Fix compilation on Solaris by including filio.h as needed. · 9f5220d4
      Jan Schmidt authored
      Original commit message from CVS:
      * gst/dccp/gstdccp.c:
      * gst/dccp/gstdccpclientsrc.c:
      Fix compilation on Solaris by including filio.h as needed.
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
      Fix compilation with Forte - apparently it hates concatenating a
      macro argument that starts with an underscore??
      9f5220d4
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 40/56] gst/deinterlace2/: First part of the C implementation... · 01b5f8ed
      Sebastian Dröge authored
      [MOVED FROM BAD 40/56] gst/deinterlace2/: First part of the C implementation of the tomsmocomp deinterlacing algorithm. This only supports s...
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace_method_class_init):
      * gst/deinterlace2/gstdeinterlace2.h:
      * gst/deinterlace2/tvtime/tomsmocomp.c:
      (gst_deinterlace_method_tomsmocomp_class_init):
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
      First part of the C implementation of the tomsmocomp deinterlacing
      algorithm. This only supports search-effort=0 currently, is painfully
      slow and needs some cleanup later when all search-effort settings
      are implemented in C.
      01b5f8ed
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 28/56] gst/deinterlace2/tvtime/: Some cleanup, use 3DNOW... · 868975cf
      Sebastian Dröge authored
      [MOVED FROM BAD 28/56] gst/deinterlace2/tvtime/: Some cleanup, use 3DNOW instead of TDNOW in macros.
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedyh.asm:
      * gst/deinterlace2/tvtime/greedyh.c:
      * gst/deinterlace2/tvtime/greedyhmacros.h:
      Some cleanup, use 3DNOW instead of TDNOW in macros.
      * gst/deinterlace2/tvtime/tomsmocomp.c:
      (gst_deinterlace_method_tomsmocomp_class_init):
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
      The SSE method in fact only needs MMXEXT, declare it as such.
      868975cf
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 23/56] gst/deinterlace2/: Use a GstObject subtype for the... · fb7f06ad
      Sebastian Dröge authored
      [MOVED FROM BAD 23/56] gst/deinterlace2/: Use a GstObject subtype for the deinterlacing methods and export the different settings for each d...
      
      Original commit message from CVS:
      * gst/deinterlace2/Makefile.am:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace_method_class_init), (gst_deinterlace_method_init),
      (gst_deinterlace_method_deinterlace_frame),
      (gst_deinterlace_method_get_fields_required),
      (gst_deinterlace2_methods_get_type), (_do_init),
      (gst_deinterlace2_set_method), (gst_deinterlace2_class_init),
      (gst_deinterlace2_child_proxy_get_child_by_index),
      (gst_deinterlace2_child_proxy_get_children_count),
      (gst_deinterlace2_child_proxy_interface_init),
      (gst_deinterlace2_init), (gst_deinterlace2_finalize),
      (gst_deinterlace2_chain), (gst_deinterlace2_src_query):
      * gst/deinterlace2/gstdeinterlace2.h:
      * gst/deinterlace2/tvtime/greedy.c:
      (deinterlace_greedy_packed422_scanline_c),
      (deinterlace_greedy_packed422_scanline_mmx),
      (deinterlace_greedy_packed422_scanline_mmxext),
      (deinterlace_frame_di_greedy),
      (gst_deinterlace_method_greedy_l_set_property),
      (gst_deinterlace_method_greedy_l_get_property),
      (gst_deinterlace_method_greedy_l_class_init),
      (gst_deinterlace_method_greedy_l_init):
      * gst/deinterlace2/tvtime/greedyh.asm:
      * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C),
      (deinterlace_frame_di_greedyh),
      (gst_deinterlace_method_greedy_h_set_property),
      (gst_deinterlace_method_greedy_h_get_property),
      (gst_deinterlace_method_greedy_h_class_init),
      (gst_deinterlace_method_greedy_h_init):
      * gst/deinterlace2/tvtime/greedyh.h:
      * gst/deinterlace2/tvtime/plugins.h:
      * gst/deinterlace2/tvtime/tomsmocomp.c:
      (gst_deinterlace_method_tomsmocomp_set_property),
      (gst_deinterlace_method_tomsmocomp_get_property),
      (gst_deinterlace_method_tomsmocomp_class_init),
      (gst_deinterlace_method_tomsmocomp_init):
      * gst/deinterlace2/tvtime/tomsmocomp.h:
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
      * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir),
      (gst_deinterlace_method_vfir_class_init),
      (gst_deinterlace_method_vfir_init):
      Use a GstObject subtype for the deinterlacing methods and export
      the different settings for each deinterlacing method via GObject
      properties.
      Implement GstChildProxy interface to allow access to the used
      deinterlacing method and to allow adjusting the different settings.
      Move global variables of the tomsmocomp deinterlacing method into
      function local variables to make it possible to use this deinterlacing
      method from different instances.
      fb7f06ad
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 19/56] gst/deinterlace2/: Get rid of speedy.[ch] as we don't... · b65e20f3
      Sebastian Dröge authored
      [MOVED FROM BAD 19/56] gst/deinterlace2/: Get rid of speedy.[ch] as we don't use most of it's code anyway and it doesn't seem to be relicens...
      
      Original commit message from CVS:
      * gst/deinterlace2/Makefile.am:
      * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_init):
      * gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy):
      * gst/deinterlace2/tvtime/greedyh.c:
      (deinterlace_frame_di_greedyh):
      * gst/deinterlace2/tvtime/speedtools.h:
      * gst/deinterlace2/tvtime/speedy.c:
      * gst/deinterlace2/tvtime/speedy.h:
      * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy):
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
      * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir):
      Get rid of speedy.[ch] as we don't use most of it's code anyway
      and it doesn't seem to be relicensed to LGPL. Use memcpy() instead
      of the speedy memcpy everywhere instead.
      * gst/deinterlace2/gstdeinterlace2.h:
      Remove many unused declarations.
      b65e20f3
    • Martin Eikermann's avatar
      [MOVED FROM BAD 02/56] gst/deinterlace2/: Add a deinterlacer plugin based on... · 5799a933
      Martin Eikermann authored
      [MOVED FROM BAD 02/56] gst/deinterlace2/: Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer, which was relicensed to LGPL f...
      
      Original commit message from CVS:
      Based on a patch by: Martin Eikermann <meiker at upb dot de>
      * gst/deinterlace2/Makefile.am:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace2_method_get_type),
      (gst_deinterlace2_fields_get_type),
      (gst_deinterlace2_field_layout_get_type),
      (gst_deinterlace2_base_init), (gst_deinterlace2_class_init),
      (gst_deinterlace2_init), (gst_deinterlace2_set_method),
      (gst_deinterlace2_set_property), (gst_deinterlace2_get_property),
      (gst_deinterlace2_finalize), (gst_deinterlace2_pop_history),
      (gst_deinterlace2_head_history), (gst_deinterlace2_push_history),
      (gst_deinterlace2_deinterlace_scanlines), (gst_deinterlace2_chain),
      (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
      (gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
      (gst_deinterlace2_src_query), (gst_deinterlace2_src_query_types),
      (plugin_init):
      * gst/deinterlace2/gstdeinterlace2.h:
      * gst/deinterlace2/tvtime/greedy.c: (copy_scanline),
      (deinterlace_greedy_packed422_scanline_mmxext),
      (dscaler_greedyl_get_method):
      * gst/deinterlace2/tvtime/greedyh.asm:
      * gst/deinterlace2/tvtime/greedyh.c:
      (deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method),
      (greedyh_init), (greedyh_filter_mmx), (greedyh_filter_3dnow),
      (greedyh_filter_sse):
      * gst/deinterlace2/tvtime/greedyh.h:
      * gst/deinterlace2/tvtime/greedyhmacros.h:
      * gst/deinterlace2/tvtime/mmx.h:
      * gst/deinterlace2/tvtime/plugins.h:
      * gst/deinterlace2/tvtime/speedtools.h:
      * gst/deinterlace2/tvtime/speedy.c: (multiply_alpha), (clip255),
      (comb_factor_packed422_scanline_mmx),
      (diff_factor_packed422_scanline_c),
      (diff_factor_packed422_scanline_mmx),
      (diff_packed422_block8x8_mmx), (diff_packed422_block8x8_c),
      (packed444_to_packed422_scanline_c),
      (packed422_to_packed444_scanline_c),
      (packed422_to_packed444_rec601_scanline_c),
      (vfilter_chroma_121_packed422_scanline_mmx),
      (vfilter_chroma_121_packed422_scanline_c),
      (vfilter_chroma_332_packed422_scanline_mmx),
      (vfilter_chroma_332_packed422_scanline_c),
      (kill_chroma_packed422_inplace_scanline_mmx),
      (kill_chroma_packed422_inplace_scanline_c),
      (invert_colour_packed422_inplace_scanline_mmx),
      (invert_colour_packed422_inplace_scanline_c),
      (mirror_packed422_inplace_scanline_c),
      (interpolate_packed422_scanline_c),
      (convert_uyvy_to_yuyv_scanline_mmx),
      (convert_uyvy_to_yuyv_scanline_c),
      (interpolate_packed422_scanline_mmx),
      (interpolate_packed422_scanline_mmxext),
      (blit_colour_packed422_scanline_c),
      (blit_colour_packed422_scanline_mmx),
      (blit_colour_packed422_scanline_mmxext),
      (blit_colour_packed4444_scanline_c),
      (blit_colour_packed4444_scanline_mmx),
      (blit_colour_packed4444_scanline_mmxext), (small_memcpy),
      (speedy_memcpy_c), (speedy_memcpy_mmx), (speedy_memcpy_mmxext),
      (blit_packed422_scanline_c), (blit_packed422_scanline_mmx),
      (blit_packed422_scanline_mmxext),
      (composite_colour4444_alpha_to_packed422_scanline_c),
      (composite_colour4444_alpha_to_packed422_scanline_mmxext),
      (composite_packed4444_alpha_to_packed422_scanline_c),
      (composite_packed4444_alpha_to_packed422_scanline_mmxext),
      (composite_packed4444_to_packed422_scanline_c),
      (composite_packed4444_to_packed422_scanline_mmxext),
      (composite_alphamask_to_packed4444_scanline_c),
      (composite_alphamask_to_packed4444_scanline_mmxext),
      (composite_alphamask_alpha_to_packed4444_scanline_c),
      (premultiply_packed4444_scanline_c),
      (premultiply_packed4444_scanline_mmxext),
      (blend_packed422_scanline_c), (blend_packed422_scanline_mmxext),
      (quarter_blit_vertical_packed422_scanline_mmxext),
      (quarter_blit_vertical_packed422_scanline_c),
      (subpix_blit_vertical_packed422_scanline_c),
      (a8_subpix_blit_scanline_c), (myround), (init_RGB_to_YCbCr_tables),
      (init_YCbCr_to_RGB_tables), (rgb24_to_packed444_rec601_scanline_c),
      (rgba32_to_packed4444_rec601_scanline_c),
      (packed444_to_rgb24_rec601_scanline_c),
      (packed444_to_nonpremultiplied_packed4444_scanline_c),
      (aspect_adjust_packed4444_scanline_c), (setup_speedy_calls),
      (speedy_get_accel):
      * gst/deinterlace2/tvtime/speedy.h:
      * gst/deinterlace2/tvtime/sse.h:
      * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy),
      (deinterlace_frame_di_tomsmocomp), (dscaler_tomsmocomp_get_method),
      (tomsmocomp_init), (tomsmocomp_filter_mmx),
      (tomsmocomp_filter_3dnow), (tomsmocomp_filter_sse):
      * gst/deinterlace2/tvtime/tomsmocomp.h:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoop0A.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA8.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA2.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA6.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH2.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVA.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVAH.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
      * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line),
      (deinterlace_scanline_vfir), (copy_scanline),
      (dscaler_vfir_get_method):
      * gst/deinterlace2/tvtime/x86-64_macros.inc:
      Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer,
      which was relicensed to LGPL for GStreamer and in theory provides
      better and faster results than the simple deinterlace element.
      Fixes bug #163578.
      Ported to GStreamer 0.10 but still not enabled or included in the
      build system by default because of bad artefacts caused by a bug
      somewhere and as it can be only build on x86/amd64 ATM and requires
      special CFLAGS. Will be fixed soon.
      5799a933