|
Packit |
5e46da |
/*
|
|
Packit |
5e46da |
* This file is part of libbluray
|
|
Packit |
5e46da |
* Copyright (C) 2010 hpi1
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* This library is free software; you can redistribute it and/or
|
|
Packit |
5e46da |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
5e46da |
* License as published by the Free Software Foundation; either
|
|
Packit |
5e46da |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
5e46da |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
5e46da |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
5e46da |
* Lesser General Public License for more details.
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
5e46da |
* License along with this library. If not, see
|
|
Packit |
5e46da |
* <http://www.gnu.org/licenses/>.
|
|
Packit |
5e46da |
*/
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
#if !defined(_PES_BUFFER_H_)
|
|
Packit |
5e46da |
#define _PES_BUFFER_H_
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
#include "util/attributes.h"
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
#include <stdint.h>
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
typedef struct pes_buffer_s PES_BUFFER;
|
|
Packit |
5e46da |
struct pes_buffer_s {
|
|
Packit |
5e46da |
uint8_t *buf;
|
|
Packit |
5e46da |
uint32_t len; // payload length
|
|
Packit |
5e46da |
unsigned size; // allocated size
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
int64_t pts;
|
|
Packit |
5e46da |
int64_t dts;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
struct pes_buffer_s *next;
|
|
Packit |
5e46da |
};
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
BD_PRIVATE PES_BUFFER *pes_buffer_alloc(void) BD_ATTR_MALLOC;
|
|
Packit |
5e46da |
BD_PRIVATE void pes_buffer_free(PES_BUFFER **); // free list of buffers
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
BD_PRIVATE void pes_buffer_append(PES_BUFFER **head, PES_BUFFER *buf); // append buf to list
|
|
Packit |
5e46da |
BD_PRIVATE void pes_buffer_remove(PES_BUFFER **head, PES_BUFFER *buf); // remove buf from list and free it
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
BD_PRIVATE void pes_buffer_next(PES_BUFFER **head); // free first buffer and advance head to next buffer
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
#endif // _PES_BUFFER_H_
|