Hi, ----- Mail original ----- > 2014-10-02 19:39 GMT+09:00 Benoit Fouet <benoit.fo...@free.fr>: >
[...] > > diff --git a/libavformat/movenc.c b/libavformat/movenc.c > > index bfee866..62b2d4b 100644 > > --- a/libavformat/movenc.c > > +++ b/libavformat/movenc.c > > @@ -31,6 +31,7 @@ > > #include "avio.h" > > #include "isom.h" > > #include "avc.h" > > +#include "libavcodec/ac3_parser.h" > > #include "libavcodec/get_bits.h" > > #include "libavcodec/put_bits.h" > > #include "libavcodec/vc1_common.h" > > @@ -292,6 +293,40 @@ static int mov_write_ac3_tag(AVIOContext *pb, > > MOVTrack *track) > > return 11; > > } > > > > +static int mov_write_eac3_tag(AVIOContext *pb, MOVTrack *track) > > +{ > > + GetBitContext gbc; > > + PutBitContext pbc; > > + uint8_t buf[5]; > > + AC3HeaderInfo tmp, *hdr = &tmp; > > + > > + if (!track->vos_len) > > + return -1; > > + > > + init_get_bits(&gbc, track->vos_data, track->vos_len * 8); > > + if (avpriv_ac3_parse_header2(&gbc, &hdr) != 0) > > + return -1; > > + > > + avio_wb32(pb, 13); > > + ffio_wfourcc(pb, "dec3"); > > + > > + init_put_bits(&pbc, buf, sizeof(buf)); > > + put_bits(&pbc, 13, hdr->bit_rate); > > + put_bits(&pbc, 3, 0); /* consider there is only one > > independent > > substream present */ > > + put_bits(&pbc, 2, hdr->sr_code); > > + put_bits(&pbc, 5, hdr->bitstream_id); > > + put_bits(&pbc, 5, hdr->bitstream_mode); > > + put_bits(&pbc, 3, hdr->channel_mode); > > + put_bits(&pbc, 1, hdr->lfe_on); > > + put_bits(&pbc, 5, 0); /* reserved */ > > + put_bits(&pbc, 4, 0); /* no dependent substream */ > > > > I tested this patch for a 7.1ch source (requires dependent stream(s)) > and I > get the result containing improper settings here. > Please set properly here. Or reject streams requiring dependent > streams. > Do you have a sample you can share? I don't have any material to test this. > Sorry, multiple and consecutive posts. > But I found another issue in this patch. > This patch does not pack syncframes into a sample in order to pack 6 blocks. > The spec requires a sample consists of 6 blocks to make samle_delta in stts > equal to 1536. > I'll have a look at that too. Thanks -- Ben _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel