1. 13 May, 2009 14 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
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 39/56] gst/deinterlace2/: Use oil_memcpy() instead of memcpy()... · 50e0bceb
      Sebastian Dröge authored
      [MOVED FROM BAD 39/56] gst/deinterlace2/: Use oil_memcpy() instead of memcpy() as it's faster for the sizes that are usually used here.
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace_simple_method_interpolate_scanline),
      (gst_deinterlace_simple_method_copy_scanline),
      (gst_deinterlace_simple_method_deinterlace_frame):
      * gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy):
      * gst/deinterlace2/tvtime/greedyh.c:
      (deinterlace_frame_di_greedyh):
      * gst/deinterlace2/tvtime/scalerbob.c:
      (deinterlace_scanline_scaler_bob):
      * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy):
      * gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave),
      (copy_scanline):
      * gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave),
      (copy_scanline):
      * gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave),
      (copy_scanline):
      Use oil_memcpy() instead of memcpy() as it's faster for the sizes that
      are usually used here.
      50e0bceb
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 31/56] Disable the tomsmocomp algorithm for this release as... · fdd3d272
      Sebastian Dröge authored
      [MOVED FROM BAD 31/56] Disable the tomsmocomp algorithm for this release as it's buggy and has no C implementation yet.
      
      Original commit message from CVS:
      * configure.ac:
      * gst/deinterlace2/Makefile.am:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method),
      (gst_deinterlace2_class_init), (gst_deinterlace2_init):
      * gst/deinterlace2/gstdeinterlace2.h:
      * gst/deinterlace2/tvtime/greedy.c:
      (gst_deinterlace_method_greedy_l_class_init):
      * gst/deinterlace2/tvtime/greedyh.c:
      (gst_deinterlace_method_greedy_h_class_init):
      * gst/deinterlace2/tvtime/vfir.c:
      (gst_deinterlace_method_vfir_class_init):
      Disable the tomsmocomp algorithm for this release as it's buggy
      and has no C implementation yet.
      Build the deinterlace2 plugin on all architectures but still mark it
      as experimental.
      Build the x86 inline assembly only if GCC inline assembly is supported
      and only on x86 or amd64. Fixes bug #543286.
      fdd3d272
    • Edward Hervey's avatar
      [MOVED FROM BAD 30/56] gst/deinterlace2/tvtime/: Fix build on x86_64 · 74aedd07
      Edward Hervey authored
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedy.c:
      (gst_deinterlace_method_greedy_l_class_init):
      * gst/deinterlace2/tvtime/greedyh.c:
      (gst_deinterlace_method_greedy_h_class_init):
      * gst/deinterlace2/tvtime/vfir.c:
      (gst_deinterlace_method_vfir_class_init):
      Fix build on x86_64
      74aedd07
    • 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 21/56] gst/deinterlace2/tvtime/greedyh.c: Only build the... · fe02b124
      Sebastian Dröge authored
      [MOVED FROM BAD 21/56] gst/deinterlace2/tvtime/greedyh.c: Only build the assembly optimized implementations on x86.
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedyh.c:
      (deinterlace_frame_di_greedyh):
      Only build the assembly optimized implementations on x86.
      fe02b124
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 20/56] gst/deinterlace2/: Remove useless file and mark... · edf1f9b4
      Sebastian Dröge authored
      [MOVED FROM BAD 20/56] gst/deinterlace2/: Remove useless file and mark everything possible as static.
      
      Original commit message from CVS:
      * gst/deinterlace2/Makefile.am:
      * gst/deinterlace2/tvtime/tomsmocomp.c: (tomsmocomp_init),
      (tomsmocomp_filter_mmx), (tomsmocomp_filter_3dnow),
      (tomsmocomp_filter_sse), (deinterlace_frame_di_tomsmocomp):
      * gst/deinterlace2/tvtime/tomsmocomp.h:
      Remove useless file and mark everything possible as static.
      * gst/deinterlace2/tvtime/greedy.c:
      * gst/deinterlace2/tvtime/greedyh.c:
      Use "_stdint.h" instead of <stdint.h>.
      edf1f9b4
    • 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
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 17/56] gst/deinterlace2/tvtime/greedy.c: Don't use scanlines... · ee8327b9
      Sebastian Dröge authored
      [MOVED FROM BAD 17/56] gst/deinterlace2/tvtime/greedy.c: Don't use scanlines function from gstdeinterlace2 as it's not appropiate for this m...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedy.c:
      (deinterlace_greedy_packed422_scanline_c),
      (deinterlace_greedy_packed422_scanline_mmx),
      (deinterlace_greedy_packed422_scanline_mmxext),
      (deinterlace_frame_di_greedy):
      Don't use scanlines function from gstdeinterlace2 as it's
      not appropiate for this method. Instead implement deinterlace_frame
      function by taking the one from greedyh.
      * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C):
      Small fix for the C implementation.
      * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir):
      Don't use the scanlines function from gstdeinterlace2 as it's only
      used for this method and will be removed. Instead implement
      deinterlace_frame function and make it a bit more efficient.
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace2_class_init), (gst_deinterlace2_set_method),
      (gst_deinterlace2_push_history), (gst_deinterlace2_chain),
      (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event),
      (gst_deinterlace2_change_state), (gst_deinterlace2_src_event),
      (gst_deinterlace2_src_query):
      Fix coding style and remove scanlines function as it's unused now.
      ee8327b9
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 16/56] gst/deinterlace2/tvtime/: Add a C implementation for... · 57dd0e85
      Sebastian Dröge authored
      [MOVED FROM BAD 16/56] gst/deinterlace2/tvtime/: Add a C implementation for the greedyh deinterlacing method, clean up the code a bit and ma...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedyh.asm:
      * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C),
      (deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method):
      * gst/deinterlace2/tvtime/greedyhmacros.h:
      Add a C implementation for the greedyh deinterlacing method, clean
      up the code a bit and mark the SSE version as MMXEXT as it doesn't
      require any SSE instructions.
      57dd0e85
    • Martin Eikermann's avatar
      [MOVED FROM BAD 01/56] gst/deinterlace2/: Add a deinterlacer plugin based on... · 0518c150
      Martin Eikermann authored
      [MOVED FROM BAD 01/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.
      0518c150