Commit graph

1120 commits

Author SHA1 Message Date
Sebastian Dröge
cb9e40ff4c avaudenc: Properly handle planar audio formats with more than AV_NUM_DATA_POINTERS channels 2012-12-12 13:04:54 +00:00
Sebastian Dröge
1bec18edce avauddec: Properly handle planar audio formats with more than AV_NUM_DATA_POINTERS channels 2012-12-12 13:04:38 +00:00
Christiaan Welvaart
338b147374 avprotocol: Port from the URL protocol handler to saner public API 2012-12-12 12:10:27 +00:00
Wim Taymans
4c46f11d5f libav: fix palette support again 2012-12-12 10:12:22 +01:00
Sebastian Dröge
736bda7350 avcodecmap: Take framerate restrictions into account for encoders 2012-12-11 18:56:24 +00:00
Sebastian Dröge
86361bf6df avvidenc: Simplify color formats in the raw video caps 2012-12-11 18:48:34 +00:00
Sebastian Dröge
fbe1221d70 avaudenc: Reorder audio channels if necessary and add proper support for channel layouts 2012-12-11 18:07:34 +00:00
Sebastian Dröge
64a2a8bdae avcodecmap: Take channel layout constraints into account if possible 2012-12-11 17:25:41 +00:00
Sebastian Dröge
b9d0c7110f avcodecmap: Take generic samplerate limitations into account 2012-12-11 16:54:09 +00:00
Sebastian Dröge
90e1c0c21d avcodecmap: Simplify raw audio caps 2012-12-11 16:46:43 +00:00
Sebastian Dröge
9945ae7adc avauddec: Close context when it was opened 2012-12-11 15:14:10 +00:00
Sebastian Dröge
06de84c747 avviddec: Fix memory leak if we already allocated an output buffer for the frame 2012-12-11 10:34:42 +00:00
Wim Taymans
76b8b8c67f Revert "avviddec: Fix memory leaks and assertions in error cases if we can't allocate a frame"
This reverts commit 47647e1cac.

Breaks playback when direct rendering is disabled.
The reason is that we set the opaque vaue to NULL and then try to use the NULL
value when we decoded a frame.
2012-12-11 10:24:08 +01:00
Rasmus Rohde
4fc452344a Fix incorrect use of object in log statement. We are given a pointer to the object and should not try to take the address of it. 2012-12-10 15:35:16 +01:00
Руслан Ижбулатов
b7471c1f5b avutils: Add missing includes for Windows
Fixes #689751
2012-12-06 10:45:58 +01:00
Sebastian Dröge
cab519f370 avaudenc: Add support for planar audio formats 2012-12-05 19:28:33 +01:00
Sebastian Dröge
2d7ebf9514 av: Correctly populate the codec context with the defaults 2012-12-05 19:25:37 +01:00
Sebastian Dröge
d840211412 av: Use av_codec_is_{en,de}coder() API instead of private struct fields 2012-12-05 10:52:34 +01:00
Sebastian Dröge
aa4a238506 avauddec: release_buffer is not supposed to be used for audio
And calling it causes crashes in some situations.
2012-12-04 22:09:05 +01:00
Sebastian Dröge
e092f3d411 avauddec: Add support for planar audio formats 2012-12-04 20:45:28 +01:00
Sebastian Dröge
47647e1cac avviddec: Fix memory leaks and assertions in error cases if we can't allocate a frame 2012-12-04 20:44:58 +01:00
Sebastian Dröge
f5c112990f av: Port remaining simple bits 2012-12-04 18:36:56 +01:00
Sebastian Dröge
0f206124b6 av: Remove palette support for now
It was never ported to the way how paletted color formats work
in 1.0 anyway and the API changed in libav upstream.
2012-12-04 18:36:37 +01:00
Sebastian Dröge
169825a28e av: Update for some constant changes 2012-12-04 18:36:37 +01:00
Sebastian Dröge
06ed3e4060 av: Port to new avio protocol handler 2012-12-04 18:36:37 +01:00
Luca Barbato
5f03a7d869 av: update to use AVOption variants. 2012-12-04 18:36:30 +01:00
Tim-Philipp Müller
5a823a5fbf avaudenc: log error string as well in debug output 2012-12-02 12:31:43 +00:00
Tim-Philipp Müller
a3d930afbe avaudenc: use sample rate as ticks per second fallback
The 25/1 value presumably came from the video encoder class.
2012-12-01 23:21:41 +00:00
Tim-Philipp Müller
819d4d2a04 avaudenc: fix output timestamping
We need to pass the number of samples encode in the output buffer
to gst_audio_encoder_finish_frame(), not the number of frames.
Fixes output timestamps being way too small, and transcoding
problems.

https://bugzilla.gnome.org/show_bug.cgi?id=689398
2012-12-01 23:05:23 +00:00
Sebastian Dröge
4132a73f0e avvidenc: Implement reset vfunc 2012-11-20 11:56:57 +01:00
Sebastian Dröge
d3f8c5f0cc avvidenc: Don't send any frames downstream when draining unless requested to do so 2012-11-20 11:53:52 +01:00
Sebastian Dröge
5ffd21f1ee avaudenc: Implement draining 2012-11-20 11:51:13 +01:00
Sebastian Dröge
e281493f29 avaudenc: Implement flush vfunc properly 2012-11-20 11:45:34 +01:00
Sebastian Dröge
9456fb86c7 avauddec: Port to non-deprecated avcodec_decode_audio4() API
Fixes bug #666435.
2012-11-20 11:40:10 +01:00
Sebastian Dröge
f4acd40767 avaudenc: Some minor cleanup 2012-11-20 10:55:55 +01:00
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