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