Commit graph

1335 commits

Author SHA1 Message Date
Sebastian Dröge
3ffbb6ff94 avaudenc: Use non-deprecated avcodec_encode_audio2() API
This also allows us to always get an output buffer of the required size
instead of risking that it is too small.
2012-11-20 10:53:01 +01:00
Sebastian Dröge
7a29cffc50 avaudenc: Port to audio encoder base class 2012-11-20 10:36:29 +01:00
Sebastian Dröge
970f40b935 avvidenc: Use gst_caps_truncate() 2012-11-20 10:35:01 +01:00
Sebastian Dröge
6895df72d6 av: Use PROP_ instead of ARG_ 2012-11-20 10:31:49 +01:00
Sebastian Dröge
0e13c75aea avcodecmap: Y41B is YUV411P, not YUV410P 2012-11-19 14:11:52 +01:00
Sebastian Dröge
ef408ada57 avauddec: Port to audio base classes 2012-11-19 14:11:52 +01:00
Sebastian Dröge
c784ec9fa5 av: Put declarations in header files and rename audio codec files 2012-11-19 10:30:37 +01:00
Tim-Philipp Müller
37ce97a6e0 gst_adapter_prev_timestamp -> gst_adapter_prev_pts 2012-11-14 12:45:56 +00:00
Sebastian Dröge
67e11c7ad9 avcodecmap: Add mappings for the GBR color formats 2012-11-10 22:23:23 +01:00
Tim-Philipp Müller
d0ef33d463 Fix FSF address 2012-11-04 00:22:16 +00:00
Sebastian Dröge
c9125dd6f0 avcodecmap: Remove redundant function to map PixelFormat to GstVideoFormat
And merge everything into a single one.
2012-10-29 14:12:03 +01:00
Sebastian Dröge
7eec659460 avdec: Use gst_audio_buffer_clip() instead of manual clipping 2012-10-25 14:07:21 +02:00
Tim-Philipp Müller
451a6c2ecf avvidenc: also skip non-video encoders
Doesn't actually make any difference at the moment, but
seems the right thing to do.

https://bugzilla.gnome.org/show_bug.cgi?id=685113
2012-09-30 16:25:29 +01:00
Alban Browaeys
f1071cc1b1 avviddec: exclude non-video decoders
Otherwise audio decoders "ignored", ie blacklisted, end up
registered by avviddec as video decoders.

https://bugzilla.gnome.org/show_bug.cgi?id=685113
2012-09-30 16:24:18 +01:00
Tim-Philipp Müller
07cec6d216 avdemux: fix not-negotiated errors
Drop caps event received on the sink pad, instead of
putting it in the list of cached events to be sent
downstream later. We don't want to send our container
caps downstream to our decoders, that'll give us
nasty not-negotiated errors.

https://bugzilla.gnome.org/show_bug.cgi?id=680464
2012-09-28 16:53:49 +01:00
Sebastian Dröge
f0d700d5ca avviddec: Correctly handle 0-sized buffers without crashing
Might e.g. be valid for Theora.
2012-09-27 12:20:30 +02:00
Tim-Philipp Müller
787bd57ea1 avviddec: don't try to set invalid latency
Avoids warnings when we don't know the latency.
2012-09-25 18:29:08 +01:00
Wim Taymans
aafffb7665 avviddec: improve debug 2012-09-14 13:25:03 +02:00
Nicolas Dufresne
3ca45b8c45 viddec: Set latency base on the number of bframes 2012-09-13 15:48:26 +02:00
Nicolas Dufresne
1f74496b8a viddec: Cleanup unused has_b_frames flag 2012-09-13 15:48:22 +02:00
Edward Hervey
0f9cc8dac6 libav: Switch to non-deprecated symbols
This symbols/enums will all be deprecated in the next releases
2012-09-13 15:23:26 +02:00
Stefan Sauer
70471f230f collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:15:24 +02:00
Michael Smith
01bb84a5eb libav: add decode support for prores
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683840
2012-09-12 10:29:24 +02:00
Mark Nauwelaerts
c5589bb8f9 avdemux: port to the new GLib thread API 2012-09-12 10:25:21 +02:00
Mark Nauwelaerts
b9e32291a9 avdemux: only activate in pull mode if upstream is seekable 2012-09-11 17:52:57 +02:00
Wim Taymans
1e5bfa5215 avviddec: add support for codecs that use reget_buffer
Add support for codec that use reget_buffer. In this mode, it reuses the picture
and we need to attach the corresponding input frame to it or else we get the
timestamps wrong.
2012-09-11 13:53:23 +02:00
Edward Hervey
90a8b3fb9f ext: ffmpeg/gstffmpeg*.[ch] => libav/gstav*.[ch] 2012-09-10 17:53:54 +02:00
Edward Hervey
f4532d9135 remove postproc element
libpostproc is gone from upstream libav.
2012-09-10 17:18:30 +02:00
Edward Hervey
0e40eb11bc configure.ac: Import top-level include directory
And fixup all includes
2012-09-10 17:08:00 +02:00
Edward Hervey
9f8e46d3d2 avdemux: Really ignore demuxers we want to ignore 2012-09-10 11:17:11 +02:00
Tim-Philipp Müller
22f67f7b9e viddec: blacklist *crystalhd* decoder wrappers
There are gstreamer crystalhd elements as well,
so shouldn't be a big loss.

https://bugzilla.gnome.org/show_bug.cgi?id=683435
2012-09-07 17:56:43 +01:00
Sjoerd Simons
ed1ea6f097 ffmpegenc: Don't try to set caps to NULL
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682736
2012-08-30 20:03:10 +02:00
Wim Taymans
4b62101f44 viddec: use the right pointers
Use the plane pointers and strides.
Improve some debug
2012-08-10 17:03:26 +02:00
Sebastian Dröge
fe0a8d005d avviddec: Properly align and pad buffers for libav
https://bugzilla.gnome.org/show_bug.cgi?id=680796
2012-08-08 16:02:32 +02:00
Sebastian Dröge
3a4a139a28 av: Use */x-gst-av instead of */x-gst-ff for unknown caps 2012-08-07 10:19:16 +02:00
Sebastian Dröge
0764e9600c avdemux: Remove unused variable 2012-08-06 14:35:07 +02:00
Sebastian Dröge
1af5b5601d avdemux: Add stream-id to stream-start events 2012-08-06 14:05:28 +02:00
Edward Hervey
9b45987ef5 ffmpegviddec: Return NOT_NEGOTIATED when not configured 2012-08-06 11:55:31 +02:00
Tim-Philipp Müller
241419b46d gst_tag_list_free -> gst_tag_list_unref 2012-08-04 16:19:29 +01:00
Sebastian Dröge
3d2d1beb77 tag: Update for taglist/tag event API changes 2012-07-28 00:36:40 +02:00
Wim Taymans
3c47f584e2 avdec: require alignment=au for h264
Because we don't use a parser anymore we need to make sure that we feed the
decoder with full frames. For h264, require that we are aligned on access
units.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680540
2012-07-25 11:55:21 +02:00
Tim-Philipp Müller
2d458ca951 audio encoders: use context default bitrate if no bitrate has been set
Fixes 'bitrate too low: got 0, need 24000 or higher'
error when doing audiotstsrc ! avenc_wmav1 ! fakesink

https://bugzilla.gnome.org/show_bug.cgi?id=680487

https://bugzilla.gnome.org/show_bug.cgi?id=680487
2012-07-23 23:29:26 +01:00
Mark Nauwelaerts
0489f5eb78 ffmpeg: avoid assertion failure on duplicate frame allocation 2012-07-23 15:02:11 +02:00
Robert Swain
1638344081 ffmpegviddec: Correctly flag interlaced state
If the context interlaced state is indicated, the picture interlaced
state can be used to correctly indicate GST_VIDEO_BUFFER_FLAG_INTERLACED
on output buffers.
2012-07-23 11:37:57 +02:00
Sebastian Dröge
899fd3d76e ffvidenc: Allocate output buffers with the base class functions 2012-07-23 10:40:14 +02:00
Sebastian Dröge
941f4c331b ffmpegviddec: Update for video base classes API changes 2012-07-23 10:35:38 +02:00
Edward Hervey
c77db02d6e viddec: Call gst_video_decoder_negotiate() 2012-07-18 18:30:53 +02:00
Tim-Philipp Müller
4e784f0d0e avdeinterlace: fix up output caps for new field as well
And presumably our output is always progressive and not
interlaced any more?
2012-07-17 12:35:03 +01:00
Tim-Philipp Müller
ad04636c6e avdeinterlace: detect interlaced input properly
It's not a boolean field any more, and called "interlaced-mode" now.
2012-07-17 12:31:52 +01:00
Edward Hervey
93ef1b687e demux: Push STREAM_START when needed 2012-07-13 14:01:44 +02:00
Wim Taymans
a3b0ae22d7 avdec: ignore AAC errors instead of erroring out
Also ignore decode errors for AAC and carry on decoding like we do for all
other formats.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679639
2012-07-10 16:10:14 +02:00
Wim Taymans
0e1d6c0011 avcodecmap: only restrict caps on encoders
We only want to restrict the channels/rate and width/height on the encoder pads.
For decoders can't assume that the input caps contain channels/rate or
width/height so we need to accept everything.
2012-07-10 15:47:01 +02:00
Wim Taymans
dc7bf19858 update for query api changes 2012-07-06 11:50:57 +02:00
Wim Taymans
f8475ad22a update for query api changes 2012-07-06 11:27:33 +02:00
Wim Taymans
3ae9eb158c update for allocation query changes 2012-07-06 11:05:19 +02:00
Tim-Philipp Müller
ab7b7cbff3 cfg: remove some deprecated properties: statsfile, mb-qmin, mb-qmax
Use multipass-cache-file, qmin, qmax instead.
2012-07-06 09:49:57 +01:00
Sebastian Dröge
06d24b47b6 avdemux: Implement segment-done event 2012-07-05 13:21:33 +02:00
Wim Taymans
cdcaa584a4 avdec: handle_frame should always unref the input frame
Unref the input frame in all cases. Previously it was only unreffed when the
frame was used for output.
When we produce an output frame, take an extra ref because the frame is now
freed elsewhere.
2012-07-03 17:13:00 +02:00
Wim Taymans
c9878e9f86 avdec: small cleanup 2012-07-03 17:13:00 +02:00
Wim Taymans
41ad632275 avdec: avoid some refs
We can let the ffmpeg structure take ownership of the buffer.
2012-07-03 17:13:00 +02:00
Руслан Ижбулатов
3ff6f53f24 ffvidenc: Fix a format string to avoid warnings
istffmpegvidenc.c:412:3: error: format '%lu' expects argument of type 'long unsigned int', but argument 8 has type 'gint' [-Werror=format]
2012-07-03 08:38:28 +02:00
Sebastian Dröge
7b8ffe6169 ffaudenc: Fix format string compiler warning
gstffmpegenc.c:266:3: error: format '%lu' expects argument of type 'long unsigned int', but argument 8 has type 'gint'
2012-07-02 15:51:17 +02:00
Wim Taymans
103f8f9395 avdec: don't wait for keyframe
Don't wait for a keyframe but try to decode as soon as possible. In most cases,
the demuxer will send a keyframe first and things will work fine, in other
cases, like RTP, we try to decode ASAP to provide quick feedback. Some formats
also have no keyframes (h264 with intra refresh).
2012-06-28 09:33:28 +02:00
Wim Taymans
932bd7f79e avenc: don't leak frames 2012-06-26 12:36:56 +02:00
Wim Taymans
eb52e46b07 avdemux: update for task api change 2012-06-20 10:36:25 +02:00
Matej Knopp
17ee8113d7 ffmpegviddec: Don't reopen decoder on same caps, fix memory leaks, only drain on EOS 2012-06-20 07:39:40 +01:00
Wim Taymans
db53c6e5ec viddec: avoid renegotiation
Keep track of the context veriables and renegotiate when something changes. We
need to use separate values for this because not all values can be copied into a
GstVideoInfo.
Set the output interlacing based on the libav context.
Use the demuxer and decoder framerate to construct an output framerate.
Use demuxer and decoder par to construct an output framerate.
2012-06-19 12:23:32 +02:00
Sebastian Dröge
83f57519b4 ffmpegvidenc: Handle allocation queries and improve the padding/direct-rendering handling 2012-06-15 16:37:19 +02:00
Sebastian Dröge
6ff10a922a ffmpegviddec: Port to 0.11 again
No support for video meta, cropping, etc. yet
2012-06-15 15:18:47 +02:00
Sebastian Dröge
85f0dcb1e8 Merge remote-tracking branch 'origin/0.10' 2012-06-15 15:18:41 +02:00
Edward Hervey
1db8779252 ffmpegviddec: Properly return if negotiation fails
Instead of crashing ....
2012-06-15 12:19:58 +02:00
Sebastian Dröge
107c00a761 ffvidenc: Port to 0.11 2012-06-14 16:29:05 +02:00
Sebastian Dröge
de82bfbbba Merge remote-tracking branch 'origin/0.10' 2012-06-14 15:44:18 +02:00
Sebastian Dröge
4a58fd4be4 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	common
	ext/ffmpeg/Makefile.am
	ext/ffmpeg/gstffmpegcfg.c
	ext/ffmpeg/gstffmpegcodecmap.c
	ext/ffmpeg/gstffmpegcodecmap.h
	ext/ffmpeg/gstffmpegdec.c
	ext/ffmpeg/gstffmpegenc.c
	ext/ffmpeg/gstffmpegenc.h
	tests/check/Makefile.am

Porting of the new video elements to 0.11 still pending.
2012-06-14 15:42:06 +02:00
Edward Hervey
ce7f65f752 ffmpegviddec: Properly update the interlacing
Fixes #678080
2012-06-14 15:13:31 +02:00
Edward Hervey
1ca115c44b ffmpegviddec: Properly error out when codec doesn't open
Avoids ending up using an un-set codec
2012-06-14 15:04:33 +02:00
Matej Knopp
a3c7cd4643 gstffmpegdec: only drain on EOS
See https://bugzilla.gnome.org/show_bug.cgi?id=675359
2012-06-11 16:27:35 +02:00
Tim-Philipp Müller
4ffec05c50 avenc: make buffer-size property read-only
Fixes FIXME.
2012-06-09 16:49:54 +01:00
Tim-Philipp Müller
7956478011 avenc: change properties of type ulong to int 2012-06-09 16:41:28 +01:00
Tim-Philipp Müller
c4ca1e86f8 avmux: blacklist "segment" muxer
Causes run-time warnings.
2012-06-09 14:37:09 +01:00
Wim Taymans
ee6c8bd498 update for audio api changes 2012-06-08 10:11:46 +02:00
Wim Taymans
8ae3ffa3d3 update for tag event change 2012-06-06 13:03:18 +02:00
Wim Taymans
c44eff6afb avdec: fix paletted formats
Pass the palette as the side data for AVPacket so that it is written in the
second plane of output AVFrame.
2012-05-31 13:55:44 +02:00
Wim Taymans
e38b00489f libav: add support for 10 bits I420
See https://bugzilla.gnome.org/show_bug.cgi?id=665034
2012-05-25 17:03:53 +02:00
Nicolas Dufresne
35cf2e84f2 codecmap: correctly set height in AVCodecContext
https://bugzilla.gnome.org/show_bug.cgi?id=674899
2012-04-27 16:53:28 +02:00
Edward Hervey
f0a411235a ffmpegviddec: Always keep a reference to the frame
Ensures no data gets cleared before the decoders are really done
with it.
2012-04-26 18:56:35 +02:00
Edward Hervey
6d2b483e15 ffmpegviddec: Flush and drain when needed
we need to flush avcodec internal state on hard resets
we need to drain out pending buffers on EOS and soft resets
2012-04-26 18:53:51 +02:00
Edward Hervey
252c5e0a92 ffmpegviddec: Add video/x-raw-gray to src pad template 2012-04-24 15:36:30 +02:00
Edward Hervey
8e42e0b6a4 codecmap: Add more GstVideoInfo<=>PixelFormat mappings 2012-04-24 15:36:00 +02:00
Edward Hervey
272823296f ffmpegviddec: Port to GstVideoDecoder 2012-04-24 11:37:02 +02:00
Edward Hervey
134f7d7058 gstffmpegvidenc: Port to -base video classes 2012-04-24 11:37:02 +02:00
Edward Hervey
bdf7ebf411 ffmpegenc/dec: Remove audio/video specific code
Makes each file more manageable, second step to porting to base classes
2012-04-24 11:36:31 +02:00
Edward Hervey
6310ed46dd ffmpeg: Clone encoder and decoder files
First step in porting to base video classes
2012-04-24 11:35:56 +02:00
Edward Hervey
04a2d01877 codecmap: Add utility for using with GstVideoFormat 2012-04-24 11:35:56 +02:00
Tim-Philipp Müller
c69da6d988 ffmpegdemux: skip ffmpeg matroska,webm typefinder again
Causes warnings, and shouldn't be needed.
2012-04-22 11:52:18 +01:00
Wim Taymans
cd2e53aa9f Merge remote-tracking branch 'origin/0.10' 2012-04-20 16:23:41 +02:00
Wim Taymans
630790f50d ffdec: don't flush buffers on DISCONT
Don't flush the buffers that ffmpeg has on DISCONT but instead let it recover.
This gives a much better image in the case of packet loss.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=635020
2012-04-20 16:16:25 +02:00
Wim Taymans
2e3dd525c8 Merge remote-tracking branch 'origin/0.10' 2012-04-19 15:37:06 +02:00
Wim Taymans
e746746120 postproc: fix compilation when ORC is missing
Fix 'set but not used' compiler error when ORC is missing.
2012-04-19 15:35:48 +02:00
Wim Taymans
8fee156175 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	ext/libswscale/gstffmpegscale.c
2012-04-19 14:49:18 +02:00
Wim Taymans
b053a50508 ffscale: fix compilation when ORC is missing
Fix set but not used compiler error when ORC is missing.
2012-04-19 14:45:42 +02:00
Mark Nauwelaerts
5c9d454517 collectpads2: rename to collectpads 2012-04-17 15:36:12 +02:00
Sebastian Dröge
e49c069995 Rename everything from gst-ffmpeg to gst-libav
Also change elements factory names to avenc_*, avdec_*,
avmux_* and avdemux_*. The actual filenames, type names,
function/variable names are not touched to make merging
with 0.10 easier at this point. Once 0.10 is not supported
anymore everything should be renamed.
2012-04-12 19:41:52 +02:00
Tim-Philipp Müller
c1ae78ecea ffmpeg: use set_metadata() for generated strings
Reverts parts of previous commit.
2012-04-10 01:01:00 +01:00
Tim-Philipp Müller
b06b11809b Use new gst_element_class_set_static_metadata() 2012-04-10 00:53:43 +01:00
Sebastian Dröge
1879c67d58 gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:41:11 +02:00
Sebastian Dröge
37fcf4009f ffmpeg: Update versioning 2012-04-04 14:53:51 +02:00
Wim Taymans
e438f20c93 ffdec: handle DTS/PTS
Now that we can know about PTS and DTS on incomming buffers, track them and set
the correct output timestamps.
We can remove the code to estimate if input buffers have pts or dts.
2012-04-03 11:52:05 +02:00
Wim Taymans
182af2df48 update for buffer api change 2012-03-30 18:14:00 +02:00
Wim Taymans
2c881eb752 update for buffer changes 2012-03-28 12:50:19 +02:00
Wim Taymans
894be47d5f ffenc: fix caps handling
Avoid copies and leaks
2012-03-27 16:39:09 +02:00
Wim Taymans
b0cc0cf55d Merge branch 'master' into 0.11
Conflicts:
	gst-libs/ext/libav
2012-03-22 15:31:40 +01:00
Wim Taymans
c9538928b6 ffdec: ensure padding is big enough 2012-03-19 11:06:40 +01:00
Wim Taymans
b7b587bce0 ffdec: check if input is already 0-padded
When the input buffer is already 0-padded we don't need to copy. This can happen
because in the ALLOCATION query we suggest this.
Only do temporary padding when we are using a parser.
2012-03-19 10:29:34 +01:00
Wim Taymans
3d2527c0a2 update for bufferpool changes 2012-03-15 22:11:54 +01:00
Wim Taymans
427ad305c5 update for allocation query changes 2012-03-15 20:39:10 +01:00
Wim Taymans
d9e16a498c ffdec: propose some padding in the allocation query
Hopefully upstream can add some padding and then we don't have to memcpy.
2012-03-14 20:04:53 +01:00
Wim Taymans
d606efc141 take padding into account 2012-03-14 19:53:06 +01:00
Wim Taymans
78e0187282 ffdec: remove unused crop property 2012-03-14 17:35:28 +01:00
Wim Taymans
dab06c0e5d ffdec: remove padding property
Users should not mess with this
2012-03-14 17:33:40 +01:00
Wim Taymans
75ba435552 ffdec: make bufferpool setup recalculate direct rendering
We need to recalculate if we can use direct rendering after we have setup the
bufferpool.
2012-03-14 12:58:38 +01:00
Wim Taymans
1ba905c031 ffdec: add some PERFORMANCE logging 2012-03-14 11:53:42 +01:00
Wim Taymans
12c0db9091 ffcodec: add voc demuxer 2012-03-13 13:24:39 +01:00
Wim Taymans
c2469e82f9 ffdemux: activate pad before setting caps 2012-03-13 13:24:23 +01:00
Wim Taymans
575cb87091 ffdec: implement accept-caps
Implement a potentially faster accept-caps function
2012-03-12 13:50:46 +01:00
Wim Taymans
bd13c104c2 fix for caps api changes 2012-03-11 19:07:31 +01:00
Wim Taymans
ecbbbe7fd2 ffmpegdec: enable alignment if videometa is allowed
Use the videobufferpool when downstream didn't suggest one.
Only enable video alignment in the bufferpool when downstream supports video
metadata.
2012-03-08 13:04:57 +01:00
Sebastian Dröge
d417f99cd7 ffmux: Use correct enum type for return value 2012-03-06 15:27:22 +01:00
Edward Hervey
57c7f59268 ffmpegdec: Use auto-threads if available, and only slice-threading
Slice threading causes less latency (and corruption)
2012-03-02 17:27:30 +01:00
Alessandro Decina
d48fc18065 Fix compiler warnings 2012-02-27 06:26:02 +01:00
Wim Taymans
0c7430adec update for fixate_caps change 2012-02-22 12:28:49 +01:00
Edward Hervey
0a16f7edf6 codecmap: Add mapping for Indeo 4 video codec 2012-02-22 12:14:21 +01:00
Wim Taymans
e4d6638c22 update for new memory api 2012-02-22 02:08:06 +01:00
Wim Taymans
05a44b7ac6 ffdec: disable multithreading
It causes refcounting problems.
2012-02-21 18:02:56 +01:00
Matej Knopp
a079886388 only reopen decoder when new caps are different 2012-02-20 16:23:57 +01:00
Wim Taymans
b5609f651e GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:41:19 +01:00
Tim-Philipp Müller
ab88f15674 Fix for gst_type_find_register() API change 2012-02-02 01:36:16 +00:00
Wim Taymans
cf3d3fe00d ffmpeg: port to new memory API 2012-01-25 11:59:04 +01:00
Wim Taymans
a3a68c1f72 port to new gthread API 2012-01-19 11:34:59 +01:00
Sebastian Dröge
3393095cd0 Merge branch 'master' into 0.11 2012-01-18 10:21:36 +01:00
Sebastian Dröge
99d4792014 ffdec: Only set get_buffer() function for video
Fixes bug #666435.
2012-01-18 10:11:49 +01:00
Tim-Philipp Müller
c84802ffef ffmpegdemux: demote swf demuxer to GST_RANK_NONE
SWF doesn't really make sense in our context, don't pretend
to support it. People should use a dedicated swf player for that.
2012-01-12 18:03:10 +00:00
Vincent Penquerc'h
49e3bc6e35 ffmpegdemux: fix caps leak 2012-01-12 14:57:48 +00:00
Mark Nauwelaerts
0edb9f22f0 ffmpeg: fix and extend LIBS in Makefile.am
... to account for -base video helper functions.
2012-01-10 13:41:55 +01:00
Sebastian Dröge
27b5013c9c ffmux: gst_element_class_add_pad_template() takes ownership of the pad template 2012-01-10 11:49:57 +01:00
Sebastian Dröge
44a1dc0138 ffmpeg: Fix merge mistakes 2012-01-10 11:39:27 +01:00
Sebastian Dröge
bde3117e72 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/ffmpeg/gstffmpegcodecmap.c
	ext/ffmpeg/gstffmpegdec.c
	ext/ffmpeg/gstffmpegdeinterlace.c
	ext/ffmpeg/gstffmpegmux.c
	ext/libswscale/gstffmpegscale.c
2012-01-10 11:35:55 +01:00
Sebastian Dröge
b9ff7da938 ffmpeg: Channel layouts are now set for DTS and (E)AC3 by libav 2012-01-10 11:30:00 +01:00
Sebastian Dröge
3d43013d4f ffdec: Give the (E)AC3/DTS decoders a rank of marginal
Even if they don't downmix to stereo, they're still working
correctly. The only advantage of dtsdec/a52dec is that they
downmix to stereo (using the special downmixing matrices) if
downstream prefers stereo but in every other case they should
be equivalent.
2012-01-10 11:06:53 +01:00
Sebastian Dröge
ad53e32665 ffdec: Revert accidentially committed rank change of the (E)AC3/DTS decoders 2012-01-10 10:59:57 +01:00
Sebastian Dröge
6931afe0ba ffmpegdec: Reorder audio channels after clipping the audio buffer 2012-01-10 10:45:42 +01:00
Sebastian Dröge
3d6c803917 ffmpegdec: Correctly reorder audio channels to the GStreamer order if necessary 2012-01-10 10:37:50 +01:00
Sebastian Dröge
09efbe103f ffmpeg: Channel layouts are now set for DTS and (E)AC3 by libav 2012-01-10 10:08:05 +01:00
Sebastian Dröge
42bc8f5ad7 ffmpeg: Use stack-allocated channel positions array 2012-01-10 10:01:26 +01:00
Sebastian Dröge
d2702a091e ffmpeg: Put the new layout field in raw audio caps 2012-01-09 13:40:05 +01:00
Sebastian Dröge
2a4fcf842e ffdec: Add mappings for the top channel positions 2012-01-09 13:24:55 +01:00
Sebastian Dröge
a861ea34dd ffdec: Correctly set the channel-mask and also set it for stereo 2012-01-09 13:23:29 +01:00
Wim Taymans
fc0d9bd243 ffmpeg: port to new channel mapping 2012-01-05 14:06:33 +01:00
Wim Taymans
00d22402a2 GST_FLOW_UNEXPECTED -> GST_FLOW_EOS 2012-01-03 15:27:54 +01:00
Wim Taymans
93be243b3a update for videofilter changes 2011-12-21 23:52:00 +01:00
Wim Taymans
290d3120fb ffdec: fill in the stride alignment
Copy the stride alignment we got from ffmpeg to the alignment structure.
2011-12-21 18:06:32 +01:00
Wim Taymans
9ea5b22de6 ffmpegdec: update for new interlace fields 2011-12-19 18:14:27 +01:00
Vincent Penquerc'h
f66834c11f ffmpeg: port to GstCollectPads2 2011-12-15 14:28:00 +00:00
Edward Hervey
15ae52392e ffmpegdec: Report latency if B-frames are present
... and cleanup the query handler while we're at it

https://bugzilla.gnome.org/show_bug.cgi?id=663616
2011-12-01 19:29:24 +01:00
Vincent Penquerc'h
dcd387b313 ffmpeg: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:23:42 +00:00
Matej Knopp
28142d9549 Fix cpu cores detection on OS X
https://bugzilla.gnome.org/show_bug.cgi?id=664687
2011-11-23 23:57:01 +00:00
Matej Knopp
7dd07ed7fb Fix cpu cores detection on OS X
https://bugzilla.gnome.org/show_bug.cgi?id=664687
2011-11-23 23:54:54 +00:00
Wim Taymans
1e147bf88e update for activation changes 2011-11-21 13:36:34 +01:00
Wim Taymans
944a76904d update for new scheduling query 2011-11-18 18:00:59 +01:00
Wim Taymans
c1b511f5db add parent to activate functions 2011-11-18 13:59:59 +01:00
Wim Taymans
152e090891 add parent to pad functions 2011-11-17 12:49:33 +01:00
Stefan Sauer
319de2e96a collectpads: port API changes 2011-11-17 09:00:47 +01:00
Wim Taymans
63a890a746 add parent to query function 2011-11-16 17:29:22 +01:00
Wim Taymans
f65f9938d0 _query_peer_*() -> _peer_query_*() 2011-11-15 17:55:29 +01:00
Wim Taymans
71540b5fc1 _peer_get_caps() -> _peer_query_caps() 2011-11-15 17:23:21 +01:00
Wim Taymans
175a092331 ffmpeg: change getcaps to query 2011-11-15 16:35:17 +01:00
Wim Taymans
54fdd9faf7 update for adapter api change 2011-11-10 18:25:21 +01:00
Wim Taymans
9d1a924013 remove query types 2011-11-09 11:58:15 +01:00
Wim Taymans
cbb41c36ff ffdec: get the pixfmt correctly
Use the pixfmt from the passed context, which can be different from our other
context and which might not have the pixfmt set correctly.
2011-11-04 16:23:32 +01:00
Wim Taymans
a70ce56cf8 ffmpeg: fix template to %u 2011-11-04 12:43:17 +01:00
Wim Taymans
fa576d7384 tags: update for tag API removal 2011-11-02 12:10:25 +01:00
Wim Taymans
e8910763b4 demux: update for new task api 2011-11-02 09:10:03 +01:00
Wim Taymans
431bbdcbf5 structure: fix for api upate 2011-11-02 09:10:03 +01:00
Tim-Philipp Müller
02250601cf Merge remote-tracking branch 'origin/master' into 0.11 2011-10-31 14:53:01 +00:00
Martin Storsjo
77fa4072ee Allow building a LGPL only gst-ffmpeg plugin
This removes --enable-gpl and --enable-postproc from the
ffmpeg configure line, and disables building the postproc
gstreamer plugin.

https://bugzilla.gnome.org/show_bug.cgi?id=654037
2011-10-31 10:59:27 +01:00
Tim-Philipp Müller
6501cdbf92 ffmpegdemux: update for taglist API changes 2011-10-30 12:03:36 +00:00
Wim Taymans
dcc9703273 fix compilation with new caps api 2011-10-28 16:35:54 +02:00
Wim Taymans
7cbfd34e13 ffenc: fix compilation 2011-10-27 16:47:18 +02:00
Wim Taymans
1fffbe9876 Merge branch 'master' into 0.11
Conflicts:
	ext/ffmpeg/gstffmpegcodecmap.c
2011-10-27 16:31:30 +02:00
Sjoerd Simons
eb2e9f48e3 ffmpegenc: Pass the size of the output buffer to avcodec_encode_audio
avcodec_encode_audio is documented as taking the size of the output
buffer not the size of the input buffer.  This fixes the use of the G722
encoder and makes the code more consistent with avconv from the libav
source tree.
2011-10-19 13:18:35 +01:00
Sjoerd Simons
b05352beee ffmpegcodecmap: Further specify allowed rates for G722 and G726 2011-10-19 13:18:35 +01:00
Sjoerd Simons
93b333cfea ffmpegcodecmap: Always restrict audio codec in the unfixed cases
If the context isn't fixed yet or if it doesn't exist then always
restrict the caps.

Also restrict the maximum channels for G726 and G722 to 1 channel
2011-10-19 13:18:35 +01:00
Edward Hervey
5264fd3c97 Merge remote-tracking branch 'origin/master' into 0.11 2011-10-17 16:29:10 +02:00
Edward Hervey
99e61c5f3b gstffmpegdec: Re-enable MT-decoding by default 2011-10-17 16:27:36 +02:00
Edward Hervey
fc0a8893d8 gstffmpegutils: Fix include 2011-10-17 16:26:52 +02:00
Edward Hervey
b4ca4b5cfd gstffmpegcodecmap: Avoid string operations on NULL 2011-10-11 14:02:53 +02:00
Wim Taymans
3b230ce9b6 dec: remove interlaced update code 2011-10-03 11:34:34 +02:00
Wim Taymans
d4b2751c39 Merge branch 'master' into 0.11 2011-10-03 11:32:24 +02:00
Vincent Penquerc'h
d4d5e350d0 ffdec: ensure buffers have correct interlacedness in caps
Whether a frame is interlaced or not is unknown at the time of
buffer allocation, so caps on the buffer in opaque will have
a previous frame's interlaced flag set. So if interlacedness
changes, we update the buffer (if any) caps with the correct
interlaced flag once we know.

https://bugzilla.gnome.org/show_bug.cgi?id=656155
2011-10-03 11:18:06 +02:00
Wim Taymans
afb740b897 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/ffmpeg/gstffmpegcodecmap.c
	ext/ffmpeg/gstffmpegdeinterlace.c
2011-09-28 13:29:08 +02:00
Vincent Penquerc'h
8bf3d5a2b7 ffmpegdec: post QoS messages when dropping a frame
There seems to be a little bit of non obvious logic where
the QoS logic can decide to not drop decoding a frame and
pass it to ffmpeg, telling it to drop.
In this case, the QoS logic does not drop the frame itself,
but since the frame will end up being dropped, we still
mark it as dropped and post a QoS message.

https://bugzilla.gnome.org/show_bug.cgi?id=657950
2011-09-26 20:13:58 +01:00
Tim-Philipp Müller
8a34abff64 ffmpegdec: disable parser for already-parsed FLAC input
Not needed to make anything work, just seems to make sense.

https://bugzilla.gnome.org/show_bug.cgi?id=589361
2011-09-26 19:55:54 +01:00
Tim-Philipp Müller
902ee8a905 ffmpegcodecmap: don't create dummy codec data for FLAC decoder
Since then it just errors out because it's too small, as it
wants the flac headers as codec data if there is codec data.

https://bugzilla.gnome.org/show_bug.cgi?id=589361
2011-09-26 19:54:52 +01:00
Tvrtko Ursulin
42cb5bd386 ffdeinterlace: add "mode" property including automatic mode
Just like deinterlace.

https://bugzilla.gnome.org/show_bug.cgi?id=656328
2011-09-26 19:17:41 +01:00
Wim Taymans
09a66b0923 ffmpeg: fix for audio caps change 2011-09-06 15:29:26 +02:00
Nicolas Dufresne
eacf516f7f ffdec: Blacklist non-working subtitle decoders
This include decoder for ASS, SRT, PGS, DVD and DVB. Those are generated
with bad capabilities and are not usable in GStreamer. Other elements exist
to handle those subtitle formats.

https://bugzilla.gnome.org/show_bug.cgi?id=658019
2011-09-03 12:32:55 +01:00
Wim Taymans
85fa801d42 ffdec: port to new flags 2011-08-25 16:41:36 +02:00
Wim Taymans
4361442827 ffmpeg: convert to new caps 2011-08-22 13:33:31 +02:00
Wim Taymans
dd56c2c7ea ffmpeg: port to new audio caps 2011-08-19 18:33:11 +02:00
Wim Taymans
7ae8b453ca ffmpegdec: react to the reconfigure event
Also renegotiate the caps and bufferpool when we have a rereconfigure event
pending.
2011-08-05 12:04:13 +02:00
Wim Taymans
dc12f1c9c9 ffdec: ensure bufferpool size
Make sure the bufferpool size is at least what we expect.
Add some more debug.
2011-08-04 11:10:26 +02:00
Wim Taymans
5151ec83e2 ffdec: enable direct rendering for all formats
Since we now support padding, we can enable direct rendering for all formats.
2011-08-01 18:10:53 +02:00
Wim Taymans
2e02fbba58 ffdec: add alignment support
Always diable EMU_EDGE. Use the bufferpool options to enable extra padding on
allocated frames. If the downstream bufferpool does not support the padding,
disable direct rendering and do the final copy/cropping into the non-padded
output frame.
2011-08-01 17:57:38 +02:00
Wim Taymans
1dc718b195 ffdec: refactor picture fill code
Make a method to hold the code to convert a GstVideoFrame to an AVFrame so that
we can reuse it in the non-direct rendering case.
2011-07-29 13:40:30 +02:00
Wim Taymans
3a8445fc80 ffdec: cleanups
Make things a little more readable.
2011-07-29 13:08:53 +02:00
Wim Taymans
3efd2bcbf7 ffdec: use video frame helpers
Use the video frame helper functions to map and set up the strides in the
picture for ffmpeg.
2011-07-29 12:36:12 +02:00
Wim Taymans
afb69cf1d2 ffmpegdec: fix for query API change 2011-07-29 12:34:04 +02:00
Wim Taymans
8a3014f2fa ffmpeg: fix for query API changes 2011-07-29 12:32:45 +02:00
Wim Taymans
b507d2e013 ffdec: remove unused variable 2011-07-29 10:57:20 +02:00
Wim Taymans
1565260765 ffmpeg: First set of cleanups
Store incomming info from the caps, current context and output formats into
separate variables so that we can more easily handle them.
Refactor the negotiation code.
Rework the bufferpool setup code. Take into account that we might want to
negotiate extra borders around the image in direct rendering.
Remove some of the cropping code for now.
2011-07-29 10:31:03 +02:00
Wim Taymans
62bb960f3a ffmpeg: add GstVideoFormat helper function
Add a function to convert an ffmpeg pixfmt to a GStreamer GstVideoFormat.
2011-07-29 10:25:03 +02:00
Wim Taymans
408b54f5e4 ffdec: cleanups
Remove useless switch
Remove old EXTRA_REF define
Move errors out of the main code path
2011-07-28 12:08:34 +02:00
Wim Taymans
3dd45343d3 ffdec: small cleanups
USe gst_pad_peer_query() to forward the query to the peer.
2011-07-28 12:08:30 +02:00
Wim Taymans
05a5c7f513 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/ffmpeg/gstffmpegcodecmap.c
2011-07-22 17:54:32 +02:00
Raimo Järvi
95fe6ca01e codecmap: Don't create dummy extradata for AAC LATM
If extradata is created for LATM, libav will use it for initialising AAC
decoder and decoding will fail.

Fixes bug #652812.
2011-07-18 12:04:29 +02:00
Edward Hervey
b41422f1f3 Merge branch 'master' into 0.11 2011-07-15 12:34:19 +02:00
Edward Hervey
2f63830924 ffmpegdec: Set default number of threads to 1
Too many suspicious errors/warnings pop up when more than 1 thread
is used.

Fixes #653649
2011-07-11 10:47:26 +02:00
Wim Taymans
fc6b32330a Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/ffmpeg/gstffmpegdec.c
2011-07-07 13:50:18 +02:00
Tim-Philipp Müller
508d4918b0 ffmpegscale: add cast to fix compiler warning 2011-07-05 10:43:14 +01:00
Tim-Philipp Müller
7b2e3137a5 ffmpegscale: update for GstVideoInfo API changes 2011-07-05 10:39:52 +01:00
Edward Hervey
37f5d70332 ffmpegdec: Setting AC3/EAC3/DTS decoders to rank NONE for release
This still causes issues with bad (missing?) downmixing.

They can be handled by existing a52dec/dtsdec

See Bug #608892
2011-06-30 21:38:57 +02:00
Mark Nauwelaerts
6d517b3b76 ffmpegcodecmap: really include all supported sample formats in audio caps
Fixes #653717.
2011-06-30 11:50:21 +02:00
Mark Nauwelaerts
856dbe6f21 ffmpegdec: avoid allocating and leaking local avpacket helpers
... by _init'ing them as locals rather than _new'ing them.

Fixes #653648.
2011-06-30 11:49:39 +02:00
Mark Nauwelaerts
156b26492d ffmpegenc: handle filter caps in _getcaps 2011-06-30 09:21:31 +02:00
Mark Nauwelaerts
e937db0f92 ffmpegenc: properly handle caps event
... which comes down to unconditionally eating incoming caps event,
since that one could never correctly describe the setup for downstream
elements.
2011-06-30 09:20:11 +02:00
Mark Nauwelaerts
bd5e3a51dd ffmpegenc: ensure properly negotiated prior to processing
Doing so is even more pertinent in 0.11, since core assists much less
in setting up negotiation and feedback on handling caps event is more likely
to get lost.
2011-06-30 09:18:42 +02:00
Mark Nauwelaerts
1583b89942 ffmpegdec: unref eaten caps event 2011-06-29 11:44:27 +02:00
Mark Nauwelaerts
36fe313fbd ffmpegdec: unref allocation query 2011-06-29 11:44:11 +02:00
Jan Schmidt
3a12092ae6 Enable threading in ffmpeg decoders that support it.
Add a max-threads property, which defaults to '0 = auto'
Add a utility function taken from libschroedinger which sets
the ffmpeg worker thread count to match the computer processor
count by default.
2011-06-21 14:33:29 +10:00
Wim Taymans
0c026bde71 ffmpeg: port to new caps 2011-06-20 11:57:29 +02:00
Wim Taymans
916d323a53 swscale: port to new video API 2011-06-20 11:29:10 +02:00
Wim Taymans
afaeebc1b1 ffmpeg: fix some caps 2011-06-20 10:42:30 +02:00
Wim Taymans
4b5cfd1e31 utils: update for buffer API change 2011-06-13 16:34:18 +02:00
Wim Taymans
7f4df8f536 ffdec: update for bufferpool API change 2011-06-11 18:55:05 +02:00
Wim Taymans
fcf5e53055 ffdec: small cleanups
We can use or to calculate the max alignment
2011-06-10 18:07:28 +02:00
Wim Taymans
e31b9c8295 dec: fix for new alignment values 2011-06-10 17:56:27 +02:00
Wim Taymans
888a1c0e5e ffdemux: fix for API change of flush_start 2011-06-10 17:56:01 +02:00
Edward Hervey
aaa07b3b4c Merge branch 'master' into 0.11 2011-06-08 18:04:49 +02:00
Edward Hervey
4a130c6a6c ext: caps are now set via GstEvent and not setcaps 2011-06-08 18:04:07 +02:00
Raimo Järvi
8e2404b8df ffdec: Fix calculating frame duration from last timestamp and frame count.
Fixes bug #651714.
2011-06-06 14:45:56 +02:00
Wim Taymans
97430ccbbc ffdec: use caps event instead of setcaps 2011-06-02 18:39:07 +02:00
Wim Taymans
c312409c83 Merge branch 'master' into 0.11 2011-06-02 17:03:21 +02:00
Wim Taymans
dad7da7ca6 ffmpeg: port to new API 2011-06-02 16:23:19 +02:00
Raimo Järvi
4a66ecdf25 ffdec: Check for AV_NOPTS_VALUE in PTS value.
https://bugzilla.gnome.org/show_bug.cgi?id=651625
2011-06-01 16:11:05 +02:00
Raimo Järvi
82463fe8bc ffdec: Add mpegversion 2 to AAC decoder caps
Fixes bug #651447.
2011-05-30 12:31:31 +02:00
Edward Hervey
9db205f9f7 ffmpegdec: Don't discard timestamps if output AND input are in order
Avoids bogus timestamps for AVCHD-lite streams
2011-05-29 20:09:47 +02:00
Sebastian Dröge
d1fac3e779 ffenc_aac: Add profile and level to the caps
Fixes bug #650596.
2011-05-27 10:54:12 +02:00
Sebastian Dröge
b8f7aab1ba ffdec: Always use parser for AAC LATM/LOAS 2011-05-26 15:09:18 +02:00
Rafael Diniz
df40381a83 ffmpeg: Add codec mapping for AAC LATM/LOAS
Also add the stream-format fields to the CODEC_ID_AAC caps.

Fixes bug #650695.
2011-05-25 10:10:48 +02:00
Thadeu Lima de Souza Cascardo
a3c56f60cd ffdec: Do not use invalid input timestamp as next timestamp.
When input buffer timestamps are invalid, next timestamp are used for
audio. Then, the next out timestamp is updated with the used timestamp
and the calculated duration. However, if the used timestamp is invalid,
it should not be used. Otherwise, the next buffer will use a wrong
timestamp that is not in the clipped segment, making the buffer to be
dropped.

This fixes playback with SBTVD MPEG TS streams, using AAC LATM.
2011-05-09 11:02:50 +02:00
Vincent Penquerc'h
920bfb0da2 ffdec: do not try to resync to the next keyframe when late
A keyframe may be quite a while in the future, and the decoder
has no way of knowing this. A poor decision could mean quite some
time with no video output.
This decision should be left to the upstream element: a demuxer
might know about incoming keyframes, or some other element might
be able to request a keyframe.

Fixes bug #649372.
2011-05-06 13:23:45 +02:00
Wim Taymans
8860e5c6c9 ffdec: fix for ALLOCATION query API changes 2011-05-02 11:12:10 +02:00
Wim Taymans
c71a2ec502 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/ffmpeg/gstffmpegdec.c
2011-04-29 18:40:36 +02:00
Wim Taymans
195f2afea6 ffmpeg: use bufferpool instead of pad_alloc 2011-04-29 18:35:55 +02:00
Edward Hervey
775a3a0640 postproc: pp_*_t => pp_* 2011-04-21 20:56:45 +02:00
Edward Hervey
2ce58ad764 audioresample: Use new av_audio_resample API
We might want to expose the various properties in the future
2011-04-21 20:56:45 +02:00
Edward Hervey
a30b434b53 ffmpegdec: Set caps on outgoing audio buffers 2011-04-21 20:56:45 +02:00
Edward Hervey
fe1a971b31 ffmpegdec: Use new AVPacket-based API
Right now it doesn't use any of the extra fields AVPacket provides.
It might be wise to investigate the pts/dts ones to see if we can finally
get rid of the timing-related cruft we have.
2011-04-21 20:56:45 +02:00
Edward Hervey
436a211aff gstffmpegdec: Use non-deprecated av_parser_parse2 2011-04-21 20:56:45 +02:00
Edward Hervey
7c85e2d743 ffmpegdec: Use skip_frame instead of deprecated hurry_up 2011-04-21 20:56:45 +02:00
Edward Hervey
71f48a1d84 ffmpegcfg: mb_qmin/mb_qmax are deprecated/removed
We just use qmin/qmax instead
2011-04-21 20:56:45 +02:00
Edward Hervey
a004f0bc34 ffmpegdemux: Define our own MAX_STREAMS 2011-04-21 20:56:45 +02:00
Edward Hervey
f16291a6cc ffmpeg: Disable code using old metadata API
It is now gone and we need to switch to the new API

See #566605
2011-04-21 20:56:45 +02:00
Edward Hervey
5aa722965c ffmpegdemux: The index_built AVFormatContext hasn't been used in over 2 years 2011-04-21 20:56:45 +02:00
Edward Hervey
fd80f177c9 codecmap: _XVID is gone
It was always a bogus one, since it used the external libxvid for encoding.
2011-04-21 20:56:45 +02:00
Edward Hervey
78ae6a34cb ffmpeg: PKT_FLAG_KEY => AV_PKT_FLAG_KEY 2011-04-21 20:56:44 +02:00
Edward Hervey
dfd26c36f3 ffmpeg: AVERROR_* => AVERROR(*) 2011-04-21 20:56:44 +02:00
Edward Hervey
2f81d0d63b ffmpeg: CodecType => AVMediaType 2011-04-21 20:56:44 +02:00
Edward Hervey
446c50e052 gstffmpeg: register_protocol => av_register_protocol2 2011-04-21 20:56:44 +02:00
Wim Taymans
6d4cdb2877 ffmpeg_use G_DEFINE_TYPE 2011-04-19 19:04:36 +02:00
Wim Taymans
198fa2571b Merge branch 'master' into 0.11 2011-04-19 19:03:06 +02:00
Marc Plano-Lesay
9c42b7cae9 Fix unused-but-set-variable warnings with gcc 4.6 2011-04-19 16:21:20 +01:00
Edward Hervey
c35c1d1446 gstffmpeg(de)mux: Disable known broken (de)muxers
Idea provided by David Schleef
Support provided by Michael Smith and Tim Mueller
Food and Drinks provided by Toronado
2011-04-09 01:17:24 +02:00
Stefan Kost
dd7b219c42 ffmpeg: don't divide by 0 when checking the framerates
Check for denom==0 first and set it to on in that case.
2011-04-08 11:42:33 +03:00
Wim Taymans
6444bd2557 dec: avoid making the buffer writable
Set the caps right after allocation of the buffer because we know the buffer is
writable then and we are correctly negotiated. Since ffmpeg keeps around
references to frames, making the buffer metadata writable where it was done
before pushing will always end up with a copy and that makes the sink do a slow
memcpy all the time.
2011-04-07 12:34:51 +02:00
Wim Taymans
8faa991476 Merge branch 'master' into 0.11
Conflicts:
	ext/ffmpeg/gstffmpegdec.c
2011-04-07 12:11:37 +02:00
Wim Taymans
450a4fdb51 dec: Fixes
Set caps on buffers right after we allocate them to avoid refcounting problems
and having to make the buffer metadata writable for no good reason.
Don't unmap the memory with a 0 size or we would modify the memory size when
it's not needed.
2011-04-07 12:02:57 +02:00
Miguel Angel Cabrera Moya
f63d36ade8 ffmpegdec: do buffer padding before parsing and before decoding
FFMpeg parsing and decoding calls require to additionally allocate bytes
at the end of the input bitstream and this padding must be initialized
to zero.

https://bugzilla.gnome.org/show_bug.cgi?id=595590
2011-04-05 14:14:38 +02:00
Wim Taymans
8095b31f9c ffmpeg: port to new memory API 2011-04-04 13:18:13 +02:00
Wim Taymans
4345d10577 WIP: porting to 0.11 2011-04-04 12:23:05 +02:00
Wim Taymans
88271530e4 ffmpeg: disable resample 2011-02-28 12:13:17 +01:00
Wim Taymans
7a225ab604 codecmap: use new g_value getters 2011-02-28 12:13:17 +01:00
Julien Isorce
32ca9c111b ffvideoscale: add support for UYVY
Fixes #642015
2011-02-14 16:58:49 +01:00
Tim-Philipp Müller
8d40c6357d ffmpegdec: improve error message when set_caps is called but we have no mapping
This may happen e.g. if gst-ffmpeg is compiled against an external
libavcodec and the external lib is upgraded.

See e.g.
https://bugzilla.gnome.org/show_bug.cgi?id=640825
2011-01-31 23:28:33 +00:00
Edward Hervey
a2a4ee93c4 codecmap: Add mapping for g722 2011-01-25 16:34:04 +01:00
Edward Hervey
5429138b89 codecmap: Add proper caps name for Camstudio 2011-01-24 18:29:24 +01:00
Edward Hervey
7879105579 gstffmpegdemux: Ignore more pseudo demuxers 2011-01-24 18:29:00 +01:00
Edward Hervey
9a1d1fef32 gstffmpegmux: Blacklist some muxer formats 2011-01-24 17:43:44 +01:00
Edward Hervey
cc4a11831d gstffmpegcodecmap: Add some new codec mappings
VP8
LAGARITH
GSM
GSM_MS
2011-01-24 17:26:20 +01:00
Edward Hervey
ed1b1eefaf ffmpegprotocol: Slight API change 2011-01-24 17:26:20 +01:00
Edward Hervey
2de5aaf22d ffmpegdec: Set the mp3 decoder to a rank of NONE
It's just causing too many headaches. This will force people to use
a working mp3 decoder, like mad.
2011-01-07 18:08:15 +01:00
Edward Hervey
051e2de3d3 ffmpegdec: Fix unitialized variables on macosx 2011-01-05 16:59:55 +01:00
Edward Hervey
a90df26e15 ffmpegenc: Disable non-audio/video encoders
Fixes #629648
2011-01-03 11:45:04 +01:00
Wim Taymans
22d44c87b1 ffmpgdec: work around parser timestamp bug
Sometimes the parser loses track of timestamps and starts to reuse old
timestamp. Feed it some dummy data and clear some context variables to work
around the problem.
2010-12-21 12:14:22 +01:00
Sebastian Dröge
dde194dc1a ffvideoscale: Change classification to Filter/Converter/Video/Scaler 2010-12-16 10:12:02 +01:00
Sebastian Dröge
a5910b4ec4 ffdeinterlace: Change classification to Filter/Effect/Video/Deinterlace 2010-12-16 10:05:03 +01:00
Wim Taymans
ec48b24291 dec: scale the estimated duration by number of frames
When estimating the frame duration, the diff between two incomming timestamps
should be scaled by the amount of frames in the interval. Improves duration
estimation and DTS interpolation.
2010-12-12 12:38:55 +01:00
Wim Taymans
957c728b3d dec: use input timestamp diff for duration estimation
Use the diff between input timestamps to estimate the duration when no duration
is set on input buffers. Only do this when there are no reordered input
timestamps. Improves interpolation in DTS mode when no input duration is set.
2010-12-12 11:20:22 +01:00
Mark Nauwelaerts
e837ec505d ffmpegenc: ensure proper clean state prior to (re-)negotiation
Fixes #632691.
2010-10-25 12:16:44 +02:00
Wim Taymans
d82633c4e3 ffdec: don't destroy the parser state
When we flush the parser cache, we only need to clear the bytes of the cache,
not the complete state of the cache. In the case of H264 this doesn't require
the parser to receive a new SPS/PPS after a DISCONT buffer.
2010-10-22 13:05:16 +02:00
Wim Taymans
cc2a6e493b ffdec: be more careful with DTS timestamp interpolation
Don't use -1 and 0 duration buffers to calculate next output timestamp as they
are very likely wrong.

Fixes #632877
2010-10-22 13:05:16 +02:00
Stefan Kost
07ce1d1906 various: add missing G_PARAM_STATIC_STRINGS flags 2010-10-19 17:26:08 +03:00
Sebastian Dröge
51fe1a04e6 ffmpeg: Add mapping for YUVA420P <-> A420
This is used by VP6a, which is used by Flash.

See bug #613901.
2010-10-15 11:23:26 +02:00
Edward Hervey
51a0e1270f ffmpegdec: Fix debug statements 2010-10-12 16:17:51 +02:00
Wim Taymans
3f213c1b73 ffdec: use a better algorithm to detect DTS timestamps
Add function to reset the timestamp tracking.
Check for reordered timestamps on the input buffers and assume PTS input
timestamps when we see reordered timestamps.
Recover from an occasionally wrong input timestamp by also tracking the output
timestamps. When we detect a reordered output timestamp, assume DTS input
timestamps again.

Fixes #611500
2010-10-07 17:46:22 +02:00
Wim Taymans
a0bc6f6e9d ffdec: add debug line 2010-10-06 18:51:24 +02:00
Wim Taymans
48e612afda ffdec: add fixmes 2010-10-06 18:23:57 +02:00
Wim Taymans
b41aab3690 ffdec: add some comments 2010-10-06 18:15:03 +02:00
Wim Taymans
76d9685202 ffdec: Add timestamp tracking
Use ffmpeg reordered_opaque to track an id that combines all timing info we have
for a frame. The ids are kept in a 255 item cache.

Fixes #631075
2010-10-06 17:42:30 +02:00
Wim Taymans
edb79396f2 ffdec: remove broken TSHandler
Remove the TShandler code, it is broken when QoS is enabled and ffmpeg provides
much easier methods for tracking timestamps.
Simplify pcache joining.
2010-10-06 17:42:30 +02:00
Wim Taymans
4aa9b97d3f ffcodecmap: avoid setting large framerates
When the framerate is bigger than 1000/1, set it to 0/1 instead. This avoids
letting the videosink do QoS on these very small frame durations.
2010-10-06 16:58:52 +02:00
Wim Taymans
c330cdcc5d ffdec: rename time variable
Rename the time variable to avoid confusion with the time function.
Add some debug to the QoS update function.
2010-10-06 16:58:40 +02:00
Wim Taymans
7d531c06bb ffenc: pass the input size to the encoder
Pass the input buffer size to the encoder instead of the expected output size.
This is needed to make fixed input/output encoder work.
2010-10-06 16:58:34 +02:00
Sebastian Dröge
37357063bf ffmpegdemux: Don't use GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS() 2010-08-27 18:29:15 +02:00
Tim-Philipp Müller
e0984904c3 ffdeinterlace: some minor clean-ups
Don't use studlyCaps; gboolean != GstFlowReturn; use gst_caps_set_simple()
instead of creating a GValue just to set a boolean field on a caps structure.

See #622736.
2010-07-18 20:15:32 +01:00
Edward Hervey
f9c8fac537 ffmpegmux: Use "Formatter/Metadata" klass when needed
https://bugzilla.gnome.org/show_bug.cgi?id=623671
2010-07-06 14:02:09 +02:00
Edward Hervey
25db74ec41 ffmpegmux: Add more replacements
https://bugzilla.gnome.org/show_bug.cgi?id=623671
2010-07-06 14:02:09 +02:00
Edward Hervey
6191dbb7dd codecmap: Fix the caps of various mov/amr formats
https://bugzilla.gnome.org/show_bug.cgi?id=623671
2010-07-06 14:02:09 +02:00
Edward Hervey
38c2b3788e gstffmpegmux: Set rank of blacklisted muxers to GST_RANK_NONE
https://bugzilla.gnome.org/show_bug.cgi?id=623671
2010-07-06 14:02:09 +02:00
Edward Hervey
00e177458c ext: Fix CFLAGS order
We'd pick up system-wide ffmpeg headers otherwise
2010-07-05 15:48:41 +02:00
Mark Nauwelaerts
1d0b29414a ffmpegenc: fix timestamp resyncing some more
Convert bytes to samples in remaining occurrence.

See #623388.
2010-07-05 11:10:09 +02:00
Thiago Santos
b8f556a566 ffmpegenc: Fix timestamp resyncing
Properly convert bytes into time using sample size, sample rate
and channels number, instead of sample rate only.

This can cause huge timestamp discontinuities (even though the
durations remain correct) and might cause problems to muxers.

Fixes #623388
2010-07-03 11:57:09 -03:00
Edward Hervey
2f6086e495 ffmpegmux: Add rtp to the blacklisted muxers 2010-07-02 17:21:27 +02:00
Edward Hervey
edeb185374 codecmap: Specify the quicktime variant for mov and mp4 formats 2010-07-02 12:40:03 +02:00
David Schleef
00d87bcd83 ffmpegmux: Add alternate element in description
For muxers where there is a better GStreamer alternative, add
"(not recommended, use alternate_element_name instead)" to
the description.

https://bugzilla.gnome.org/show_bug.cgi?id=622773
2010-06-27 10:38:25 +02:00
David Schleef
52e8d62513 ffmpegmux: Disable raw muxers
They are effectively identity elements.  Many are already
disabled via blacklist.

https://bugzilla.gnome.org/show_bug.cgi?id=622773
2010-06-27 10:38:24 +02:00
Andoni Morales Alastruey
7f12d83a39 ffdeinterlace: Set "interlaced=false" in the source pad's caps
https://bugzilla.gnome.org/show_bug.cgi?id=622736
2010-06-25 17:26:56 +02:00
Thijs Vermeir
330d78f4ff Fix build if ORC is not installed 2010-06-15 09:40:18 +02:00
Sebastian Dröge
3d91d93f32 ffmpeg: Call orc_init() before trying to get target flags 2010-06-14 15:31:34 +02:00
Sebastian Dröge
899d2f0cec Use orc instead of liboil for CPU feature detection 2010-06-14 14:38:44 +02:00
Albert Lee
f310322e90 gstffmpegcodecmap: Fix ATRAC1/3 caps 2010-06-11 08:23:34 +02:00
Zaheer Abbas Merali
22a343207c ffmpegdec: fix typo in comment 2010-06-04 18:30:59 +01:00
Edward Hervey
c28097b6c4 codecmap: First round of type mapping wrapping : image formats 2010-05-31 18:53:12 +02:00
Edward Hervey
2fccd4640f ffmpegdec/enc: Blacklist more raw formats 2010-05-31 18:44:02 +02:00
Tim-Philipp Müller
dc2efe2d24 ffmpegdec: sipro decoder should have higher rank than realaudiodec 2010-05-25 12:55:14 +01:00
Edward Hervey
f9c2467241 ffmpegdec: Don't leak the GstDataPassThrough items 2010-05-17 19:43:24 +02:00
Olivier Crête
83820511a8 gstffmpegenc: Make getcaps proxy the downstream height/width/framerate requirements
See #577784.
2010-05-10 15:41:57 +02:00
Olivier Crête
2b891aff61 codecmap: Respect the various h263 options
See #577784.
2010-05-10 15:41:45 +02:00
Olivier Crête
21e855d167 gstffmpegcfg: Expose loop-filter flag
See #577784.
2010-05-10 15:41:07 +02:00
Edward Hervey
0fb014fdbe ffmpegcodecmap: Add mapping for SIPR 2010-05-08 13:47:56 +02:00