aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-11-21 02:22:17 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-11-24 22:01:33 +0100
commite6ea75c5e6b67012c5e8961d3f9171b0849b9cd2 (patch)
tree2a7cad93b417a3c29e67e20b560d55348f0556d5
parent9e1cfbd38a18f8ed8ba5ba1f7d21c73a8162ba19 (diff)
downloadffmpeg-e6ea75c5e6b67012c5e8961d3f9171b0849b9cd2.tar.gz
doc/examples/decoding_encoding: fix storing all channels
Fixes Ticket3355 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--doc/examples/decoding_encoding.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/doc/examples/decoding_encoding.c b/doc/examples/decoding_encoding.c
index 556fe989d7..80da66431b 100644
--- a/doc/examples/decoding_encoding.c
+++ b/doc/examples/decoding_encoding.c
@@ -288,6 +288,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f);
while (avpkt.size > 0) {
+ int i, ch;
int got_frame = 0;
if (!decoded_frame) {
@@ -304,15 +305,15 @@ static void audio_decode_example(const char *outfilename, const char *filename)
}
if (got_frame) {
/* if a frame has been decoded, output it */
- int data_size = av_samples_get_buffer_size(NULL, c->channels,
- decoded_frame->nb_samples,
- c->sample_fmt, 1);
+ int data_size = av_get_bytes_per_sample(c->sample_fmt);
if (data_size < 0) {
/* This should not occur, checking just for paranoia */
fprintf(stderr, "Failed to calculate data size\n");
exit(1);
}
- fwrite(decoded_frame->data[0], 1, data_size, outfile);
+ for (i=0; i<decoded_frame->nb_samples; i++)
+ for (ch=0; ch<c->channels; ch++)
+ fwrite(decoded_frame->data[ch] + data_size*i, 1, data_size, outfile);
}
avpkt.size -= len;
avpkt.data += len;
@@ -650,7 +651,7 @@ int main(int argc, char **argv)
video_encode_example("test.h264", AV_CODEC_ID_H264);
} else if (!strcmp(output_type, "mp2")) {
audio_encode_example("test.mp2");
- audio_decode_example("test.sw", "test.mp2");
+ audio_decode_example("test.pcm", "test.mp2");
} else if (!strcmp(output_type, "mpg")) {
video_encode_example("test.mpg", AV_CODEC_ID_MPEG1VIDEO);
video_decode_example("test%02d.pgm", "test.mpg");