Commit graph

2743 commits

Author SHA1 Message Date
Sebastian Dröge
fba3f4d3f2 [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.
2009-05-13 10:34:00 +02:00
Sebastian Dröge
95d12cbca9 [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.
2009-05-13 10:34:00 +02:00
Sebastian Dröge
060ba0ede1 [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.
2009-05-13 10:34:00 +02:00
Sebastian Dröge
fdd3d27274 [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.
2009-05-13 10:34:00 +02:00
Edward Hervey
74aedd0723 [MOVED FROM BAD 30/56] gst/deinterlace2/tvtime/: Fix build on x86_64
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
2009-05-13 10:34:00 +02:00
Sebastian Dröge
239face769 [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.
2009-05-13 10:34:00 +02:00
Sebastian Dröge
868975cfac [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.
2009-05-13 10:34:00 +02:00
Sebastian Dröge
311a1d2cd3 [MOVED FROM BAD 27/56] Don't use declarations after statements in the remaining code.
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.
2009-05-13 10:33:59 +02:00
Sebastian Dröge
e6c4d268fa [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.
2009-05-13 10:33:59 +02:00
Sebastian Dröge
0b3fb30381 [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".
2009-05-13 10:33:59 +02:00
Sebastian Dröge
0b9cd418b3 [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.
2009-05-13 10:33:59 +02:00
Sebastian Dröge
fb7f06ad04 [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.
2009-05-13 10:33:59 +02:00
Sebastian Dröge
e5231e5641 [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.
2009-05-13 10:33:58 +02:00
Sebastian Dröge
fe02b1242c [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.
2009-05-13 10:33:58 +02:00
Sebastian Dröge
edf1f9b4a3 [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>.
2009-05-13 10:33:58 +02:00
Sebastian Dröge
b65e20f305 [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.
2009-05-13 10:33:58 +02:00
Sebastian Dröge
8f588978a0 [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.
2009-05-13 10:33:58 +02:00
Sebastian Dröge
ee8327b925 [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.
2009-05-13 10:33:58 +02:00
Sebastian Dröge
57dd0e85d1 [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.
2009-05-13 10:33:58 +02:00
Sebastian Dröge
07f408a3ea [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.
2009-05-13 10:33:57 +02:00
Edward Hervey
75bb2fcba8 [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.
2009-05-13 10:33:57 +02:00
Sebastian Dröge
229f6a379b [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.
2009-05-13 10:33:57 +02:00
Sebastian Dröge
72f7b15739 [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.
2009-05-13 10:33:57 +02:00
Sebastian Dröge
df1798ddf9 [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.
2009-05-13 10:33:57 +02:00
Sebastian Dröge
bd35b53558 [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.
2009-05-13 10:33:56 +02:00
Sebastian Dröge
1916a3b075 [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.
2009-05-13 10:33:56 +02:00
Sebastian Dröge
98eddc859f [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.
2009-05-13 10:33:56 +02:00
Sebastian Dröge
6cc147c5d9 [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.
2009-05-13 10:33:56 +02:00
Sebastian Dröge
e094cde977 [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.
2009-05-13 10:33:56 +02:00
Sebastian Dröge
478f17052f [MOVED FROM BAD 05/56] gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: Add missing header.
Original commit message from CVS:
* gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h:
Add missing header.
2009-05-13 10:33:55 +02:00
Sebastian Dröge
8a90334f9e [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.
2009-05-13 10:33:55 +02:00
Stefan Kost
9082a429fb [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.
2009-05-13 10:33:55 +02:00
Martin Eikermann
5799a93389 [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.
2009-05-13 10:33:55 +02:00
Martin Eikermann
0518c150c9 [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.
2009-05-13 10:33:54 +02:00
Sebastian Dröge
e93f784ee1 avidemux: Fix pointer arithmetic
This fixes a seeking regression, bug #134522.
2009-05-13 10:16:54 +02:00
Christian Schaller
121443eba7 [MOVED FROM BAD 57/57] Add ranks to various muxers and encoders in -bad 2009-05-12 21:21:03 +02:00
Tristan Matthews
95f52ab0d1 [MOVED FROM BAD 56/57] flvmux: init variable to NULL to fix compiler warning
Fixes #580786.
2009-05-12 21:21:02 +02:00
Sebastian Dröge
189838532b [MOVED FROM BAD 55/57] flv: Set/require the framed/parsed fields of the audio/mpeg caps to TRUE 2009-05-12 21:21:02 +02:00
Sebastian Dröge
609239d574 [MOVED FROM BAD 54/57] flv: Always write at least the minimal tags and write the PAR as tags 2009-05-12 21:21:02 +02:00
Sebastian Dröge
7ce9a89050 [MOVED FROM BAD 53/57] flv: Add support for muxing some tags 2009-05-12 21:21:02 +02:00
Sebastian Dröge
170294e976 [MOVED FROM BAD 52/57] flv: Add support for title tag 2009-05-12 21:21:02 +02:00
Sebastian Dröge
32c2364ff2 [MOVED FROM BAD 51/57] flv: Fix parsing of tags and add new mappings
We shouldn't register a new GstTag for every unknown tag
we find as this might lead to conflicts and also those
tags are essentially unknown.

Add mappings for some known tags and also convert string
dates to GDate, as found in many FLV files.
2009-05-12 21:21:02 +02:00
Sebastian Dröge
046311d3ea [MOVED FROM BAD 50/57] flv: Add documentation to flvmux and flvdemux
Partially fixes bug #573737.
2009-05-12 21:21:01 +02:00
Jan Urbanski
6d82cda0ff [MOVED FROM BAD 49/57] Add support for ECMA arrays in script tags. Fixes bug #567965.
Add support for ECMA arrays in script tags. This fixes
seeking on some files that have the seek table stored
inside an ECMA array instead of the normal array.
2009-05-12 21:21:01 +02:00
Sebastian Dröge
351a29c1df [MOVED FROM BAD 48/57] gst/flv/gstflvparse.c: Check if strings are valid UTF8 before using them.
Original commit message from CVS:
* gst/flv/gstflvparse.c: (FLV_GET_STRING):
Check if strings are valid UTF8 before using them.
2009-05-12 21:21:01 +02:00
Julien Moutte
d759265a51 [MOVED FROM BAD 47/57] gst/flv/gstflvdemux.c: Fix non key unit seeking by always going to the previous keyframe. Mark the discont flag when ...
Original commit message from CVS:
2008-11-24  Julien Moutte  <julien@fluendo.com>

* gst/flv/gstflvdemux.c: (gst_flv_demux_find_offset),
(gst_flv_demux_handle_seek_push),
(gst_flv_demux_handle_seek_pull):
Fix non key unit seeking by always going to the previous
keyframe. Mark
the discont flag when we've moved in the file.
* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate): MP3
streams
are parsed already, makes autoplugged pipelines shorter.
2009-05-12 21:21:00 +02:00
Stefan Kost
17d96d0427 [MOVED FROM BAD 46/57] Don't install static libs for plugins. Fixes #550851 for -bad.
Original commit message from CVS:
* ext/alsaspdif/Makefile.am:
* ext/amrwb/Makefile.am:
* ext/apexsink/Makefile.am:
* ext/arts/Makefile.am:
* ext/artsd/Makefile.am:
* ext/audiofile/Makefile.am:
* ext/audioresample/Makefile.am:
* ext/bz2/Makefile.am:
* ext/cdaudio/Makefile.am:
* ext/celt/Makefile.am:
* ext/dc1394/Makefile.am:
* ext/dirac/Makefile.am:
* ext/directfb/Makefile.am:
* ext/divx/Makefile.am:
* ext/dts/Makefile.am:
* ext/faac/Makefile.am:
* ext/faad/Makefile.am:
* ext/gsm/Makefile.am:
* ext/hermes/Makefile.am:
* ext/ivorbis/Makefile.am:
* ext/jack/Makefile.am:
* ext/jp2k/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/lcs/Makefile.am:
* ext/libfame/Makefile.am:
* ext/libmms/Makefile.am:
* ext/metadata/Makefile.am:
* ext/mpeg2enc/Makefile.am:
* ext/mplex/Makefile.am:
* ext/musepack/Makefile.am:
* ext/musicbrainz/Makefile.am:
* ext/mythtv/Makefile.am:
* ext/nas/Makefile.am:
* ext/neon/Makefile.am:
* ext/ofa/Makefile.am:
* ext/polyp/Makefile.am:
* ext/resindvd/Makefile.am:
* ext/sdl/Makefile.am:
* ext/shout/Makefile.am:
* ext/snapshot/Makefile.am:
* ext/sndfile/Makefile.am:
* ext/soundtouch/Makefile.am:
* ext/spc/Makefile.am:
* ext/swfdec/Makefile.am:
* ext/tarkin/Makefile.am:
* ext/theora/Makefile.am:
* ext/timidity/Makefile.am:
* ext/twolame/Makefile.am:
* ext/x264/Makefile.am:
* ext/xine/Makefile.am:
* ext/xvid/Makefile.am:
* gst-libs/gst/app/Makefile.am:
* gst-libs/gst/dshow/Makefile.am:
* gst/aiffparse/Makefile.am:
* gst/app/Makefile.am:
* gst/audiobuffer/Makefile.am:
* gst/bayer/Makefile.am:
* gst/cdxaparse/Makefile.am:
* gst/chart/Makefile.am:
* gst/colorspace/Makefile.am:
* gst/dccp/Makefile.am:
* gst/deinterlace/Makefile.am:
* gst/deinterlace2/Makefile.am:
* gst/dvdspu/Makefile.am:
* gst/festival/Makefile.am:
* gst/filter/Makefile.am:
* gst/flacparse/Makefile.am:
* gst/flv/Makefile.am:
* gst/games/Makefile.am:
* gst/h264parse/Makefile.am:
* gst/librfb/Makefile.am:
* gst/mixmatrix/Makefile.am:
* gst/modplug/Makefile.am:
* gst/mpeg1sys/Makefile.am:
* gst/mpeg4videoparse/Makefile.am:
* gst/mpegdemux/Makefile.am:
* gst/mpegtsmux/Makefile.am:
* gst/mpegvideoparse/Makefile.am:
* gst/mve/Makefile.am:
* gst/nsf/Makefile.am:
* gst/nuvdemux/Makefile.am:
* gst/overlay/Makefile.am:
* gst/passthrough/Makefile.am:
* gst/pcapparse/Makefile.am:
* gst/playondemand/Makefile.am:
* gst/rawparse/Makefile.am:
* gst/real/Makefile.am:
* gst/rtjpeg/Makefile.am:
* gst/rtpmanager/Makefile.am:
* gst/scaletempo/Makefile.am:
* gst/sdp/Makefile.am:
* gst/selector/Makefile.am:
* gst/smooth/Makefile.am:
* gst/smoothwave/Makefile.am:
* gst/speed/Makefile.am:
* gst/speexresample/Makefile.am:
* gst/stereo/Makefile.am:
* gst/subenc/Makefile.am:
* gst/tta/Makefile.am:
* gst/vbidec/Makefile.am:
* gst/videodrop/Makefile.am:
* gst/videosignal/Makefile.am:
* gst/virtualdub/Makefile.am:
* gst/vmnc/Makefile.am:
* gst/y4m/Makefile.am:
* sys/acmenc/Makefile.am:
* sys/cdrom/Makefile.am:
* sys/dshowdecwrapper/Makefile.am:
* sys/dshowsrcwrapper/Makefile.am:
* sys/dvb/Makefile.am:
* sys/dxr3/Makefile.am:
* sys/fbdev/Makefile.am:
* sys/oss4/Makefile.am:
* sys/qcam/Makefile.am:
* sys/qtwrapper/Makefile.am:
* sys/vcd/Makefile.am:
* sys/wininet/Makefile.am:
* win32/common/config.h:
Don't install static libs for plugins. Fixes #550851 for -bad.
2009-05-12 21:21:00 +02:00
Sebastian Dröge
ee53e44fd1 [MOVED FROM BAD 45/57] gst/flv/gstflvdemux.c: Implement position query in time format.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_query):
Implement position query in time format.
2009-05-12 21:21:00 +02:00
Sebastian Dröge
b7f0ba61e4 [MOVED FROM BAD 44/57] gst/flv/: Put the GstSegment directly into the instance struct instead of allocating and free'ing it again.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
(gst_flv_demux_loop), (gst_flv_demux_handle_seek_push),
(gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event),
(gst_flv_demux_dispose), (gst_flv_demux_init):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp):
Put the GstSegment directly into the instance struct instead of
allocating and free'ing it again.
Push tags already if only one pad was added, no need to wait for
the second one.
When generating our index set has_video and has_audio if we find
video or audio in case the FLV header has incorrect data.
2009-05-12 21:21:00 +02:00
Sebastian Dröge
029dfc56d4 [MOVED FROM BAD 43/57] gst/flv/: Don't memcpy() all data we want to push downstream, instead just create subbuffers and push them downstream.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_chain),
(gst_flv_demux_pull_tag), (gst_flv_demux_pull_header),
(gst_flv_demux_create_index):
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type),
(gst_flv_parse_header):
* gst/flv/gstflvparse.h:
Don't memcpy() all data we want to push downstream, instead just
create subbuffers and push them downstream.
Fix some minor memory leaks.
2009-05-12 21:20:59 +02:00
Sebastian Dröge
a023bf6f92 [MOVED FROM BAD 42/57] gst/flv/Makefile.am: Fix (non-critical) syntax error and add all required CFLAGS and LIBS.
Original commit message from CVS:
* gst/flv/Makefile.am:
Fix (non-critical) syntax error and add all required CFLAGS and LIBS.
* gst/flv/gstflvparse.c: (FLV_GET_STRING),
(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type):
Rewrite the script tag parsing to make sure we don't try to read
more data than we have. Also use GST_READ_UINT24_BE directly and
fix some minor memory leaks.
This should make all crashes on fuzzed FLV files disappear.
2009-05-12 21:20:59 +02:00
Sebastian Dröge
ab136d52eb [MOVED FROM BAD 41/57] gst/flv/gstflvparse.c: Properly check everywhere that we have enough data to parse and don't read outside the allocat...
Original commit message from CVS:
* gst/flv/gstflvparse.c: (FLV_GET_STRING),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_tag_type), (gst_flv_parse_header):
Properly check everywhere that we have enough data to parse and
don't read outside the allocated memory region.
2009-05-12 21:20:59 +02:00
Sebastian Dröge
4aa480725c [MOVED FROM BAD 40/57] gst/flv/gstflvparse.c: If the caps change during playback and negotiation fails error out instead of trying to continue.
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video):
If the caps change during playback and negotiation fails error out
instead of trying to continue.
2009-05-12 21:20:58 +02:00
Sebastian Dröge
d1e3e827f3 [MOVED FROM BAD 39/57] gst/flv/: Add support for Speex audio and allow buffers without valid timestamp in the muxer.
Original commit message from CVS:
* gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps),
(gst_flv_mux_request_new_pad), (gst_flv_mux_write_buffer),
(gst_flv_mux_collected):
* gst/flv/gstflvmux.h:
* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate):
Add support for Speex audio and allow buffers without valid
timestamp in the muxer.
2009-05-12 21:20:58 +02:00
Sebastian Dröge
5b0cab9700 [MOVED FROM BAD 38/57] gst/flv/gstflvdemux.c: Don't post an error message on the bus if sending EOS downstream didn't work. Fixes bug #550454.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_loop),
(gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push),
(gst_flv_demux_handle_seek_pull):
Don't post an error message on the bus if sending EOS downstream
didn't work. Fixes bug #550454.
Fix seek event handling to look at the flags of the seek event
instead of assuming some random flags, don't send segment-start
messages when operating in push mode and push seek events upstream
if we couldn't handle them.
2009-05-12 21:20:58 +02:00
Sebastian Dröge
c61d041aca [MOVED FROM BAD 37/57] gst/flv/gstflvdemux.c: Error out early if pulling a tag failed.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag):
Error out early if pulling a tag failed.
2009-05-12 21:20:58 +02:00
Sebastian Dröge
f945537a8a [MOVED FROM BAD 36/57] gst/flv/: In pull mode we create our own index before doing anything else and don't use the index provided by some fi...
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_create_index),
(gst_flv_demux_loop):
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_tag_timestamp):
* gst/flv/gstflvparse.h:
In pull mode we create our own index before doing anything else
and don't use the index provided by some files (which are more than
often incorrect and cause failed seeks).
For push mode we still use the index provided by the file and extend it
while doing the playback.
2009-05-12 21:20:58 +02:00
Sebastian Dröge
78c8ad8cf2 [MOVED FROM BAD 35/57] gst/flv/gstflvdemux.c: Instead of using gst_pad_event_default() use a small gst_pad_push_event() wrapper that only do...
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_push_src_event),
(gst_flv_demux_loop), (gst_flv_demux_handle_seek_pull),
(gst_flv_demux_sink_event):
Instead of using gst_pad_event_default() use a small
gst_pad_push_event() wrapper that only does what we want and is much
more simple.
2009-05-12 21:20:57 +02:00
Sebastian Dröge
5dd573262d [MOVED FROM BAD 34/57] gst/flv/gstflvdemux.*: If our index was created by the element and not provided from the outside we should destroy it...
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_change_state),
(gst_flv_demux_set_index), (gst_flv_demux_init):
* gst/flv/gstflvdemux.h:
If our index was created by the element and not provided from the
outside we should destroy it when starting a new stream to get
all old entries removed.
2009-05-12 21:20:57 +02:00
Sebastian Dröge
1b235bb8b0 [MOVED FROM BAD 33/57] gst/flv/gstflvdemux.c: Improve debugging a bit when pulling a buffer from upstream fails.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range):
Improve debugging a bit when pulling a buffer from upstream fails.
2009-05-12 21:20:57 +02:00
Sebastian Dröge
f55a5aa024 [MOVED FROM BAD 32/57] gst/flv/: Close the currently playing segment from the streaming thread instead of the thread where the seek event is...
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
(gst_flv_demux_handle_seek_pull), (gst_flv_demux_dispose):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video):
Close the currently playing segment from the streaming thread
instead of the thread where the seek event is handled.
2009-05-12 21:20:57 +02:00
Sebastian Dröge
6c61c0b78d [MOVED FROM BAD 31/57] gst/flv/gstflvmux.c: Don't set video_codec to the value that actually should go into audio codec, otherwise we create...
Original commit message from CVS:
* gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps),
(gst_flv_mux_write_buffer):
Don't set video_codec to the value that actually should go
into audio codec, otherwise we create invalid files.
Fixes bug #556564.
2009-05-12 21:20:56 +02:00
Sebastian Dröge
9611ec851d [MOVED FROM BAD 30/57] gst/flv/gstflvdemux.c: Fix regression of handling flow returns in pull mode.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag),
(gst_flv_demux_pull_header):
Fix regression of handling flow returns in pull mode.
Fixes bug #556003.
2009-05-12 21:20:56 +02:00
Sebastian Dröge
9a8884f7ca [MOVED FROM BAD 29/57] gst/flv/gstflvparse.c: Use gst_pad_alloc_buffer_and_set_caps() to make sure we get a buffer with caps that we can wor...
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video):
Use gst_pad_alloc_buffer_and_set_caps() to make sure we get
a buffer with caps that we can work with (i.e. the pad's caps).
Add non-keyframe video frames to the index too but without the
keyframe flag.
Add audio frames to the index only if we have no video stream.
2009-05-12 21:20:56 +02:00
Sebastian Dröge
549f97ea7b [MOVED FROM BAD 28/57] gst/flv/gstflvparse.c: Create pads from the pad templates, use fixed caps on them and only activate them after the ca...
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video):
Create pads from the pad templates, use fixed caps on them
and only activate them after the caps are set.
2009-05-12 21:20:56 +02:00
Sebastian Dröge
023e5ba09a [MOVED FROM BAD 27/57] gst/flv/: Get an approximate duration of the file by looking at the timestamp of the last tag in pull mode. If we get...
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_loop):
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_timestamp):
* gst/flv/gstflvparse.h:
Get an approximate duration of the file by looking at the timestamp
of the last tag in pull mode. If we get (maybe better) duration from
metadata later we'll use that instead.
2009-05-12 21:20:55 +02:00
Sebastian Dröge
7f924cec59 [MOVED FROM BAD 26/57] gst/flv/gstflvdemux.c: Refactor _pull_range() logic with checks into a seperate function to make things a bit more re...
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range),
(gst_flv_demux_pull_tag), (gst_flv_demux_pull_header):
Refactor _pull_range() logic with checks into a seperate function
to make things a bit more readable.
2009-05-12 21:20:55 +02:00
Sebastian Dröge
fe312ae650 [MOVED FROM BAD 25/57] gst/flv/gstflvdemux.c: Use gst_element_class_set_details_simple().
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_chain),
(gst_flv_demux_base_init):
Use gst_element_class_set_details_simple().
If we get GST_FLOW_NOT_LINKED in the parse loop but at least
one of the pads is linked continue the loop.
2009-05-12 21:20:55 +02:00
Sebastian Dröge
fa59b574ba [MOVED FROM BAD 24/57] gst/flv/gstflvparse.c: Correct caps for video codec id 5: It's On2 VP6 with alpha channel which needs a different dec...
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate),
(gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate):
Correct caps for video codec id 5: It's On2 VP6 with alpha channel
which needs a different decoder and has different caps.
Add support for audio codec id 14, which is MP3 with 8kHz sampling
rate.
Fix endianness and signedness for raw audio codec ids.
Add support for alaw and mulaw audio.
2009-05-12 21:20:55 +02:00
Sebastian Dröge
1905b18a65 [MOVED FROM BAD 23/57] gst/flv/gstflvdemux.c: Go out of the parse loop as soon as we get an error instead of parsing until the GstAdapter is...
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_chain):
Go out of the parse loop as soon as we get an error instead
of parsing until the GstAdapter is empty.
Add some explanations about the header and tag size.
Don't print synchronizing message if everything is fine.
2009-05-12 21:20:54 +02:00
Sebastian Dröge
fc2adbb9a8 [MOVED FROM BAD 22/57] gst/flv/: Add first version of a FLV muxer. The only missing feature is writing of stream metadata.
Original commit message from CVS:
* gst/flv/Makefile.am:
* gst/flv/gstflvdemux.c: (plugin_init):
* gst/flv/gstflvmux.c: (gst_flv_mux_base_init),
(gst_flv_mux_class_init), (gst_flv_mux_init),
(gst_flv_mux_finalize), (gst_flv_mux_reset),
(gst_flv_mux_handle_src_event), (gst_flv_mux_handle_sink_event),
(gst_flv_mux_video_pad_setcaps), (gst_flv_mux_audio_pad_setcaps),
(gst_flv_mux_request_new_pad), (gst_flv_mux_release_pad),
(gst_flv_mux_write_header), (gst_flv_mux_write_buffer),
(gst_flv_mux_collected), (gst_flv_mux_change_state):
* gst/flv/gstflvmux.h:
Add first version of a FLV muxer. The only missing feature is writing
of stream metadata.
2009-05-12 21:20:54 +02:00
Julien Moutte
f58f138c55 [MOVED FROM BAD 21/57] gst/flv/: Introduce demuxing support for AAC and
Original commit message from CVS:
2008-06-14  Julien Moutte  <julien@fluendo.com>

* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
(gst_flv_demux_dispose):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate),
(gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate),
(gst_flv_parse_tag_video): Introduce demuxing support for AAC
and
H.264/AVC inside FLV.
* sys/dshowdecwrapper/gstdshowaudiodec.c:
(gst_dshowaudiodec_init),
(gst_dshowaudiodec_chain), (gst_dshowaudiodec_push_buffer),
(gst_dshowaudiodec_sink_event), (gst_dshowaudiodec_setup_graph):
* sys/dshowdecwrapper/gstdshowaudiodec.h:
* sys/dshowdecwrapper/gstdshowvideodec.c:
(gst_dshowvideodec_init),
(gst_dshowvideodec_sink_event), (gst_dshowvideodec_chain),
(gst_dshowvideodec_push_buffer),
(gst_dshowvideodec_src_getcaps):
* sys/dshowdecwrapper/gstdshowvideodec.h: Lot of random fixes
to improve stability (ref counting, safety checks...)
2009-05-12 21:20:54 +02:00
Wim Taymans
00be5791fe [MOVED FROM BAD 20/57] gst/flv/gstflvdemux.c: Forward unknown queries upstream instead of returning FALSE on them.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_query):
Forward unknown queries upstream instead of returning FALSE on them.
2009-05-12 21:20:54 +02:00
Tim-Philipp Müller
7104ffa7dc [MOVED FROM BAD 19/57] gst/flv/gstflvparse.c: Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes crash caused by a strlen on a...
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
(gst_flv_parse_tag_script):
Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes
crash caused by a strlen on a NULL string (#527622).
2009-05-12 21:20:53 +02:00
Tim-Philipp Müller
71e48aa5d7 [MOVED FROM BAD 18/57] gst/flv/gstflvparse.c: Don't strdup (and thus leak) codec name strings when passing them to gst_tag_list_add().
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video):
Don't strdup (and thus leak) codec name strings when passing
them to gst_tag_list_add().
2009-05-12 21:20:53 +02:00
Edward Hervey
98afcdf05d [MOVED FROM BAD 17/57] gst/flv/gstflvparse.c: Fix list of supported and known codecs.
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video):
Fix list of supported and known codecs.
Emit tag with the codec name so it gets properly reported in totem and
other applications.
2009-05-12 21:20:53 +02:00
Edward Hervey
0ece771e85 [MOVED FROM BAD 16/57] gst/flv/gstflvparse.c: Output segment with proper 'stop' value, makes flvdemux 100% compatible with gnonlin.
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video):
Output segment with proper 'stop' value, makes flvdemux 100% compatible
with gnonlin.
2009-05-12 21:20:53 +02:00
Edward Hervey
9aef7a25e3 [MOVED FROM BAD 15/57] gst/flv/gstflvparse.c: Add mapping for Nellymoser ASAO audio codec.
Original commit message from CVS:
* gst/flv/gstflvparse.c:
Add mapping for Nellymoser ASAO audio codec.
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Make sure we
actually have data to read at the end of the tag. This avoids trying
to allocate negative buffers.
2009-05-12 21:20:52 +02:00
Julien Moutte
2c69886497 [MOVED FROM BAD 14/57] gst/flv/gstflvparse.c: Don't emit no-more-pads for single pad scenarios as the header is definitely not reliable. We ...
Original commit message from CVS:
2007-10-22  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video), (gst_flv_parse_tag_type): Don't
emit no-more-pads for single pad scenarios as the header
is definitely not reliable. We emit them for 2 pads scenarios
though to speed up media discovery.
2009-05-12 21:20:52 +02:00
Julien Moutte
79c20be6bd [MOVED FROM BAD 13/57] gst/flv/gstflvparse.c: I got it wrong again, audio rate was not detected correctly in all cases.
Original commit message from CVS:
2007-09-27  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video): I got it wrong again, audio rate
was not detected correctly in all cases.
2009-05-12 21:20:52 +02:00
Julien Moutte
df2c2e1d96 [MOVED FROM BAD 12/57] gst/flv/gstflvparse.c: codec_data is needed for every tag not just the first one. (Fix a stupid bug i introduced with...
Original commit message from CVS:
2007-09-26  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video): codec_data is needed for every tag
not just the first one. (Fix a stupid bug i introduced without
testing)
2009-05-12 21:20:52 +02:00
Julien Moutte
995a9dcae4 [MOVED FROM BAD 11/57] gst/flv/gstflvparse.c: Fix bit masks operations to be sure we detect the codec_tags and sample rates correctly.
Original commit message from CVS:
2007-09-26  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video): Fix bit masks operations to be
sure we detect the codec_tags and sample rates correctly.
Fix raw audio caps generation.
2009-05-12 21:20:51 +02:00
Peter Kjellerstedt
ab63c48e82 [MOVED FROM BAD 10/57] gst/: Printf format fixes (#476128).
Original commit message from CVS:
Patch by: Peter Kjellerstedt  <pkj at axis com>
* gst-libs/gst/app/gstappsink.c:
* gst/flv/gstflvdemux.c:
* gst/flv/gstflvparse.c:
* gst/interleave/deinterleave.c:
* gst/switch/gstswitch.c:
Printf format fixes (#476128).
2009-05-12 21:20:51 +02:00
Julien Moutte
5a5bbae173 [MOVED FROM BAD 09/57] gst/flv/gstflvdemux.c: Make sure we initialize the seek result.
Original commit message from CVS:
2007-08-27  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvdemux.c: (gst_flv_demux_handle_seek_pull):
Make sure we initialize the seek result.
2009-05-12 21:20:51 +02:00
Julien Moutte
e457c4fe2a [MOVED FROM BAD 08/57] gst/flv/gstflvdemux.c: Remove some useless ifdef.
Original commit message from CVS:
2007-08-24  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
(gst_flv_demux_chain), (gst_flv_demux_pull_tag),
(gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push),
(gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event),
(gst_flv_demux_src_event): Remove some useless ifdef.
2009-05-12 21:20:51 +02:00
Julien Moutte
00746d9037 [MOVED FROM BAD 07/57] gst/flv/gstflvdemux.c: Implement seeking in push mode.
Original commit message from CVS:
2007-08-24  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
(gst_flv_demux_cleanup), (gst_flv_demux_chain),
(gst_flv_demux_pull_tag), (gst_flv_demux_find_offset),
(gst_flv_demux_handle_seek_push),
(gst_flv_demux_handle_seek_pull),
(gst_flv_demux_sink_event), (gst_flv_demux_src_event): Implement
seeking in push mode.
* gst/flv/gstflvdemux.h:
2009-05-12 21:20:51 +02:00
Julien Moutte
5d7f2cf4fa [MOVED FROM BAD 06/57] gst/flv/: Handle pixel aspect ratio through metadata tags like ASF does. Fluendo muxer supports this and
Original commit message from CVS:
2007-08-22  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
(gst_flv_demux_pull_tag):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
(gst_flv_parse_tag_script), (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video): Handle pixel aspect ratio through
metadata tags like ASF does. Fluendo muxer supports this and
Flash players can support it as well this way.
2009-05-12 21:20:50 +02:00
Julien Moutte
8f0627ea08 [MOVED FROM BAD 05/57] gst/flv/: Make sure we don't try filling up the index if no times object was parsed. Fix the way we decide to push ta...
Original commit message from CVS:
2007-08-22  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag):
* gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
(gst_flv_parse_tag_script), (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video): Make sure we don't try filling up the
index if no times object was parsed. Fix the way we decide to
push
tags and emit no-more-pads. Fix some printf typing in debugging.
2009-05-12 21:20:50 +02:00
Wim Taymans
d83e2e9292 [MOVED FROM BAD 04/57] gst/flv/gstflvdemux.c: Fix locking and refcounting on the index.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_set_index),
(gst_flv_demux_get_index):
Fix locking and refcounting on the index.
2009-05-12 21:20:50 +02:00
Julien Moutte
c3228fbb67 [MOVED FROM BAD 03/57] gst/flv/gstflvdemux.c: First method for seeking in pull mode using the index built step by step or coming from metadata.
Original commit message from CVS:
2007-08-14  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
(gst_flv_demux_adapter_flush), (gst_flv_demux_chain),
(gst_flv_demux_pull_tag), (gst_flv_demux_do_seek),
(gst_flv_demux_handle_seek), (gst_flv_demux_sink_event),
(gst_flv_demux_src_event), (gst_flv_demux_query),
(gst_flv_demux_change_state), (gst_flv_demux_set_index),
(gst_flv_demux_get_index), (gst_flv_demux_dispose),
(gst_flv_demux_class_init): First method for seeking in pull
mode using the index built step by step or coming from metadata.
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (FLV_GET_STRING),
(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Parse
more metadata types and keyframes index.
2009-05-12 21:20:50 +02:00
Julien Moutte
11e27e7856 [MOVED FROM BAD 02/57] gst/flv/: Handle not linked pads, try to make it reusable, more safety checks.
Original commit message from CVS:
2007-07-25  Julien MOUTTE  <julien@moutte.net>

(gst_flv_demux_chain), (gst_flv_demux_pull_tag),
(gst_flv_demux_change_state), (gst_flv_demux_dispose),
(gst_flv_demux_init):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (FLV_GET_STRING),
(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_header):
* gst/flv/gstflvparse.h: Handle not linked pads, try to make it
reusable, more safety checks.
2009-05-12 21:20:49 +02:00
Julien Moutte
7a0d2df294 [MOVED FROM BAD 01/57] Adds a first draft of an FLV demuxer.
Original commit message from CVS:
2007-07-19  Julien MOUTTE  <julien@moutte.net>

* configure.ac:
* gst/flv/Makefile.am:
* gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
(gst_flv_demux_cleanup), (gst_flv_demux_chain),
(gst_flv_demux_pull_tag), (gst_flv_demux_pull_header),
(gst_flv_demux_seek_to_prev_keyframe), (gst_flv_demux_loop),
(gst_flv_demux_sink_activate),
(gst_flv_demux_sink_activate_push),
(gst_flv_demux_sink_activate_pull), (gst_flv_demux_sink_event),
(gst_flv_demux_change_state), (gst_flv_demux_dispose),
(gst_flv_demux_base_init), (gst_flv_demux_class_init),
(gst_flv_demux_init), (plugin_init):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (FLV_GET_BEUI24), (FLV_GET_STRING),
(gst_flv_demux_query_types), (gst_flv_demux_query),
(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_tag_type), (gst_flv_parse_header):
* gst/flv/gstflvparse.h: Adds a first draft of an FLV demuxer.
It does not do seeking yet, it supports pull and push mode so
YES
you can use it to play youtube videos directly from an HTTP uri.
Not so much testing done yet but it parses metadata, reply to
duration queries, etc...
2009-05-12 21:20:49 +02:00
Sebastian Dröge
d94a71a4c5 rtp: Link to -lm
Fixes bug #582281.
2009-05-12 13:00:46 +02:00
Tristan Matthews
39da7e523d avidemux: initialize variable to 0
Fixes #582218.
2009-05-11 21:02:27 +02:00
Sebastian Dröge
a1fe742e80 matroskademux: Only search for the index entry once 2009-05-11 18:21:13 +02:00
Sebastian Dröge
4cb39bc723 matroskademux: Use the first index entry if it's after the seek position 2009-05-11 18:18:36 +02:00
Sebastian Dröge
a62ed3b153 avidemux: Use the first entry for a given stream if the first entry is after the seek position 2009-05-11 18:15:22 +02:00
Sebastian Dröge
97fa58f397 avidemux: Use binary search for finding the requested index entry when seeking 2009-05-11 16:50:48 +02:00
Sebastian Dröge
e4909b37eb matroskademux: Improve/optimize seeking
First of all a keyframe seek should be done to the
keyframe right before the requested position and not
to the keyframe that is nearest to the requested position.

Use per track index arrays and use our new binary search function
from core to speed up the search.
2009-05-11 15:36:46 +02:00
David Schleef
f01adcbc0f matroska: fix printf format to agree with argument 2009-05-09 10:50:45 -07:00
Wim Taymans
a9e496d92f rtj2kdepay: add basic JPEG 2000 depayloader 2009-05-08 11:35:02 +02:00
Wim Taymans
5ec808cf7e rtpj2kpay: set marker bit correctly 2009-05-08 11:32:03 +02:00
Wim Taymans
a4dfd61a77 rtpj2kpay: add a simple JPEG 2000 payloader 2009-05-08 10:38:42 +02:00
Wim Taymans
ee1f1ae5d5 rtpjpegpay: we only need to swap bits on LE 2009-05-08 10:31:12 +02:00
Christian Schaller
bdf1698f35 Add RANKS for various encoders and muxers 2009-05-07 18:10:08 +01:00
Wim Taymans
bdbdb41e93 matroskademux: add some debugging 2009-05-07 17:10:43 +02:00
Wim Taymans
e4b59136fa matroskademux: parse xiph headers length correctly
See #580980
2009-05-07 17:10:43 +02:00
Gabriel Bouvigne
3e0f1b84a4 rganalysis: Add ability to post level messages
Fixes bug #581568.
2009-05-07 16:25:41 +02:00
Wim Taymans
e2a483f0f9 rtpjpegpay: refuse some unsupported jpeg formats 2009-05-06 23:56:44 +02:00
Wim Taymans
4ef9eee8b4 rtptheorapay: fix description 2009-05-06 18:06:49 +02:00
Wim Taymans
d87871f5f7 rtpjpegpay: rewrite quant table handling
Rewrite the quant table parsing to also handle multiple tables in one JPEG HDQ
segment.
Handle more jpeg types by keeping track of the tables used per component and
putting the used ones in the quant headers.
2009-05-06 16:11:49 +02:00
Wim Taymans
b7c5847dbd rtpjpegpay: handle input with 1 quant table
Also handle input with just one quant table, simply duplicate the quant table.
Handle invalid SOF correctly and some small cleanups.
Fixes #578257
2009-05-06 12:56:58 +02:00
Marco Ballesio
8e7273076d qtdemux: fix byte order swapping in 3GPP classification entity tag
Fixes #580746.
2009-05-06 00:16:37 +03:00
Arnout Vandecappelle
439ca2c795 multipartdemux: avoid reading from inavlid memory
Read the timestamp of the incomming buffer before we push it in the adapter and
flush it out again as the buffer might be unreffed then and we read from invalid
memory.
Fixes #581444.
2009-05-05 17:07:13 +02:00
Arnout Vandecappelle
3f2144c5ee multipartdemux: don't leak dynamic pads
Free the dynamic pads data in finalize.
Fixes #581432
2009-05-05 17:03:29 +02:00
Wim Taymans
0f1033c59f rtpjpegpay: correctly set the type header
Don't require width/height on the caps. Use the SOF header to find width/height
and fall back to the caps if there is no SOF. Also use the SOF info to find the
subsampling and quantization tables used. This allows us to set the right type
value in the JPEG rtp header.

Deprecate the quality property, it's unused now and it was used wrongly before.

Always send full quant tables for now until we have some code to detect default
ones.

Fixes #580880
2009-05-05 16:32:17 +02:00
Wim Taymans
7c59f39bfe rtpjpegdepay: use width/height from payload
Use the width and the height from the payload headers and set them on the
output caps for added awesomeness.

Fix quant parsing, we need to check the type in the lower 6 bits.

Add first bits of caching quantization tables.
2009-05-05 16:28:44 +02:00
Wim Taymans
732704c007 rtspsrc: Fix find_stream_by_* functions
Fix various version of find_stream_by_* by not trying to convert an int to a
pointer and vice versa, for portability reasons.

Fixes #581333
2009-05-04 18:55:12 +02:00
Chris Winter
752cfb16fe rtspsrc: fix dummy nat packet logic
Fix a typo in the dummy NAT packet sending code.

Fixes #581329
2009-05-04 18:32:05 +02:00
Mark Nauwelaerts
959a9b494b rtspsrc: avoid errors after server eof
Server eof (e.g. connection closed) is announced as connection closed,
so better record state and act accordingly to prevent (read/write)
errors during subsequent teardown/cleanup sequences.  #Fixes 580851.(c).
2009-05-04 17:01:35 +02:00
Mark Nauwelaerts
734548a34f rtspsrc: also set base_time on src after flush
timestamps following flush/seek should be consistent between
UDP and TCP interleaved case.  Fixes #580851.(b).
2009-05-04 17:01:28 +02:00
Mark Nauwelaerts
20c7be5741 rtspsrc: sanity checks on range info
A max range that overflows should not be trusted,
nor should a max range that equals the min range.
Fixes #580851.(a).
2009-05-04 17:01:20 +02:00
Wim Taymans
56656dd03d rtspsrc: use SKIP flag to use SCALE headers
We can use the SKIP seek flag to instruct the server to send data faster then
normal but with the same bandwidth.
Fixes #537609
2009-05-04 16:18:23 +02:00
Wim Taymans
70d1b6e1ae qtdemux: use binary search for index
Use the new binary search method for finding the right index entry faster.
2009-05-04 12:35:19 +02:00
Wim Taymans
9ea2c113ba videobox: draw the complete U and V planes
Round up the scaled U and V width and height so that we always draw the correct
amount of pixels to fill the complete image.

Fixes #569611
2009-05-04 11:26:56 +02:00
Wim Taymans
1619c09e3e qtdemux: add some more micro optimisations 2009-05-01 19:35:11 +02:00
Wim Taymans
ab0d1bc942 qtdemux: micro optimize qtdemux a little
Sprinkle some G_LIKELY around.

Avoid traversing and dumping the tree when debugging is not activated.
2009-04-30 18:41:44 +02:00
Wim Taymans
b5d84439fd qtdemux: add support for subtitle pictures
Add support for subtitle pictures.
Fixes #568278.
2009-04-30 14:22:27 +02:00
Wim Taymans
de0a2575fc rtspsrc: release state lock before stopping task
We need to release the state lock before trying to wait for the task to end
because the task might also take the lock.

Fixes #577671
2009-04-29 18:09:07 +02:00
Hans de Goede
6cfa856381 qtdemux: handle ac-3 audio
fix demuxing of m4v streams with ac-3 audio
Fixes #580554
2009-04-29 12:19:27 +02:00
Wim Taymans
b3782442ae udpsrc: fix getaddrinfo error reporting
getaddrinfo errors should be reported with gai_strerror instead of errno as
spotted by MikeS.
2009-04-27 18:00:17 +02:00
Wim Taymans
f33501ad4b g726pay: fix compilation 2009-04-27 10:08:55 +02:00
Wim Taymans
84c3d1a2c8 g726pay: add RFC compliant packetizing
Shuffle the input bits according to RFC 3551 for G726 payloads.
Add option to force the previous behaviour.

Fixes #567140
2009-04-27 10:08:55 +02:00
Wim Taymans
e213debe8e g726depay: add debug category
Add a debugging category, add some comments and remove _peek_parent().
2009-04-27 10:08:55 +02:00
Tim-Philipp Müller
a85d7b7059 id3demux: parse unsynchronised tags properly
We didn't handle unsynchronization at all up to now, which might have
caused frames to not be extracted - esp. frames after an APIC picture
frame. Fixes #577468.
2009-04-24 01:58:23 +01:00
Tim-Philipp Müller
19117a39fe id3demux: pass the right size value for size of all frames to the parser
Frame data size is tag size adjusted for size of the tag header and
footer, not tag size including header and footer.
2009-04-24 01:05:40 +01:00
Patrick Radizi
5b86c66e8a rtspsrc: fix some more pad leaks
Fix some pad leaks.
See #577318.
2009-04-22 15:27:24 +02:00
Michael Smith
922c9f529a qtdemux: override caps based on data from ESDS atoms in mpeg4.
If the codec is actually something else (e.g. mjpeg) change the caps to
match when parsing the ESDS atom.
Also, for AAC, override rate and channels with correct values read from
ESDS, since the rate/channels values elsewhere are often wrong.
2009-04-21 14:04:07 -07:00
Jan Schmidt
a097571c0a udp: Fix a simple typo in the previous commit
Use #ifdef instead of #if, to fix the build
2009-04-20 17:26:11 +01:00
Andy Wingo
07dcbacd60 only use struct ip_mreqn if it is detected
* configure.ac: Make an explicit check for struct ip_mreqn.

* gst/udp/gstudpnetutils.c: Use HAVE_IP_MREQN instead of the ad-hoc checks.
2009-04-20 15:54:31 +02:00
Mark Nauwelaerts
cfcf76df11 Fix push mode buffering sanity check to actually fit the description. 2009-04-20 13:49:03 +02:00
Edward Hervey
1183015954 rtph263pay: And let's not forget to remove the unused variable. 2009-04-18 19:11:06 +02:00
Edward Hervey
1554c6637f rtph263pay: Remove dead assignments, the variables are never read after. 2009-04-18 18:51:30 +02:00
Edward Hervey
3efcf936e1 rtpmp4vpay: Remove dead assignment. The value is never read after. 2009-04-18 18:51:29 +02:00
Edward Hervey
4c60f9ef29 rtspsrc: Remove dead assignment.
t is being overwritten after, before it's used.
2009-04-18 18:51:29 +02:00
Edward Hervey
84b6d07c75 rtpamrdepay: Remove unneeded variable, the value is only read once. 2009-04-18 18:51:29 +02:00
Edward Hervey
f6b774fbcc rtpamrpay: Remove unneeded variable, the value is only read once. 2009-04-18 18:51:29 +02:00
Edward Hervey
f6458e2c4c goom/filters: Remove dead assignment. Value overwritten just after. 2009-04-18 18:51:29 +02:00
Edward Hervey
bf9c2067cf rtpvorbispay: Remove dead assignment. Value never read after. 2009-04-18 18:51:29 +02:00
Edward Hervey
58a7c2ad8d rtptheorapay: Remove dead assignment. Value never read after. 2009-04-18 18:51:29 +02:00