Commit Graph

329 Commits

Author SHA1 Message Date
Stefano Sabatini
3a0c70f1e3 doc/examples/transcoding: use av_packet_rescale_ts()
Simplify.
2014-09-16 14:55:33 +02:00
Michael Niedermayer
68bca03951 doc/examples: remove unneeded NULL checks
dst_file cannot be NULL

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-14 16:45:50 +02:00
Clément Bœsch
b0352b1997 avcodec: export motion vectors in frame side data on demand
The reasoning behind this addition is that various third party
applications are interested in getting some motion information out of a
video "for free" when it is available.

It was considered to export other information as well (such as the intra
information about the block, or the quantization) but the structure
might have ended up into a half full-generic, half full of codec
specific cruft. If more information is necessary, it should either be
added in the "flags" field of the AVMotionVector structure, or in
another side-data.

This commit also includes an example exporting them in a CSV stream.
2014-08-18 14:13:57 +02:00
Timothy Gu
9f02a2b224 transcode_aac: fix const return value
Fixes Trac #3613.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 04:01:19 +02:00
Michael Niedermayer
f1d6fc7794 Merge commit '6a928293dd29c7f0dcf09107980a1d651c9957df'
* commit '6a928293dd29c7f0dcf09107980a1d651c9957df':
  examples: filter_audio: Add missing mem.h header for av_freep()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 19:18:25 +02:00
Diego Biurrun
6a928293dd examples: filter_audio: Add missing mem.h header for av_freep() 2014-08-03 01:29:43 -07:00
Michael Niedermayer
f285056810 doc/examples/muxing: fix "-flags" option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 19:58:47 +02:00
Michael Niedermayer
c437765be7 doc/examples/muxing: Exchange tmp_frame and frame
Reduces difference to 56f98e340f

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 12:03:51 +02:00
Michael Niedermayer
d1ce43a3e8 doc/examples/muxing: mark correct frame as writeable
Bug found from comparing 56f98e340f to HEAD
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:55:17 +02:00
Michael Niedermayer
fbd46e2f1c doc/examples/muxing: Always use swr, simplifies code slightly
Idea-from: 56f98e340f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:32:19 +02:00
Anton Khirnov
22e9fe06eb doc/examples/muxing: add alloc_audio_frame() and use it to simplify code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:15:39 +02:00
Michael Niedermayer
a98cadef7f doc/examples/muxing: Move samples_count to OutputStream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:05:05 +02:00
Michael Niedermayer
8b1d54ba40 doc/examples/muxing: free swr context at the end
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 00:50:58 +02:00
Michael Niedermayer
7cf0865551 doc/examples/muxing: Support setting flags, for example for setting bitexact
This would allow the example to be used in regression tests

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 22:49:02 +02:00
Michael Niedermayer
5d2cf1ae86 doc/examples/muxing: select a supported sample rate for the encoder, favor 44100
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 22:27:50 +02:00
Michael Niedermayer
ead22f42f4 doc/examples/muxing: pick a supported channel layout if stereo isnt supported by the encoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 22:01:08 +02:00
Michael Niedermayer
9ccb9c8df2 doc/examples/muxing: move swr context to OutputStream
Idea from: 56f98e340f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 21:50:21 +02:00
Michael Niedermayer
1c0c19f8bd Merge commit '884f7c975f0af25febe86660e87bf3b2165a0309'
* commit '884f7c975f0af25febe86660e87bf3b2165a0309':
  output example: set the stream timebase

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-26 21:04:31 +02:00
Anton Khirnov
56f98e340f output example: convert audio to the format supported by the encoder 2014-07-26 14:57:59 +00:00
Anton Khirnov
884f7c975f output example: set the stream timebase
This is required by the new API.
2014-07-26 14:57:45 +00:00
Diego Biurrun
6cc1409ba8 examples/output: Remove unused variable
doc/examples/output.c:460:9: warning: unused variable ‘i’
2014-07-11 07:23:50 -07:00
Timothy Gu
3be90723e7 transcoding: fix Doxygen file path
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 13:15:32 +02:00
Michael Niedermayer
cddbf95c5f doc/examples/resampling_audio: use av_freep() for saftey
also its better in examples to use the safer functions.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 16:26:38 +02:00
Michael Niedermayer
4d3072ada3 doc/examples/muxing: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 21:44:38 +02:00
Michael Niedermayer
8469c73576 Merge commit '182d3f8221c23716ea4eafa460bdb94968f71f26'
* commit '182d3f8221c23716ea4eafa460bdb94968f71f26':
  output example: rewrite encoding logic

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 00:57:04 +02:00
Michael Niedermayer
9a2850c26a Merge commit 'a7fcd4122b19b0f934020f4e261d0c44c4c32e11'
* commit 'a7fcd4122b19b0f934020f4e261d0c44c4c32e11':
  output example: store the scaling context in the stream context

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 00:16:34 +02:00
Michael Niedermayer
877716a79c Merge commit '6a927d7aaf5625e83a674072913b9e292a303fd1'
* commit '6a927d7aaf5625e83a674072913b9e292a303fd1':
  output example: use a macro instead of a static variable

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 23:58:00 +02:00
Michael Niedermayer
5a55d5e445 Merge commit '63fd0d866c8300a8f251a15b1535e9ce40a407fb'
* commit '63fd0d866c8300a8f251a15b1535e9ce40a407fb':
  output example: allocate the audio frame only once

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 23:22:08 +02:00
Michael Niedermayer
b9bfd888e5 Merge commit 'edd5f957646dcbf1bb55718bc7bf1e5481c25bcb'
* commit 'edd5f957646dcbf1bb55718bc7bf1e5481c25bcb':
  output example: use OutputStream for audio streams as well

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 23:01:52 +02:00
Michael Niedermayer
11991a7d90 Merge commit '5e7b125b6ae36893dfd9cb5661c99b67363cbb38'
* commit '5e7b125b6ae36893dfd9cb5661c99b67363cbb38':
  output example: use the new AVFrame API to allocate audio frames

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 22:46:11 +02:00
Michael Niedermayer
a1c4635558 Merge commit 'ac85f631c9a9cc59aaca1c8dd6894fb1f701c594'
* commit 'ac85f631c9a9cc59aaca1c8dd6894fb1f701c594':
  output example: set output channel layout

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 22:13:46 +02:00
Michael Niedermayer
8eb1174a9e Merge commit '294daf71a7a1303b5ddd3cbefebed3b732d610f3'
* commit '294daf71a7a1303b5ddd3cbefebed3b732d610f3':
  output example: use a struct to bundle the video stream variables together

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 21:55:11 +02:00
Michael Niedermayer
c9083d85df Merge commit '38d044429dabcd28928693240e955c6d4430cca9'
* commit '38d044429dabcd28928693240e955c6d4430cca9':
  output example: use the new AVFrame API for allocating the video frame

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 21:30:37 +02:00
Anton Khirnov
a5864e9a25 output example: free the muxing format context properly 2014-06-26 16:08:06 +02:00
Anton Khirnov
182d3f8221 output example: rewrite encoding logic
Properly generate pts for the frames sent to the encoder, avoid
using private and deprecated AVStream.pts.
2014-06-26 16:07:34 +02:00
Anton Khirnov
a7fcd4122b output example: store the scaling context in the stream context 2014-06-26 16:07:29 +02:00
Anton Khirnov
6a927d7aaf output example: use a macro instead of a static variable 2014-06-26 16:07:23 +02:00
Anton Khirnov
63fd0d866c output example: allocate the audio frame only once 2014-06-26 16:07:08 +02:00
Anton Khirnov
edd5f95764 output example: use OutputStream for audio streams as well 2014-06-26 16:07:02 +02:00
Anton Khirnov
5e7b125b6a output example: use the new AVFrame API to allocate audio frames 2014-06-26 16:06:54 +02:00
Anton Khirnov
ac85f631c9 output example: set output channel layout 2014-06-26 16:06:48 +02:00
Anton Khirnov
294daf71a7 output example: use a struct to bundle the video stream variables together 2014-06-26 16:05:24 +02:00
Anton Khirnov
38d044429d output example: use the new AVFrame API for allocating the video frame 2014-06-26 16:05:19 +02:00
Michael Niedermayer
afa7ab557a Merge commit '452860d7e056f9a894cac2fe52cdedeae4c38251'
* commit '452860d7e056f9a894cac2fe52cdedeae4c38251':
  Use av_packet_rescale_ts() to simplify code.

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 17:03:58 +02:00
Anton Khirnov
452860d7e0 Use av_packet_rescale_ts() to simplify code. 2014-06-20 14:14:48 +02:00
Lou Logan
88f2586adb fix various typos
Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 10:58:19 -08:00
Stefano Sabatini
bf411fffd4 examples: rename avcodec.c to decoding_encoding.c
Restore the old name, which was more meaningful and consistent with the
names of the other examples.
2014-04-23 10:32:42 +02:00
Michael Niedermayer
9b467d3cd5 examples/transcoding: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 15:35:14 +02:00
Michael Niedermayer
419800acc4 examples/avio_reading: fix null dereference on error
Fixed CID1197052
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 00:39:58 +02:00
Anshul Maheshwari
6d25e90262 doc/examples/avcodec: information regarding gop_size ignored if frame->pic-type is AV_PICTURE_TYPE_I
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 15:21:15 +01:00
Andrey Utkin
e10ab43614 doc/examples: Add example transcoding.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 20:56:33 +01:00
compn
84bccae8e9 doc: fix typo 2014-03-07 17:07:37 -05:00
Jason Hsu
8fb4dba89d doc/examples/remuxing: dont use the input codec_tag, it may be invalid tor the output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 16:10:06 +01:00
Michael Niedermayer
1f2bacc897 Merge commit 'e7dfaf16a403972eb6aed5ce8f84c0085bd2fb5a'
* commit 'e7dfaf16a403972eb6aed5ce8f84c0085bd2fb5a':
  libavfilter: example audio filtering program

Conflicts:
	.gitignore
	configure
	doc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 20:26:00 +01:00
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