1. 13 May, 2009 40 commits
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 41/56] gst/deinterlace2/tvtime/tomsmocomp/: Unroll the loop to... · 4b0fab49
      Sebastian Dröge authored
      [MOVED FROM BAD 41/56] gst/deinterlace2/tvtime/tomsmocomp/: Unroll the loop to handle two bytes at once. This should give a small speedup an...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc:
      * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc:
      Unroll the loop to handle two bytes at once. This should give
      a small speedup and makes it possible to handle chroma and luma
      different which is needed later.
      4b0fab49
    • 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 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 38/56] gst/deinterlace2/: Add the remaining tvtime... · 71185cf5
      Sebastian Dröge authored
      [MOVED FROM BAD 38/56] gst/deinterlace2/: Add the remaining tvtime deinterlacing methods and fix the deinterlace_frame() implementation of G...
      
      Original commit message from CVS:
      * gst/deinterlace2/Makefile.am:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace_simple_method_deinterlace_frame),
      (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method):
      * gst/deinterlace2/gstdeinterlace2.h:
      * gst/deinterlace2/tvtime/linear.c:
      (deinterlace_scanline_linear_c), (deinterlace_scanline_linear_mmx),
      (deinterlace_scanline_linear_mmxext),
      (gst_deinterlace_method_linear_class_init),
      (gst_deinterlace_method_linear_init):
      * gst/deinterlace2/tvtime/linearblend.c:
      (deinterlace_scanline_linear_blend_c),
      (deinterlace_scanline_linear_blend2_c),
      (deinterlace_scanline_linear_blend_mmx),
      (deinterlace_scanline_linear_blend2_mmx),
      (gst_deinterlace_method_linear_blend_class_init),
      (gst_deinterlace_method_linear_blend_init):
      * gst/deinterlace2/tvtime/plugins.h:
      * gst/deinterlace2/tvtime/scalerbob.c:
      (deinterlace_scanline_scaler_bob),
      (gst_deinterlace_method_scaler_bob_class_init),
      (gst_deinterlace_method_scaler_bob_init):
      * gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave),
      (copy_scanline), (gst_deinterlace_method_weave_class_init),
      (gst_deinterlace_method_weave_init):
      * gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave),
      (copy_scanline), (gst_deinterlace_method_weave_bff_class_init),
      (gst_deinterlace_method_weave_bff_init):
      * gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave),
      (copy_scanline), (gst_deinterlace_method_weave_tff_class_init),
      (gst_deinterlace_method_weave_tff_init):
      Add the remaining tvtime deinterlacing methods and fix the
      deinterlace_frame() implementation of GstDeinterlaceSimpleMethod.
      71185cf5
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 37/56] gst/deinterlace2/tvtime/vfir.c: Implement the VFIR... · fe3f7b74
      Sebastian Dröge authored
      [MOVED FROM BAD 37/56] gst/deinterlace2/tvtime/vfir.c: Implement the VFIR deinterlacing method as simple method.
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
      (deinterlace_line_mmx), (gst_deinterlace_method_vfir_class_init):
      Implement the VFIR deinterlacing method as simple method.
      fe3f7b74
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 36/56] gst/deinterlace2/gstdeinterlace2.*: Add a... · 2403fa4e
      Sebastian Dröge authored
      [MOVED FROM BAD 36/56] gst/deinterlace2/gstdeinterlace2.*: Add a GstDeinterlaceSimpleMethod subclass of GstDeinterlaceMethod that can be use...
      
      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_deinterlace_simple_method_class_init),
      (gst_deinterlace_simple_method_init):
      * gst/deinterlace2/gstdeinterlace2.h:
      Add a GstDeinterlaceSimpleMethod subclass of GstDeinterlaceMethod that
      can be used by simple deinterlacing methods. They only have to provide
      a function for interpolating a scanline or copying a scanline.
      2403fa4e
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 35/56] gst/deinterlace2/gstdeinterlace2.c: Respect the latency... · 720506a4
      Sebastian Dröge authored
      [MOVED FROM BAD 35/56] gst/deinterlace2/gstdeinterlace2.c: Respect the latency of the deinterlacing algorithm for the timestamps of every bu...
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_chain):
      Respect the latency of the deinterlacing algorithm for the timestamps
      of every buffer.
      720506a4
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 34/56] gst/deinterlace2/tvtime/: Add the MMX registers to the... · fba3f4d3
      Sebastian Dröge authored
      [MOVED FROM BAD 34/56] gst/deinterlace2/tvtime/: Add the MMX registers to the clobbered registers only if __MMX__ is defined.
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedyh.asm:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
      Add the MMX registers to the clobbered registers only if __MMX__ is
      defined.
      fba3f4d3
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 33/56] gst/deinterlace2/: Enable tomsmocomp again as the C... · 95d12cbc
      Sebastian Dröge authored
      [MOVED FROM BAD 33/56] gst/deinterlace2/: Enable tomsmocomp again as the C port will be ready for the next release.
      
      Original commit message from CVS:
      * gst/deinterlace2/Makefile.am:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method),
      (gst_deinterlace2_class_init):
      Enable tomsmocomp again as the C port will be ready for the next
      release.
      95d12cbc
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 32/56] gst/deinterlace2/gstdeinterlace2.c: Don't use... · 060ba0ed
      Sebastian Dröge authored
      [MOVED FROM BAD 32/56] gst/deinterlace2/gstdeinterlace2.c: Don't use proxy_getcaps() but implement our own getcaps() function that doubles/h...
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_init),
      (gst_greatest_common_divisor), (gst_fraction_double),
      (gst_deinterlace2_getcaps), (gst_deinterlace2_setcaps):
      Don't use proxy_getcaps() but implement our own getcaps() function
      that doubles/halfs the framerate if all fields should be sent out.
      060ba0ed
    • 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 29/56] gst/deinterlace2/tvtime/greedyh.asm: Always use the C... · 239face7
      Sebastian Dröge authored
      [MOVED FROM BAD 29/56] gst/deinterlace2/tvtime/greedyh.asm: Always use the C implementation if width is not a multiple of 4. The assembly op...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedyh.asm:
      Always use the C implementation if width is not a multiple of 4. The
      assembly optimized version only handle this and calling the C
      implementation for the remaining part doesn't work because it needs
      previous calculations.
      239face7
    • 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 27/56] Don't use declarations after statements in the remaining code. · 311a1d2c
      Sebastian Dröge authored
      Original commit message from CVS:
      * ext/spc/gstspc.c: (spc_setup):
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc:
      Don't use declarations after statements in the remaining code.
      311a1d2c
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 26/56] gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:... · e6c4d268
      Sebastian Dröge authored
      [MOVED FROM BAD 26/56] gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: Mark internal processing functions as static inline for quite ...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc:
      Mark internal processing functions as static inline for quite some
      speedup as they're used only once and need to get many local variables
      passed as parameter.
      e6c4d268
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 25/56] gst/deinterlace2/gstdeinterlace2.*: Call the current... · 0b3fb303
      Sebastian Dröge authored
      [MOVED FROM BAD 25/56] gst/deinterlace2/gstdeinterlace2.*: Call the current instance "self" instead of "object".
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace_method_deinterlace_frame),
      (gst_deinterlace2_set_method), (gst_deinterlace2_init),
      (gst_deinterlace2_reset_history), (gst_deinterlace2_reset),
      (gst_deinterlace2_set_property), (gst_deinterlace2_get_property),
      (gst_deinterlace2_pop_history), (gst_deinterlace2_head_history),
      (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):
      * gst/deinterlace2/gstdeinterlace2.h:
      Call the current instance "self" instead of "object".
      0b3fb303
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 24/56] gst/deinterlace2/gstdeinterlace2.*: Include latency of... · 0b9cd418
      Sebastian Dröge authored
      [MOVED FROM BAD 24/56] gst/deinterlace2/gstdeinterlace2.*: Include latency of the method in the returned latency.
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace_method_get_latency),
      (gst_deinterlace2_set_method), (gst_deinterlace2_class_init),
      (gst_deinterlace2_push_history), (gst_deinterlace2_chain),
      (gst_deinterlace2_setcaps), (gst_deinterlace2_src_query):
      * gst/deinterlace2/gstdeinterlace2.h:
      Include latency of the method in the returned latency.
      Fix outputting of all fields, i.e. doubling of the framerate.
      0b9cd418
    • 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 22/56] gst/deinterlace2/tvtime/greedyh.asm: Support widths... · e5231e56
      Sebastian Dröge authored
      [MOVED FROM BAD 22/56] gst/deinterlace2/tvtime/greedyh.asm: Support widths that are not a multiply of 4 when using the assembly optimized gr...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedyh.asm:
      Support widths that are not a multiply of 4 when using the assembly
      optimized greedyh implementations.
      e5231e56
    • 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 18/56] gst/deinterlace2/gstdeinterlace2.c: Divide latency be 2... · 8f588978
      Sebastian Dröge authored
      [MOVED FROM BAD 18/56] gst/deinterlace2/gstdeinterlace2.c: Divide latency be 2 to convert from fields to frames.
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_src_query):
      Divide latency be 2 to convert from fields to frames.
      8f588978
    • 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
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 15/56] gst/deinterlace2/gstdeinterlace2.c: If we're outputting... · 07f408a3
      Sebastian Dröge authored
      [MOVED FROM BAD 15/56] gst/deinterlace2/gstdeinterlace2.c: If we're outputting all fields the framerate has to be doubled.
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace2_set_property), (gst_deinterlace2_chain),
      (gst_deinterlace2_setcaps):
      If we're outputting all fields the framerate has to be doubled.
      Set duration on the outgoing buffers.
      07f408a3
    • Edward Hervey's avatar
      [MOVED FROM BAD 14/56] gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:... · 75bb2fcb
      Edward Hervey authored
      [MOVED FROM BAD 14/56] gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: Remove unneeded macros that break build on macosx.
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
      Remove unneeded macros that break build on macosx.
      75bb2fcb
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 13/56] gst/deinterlace2/tvtime/greedy.c: Optimize MMX/MMXEXT... · 229f6a37
      Sebastian Dröge authored
      [MOVED FROM BAD 13/56] gst/deinterlace2/tvtime/greedy.c: Optimize MMX/MMXEXT implementations a bit by requiring two less memory accesses and...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedy.c:
      (deinterlace_greedy_packed422_scanline_mmx),
      (deinterlace_greedy_packed422_scanline_mmxext):
      Optimize MMX/MMXEXT implementations a bit by requiring two less
      memory accesses and fix the workaround for the missing right shift
      on bytes to unset the highest bit of every byte.
      229f6a37
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 12/56] gst/deinterlace2/tvtime/greedy.c: Remove sfence... · 72f7b157
      Sebastian Dröge authored
      [MOVED FROM BAD 12/56] gst/deinterlace2/tvtime/greedy.c: Remove sfence instruction as it's not needed and actually is an SSE instruction.
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedy.c:
      (deinterlace_greedy_packed422_scanline_mmxext):
      Remove sfence instruction as it's not needed and actually is an SSE
      instruction.
      72f7b157
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 11/56] gst/deinterlace2/tvtime/greedy.c: Add plain MMX... · df1798dd
      Sebastian Dröge authored
      [MOVED FROM BAD 11/56] gst/deinterlace2/tvtime/greedy.c: Add plain MMX implementation for the greedyl method.
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedy.c:
      (deinterlace_greedy_packed422_scanline_mmx),
      (deinterlace_greedy_packed422_scanline):
      Add plain MMX implementation for the greedyl method.
      df1798dd
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 10/56] gst/deinterlace2/Makefile.am: Move the assembly... · bd35b535
      Sebastian Dröge authored
      [MOVED FROM BAD 10/56] gst/deinterlace2/Makefile.am: Move the assembly includes to noinst_HEADERS where they belong.
      
      Original commit message from CVS:
      * gst/deinterlace2/Makefile.am:
      Move the assembly includes to noinst_HEADERS where they belong.
      * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
      (deinterlace_line_mmx):
      Fix C and MMX implementations a bit more.
      bd35b535
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 09/56] gst/deinterlace2/tvtime/greedy.c: Fix the C... · 1916a3b0
      Sebastian Dröge authored
      [MOVED FROM BAD 09/56] gst/deinterlace2/tvtime/greedy.c: Fix the C implementation to produce correct results and optimize the
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedy.c:
      (deinterlace_greedy_packed422_scanline_c),
      (deinterlace_greedy_packed422_scanline_mmxext),
      (deinterlace_greedy_packed422_scanline):
      Fix the C implementation to produce correct results and optimize the
      MMXEXT implementation.
      Handle odd widths and don't read over array boundaries in the MMXEXT
      implementation.
      * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c),
      (deinterlace_line_mmx), (deinterlace_scanline_vfir):
      Fix a small rounding bug in the MMX implementation, the MMX
      implementation doesn't actually need MMXEXT instructions so don't mark
      it as such.
      Handle odd widths in both implementations.
      1916a3b0
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 08/56] gst/deinterlace2/tvtime/greedy.c: Implement a C version... · 98eddc85
      Sebastian Dröge authored
      [MOVED FROM BAD 08/56] gst/deinterlace2/tvtime/greedy.c: Implement a C version of the greedy low motion algorithm and mark the assembly opti...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/greedy.c:
      (deinterlace_greedy_packed422_scanline_sse),
      (deinterlace_greedy_packed422_scanline_c),
      (deinterlace_greedy_packed422_scanline):
      Implement a C version of the greedy low motion algorithm and mark the
      assembly optimized version as SSE as it uses SSE instructions
      additional to MMX instructions.
      98eddc85
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 07/56] gst/deinterlace2/tvtime/vfir.c: Make it possible to use... · 6cc147c5
      Sebastian Dröge authored
      [MOVED FROM BAD 07/56] gst/deinterlace2/tvtime/vfir.c: Make it possible to use the vfir method on X86 CPUs without MMXEXT too but use the MM...
      
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_mmxext),
      (deinterlace_line_c), (deinterlace_scanline_vfir):
      Make it possible to use the vfir method on X86 CPUs without MMXEXT too
      but use the MMXEXT optimized code whenever possible.
      6cc147c5
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 06/56] gst/deinterlace2/gstdeinterlace2.*: Reset element state... · e094cde9
      Sebastian Dröge authored
      [MOVED FROM BAD 06/56] gst/deinterlace2/gstdeinterlace2.*: Reset element state on PAUSED->READY properly, don't leak any buffers when finali...
      
      Original commit message from CVS:
      * gst/deinterlace2/gstdeinterlace2.c:
      (gst_deinterlace2_class_init), (gst_deinterlace2_init),
      (gst_deinterlace2_reset_history), (gst_deinterlace2_reset),
      (gst_deinterlace2_finalize), (gst_deinterlace2_chain),
      (gst_deinterlace2_sink_event), (gst_deinterlace2_change_state),
      (gst_deinterlace2_src_query):
      * gst/deinterlace2/gstdeinterlace2.h:
      Reset element state on PAUSED->READY properly, don't leak any buffers
      when finalizing, allocate buffers with gst_pad_alloc_buffer() and
      properly return flow returns from gst_pad_push() instead of ignoring them.
      e094cde9
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 05/56] gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: Add missing header. · 478f1705
      Sebastian Dröge authored
      Original commit message from CVS:
      * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
      Add missing header.
      478f1705
    • Sebastian Dröge's avatar
      [MOVED FROM BAD 04/56] Fix compilation on generic x86/amd64 and include... · 8a90334f
      Sebastian Dröge authored
      [MOVED FROM BAD 04/56] Fix compilation on generic x86/amd64 and include deinterlace2 in the build system. Because of several bugs it's still...
      
      Original commit message from CVS:
      * configure.ac:
      * gst/deinterlace2/Makefile.am:
      * gst/deinterlace2/tvtime/greedyh.asm:
      * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc:
      Fix compilation on generic x86/amd64 and include deinterlace2 in the
      build system. Because of several bugs it's still enabled only
      by --enable-experimental.
      8a90334f
    • Stefan Kost's avatar
      [MOVED FROM BAD 03/56] Fix gtk-doc warnings. Also don't misuse api-doc... · 9082a429
      Stefan Kost authored
      [MOVED FROM BAD 03/56] Fix gtk-doc warnings. Also don't misuse api-doc comments for normal comments.
      
      Original commit message from CVS:
      * docs/plugins/gst-plugins-bad-plugins-sections.txt:
      * examples/app/appsrc-ra.c:
      * examples/app/appsrc-seekable.c:
      * examples/app/appsrc-stream.c:
      * examples/app/appsrc-stream2.c:
      * ext/directfb/dfbvideosink.h:
      * ext/metadata/gstbasemetadata.c:
      * ext/metadata/gstbasemetadata.h:
      * ext/metadata/metadata.c:
      * ext/metadata/metadataexif.c:
      * ext/theora/theoradec.h:
      * gst/deinterlace2/gstdeinterlace2.h:
      * gst/deinterlace2/tvtime/speedy.c:
      * gst/deinterlace2/tvtime/speedy.h:
      * gst/deinterlace2/tvtime/vfir.c:
      Fix gtk-doc warnings. Also don't misuse api-doc comments for normal
      comments.
      9082a429
    • 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