Commit graph

54 commits

Author SHA1 Message Date
Stéphane Cerveau
1b9f99d19f mpeg2dec: allow per feature registration
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/79>
2021-03-29 19:13:36 +00:00
Nicolas Dufresne
7e8050728a mpeg2dec: Re-implement pool handling
This is a rewrite of the pool negotiation and configuration. Direct
to output decoding is now achieved by configuring the pool using
video-alignment. This removes copies when dealing with any elements that
supports VideoAlignment, and enable usage of generic video buffer pool,
XVImagePool and GLPool. It drops the crop meta implementation for now.

https://bugzilla.gnome.org/show_bug.cgi?id=735379
2015-03-13 09:56:00 +00:00
Tim-Philipp Müller
b2e13b82aa mpeg2dec: remove unused struct members 2014-05-16 16:24:46 +01:00
Tim-Philipp Müller
9c690b2018 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:40:37 +00:00
Sebastian Dröge
349eb6710e mpeg2dec: Port to 0.11 again 2012-06-20 09:06:37 +01:00
Edward Hervey
c31467413a mpeg2dec: Report PAR if not present upstream
And clean up some code
2012-06-19 14:10:20 +01:00
Nicolas Dufresne
9dc1d53cac mpeg2dec: Port to GstVideoDecoder base class
Conflicts:

	ext/mpeg2dec/gstmpeg2dec.c
	ext/mpeg2dec/gstmpeg2dec.h

Back to 0.10 state, needs to be ported to 0.11 again.
2012-06-19 14:10:01 +01:00
Wim Taymans
ec170a27eb mpeg2dec: fix cropping
fix cropping in mpeg2dec
2012-04-02 15:21:36 +02:00
Tim-Philipp Müller
51794ce082 mpeg2dec: update for GstIndex removal 2011-12-30 17:49:01 +00:00
Edward Hervey
444df1a2cc mpeg2dec: Add basic cropping support 2011-11-04 10:48:17 +01:00
Wim Taymans
fed7cbc8d2 update for meta api change 2011-11-02 09:09:26 +01:00
Wim Taymans
d255e3db39 Merge branch 'master' into 0.11 2011-09-30 17:45:31 +02:00
Wim Taymans
62d5386b06 mpeg2dec: minimal port to 0.11 2011-09-30 17:38:07 +02:00
Vincent Penquerc'h
2cb398d20d mpeg2dec: post QoS messages when dropping a frame due to QoS
https://bugzilla.gnome.org/show_bug.cgi?id=658241
2011-09-30 14:10:31 +01:00
Stefan Kost
b3c04da6c3 index: remove conditional index support
Index support cannot be disabled since commit
4bfb1fe70c
in core, which removed the configure flags to disable index.
2011-02-21 11:05:31 +02:00
Tim-Philipp Müller
fd68911826 mpeg2dec: use GstVideoFormat instead of custom enum 2010-12-29 20:19:34 +00:00
Edward Hervey
8905e8c81e mpeg2dec: Implement interlaced support.
Expand the debugging statements to show more picture information.
2009-05-12 11:44:52 +02:00
David Schleef
253cb1c7c7 ext/mpeg2dec/gstmpeg2dec.*: Add support for 4:4:4 video. Fixes #562086
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c:
* ext/mpeg2dec/gstmpeg2dec.h:
Add support for 4:4:4 video.  Fixes #562086
2008-11-25 03:44:06 +00:00
Robin Stocker
ac40f11552 ext/mpeg2dec/gstmpeg2dec.*: Prefer the container's PAR over the stream's PAR if it's given in the srcpad caps. Fixes ...
Original commit message from CVS:
Patch by: Robin Stocker <robin at nibor dot org>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(handle_sequence), (gst_mpeg2dec_setcaps):
* ext/mpeg2dec/gstmpeg2dec.h:
Prefer the container's PAR over the stream's PAR if it's
given in the srcpad caps. Fixes bug #556184.
2008-10-14 12:51:41 +00:00
Sameer Naik
c9da8b4d0c ext/mpeg2dec/gstmpeg2dec.*: Fix compilation with --disable-index. Fixes bug #554150.
Original commit message from CVS:
Patch by: Sameer Naik <sameer dot subscriptions at damagehead dot com>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_class_init),
(handle_slice), (gst_mpeg2dec_sink_event),
(gst_mpeg2dec_src_event):
* ext/mpeg2dec/gstmpeg2dec.h:
Fix compilation with --disable-index. Fixes bug #554150.
2008-09-28 17:33:43 +00:00
Wim Taymans
30d994fafa ext/mpeg2dec/gstmpeg2dec.*: Add buffer clipping.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (clear_queued), (flush_queued),
(handle_picture), (clip_buffer), (handle_slice),
(gst_mpeg2dec_chain), (gst_mpeg2dec_sink_event),
(gst_mpeg2dec_change_state):
* ext/mpeg2dec/gstmpeg2dec.h:
Add buffer clipping.
Add basic reverse playback support. Not complete yet when dealing with
non-closed GOPs.
2008-01-10 15:24:08 +00:00
Wim Taymans
639224f97f ext/mpeg2dec/gstmpeg2dec.h: Use G_GINT64_CONSTANT, fixes compilation with MSVC 6.0.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.h:
Use G_GINT64_CONSTANT, fixes compilation with MSVC 6.0.
Fixes #500808.
2007-12-03 19:05:20 +00:00
Sebastian Dröge
1a8dbee3e7 ext/mpeg2dec/gstmpeg2dec.*: Align buffers to a 16 byte boundary so the altivec optimisations don't crash. Fixes #327350.
Original commit message from CVS:
Patch by: Sebastian Dröge  <slomo@circular-chaos.org>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(gst_mpeg2dec_reset), (gst_mpeg2dec_alloc_sized_buf),
(gst_mpeg2dec_alloc_buffer), (init_dummybuf), (handle_slice):
* ext/mpeg2dec/gstmpeg2dec.h:
Align buffers to a 16 byte boundary so the altivec optimisations
don't crash. Fixes #327350.
2006-11-21 12:15:58 +00:00
Sebastian Droege
520f74867f ext/mpeg2dec/gstmpeg2dec.*: libmpeg2 requires its output buffers to start at a 16byte aligned address or the altivec ...
Original commit message from CVS:
Patch by: Sebastian Droege <slomo at ubuntu dot com>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_finalize),
(gst_mpeg2dec_alloc_buffer), (init_dummybuf), (handle_slice):
* ext/mpeg2dec/gstmpeg2dec.h:
libmpeg2 requires its output buffers to start at a 16byte aligned
address or the altivec optimizations will explode.
2006-11-03 09:52:12 +00:00
Wim Taymans
af08dc2cae ext/mpeg2dec/gstmpeg2dec.*: Add some debugging to timestamp handling.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (handle_slice):
* ext/mpeg2dec/gstmpeg2dec.h:
Add some debugging to timestamp handling.
Make sure we don't convert invalid timestamps.
2006-10-10 16:58:32 +00:00
Wim Taymans
a489cb42e7 ext/mpeg2dec/gstmpeg2dec.*: Simplify and don't leak our buffer pool.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_finalize),
(gst_mpeg2dec_reset), (clear_buffers), (handle_picture),
(gst_mpeg2dec_sink_convert), (gst_mpeg2dec_src_convert),
(gst_mpeg2dec_change_state):
* ext/mpeg2dec/gstmpeg2dec.h:
Simplify and don't leak our buffer pool.
Use _scale_int.
Remove unfixed bug number from previous ChangeLog entry.
2006-06-07 17:05:48 +00:00
Wim Taymans
78d4166a4f ext/mpeg2dec/gstmpeg2dec.*: Fix padtemplate as we can now do fractional framerates.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init),
(gst_mpeg2dec_class_init), (gst_mpeg2dec_init),
(gst_mpeg2dec_finalize), (gst_mpeg2dec_reset),
(gst_mpeg2dec_qos_reset), (gst_mpeg2dec_alloc_buffer),
(gst_mpeg2dec_negotiate_format), (init_dummybuf),
(handle_sequence), (handle_picture), (handle_slice),
(gst_mpeg2dec_chain), (gst_mpeg2dec_sink_event),
(gst_mpeg2dec_src_event), (gst_mpeg2dec_change_state):
* ext/mpeg2dec/gstmpeg2dec.h:
Fix padtemplate as we can now do fractional framerates.
Small cleanups.
Use GstSegment.
Add simple frame dropping QoS.
Precalc buffer output sizes and UV offsets.
Always give libmpeg2 a valid fbuf when it wants one.
don't trust libmpeg to discard our buffers but manage it
ourselves.
Fixes #343627, #327350, #335288
2006-06-07 16:15:42 +00:00
Stefan Kost
fadba7919f Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Original commit message from CVS:
* ext/a52dec/gsta52dec.h:
* ext/amrnb/amrnbdec.h:
* ext/amrnb/amrnbenc.h:
* ext/amrnb/amrnbparse.h:
* ext/mpeg2dec/gstmpeg2dec.h:
* ext/sidplay/gstsiddec.h:
* gst/ac3parse/gstac3parse.h:
* gst/asfdemux/gstasfdemux.h:
* gst/asfdemux/gstasfmux.h:
* gst/dvdlpcmdec/gstdvdlpcmdec.h:
* gst/iec958/ac3iec.h:
* gst/mpegaudioparse/gstmpegaudioparse.h:
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstmpegclock.h:
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 21:11:41 +00:00
Tim-Philipp Müller
6438094695 ext/mpeg2dec/gstmpeg2dec.*: Don't treat STATE_INVALID as fatal error; throw an error only after five consecutive deco...
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(gst_mpeg2dec_reset), (gst_mpeg2dec_chain):
* ext/mpeg2dec/gstmpeg2dec.h:
Don't treat STATE_INVALID as fatal error; throw an error
only after five consecutive decoding errors. Makes decoding
mpeg streams more robust and fixes playback of joined clips
(#300682).
2006-02-27 14:49:05 +00:00
Thomas Vander Stichele
ffe763c043 expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:48:07 +00:00
Jan Schmidt
23b68823d6 ext/mpeg2dec/gstmpeg2dec.*: Use fractional framerates
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (src_templ),
(gst_mpeg2dec_negotiate_format), (handle_sequence),
(gst_mpeg2dec_sink_event):
* ext/mpeg2dec/gstmpeg2dec.h:
Use fractional framerates
2005-11-23 00:12:24 +00:00
Wim Taymans
535cd3d2fa ext/mpeg2dec/gstmpeg2dec.*: Removed lots of dubious code.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(gst_mpeg2dec_dispose), (gst_mpeg2dec_reset),
(gst_mpeg2dec_alloc_buffer), (gst_mpeg2dec_negotiate_format),
(handle_sequence), (handle_picture):
* ext/mpeg2dec/gstmpeg2dec.h:
Removed lots of dubious code.
Handle flushing and seeking correctly. Still leaks though...
2005-10-26 16:45:04 +00:00
Jan Schmidt
45a0fee92b ext/mpeg2dec/gstmpeg2dec.*: The libmpeg2 user-allocated buffer management is awkward, to say the least. Hopefully thi...
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_open_decoder),
(gst_mpeg2dec_reset), (free_all_buffers),
(gst_mpeg2dec_alloc_buffer), (handle_sequence):
* ext/mpeg2dec/gstmpeg2dec.h:
The libmpeg2 user-allocated buffer management is awkward,
to say the least. Hopefully this fixes things.
2005-02-05 07:36:01 +00:00
Jan Schmidt
74ea3b6d3c ext/mpeg2dec/gstmpeg2dec.*: Rearrange buffer tracking and refcounting and refactor a little for readability.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(gst_mpeg2dec_close_decoder), (put_buffer), (check_buffer),
(free_buffer), (free_all_buffers), (gst_mpeg2dec_alloc_buffer),
(handle_sequence), (handle_picture):
* ext/mpeg2dec/gstmpeg2dec.h:
Rearrange buffer tracking and refcounting and refactor
a little for readability.
2005-02-04 13:43:28 +00:00
Jan Schmidt
f8d863517a ext/a52dec/gsta52dec.c: Add some debug output. Check that a discont has a valid time associated.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_push),
(gst_a52dec_handle_event), (gst_a52dec_chain):
Add some debug output. Check that a discont has a valid
time associated.
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
(gst_alsa_sink_loop):
Ignore TAG events. A little extra debug for broken timestamps.
* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init), (dvdnavsrc_loop),
(dvdnavsrc_change_state):
Ensure we send a discont to engage the link before we send any
other events.
* ext/dvdread/dvdreadsrc.c: (dvdreadsrc_init),
(dvdreadsrc_finalize), (_close), (_open), (_seek_title),
(_seek_chapter), (seek_sector), (dvdreadsrc_get),
(dvdreadsrc_uri_get_uri), (dvdreadsrc_uri_set_uri):
Handle URI of the form dvd://title[,chapter[,angle]]. Currently only
dvd://title works in totem because typefinding sends a seek that ends
up going back to chapter 1 regardless.
* ext/mpeg2dec/gstmpeg2dec.c:
* ext/mpeg2dec/gstmpeg2dec.h:
Output correct timestamps and handle disconts.
* ext/ogg/gstoggdemux.c: (get_relative):
Small guard against a null dereference.
* ext/pango/gsttextoverlay.c: (gst_textoverlay_finalize),
(gst_textoverlay_set_property):
Free memory when done. Don't call gst_event_filler_get_duration on
EOS events. Use GST_LOG and GST_WARNING instead of g_message and
g_warning.
* ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init),
(draw_line), (gst_smoothwave_dispose), (gst_sw_sinklink),
(gst_sw_srclink), (gst_smoothwave_chain):
Draw solid lines, prettier colours.
* gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init):
Add a default palette that'll work for some movies.
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_init),
(gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_send_discont),
(gst_dvd_demux_send_subbuffer), (gst_dvd_demux_reset):
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont),
(gst_mpeg_demux_parse_syshead), (gst_mpeg_demux_parse_pes):
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init),
(gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead):
* gst/mpegstream/gstmpegparse.h:
Use PTM/NAV events when for timestamp adjustment when connected to
dvdnavsrc. Don't use many discont events where one suffices.
* gst/playback/gstplaybasebin.c: (group_destroy),
(gen_preroll_element), (gst_play_base_bin_add_element):
* gst/playback/gstplaybasebin.h:
Make sure we remove subtitles from the same bin we put them in.
* gst/subparse/gstsubparse.c: (convert_encoding), (parse_subrip),
(gst_subparse_buffer_format_autodetect),
(gst_subparse_change_state):
Fix some memleaks and invalid accesses.
* gst/typefind/gsttypefindfunctions.c: (ogganx_type_find),
(oggskel_type_find), (cmml_type_find), (plugin_init):
Some typefind functions for Annodex v3.0 files
* gst/wavparse/gstwavparse.h:
GstRiffReadClass is the correct parent class.
2005-01-25 15:34:08 +00:00
Ronald S. Bultje
c68357a3a6 ext/mpeg2dec/gstmpeg2dec.*: Crop if decoding size is not the actual image size (#163676).
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer),
(gst_mpeg2dec_alloc_buffer):
* ext/mpeg2dec/gstmpeg2dec.h:
Crop if decoding size is not the actual image size (#163676).
2005-01-17 13:54:30 +00:00
Thomas Vander Stichele
8e4b959b84 debugging; change sync method to picture
Original commit message from CVS:
debugging; change sync method to picture
2004-07-07 16:49:49 +00:00
Wim Taymans
1fa45fe714 ext/mpeg2dec/gstmpeg2dec.*: removed the static pad template so that we can add the more accurate framerate value to t...
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (src_templ),
(gst_mpeg2dec_base_init), (gst_mpeg2dec_init),
(gst_mpeg2dec_negotiate_format):
* ext/mpeg2dec/gstmpeg2dec.h:
removed the static pad template so that we can add the
more accurate framerate value to the caps.
2004-05-05 09:13:42 +00:00
Matthew.Spencer@eu.sony.com
bcb74c4d07 ext/mpeg2dec/gstmpeg2dec.c: Handle Y42B-format MPEG video, patch from Matthew.Spencer@eu.sony.com (Matthew Spencer) (...
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer),
(gst_mpeg2dec_negotiate_format):  Handle Y42B-format MPEG
video, patch from Matthew.Spencer@eu.sony.com (Matthew Spencer)
(bug #137504)
* ext/mpeg2dec/gstmpeg2dec.h:
2004-03-31 06:31:47 +00:00
Johan Dahlin
72ec4a2aa3 *.h: Revert indenting
Original commit message from CVS:
* *.h: Revert indenting
2004-03-15 16:32:53 +00:00
Thomas Vander Stichele
908defa2c4 gst-indent
Original commit message from CVS:
gst-indent
2004-03-14 22:34:30 +00:00
David Schleef
200089a2ba Merge CAPS branch
Original commit message from CVS:
Merge CAPS branch
2003-12-22 01:47:08 +00:00
Ronald S. Bultje
2081f9ad65 Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes fro...
Original commit message from CVS:
Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes from several source files
2003-11-07 12:46:51 +00:00
Wim Taymans
769ab2d316 Small improvements
Original commit message from CVS:
Small improvements
2002-12-27 04:04:04 +00:00
Wim Taymans
0fd7103987 Improbed seeking and indexing
Original commit message from CVS:
Improbed seeking and indexing
2002-12-26 22:46:26 +00:00
Wim Taymans
c49cd54ded - Added streaminfo
Original commit message from CVS:
- Added streaminfo
- moved CC parsing to GOP state
- don't decode when srcpad is not usable
- Fix acceleration again
2002-12-19 20:05:10 +00:00
David I. Lehn
91ab6b0ca9 add user_data src pad
Original commit message from CVS:
add user_data src pad
2002-12-19 07:45:11 +00:00
Christian Schaller
02409c09df apply Jeroens patch to move us to mpeg2dec 0.3.1, also update REQ file and spec file.
Original commit message from CVS:
apply Jeroens patch to move us to mpeg2dec 0.3.1, also update REQ file and spec file.
2002-12-15 21:48:34 +00:00
Wim Taymans
d96e951b4d cache -> index
Original commit message from CVS:
cache -> index
2002-12-12 22:15:39 +00:00
David I. Lehn
4af44b1075 drop mpeg2dec 0.2.1 support in favor of 0.3.0.
Original commit message from CVS:
drop mpeg2dec 0.2.1 support in favor of 0.3.0.
keeping old code around in cvs for a while just in case someone needs it.
2002-12-05 00:29:11 +00:00