Diffstat (limited to 'core/multimedia/opieplayer/libmad/decoder.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/libmad/decoder.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/core/multimedia/opieplayer/libmad/decoder.c b/core/multimedia/opieplayer/libmad/decoder.c index b2b6cbb..d039bfb 100644 --- a/core/multimedia/opieplayer/libmad/decoder.c +++ b/core/multimedia/opieplayer/libmad/decoder.c | |||
@@ -1,11 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * libmad - MPEG audio decoder library | 2 | * libmad - MPEG audio decoder library |
3 | * Copyright (C) 2000-2001 Robert Leslie | 3 | * Copyright (C) 2000-2004 Underbit Technologies, Inc. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or modify | 5 | * This program is free software; you can redistribute it and/or modify |
6 | * it under the terms of the GNU General Public License as published by | 6 | * it under the terms of the GNU General Public License as published by |
7 | * the Free Software Foundation; either version 2 of the License, or | 7 | * the Free Software Foundation; either version 2 of the License, or |
8 | * (at your option) any later version. | 8 | * (at your option) any later version. |
9 | * | 9 | * |
10 | * This program is distributed in the hope that it will be useful, | 10 | * This program is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
@@ -47,16 +47,20 @@ | |||
47 | # include <errno.h> | 47 | # include <errno.h> |
48 | # endif | 48 | # endif |
49 | 49 | ||
50 | # include "stream.h" | 50 | # include "stream.h" |
51 | # include "frame.h" | 51 | # include "frame.h" |
52 | # include "synth.h" | 52 | # include "synth.h" |
53 | # include "decoder.h" | 53 | # include "decoder.h" |
54 | 54 | ||
55 | /* | ||
56 | * NAME:decoder->init() | ||
57 | * DESCRIPTION:initialize a decoder object with callback routines | ||
58 | */ | ||
55 | void mad_decoder_init(struct mad_decoder *decoder, void *data, | 59 | void mad_decoder_init(struct mad_decoder *decoder, void *data, |
56 | enum mad_flow (*input_func)(void *, | 60 | enum mad_flow (*input_func)(void *, |
57 | struct mad_stream *), | 61 | struct mad_stream *), |
58 | enum mad_flow (*header_func)(void *, | 62 | enum mad_flow (*header_func)(void *, |
59 | struct mad_header const *), | 63 | struct mad_header const *), |
60 | enum mad_flow (*filter_func)(void *, | 64 | enum mad_flow (*filter_func)(void *, |
61 | struct mad_stream const *, | 65 | struct mad_stream const *, |
62 | struct mad_frame *), | 66 | struct mad_frame *), |
@@ -517,16 +521,20 @@ int run_async(struct mad_decoder *decoder) | |||
517 | 521 | ||
518 | _exit(run_sync(decoder)); | 522 | _exit(run_sync(decoder)); |
519 | 523 | ||
520 | /* not reached */ | 524 | /* not reached */ |
521 | return -1; | 525 | return -1; |
522 | } | 526 | } |
523 | # endif | 527 | # endif |
524 | 528 | ||
529 | /* | ||
530 | * NAME:decoder->run() | ||
531 | * DESCRIPTION:run the decoder thread either synchronously or asynchronously | ||
532 | */ | ||
525 | int mad_decoder_run(struct mad_decoder *decoder, enum mad_decoder_mode mode) | 533 | int mad_decoder_run(struct mad_decoder *decoder, enum mad_decoder_mode mode) |
526 | { | 534 | { |
527 | int result; | 535 | int result; |
528 | int (*run)(struct mad_decoder *) = 0; | 536 | int (*run)(struct mad_decoder *) = 0; |
529 | 537 | ||
530 | switch (decoder->mode = mode) { | 538 | switch (decoder->mode = mode) { |
531 | case MAD_DECODER_MODE_SYNC: | 539 | case MAD_DECODER_MODE_SYNC: |
532 | run = run_sync; | 540 | run = run_sync; |
@@ -549,16 +557,20 @@ int mad_decoder_run(struct mad_decoder *decoder, enum mad_decoder_mode mode) | |||
549 | result = run(decoder); | 557 | result = run(decoder); |
550 | 558 | ||
551 | free(decoder->sync); | 559 | free(decoder->sync); |
552 | decoder->sync = 0; | 560 | decoder->sync = 0; |
553 | 561 | ||
554 | return result; | 562 | return result; |
555 | } | 563 | } |
556 | 564 | ||
565 | /* | ||
566 | * NAME:decoder->message() | ||
567 | * DESCRIPTION:send a message to and receive a reply from the decoder process | ||
568 | */ | ||
557 | int mad_decoder_message(struct mad_decoder *decoder, | 569 | int mad_decoder_message(struct mad_decoder *decoder, |
558 | void *message, unsigned int *len) | 570 | void *message, unsigned int *len) |
559 | { | 571 | { |
560 | # if defined(USE_ASYNC) | 572 | # if defined(USE_ASYNC) |
561 | if (decoder->mode != MAD_DECODER_MODE_ASYNC || | 573 | if (decoder->mode != MAD_DECODER_MODE_ASYNC || |
562 | send(decoder->async.out, message, *len) != MAD_FLOW_CONTINUE || | 574 | send(decoder->async.out, message, *len) != MAD_FLOW_CONTINUE || |
563 | receive(decoder->async.in, &message, len) != MAD_FLOW_CONTINUE) | 575 | receive(decoder->async.in, &message, len) != MAD_FLOW_CONTINUE) |
564 | return -1; | 576 | return -1; |