stream.c File Reference

#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include "mvp_demux.h"
#include "mvp_av.h"
#include "demux.h"

Go to the source code of this file.

Data Structures

struct  vid_parser_data_t

Defines

#define PRINTF(x...)
#define ringbuf(i)   (pRingBuf[(i)%buf_size])
#define ringbuf_negative(i)   (pRingBuf[((i)+buf_size)%buf_size])
#define ringbuf_valid(i)

Functions

static int stream_add (demux_handle_t *handle, stream_t *stream, unsigned char *buf, int len, int force)
int stream_peek (stream_t *stream, void *buf, int max)
void stream_empty (stream_t *stream)
int stream_drain (stream_t *stream, void *buf, int max)
int stream_drain_fd (stream_t *stream, int fd, int max)
int parse_afd (demux_handle_t *handle, unsigned char *buf, int len)
static void init_video_parser_data (vid_parser_data_t *pData)
static int parse_video_stream (unsigned char *pRingBuf, unsigned int tail, unsigned int head, unsigned int buf_size, void *pLocalData, demux_handle_t *handle)
static int parse_spu_frame (demux_handle_t *handle, unsigned char *buf, int len)
static int parse_ac3_frame (demux_handle_t *handle, unsigned char *buf, int len)
static int parse_pcm_frame (demux_handle_t *handle, unsigned char *buf, int len)
int parse_frame (demux_handle_t *handle, unsigned char *buf, int len, int type)
int add_buffer (demux_handle_t *handle, void *b, int len)
static stream_tstream_init (unsigned char *buf, int size)
int start_stream (demux_handle_t *handle)


Define Documentation

#define PRINTF x...   ) 
 

Definition at line 64 of file stream.c.

#define ringbuf  )     (pRingBuf[(i)%buf_size])
 

Definition at line 618 of file stream.c.

Referenced by parse_video_stream().

#define ringbuf_negative  )     (pRingBuf[((i)+buf_size)%buf_size])
 

Definition at line 619 of file stream.c.

Referenced by parse_video_stream().

#define ringbuf_valid  ) 
 

Value:

(((i) > 0 && (i) <buf_size)? \
        ( \
          (tail > head && (i) > tail) || \
          ( \
            (i) < head && \
            (tail > head || (i) > tail) \
          ) \
        ) : \
        ( \
          (tail > head && ((i)+buf_size)%buf_size > tail) || \
          ( \
            ((i)+buf_size)%buf_size < head && \
            (tail > head || ((i)+buf_size)%buf_size > tail) \
          ) \
        ) \
      )

Definition at line 621 of file stream.c.

Referenced by parse_video_stream().


Function Documentation

int add_buffer demux_handle_t handle,
void *  b,
int  len
 

Definition at line 1751 of file stream.c.

References demux_handle_s::bytes, handle, parse_frame(), PRINTF, and demux_handle_s::state.

Referenced by demux_put().

static void init_video_parser_data vid_parser_data_t pData  )  [inline, static]
 

Definition at line 611 of file stream.c.

References vid_parser_data_t::dts, and vid_parser_data_t::pts.

Referenced by parse_video_stream(), and start_stream().

static int parse_ac3_frame demux_handle_t handle,
unsigned char *  buf,
int  len
[static]
 

Definition at line 1193 of file stream.c.

References demux_attr_t::ac3_audio, stream_t::attr, demux_handle_s::attr, demux_attr_t::audio, demux_handle_s::audio, AUDIO_MODE_AC3, stream_attr_t::current, handle, PRINTF, register_stream(), STREAM_AC3, stream_add(), and stream_attr_t::type.

Referenced by parse_frame().

int parse_afd demux_handle_t handle,
unsigned char *  buf,
int  len
 

Definition at line 564 of file stream.c.

References PRINTF.

Referenced by parse_video_stream().

int parse_frame demux_handle_t handle,
unsigned char *  buf,
int  len,
int  type
 

Definition at line 1290 of file stream.c.

References demux_handle_s::allow_iframe, stream_t::attr, demux_handle_s::attr, demux_attr_t::audio, demux_handle_s::audio, AUDIO_MODE_MPEG1_PES, AUDIO_MODE_MPEG2_PES, audio_stream_0, audio_stream_F, demux_handle_s::buf, demux_handle_s::bufsz, stream_attr_t::current, demux_handle_s::frame_state, stream_stats_t::frames, handle, demux_handle_s::headernum, MPEG_program_end_code, pack_start_code, padding_stream, parse_ac3_frame(), parse_pcm_frame(), parse_spu_frame(), PRINTF, private_stream_1, private_stream_2, register_stream(), demux_handle_s::remain, demux_handle_s::seeking, demux_handle_s::spu_buf, demux_handle_s::spu_len, demux_handle_s::state, stream_attr_t::stats, stream_add(), STREAM_MPEG, system_header_start_code, stream_attr_t::type, demux_attr_t::video, demux_handle_s::video, video_stream_0, and video_stream_F.

Referenced by add_buffer(), and demux_put().

static int parse_pcm_frame demux_handle_t handle,
unsigned char *  buf,
int  len
[static]
 

Definition at line 1242 of file stream.c.

References stream_t::attr, demux_handle_s::attr, demux_attr_t::audio, demux_handle_s::audio, AUDIO_MODE_PCM, stream_attr_t::current, handle, PRINTF, register_stream(), stream_add(), STREAM_PCM, and stream_attr_t::type.

Referenced by parse_frame().

static int parse_spu_frame demux_handle_t handle,
unsigned char *  buf,
int  len
[static]
 

Definition at line 953 of file stream.c.

References demux_handle_s::attr, spu_t::buf, spu_attr_t::bytes, spu_item_t::data, spu_t::data_size, end(), spu_attr_t::frames, handle, spu_t::inuse, spu_t::item, spu_t::len, PRINTF, spu_t::size, demux_attr_t::spu, demux_handle_s::spu, SPU_MAX, start(), x, and y.

Referenced by parse_frame().

static int parse_video_stream unsigned char *  pRingBuf,
unsigned int  tail,
unsigned int  head,
unsigned int  buf_size,
void *  pLocalData,
demux_handle_t handle
[static]
 

Definition at line 658 of file stream.c.

References demux_handle_s::attr, demux_attr_t::Bps, demux_handle_s::bytes, delta, gop_t::frame, demux_attr_t::gop, demux_attr_t::gop_valid, handle, demux_handle_s::height, gop_t::hour, stream_stats_t::info, init_video_parser_data(), gop_t::minute, gop_t::offset, parse_afd(), PRINTF, gop_t::pts, vid_parser_data_t::pts, PTS_HZ, ringbuf, ringbuf_negative, ringbuf_valid, gop_t::second, demux_handle_s::seeking, stream_attr_t::stats, user_data_start_code, vi, vid_event_add(), VID_EVENT_ASPECT, stream_stats_t::video, demux_attr_t::video, video_stream_0, and video_stream_F.

Referenced by start_stream().

int start_stream demux_handle_t handle  ) 
 

Definition at line 1861 of file stream.c.

References demux_handle_s::attr, stream_t::attr, demux_handle_s::audio, demux_attr_t::audio, stream_attr_t::bufsz, handle, init_video_parser_data(), parse_video_stream(), stream_t::parser_callback, stream_t::parser_data, stream_t::ptr_tail_mutex, demux_handle_s::size, demux_handle_s::spu_buf, demux_handle_s::spu_len, demux_handle_s::state, demux_handle_s::stream_buf, stream_init(), demux_handle_s::video, and demux_attr_t::video.

Referenced by demux_init().

static int stream_add demux_handle_t handle,
stream_t stream,
unsigned char *  buf,
int  len,
int  force
[static]
 

Definition at line 171 of file stream.c.

References stream_t::attr, stream_t::buf, stream_stats_t::bytes, stream_stats_t::cur_bytes, end(), stream_stats_t::fill_count, stream_stats_t::full_count, handle, stream_t::head, stream_t::parser_callback, stream_t::parser_data, stream_t::parser_tail, PRINTF, stream_t::ptr_tail_mutex, demux_handle_s::seeking, stream_t::seeking_head, stream_t::seeking_head_valid, stream_t::size, stream_attr_t::stats, and stream_t::tail.

Referenced by parse_ac3_frame(), parse_frame(), and parse_pcm_frame().

int stream_drain stream_t stream,
void *  buf,
int  max
 

Definition at line 434 of file stream.c.

References stream_t::attr, stream_stats_t::cur_bytes, stream_t::head, PRINTF, stream_t::ptr_tail_mutex, stream_t::size, stream_attr_t::stats, stream_peek(), and stream_t::tail.

Referenced by demux_get_audio(), demux_get_video(), and demux_jit_write_audio().

int stream_drain_fd stream_t stream,
int  fd,
int  max
 

Definition at line 472 of file stream.c.

References stream_t::attr, stream_t::buf, stream_stats_t::cur_bytes, stream_stats_t::drain_count, stream_stats_t::empty_count, end(), stream_t::head, PRINTF, stream_t::ptr_tail_mutex, stream_t::size, stream_attr_t::stats, and stream_t::tail.

Referenced by demux_jit_write_audio(), demux_write_audio(), and demux_write_video().

void stream_empty stream_t stream  ) 
 

Definition at line 405 of file stream.c.

References stream_t::attr, stream_stats_t::cur_bytes, stream_t::head, stream_t::parser_tail, stream_t::ptr_tail_mutex, stream_t::size, stream_attr_t::stats, and stream_t::tail.

static stream_t* stream_init unsigned char *  buf,
int  size
[static]
 

Definition at line 1822 of file stream.c.

References stream_t::buf, and PRINTF.

Referenced by start_stream().

int stream_peek stream_t stream,
void *  buf,
int  max
 

Definition at line 343 of file stream.c.

References stream_t::attr, stream_t::buf, stream_stats_t::empty_count, stream_t::head, PRINTF, stream_t::size, stream_attr_t::stats, and stream_t::tail.

Referenced by demux_jit_write_audio(), and stream_drain().


Generated on Wed Sep 8 03:13:22 2010 for mvpmc by  doxygen 1.4.6