|
|
|
@ -33,8 +33,8 @@ |
|
|
|
|
#define ID_LENGTH (strlen(ID_STRING) + 1) |
|
|
|
|
|
|
|
|
|
typedef struct { |
|
|
|
|
nut_context_t * nut; |
|
|
|
|
nut_stream_header_t * s; |
|
|
|
|
nut_context_tt * nut; |
|
|
|
|
nut_stream_header_tt * s; |
|
|
|
|
} NUTContext; |
|
|
|
|
|
|
|
|
|
static const AVCodecTag nut_tags[] = { |
|
|
|
@ -55,7 +55,7 @@ static int av_write(void * h, size_t len, const uint8_t * buf) { |
|
|
|
|
static int nut_write_header(AVFormatContext * avf) { |
|
|
|
|
NUTContext * priv = avf->priv_data; |
|
|
|
|
ByteIOContext * bc = avf->pb; |
|
|
|
|
nut_muxer_opts_t mopts = { |
|
|
|
|
nut_muxer_opts_tt mopts = { |
|
|
|
|
.output = { |
|
|
|
|
.priv = bc, |
|
|
|
|
.write = av_write, |
|
|
|
@ -66,7 +66,7 @@ static int nut_write_header(AVFormatContext * avf) { |
|
|
|
|
.max_distance = 32768, |
|
|
|
|
.fti = NULL, |
|
|
|
|
}; |
|
|
|
|
nut_stream_header_t * s; |
|
|
|
|
nut_stream_header_tt * s; |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
priv->s = s = av_mallocz((avf->nb_streams + 1) * sizeof*s); |
|
|
|
@ -123,7 +123,7 @@ static int nut_write_header(AVFormatContext * avf) { |
|
|
|
|
|
|
|
|
|
static int nut_write_packet(AVFormatContext * avf, AVPacket * pkt) { |
|
|
|
|
NUTContext * priv = avf->priv_data; |
|
|
|
|
nut_packet_t p; |
|
|
|
|
nut_packet_tt p; |
|
|
|
|
|
|
|
|
|
p.len = pkt->size; |
|
|
|
|
p.stream = pkt->stream_index; |
|
|
|
@ -188,7 +188,7 @@ static off_t av_seek(void * h, long long pos, int whence) { |
|
|
|
|
static int nut_read_header(AVFormatContext * avf, AVFormatParameters * ap) { |
|
|
|
|
NUTContext * priv = avf->priv_data; |
|
|
|
|
ByteIOContext * bc = avf->pb; |
|
|
|
|
nut_demuxer_opts_t dopts = { |
|
|
|
|
nut_demuxer_opts_tt dopts = { |
|
|
|
|
.input = { |
|
|
|
|
.priv = bc, |
|
|
|
|
.seek = av_seek, |
|
|
|
@ -200,8 +200,8 @@ static int nut_read_header(AVFormatContext * avf, AVFormatParameters * ap) { |
|
|
|
|
.read_index = 1, |
|
|
|
|
.cache_syncpoints = 1, |
|
|
|
|
}; |
|
|
|
|
nut_context_t * nut = priv->nut = nut_demuxer_init(&dopts); |
|
|
|
|
nut_stream_header_t * s; |
|
|
|
|
nut_context_tt * nut = priv->nut = nut_demuxer_init(&dopts); |
|
|
|
|
nut_stream_header_tt * s; |
|
|
|
|
int ret, i; |
|
|
|
|
|
|
|
|
|
if ((ret = nut_read_headers(nut, &s, NULL))) { |
|
|
|
@ -258,7 +258,7 @@ static int nut_read_header(AVFormatContext * avf, AVFormatParameters * ap) { |
|
|
|
|
|
|
|
|
|
static int nut_read_packet(AVFormatContext * avf, AVPacket * pkt) { |
|
|
|
|
NUTContext * priv = avf->priv_data; |
|
|
|
|
nut_packet_t pd; |
|
|
|
|
nut_packet_tt pd; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
ret = nut_read_next_packet(priv->nut, &pd); |
|
|
|
|