~ubuntu-branches/ubuntu/trusty/flac/trusty-updates

« back to all changes in this revision

Viewing changes to src/libFLAC/include/private/ogg_decoder_aspect.h

  • Committer: Bazaar Package Importer
  • Author(s): Marc 'HE' Brockschmidt
  • Date: 2008-03-16 18:02:56 UTC
  • mfrom: (1.1.5 upstream) (8.1.2 gutsy)
  • Revision ID: james.westby@ubuntu.com-20080316180256-qhf3wk704rp165pm
Tags: 1.2.1-1.2
* Non-maintainer upload.
* Fix gcc-4.3 FTBFS, patch by KiBi (Closes: #455304)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* libFLAC - Free Lossless Audio Codec
 
2
 * Copyright (C) 2002,2003,2004,2005,2006,2007  Josh Coalson
 
3
 *
 
4
 * Redistribution and use in source and binary forms, with or without
 
5
 * modification, are permitted provided that the following conditions
 
6
 * are met:
 
7
 *
 
8
 * - Redistributions of source code must retain the above copyright
 
9
 * notice, this list of conditions and the following disclaimer.
 
10
 *
 
11
 * - Redistributions in binary form must reproduce the above copyright
 
12
 * notice, this list of conditions and the following disclaimer in the
 
13
 * documentation and/or other materials provided with the distribution.
 
14
 *
 
15
 * - Neither the name of the Xiph.org Foundation nor the names of its
 
16
 * contributors may be used to endorse or promote products derived from
 
17
 * this software without specific prior written permission.
 
18
 *
 
19
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
20
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
21
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
22
 * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
 
23
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
24
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
25
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 
26
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 
27
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 
28
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
29
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
30
 */
 
31
 
 
32
#ifndef FLAC__PRIVATE__OGG_DECODER_ASPECT_H
 
33
#define FLAC__PRIVATE__OGG_DECODER_ASPECT_H
 
34
 
 
35
#include <ogg/ogg.h>
 
36
 
 
37
#include "FLAC/ordinals.h"
 
38
#include "FLAC/stream_decoder.h" /* for FLAC__StreamDecoderReadStatus */
 
39
 
 
40
typedef struct FLAC__OggDecoderAspect {
 
41
        /* these are storage for values that can be set through the API */
 
42
        FLAC__bool use_first_serial_number;
 
43
        long serial_number;
 
44
 
 
45
        /* these are for internal state related to Ogg decoding */
 
46
        ogg_stream_state stream_state;
 
47
        ogg_sync_state sync_state;
 
48
        unsigned version_major, version_minor;
 
49
        FLAC__bool need_serial_number;
 
50
        FLAC__bool end_of_stream;
 
51
        FLAC__bool have_working_page; /* only if true will the following vars be valid */
 
52
        ogg_page working_page;
 
53
        FLAC__bool have_working_packet; /* only if true will the following vars be valid */
 
54
        ogg_packet working_packet; /* as we work through the packet we will move working_packet.packet forward and working_packet.bytes down */
 
55
} FLAC__OggDecoderAspect;
 
56
 
 
57
void FLAC__ogg_decoder_aspect_set_serial_number(FLAC__OggDecoderAspect *aspect, long value);
 
58
void FLAC__ogg_decoder_aspect_set_defaults(FLAC__OggDecoderAspect *aspect);
 
59
FLAC__bool FLAC__ogg_decoder_aspect_init(FLAC__OggDecoderAspect *aspect);
 
60
void FLAC__ogg_decoder_aspect_finish(FLAC__OggDecoderAspect *aspect);
 
61
void FLAC__ogg_decoder_aspect_flush(FLAC__OggDecoderAspect *aspect);
 
62
void FLAC__ogg_decoder_aspect_reset(FLAC__OggDecoderAspect *aspect);
 
63
 
 
64
typedef enum {
 
65
        FLAC__OGG_DECODER_ASPECT_READ_STATUS_OK = 0,
 
66
        FLAC__OGG_DECODER_ASPECT_READ_STATUS_END_OF_STREAM,
 
67
        FLAC__OGG_DECODER_ASPECT_READ_STATUS_LOST_SYNC,
 
68
        FLAC__OGG_DECODER_ASPECT_READ_STATUS_NOT_FLAC,
 
69
        FLAC__OGG_DECODER_ASPECT_READ_STATUS_UNSUPPORTED_MAPPING_VERSION,
 
70
        FLAC__OGG_DECODER_ASPECT_READ_STATUS_ABORT,
 
71
        FLAC__OGG_DECODER_ASPECT_READ_STATUS_ERROR,
 
72
        FLAC__OGG_DECODER_ASPECT_READ_STATUS_MEMORY_ALLOCATION_ERROR
 
73
} FLAC__OggDecoderAspectReadStatus;
 
74
 
 
75
typedef FLAC__OggDecoderAspectReadStatus (*FLAC__OggDecoderAspectReadCallbackProxy)(const void *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data);
 
76
 
 
77
FLAC__OggDecoderAspectReadStatus FLAC__ogg_decoder_aspect_read_callback_wrapper(FLAC__OggDecoderAspect *aspect, FLAC__byte buffer[], size_t *bytes, FLAC__OggDecoderAspectReadCallbackProxy read_callback, const FLAC__StreamDecoder *decoder, void *client_data);
 
78
 
 
79
#endif