1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-28 20:53:54 +02:00
Commit Graph

275 Commits

Author SHA1 Message Date
Anton Khirnov
e7dfaf16a4 libavfilter: example audio filtering program
Based on a patch by Andrew Kelley <superjoe30@gmail.com>

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-25 13:22:10 +01:00
Michael Niedermayer
341639fe80 doc/examples: remove pathes from doxy examples
This makes the examples page less cluttered

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 13:50:53 +01:00
Michael Niedermayer
1fc74926a5 Merge commit 'b339182eba34f28de5f1a477cdd2c84f1ef35d90'
* commit 'b339182eba34f28de5f1a477cdd2c84f1ef35d90':
  Move all example programs to doc/examples

Conflicts:
	configure
	doc/Makefile
	doc/doxy-wrapper.sh
	doc/examples/avcodec.c
	doc/examples/decoding_encoding.c
	doc/examples/metadata.c
	doc/examples/muxing.c
	doc/examples/transcode_aac.c
	libavcodec/Makefile
	libavcodec/api-example.c
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 02:22:01 +01:00
Diego Biurrun
b339182eba Move all example programs to doc/examples
Also drop support for building examples in library directories.
2014-02-16 21:37:21 +01:00
Michael Niedermayer
fba1592f35 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc/examples: misc Doxygen markup improvements

Conflicts:
	doc/examples/muxing.c
	doc/examples/transcode_aac.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 15:31:14 +01:00
Diego Biurrun
0b9716c455 doc/examples: misc Doxygen markup improvements
Add properly formatted @example tag and fix Doxygen syntax.
2014-02-14 12:01:36 +01:00
Stefano Sabatini
60251c13e3 examples/avio_reading: remove stray empty line 2014-02-02 12:35:46 +01:00
Stefano Sabatini
5fc4dea39c examples: add avio_reading.c example 2014-02-02 11:58:23 +01:00
Michael Niedermayer
a85a718f26 doc/examples/decoding_encoding: Check all av_samples_get_buffer_size() returns
Fixed CID1135755
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 03:27:37 +01:00
Stefano Sabatini
ca57659440 examples/filtering_audio,video: do not call avcodec_register_all()
It is implied by av_register_all(). Simplify.
2014-01-24 12:20:46 +01:00
Stefano Sabatini
35fe88bb51 examples/muxing: reindent after previous commit 2014-01-23 01:08:24 +01:00
Stefano Sabatini
c92d2f98db examples/muxing: flush encoders at the end 2014-01-23 00:54:33 +01:00
Stefano Sabatini
b539a72bba examples/filtering_audio,video: drop call to avcodec_get_frame_defaults()
The avcodec_get_frame_defaults() function is deprecated and its use
doesn't seem required.
2014-01-21 20:08:36 +01:00
Stefano Sabatini
e34ad128a3 examples/muxing: reduce duration, remove wrong and misleading comment
Set duration to 10 seconds, after it was increased from 5 to 200 seconds
in 8d80f3cb87.

200 seconds will generate too much data which is annoying especially when
testing.
2014-01-21 11:52:14 +01:00
Stefano Sabatini
9ab8f3738a examples/muxing: remove redundant {} 2014-01-20 13:10:10 +01:00
Stefano Sabatini
b933c72b5e examples/muxing: change error checks, from "ret != 0" to "ret < 0"
More consistent and more future-proof.
2014-01-20 13:10:10 +01:00
Stefano Sabatini
d72c742d47 examples/muxing: factorize write_interleave code
Also log output packet information.
2014-01-20 13:10:10 +01:00
Stefano Sabatini
5e2b8e4934 examples: add remuxing example
Show how to perform streamcopy from one container to another.
2014-01-20 13:10:10 +01:00
Stefano Sabatini
d497141b85 examples/muxing: simplify video PTS setting
Rely on frame_count. Also more consistent with audio path.
2014-01-12 09:25:48 +01:00
Andre Anjos
23ffc4c70d doc/examples/muxing: Fixes frame initialization.
Fixes use of the example with encoders which use tha AVFrame w/h/pix_fmt fields
FFV1 is one of these codecs

We cannot easily workaround the not set fields in common code because the API
has AVFrame constant for the encoders.
Alternatives would be to fix the API or to duplicate the struct and fill in
missing fields. Or as is to require all user apps to set this correctly and
maybe simplify for that case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 18:12:24 +01:00
Stefano Sabatini
094c500caf examples/muxing: set timestamps in output audio packet
In particular, fix trac ticket #3231.
2014-01-09 10:54:38 +01:00
Stefano Sabatini
8d22d37e54 examples/muxing: use av_frame_free() in place of av_free() 2014-01-09 10:51:57 +01:00
Stefano Sabatini
9abe4a10fd examples/muxing: reuse global audio frame
Simplify logic, avoid multiple unnecessary alloc/free operations.
2014-01-09 10:51:52 +01:00
Stefano Sabatini
80bca6eabe examples/muxing: honour distinction between encoder PTS timebase and stream timebase
Fix PTS set on the frame when encoding, which must be specified in the
encoder timebase or this will confuse the encoder.

When muxing the packet, the PTS/DTS generated by the encoder is then
rescaled to the stream timebase.
2014-01-09 10:51:47 +01:00
Stefano Sabatini
eadc421259 examples/muxing: set sample formats from list of codec supported sample formats
Avoid the need of tweaking, also show how to get list of supported sample
formats.
2014-01-09 10:51:41 +01:00
Stefano Sabatini
2503928a2f examples/decoding_encoding: fix style nits 2014-01-07 13:08:11 +01:00
Ilya Basin
d1b8e01ef1 examples/muxing: fix memleaks in resampler
- do not allocate resample dst buffer when resample is off
  - free sample buffers in addition to freeing data pointer arrays

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 12:22:49 +01:00
Ilya Basin
7d1d0b3ecf examples/muxing: use S16 sample_fmt for resample src regardless of codec sample_fmt
We generate S16 samples and we should allocate the right buffer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 12:21:05 +01:00
Ilya Basin
b6714fa077 examples/muxing: fix av_frame_free() not called when got_packet is false
Hi list! Since my last patch (fix 2 memleaks in doc/examples/muxing.c)
I found more problems to fix.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 12:20:44 +01:00
Stefano Sabatini
b2a4316287 examples/decoding_encoding: check av_samples_get_buffer_size() for a negative value
Fix broken != 0 check.
2013-12-15 20:09:26 +01:00
Timothy Gu
c65fe9e982 examples/decoding_encoding: check av_samples_get_buffer_size() return code
Fixes CID1135756.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-12-14 14:02:49 +01:00
Timothy Gu
b242c156e5 examples/resample_audio: check av_samples_get_buffer_size() return code
Fixes CID1135757.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-12-14 14:02:33 +01:00
Clément Bœsch
b02d87936b examples/demuxing_decoding: print the decoding error when it happens. 2013-12-13 10:37:20 +01:00
Even Wiik Thomassen
43f116d162 examples/demuxing_decoding: return error when no codec found
The open_codec_context function, when it fails to find a codec, now
return AVERROR(EINVAL) to signal an error.

Before it would return the stream index, which was always >= 0, and
continue as if a codec was found. This change make it fail faster,
instead of repeated failed tries to decode frames with no codec.

Signed-off-by: Even Wiik Thomassen <e.thomassen@sportradar.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-12-13 09:45:54 +01:00
Michael Niedermayer
525a7d9b78 Merge commit '48d17ee6dc2b2a552f645484f200c2946bf24607'
* commit '48d17ee6dc2b2a552f645484f200c2946bf24607':
  api-example: remove an unneeded call to avcodec_get_frame_defaults().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 00:19:53 +01:00
Michael Niedermayer
4cbf3eb9e6 Merge commit 'eb891b3114f499e96b9faddd0b0ae856345dfbd9'
* commit 'eb891b3114f499e96b9faddd0b0ae856345dfbd9':
  Replace all uses of avcodec_free_frame with av_frame_free().

Conflicts:
	doc/examples/decoding_encoding.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:18:51 +01:00
Anton Khirnov
eb891b3114 Replace all uses of avcodec_free_frame with av_frame_free(). 2013-12-11 20:39:54 +01:00
Michael Niedermayer
210a78aeb5 doc/examples/filtering_audio: init packet0.data
Fixes use of uinitialized data and crash

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-03 00:01:07 +01:00
Stefano Sabatini
c490cd4c1a doc/examples/filtering_audio: fix chunked audio decoding
Support the case when multiple frames are contained in a single packet.
In particular, fix fate-samples/lossless-audio/luckynight-partial.shn
sample decoding.
2013-12-02 15:21:52 +01:00
Stefano Sabatini
893f33e7f0 doc/examples/filtering_audio: fix style 2013-12-02 15:08:00 +01:00
Stefano Sabatini
c7a99d99bd doc/examples/filtering_video: do not make use of AVBufferSinkParams
Set the value on the filter context instead. Simplify.
2013-12-02 14:35:40 +01:00
Stefano Sabatini
3aa6018010 doc/examples/filtering_video: add some error handling in init_filters() 2013-12-02 14:35:39 +01:00
Stefano Sabatini
a12bf9f50f doc/examples/README: fix typo 2013-12-02 14:35:39 +01:00
Stefano Sabatini
55c57658d2 doc/examples/filtering_audio: add more error checks 2013-12-02 14:35:39 +01:00
Stefano Sabatini
82e74ee6e4 doc/examples/filtering: make use of av_err2str()
Simplify.
2013-12-02 14:35:31 +01:00
Clément Bœsch
0d2c832445 doc/examples: update README. 2013-11-28 14:08:06 +01:00
Clément Bœsch
a8ac2a1530 doc/examples: make fill_samples static.
This is required to build with FFmpeg compilation options.
2013-11-28 13:54:44 +01:00
Clément Bœsch
e5102feb6b doc/examples: add transcode_aac to local Makefile. 2013-11-28 13:19:50 +01:00
Michael Niedermayer
ba728c1a25 doc/examples/transcode_aac: remove non converted codepath
This codepath is not implemented and just crashes, also its simpler
without special cases, which makes sense for an example

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 11:22:19 +01:00
Michael Niedermayer
7497c894cd doc/examples/transcode_aac: switch to swresample
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 11:15:48 +01:00
Michael Niedermayer
02abc905cd doc/examples/transcode_aac: fix project name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 10:52:05 +01:00
Michael Niedermayer
715f3623f8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Add an audio transcoding example.

Conflicts:
	configure
	doc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 10:31:08 +01:00
Andreas Unterweger
10421bcf0a Add an audio transcoding example.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-27 09:20:05 +01:00
Diego Biurrun
ab81f24ad4 build: Integrate multilibrary examples into the build system
This includes moving libavformat/output-example to doc/examples/output.
2013-11-25 11:57:29 -08:00
Stefano Sabatini
50a28b1393 doc/examples: do not check NULL values for avcodec_close()
avcodec_close() does nothing in case the argument is NULL. Simplify.
2013-11-21 23:29:56 +01:00
Clément Bœsch
1f7b7d5447 doc/examples: fix mem issues in filtering_video. 2013-11-19 10:31:39 +01:00
Michael Niedermayer
0ee905e243 Merge commit '5b9c3b4505206143d85398c1410949319fa1180f'
* commit '5b9c3b4505206143d85398c1410949319fa1180f':
  Replace all instances of avcodec_alloc_frame() with av_frame_alloc().

Conflicts:
	doc/examples/decoding_encoding.c
	doc/examples/muxing.c
	ffmpeg.c
	libavcodec/alacenc.c
	libavcodec/libopenjpegenc.c
	libavcodec/libvpxenc.c
	libavcodec/pcm.c
	libavcodec/xbmenc.c
	libavcodec/xwdenc.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 23:54:10 +01:00
Clément Bœsch
fb10b43fc4 doc/examples: rename demuxing to demuxing_decoding.
That example shows how the decoding process works, not only the
demuxing.
2013-11-04 12:53:06 +01:00
Clément Bœsch
d10b1a200d doc/examples/demuxing: show how to use the reference counting system. 2013-11-04 12:53:06 +01:00
Clément Bœsch
0c6bb53bb2 doc/examples/demuxing: reset got_frame.
Fix infinite loop at flushing.
2013-10-30 14:37:58 +01:00
Clément Bœsch
dc8f732292 doc/examples: fix lib math dep for resampling_audio.
It uses at least sin()
2013-09-04 15:49:18 +02:00
Clément Bœsch
98b9bbb787 doc/examples: remove extra "the".
"into the doc/examples directory" vs "into doc/examples".
2013-09-04 15:46:31 +02:00
Michael Niedermayer
f187390907 doc/examples/filtering_audio: make const arrays also static
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-03 22:22:03 +02:00
wm4
72f5a6d067 examples: demuxing: print ffplay command even if sample format is planar
Adjust the code so that a working ffplay command is printed in the
planar audio case.
2013-07-19 12:14:54 +02:00
wm4
9f31c1608c examples: demuxing: simplify audio output
There is no reason why this should copy the audio data in a very
complicated way. Also, strictly write the first plane, instead of
writing the whole buffer. This is more helpful in context of the
example. This way a user can clearly confirm that it works by playing
the written data as raw audio.
2013-07-19 12:14:46 +02:00
wm4
06b269dacb examples: demuxing: do partial audio packet decoding
This assumes one audio packet is decoded one time. This is not true:
packets can be partially decoded. Then you have to "adjust" the packet
and pass the undecoded part of the packet to the decode function again.
2013-07-19 12:14:23 +02:00
Stefano Sabatini
2aa2b4ac65 examples/muxing: add support to audio resampling
Allows to encode to output in case the destination sample format is
different from AV_SAMPLE_FMT_S16.
2013-07-06 12:31:16 +02:00
Stefano Sabatini
838bd73139 lavfi: create Libav-API compatibility layer for avfilter_graph_parse() at the next bump
Add function avfilter_graph_parse_ptr() and favor it in place of
avfilter_graph_parse(), which will be restored with the old/Libav
signature at the next bump.

If HAVE_INCOMPATIBLE_LIBAV_API is enabled it will use the
Libav-compatible signature for avfilter_graph_parse().

At the next major bump the current implementation of
avfilter_graph_parse() should be dropped in favor of the Libav/old
implementation.

Should address trac ticket #2672.
2013-07-03 13:21:42 +02:00
Stefano Sabatini
759dfd5684 examples/muxing: make more compact audio/video_time computation 2013-07-03 11:31:34 +02:00
Stefano Sabatini
80b56a7bdd examples/muxing: rename audio/video_pts to audio/video_time
The new name is less confusing, since the variables represent times
rather than timestamps.
2013-06-26 23:38:42 +02:00
Stefano Sabatini
c58d535b2f examples/Makefile: disable -O2 optimizations
There is no much point in optimizing example code, and the -O2 flag is
annoying when debugging.
2013-06-26 23:21:39 +02:00
Stefano Sabatini
3aa57e1582 examples/muxing: remove useless instruction
Simpler and less confusing.
2013-06-26 23:21:06 +02:00
Stefano Sabatini
4b6cf1ce0e examples/muxing: vertically align 2013-06-25 21:36:53 +02:00
Nicolas George
300ca0763b examples/filtering_audio: fix frame leak.
The frame is not used after being added to the filter
graph, there is no need to keep the reference.
2013-04-18 17:03:01 +02:00
Pavel Koshevoy
e5644313c5 examples/filtering_audio: get rid of AVABufferSinkParams
AVABufferSinkParams are ignored by avfilter_graph_create_filter,
therefore the example is misleading.  Use av_opt_set_int_list to
configure abuffersink directly.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-17 11:11:57 +02:00
Michael Niedermayer
f2619cbd61 examples/filtering_audio: enable ref counted frames
Fixes accessing freed memory

Signe-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-17 11:11:57 +02:00
Clément Bœsch
9ab221f8d8 lavfi: deprecate aconvert.
This filter is not required anymore with aformat. Drop it at next bump.
2013-04-11 22:13:45 +02:00
Michael Niedermayer
e7389ed5d0 Merge commit 'bcc94328980e6c56546792ab08b0756abdce310b'
* commit 'bcc94328980e6c56546792ab08b0756abdce310b':
  opt: check the return values of av_get_token for ENOMEM.
  doc: Fix best_nb_channells typo
  matroska: pass the lace size to the matroska_parse_rm_audio

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-04 13:00:59 +02:00
Stefano Sabatini
66c92a1575 examples/resampling_audio: make use of av_samples_alloc_array_and_samples()
Simplify.
2013-03-31 18:00:45 +02:00
Stefano Sabatini
9bb25dbd13 examples/filtering_*: constify AVFrame * for print_frame() and display_frame() functions 2013-03-14 21:39:15 +01:00
Stefano Sabatini
9076a6a943 examples/filtering_audio: update to new API
In particular, fix crash.
2013-03-14 21:39:09 +01:00
Stefano Sabatini
f0da370a52 examples/filtering_video: update to new API
In particular, fix crash.
2013-03-14 21:39:01 +01:00
Nicolas George
ceac5c54dd Remove references to the "ff" variant of buffersink. 2013-03-12 23:31:07 +01:00
Michael Niedermayer
5743095ca9 Merge commit '9d3009c6c4b9b6734f07df7c88f6a42ded6cdf38'
* commit '9d3009c6c4b9b6734f07df7c88f6a42ded6cdf38':
  avconv: print an error on applying options of the wrong type.
  atomic: Check for __sync_val_compare_and_swap instead of __sync_synchronize
  output-example: Update to use encode_video2 instead of the now dropped encode_video

Conflicts:
	doc/examples/muxing.c
	ffmpeg_opt.c
	libavutil/atomic.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 18:10:35 +01:00
Clément Bœsch
5e4bc96415 doc: fix examples. 2013-03-10 01:41:53 +01:00
Nicolas George
9b211c43dc examples/muxing: fix memory leak.
Do not re-call avcodec_get_context_defaults3(), it is already
called by avformat_new_stream() and it leaks the codec
priv_data that was already allocated.

Use avformat_free_context() instead of freeing (not)
everything manually.

Fix trac ticket #2322.
2013-03-05 15:43:32 +01:00
Michael Niedermayer
5ade6bfb03 doc/examples/demuxing: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 22:40:50 +01:00
Nicolas George
dcc73aaaa9 doc/examples: do not allocate AVFrame directly.
The size of the AVFrame structure is not part of the ABI;
it can grow with later versions. Therefore, applications
are not supposed to allocate AVFrame directly, they are
supposed to use avcodec_alloc_frame() instead.
2013-02-17 15:51:50 +01:00
Stefano Sabatini
772b949d8e examples/scaling_video: fix typo 2013-02-15 00:28:53 +01:00
Angelo Haller
e7a39e163d examples/demuxing: free AVPacket after usage
Fix leak.
2013-01-15 23:37:30 +01:00
Michael Niedermayer
48a7981e6f doc/examples: fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-14 05:05:20 +01:00
Nicolas George
e4f14c32b9 examples/muxing: improve error messages.
Illustrate the use of return values, av_err2str and
avcodec_get_name.
2013-01-02 17:42:00 +01:00
Michael Niedermayer
55b243cade doc/examples/resampling_audio.c: fix path
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 21:37:23 +01:00
Stefano Sabatini
89920387da examples: add resampling_audio.c file 2012-12-06 10:09:37 +01:00
Michael Niedermayer
03b078721c Merge commit '97bf7c03b1338a867da52c159a2afecbdedcfa88'
* commit '97bf7c03b1338a867da52c159a2afecbdedcfa88':
  doc: git-howto: Leave reviewers time to react before pushing patches
  Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
  lavu: rename audioconvert.* to channel_layout.* and deprecate audioconvert.h

Conflicts:
	doc/APIchanges
	doc/examples/decoding_encoding.c
	doc/git-howto.texi
	ffmpeg_filter.c
	libavcodec/flacdec.c
	libavcodec/imc.c
	libavcodec/mpegaudiodec.c
	libavcodec/utils.c
	libavfilter/asrc_anullsrc.c
	libavfilter/audio.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/avfiltergraph.c
	libavfilter/buffer.c
	libavutil/Makefile
	libavutil/audioconvert.h
	libavutil/channel_layout.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 11:32:11 +01:00
Stefano Sabatini
e8c0b6710c examples/muxing: fix typo: allocated -> allocate 2012-11-06 11:28:28 +01:00
Stefano Sabatini
7f6f8f642c examples/demuxing: fix braino
s/video/audio/ in a log message.
2012-11-06 01:10:12 +01:00
Stefano Sabatini
794cea588c examples/demuxing: dump input information *after* trying to open audio stream
Implement more logical code flow.
2012-11-06 01:10:12 +01:00
Michael Niedermayer
ca28cb5f83 examples: fix doxy so they appear on the example page
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 16:32:32 +02:00
Stefano Sabatini
33c4535db7 examples/decoding_encoding: add and use the decode_write_frame function
Allow to factorize code in video_decode_example(), simplify.
2012-10-24 00:29:37 +02:00