Zane van Iperen: > Preparation for options. > > Signed-off-by: Zane van Iperen <z...@zanevaniperen.com> > --- > libavformat/argo_asf.c | 42 +++++++++++++++++++++--------------------- > 1 file changed, 21 insertions(+), 21 deletions(-) > > diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c > index 52e37f9c10..1770192aad 100644 > --- a/libavformat/argo_asf.c > +++ b/libavformat/argo_asf.c > @@ -292,29 +292,28 @@ static void argo_asf_write_chunk_header(const > ArgoASFChunkHeader *ckhdr, AVIOCon > > static int argo_asf_write_header(AVFormatContext *s) > { > - const AVCodecParameters *par = s->streams[0]->codecpar; > - ArgoASFFileHeader fhdr; > - ArgoASFChunkHeader chdr; > - > - fhdr.magic = ASF_TAG; > - fhdr.version_major = 2; > - fhdr.version_minor = 1; > - fhdr.num_chunks = 1; > - fhdr.chunk_offset = ASF_FILE_HEADER_SIZE; > - strncpy(fhdr.name, av_basename(s->url), FF_ARRAY_ELEMS(fhdr.name)); > - > - chdr.num_blocks = 0; > - chdr.num_samples = ASF_SAMPLE_COUNT; > - chdr.unk1 = 0; > - chdr.sample_rate = par->sample_rate; > - chdr.unk2 = ~0; > - chdr.flags = ASF_CF_BITS_PER_SAMPLE | ASF_CF_ALWAYS1; > + const AVCodecParameters *par = s->streams[0]->codecpar; > + ArgoASFContext *ctx = s->priv_data; > + > + ctx->fhdr.magic = ASF_TAG; > + ctx->fhdr.version_major = 2; > + ctx->fhdr.version_minor = 1; > + ctx->fhdr.num_chunks = 1; > + ctx->fhdr.chunk_offset = ASF_FILE_HEADER_SIZE; > + strncpy(ctx->fhdr.name, av_basename(s->url), > FF_ARRAY_ELEMS(ctx->fhdr.name)); > + > + ctx->ckhdr.num_blocks = 0; > + ctx->ckhdr.num_samples = ASF_SAMPLE_COUNT; > + ctx->ckhdr.unk1 = 0; > + ctx->ckhdr.sample_rate = par->sample_rate; > + ctx->ckhdr.unk2 = ~0; > + ctx->ckhdr.flags = ASF_CF_BITS_PER_SAMPLE | ASF_CF_ALWAYS1; > > if (par->channels == 2) > - chdr.flags |= ASF_CF_STEREO; > + ctx->ckhdr.flags |= ASF_CF_STEREO; > > - argo_asf_write_file_header(&fhdr, s->pb); > - argo_asf_write_chunk_header(&chdr, s->pb); > + argo_asf_write_file_header(&ctx->fhdr, s->pb); > + argo_asf_write_chunk_header(&ctx->ckhdr, s->pb); > return 0; > } > > @@ -353,6 +352,7 @@ AVOutputFormat ff_argo_asf_muxer = { > .init = argo_asf_write_init, > .write_header = argo_asf_write_header, > .write_packet = argo_asf_write_packet, > - .write_trailer = argo_asf_write_trailer > + .write_trailer = argo_asf_write_trailer, > + .priv_data_size = sizeof(ArgoASFContext) > }; > #endif > There is no point keeping data only used once in your context which is not what these contexts are there for. Coupled with patch 4/6 you are adding a const AVClass * to the context of the demuxer although the demuxer doesn't use it. 5/6 adds another field unused by the demuxer. All of this could be better handled by simply using a small, dedicated structure as context for the muxer.
- Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".