Browse Source

Make write_streamheader() and write_headers() accept an

AVFormatContext * in input rather than a NUTContext *, which allows to
log messages with av_log().

Originally committed as revision 23431 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Stefano Sabatini 15 years ago
parent
commit
da9e6c4295
1 changed files with 8 additions and 6 deletions
  1. +8
    -6
      libavformat/nutenc.c

+ 8
- 6
libavformat/nutenc.c View File

@@ -391,7 +391,8 @@ static void write_mainheader(NUTContext *nut, ByteIOContext *bc){
}
}

static int write_streamheader(NUTContext *nut, ByteIOContext *bc, AVStream *st, int i){
static int write_streamheader(AVFormatContext *avctx, ByteIOContext *bc, AVStream *st, int i){
NUTContext *nut = avctx->priv_data;
AVCodecContext *codec = st->codec;
put_v(bc, i);
switch(codec->codec_type){
@@ -504,7 +505,8 @@ static int write_streaminfo(NUTContext *nut, ByteIOContext *bc, int stream_id){
return count;
}

static int write_headers(NUTContext *nut, ByteIOContext *bc){
static int write_headers(AVFormatContext *avctx, ByteIOContext *bc){
NUTContext *nut = avctx->priv_data;
ByteIOContext *dyn_bc;
int i, ret;

@@ -518,7 +520,7 @@ static int write_headers(NUTContext *nut, ByteIOContext *bc){
ret = url_open_dyn_buf(&dyn_bc);
if(ret < 0)
return ret;
write_streamheader(nut, dyn_bc, nut->avf->streams[i], i);
write_streamheader(avctx, dyn_bc, nut->avf->streams[i], i);
put_packet(nut, bc, dyn_bc, 1, STREAM_STARTCODE);
}

@@ -592,7 +594,7 @@ static int write_header(AVFormatContext *s){
put_buffer(bc, ID_STRING, strlen(ID_STRING));
put_byte(bc, 0);

write_headers(nut, bc);
write_headers(s, bc);

put_flush_packet(bc);

@@ -653,7 +655,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt){
return -1;

if(1LL<<(20+3*nut->header_count) <= url_ftell(bc))
write_headers(nut, bc);
write_headers(s, bc);

if(key_frame && !(nus->last_flags & FLAG_KEY))
store_sp= 1;
@@ -797,7 +799,7 @@ static int write_trailer(AVFormatContext *s){
ByteIOContext *bc= s->pb;

while(nut->header_count<3)
write_headers(nut, bc);
write_headers(s, bc);
put_flush_packet(bc);
ff_nut_free_sp(nut);
av_freep(&nut->stream);


Loading…
Cancel
Save