[FFmpeg-devel] IEC61937 compatible muxer

Bartlomiej Wolowiec bartek.wolowiec
Sat Aug 8 00:22:45 CEST 2009


Friday 07 August 2009 21:59:05 Reimar D?ffinger napisa?(a):
> Hello,
> mostly a bit of cosmetic nit-picking...
>
> On Fri, Aug 07, 2009 at 08:25:07PM +0200, Bartlomiej Wolowiec wrote:
> > +    uint32_t syncword_dts = be2me_32(*(uint32_t *) pkt->data);
>
> Hm. If performance is not critical, AV_RB32 has better readability IMO.
> Actually a temporary variable + bytestream_get_be32 might be even
> better.

Ok, I use AV_RB32.

[...]

> > +    av_log(s, AV_LOG_DEBUG, "blocks=%i\n", blocks);
> > +    switch (blocks) {
> > +    case 512 >> 5:
> > +        ctx->data_type = IEC958_DTS1;
> > +        break;
> > +    case 1024 >> 5:
> > +        ctx->data_type = IEC958_DTS2;
> > +        break;
> > +    case 2048 >> 5:
> > +        ctx->data_type = IEC958_DTS3;
> > +        break;
> > +    default:
>
> Why not switch(blocks << 5) (can't "overflow" AFAICT)

Hmm... blocks << 5 is a real code instruction, when 2048 >> 5 is a constant ?

> > +    ctx->pkt_size = ((pkt->size + 1) >> 1) << 4;
> FFALIGN(pkt->size, 2) * 8;
> might be clearer?
>
> > +    ret = (*ctx->header_info) (s, pkt);
>
> *shudder*. Why not just
>
> > +    ret = ctx->header_info(s, pkt);

;)

> > +    put_buffer(s->pb, pkt->data, pkt->size & (~1));
>
> Pointless () around ~1
>
> > +    if (pkt->size & 1)
> > +        put_be16(s->pb, pkt->data[pkt->size - 1]);
> > +
> > +    for (; padding > 0; padding--)
> > +        put_le16(s->pb, 0);
>
> Using put_le16 here is inconsistent even if it is slightly faster
> on little-endian machines. IMO use put_be16 for consistency,
> if it is speed-relevant, either a new avio function could be added
> or put_byte or memset+put_buffer could be used (I have no idea what the
> usual/minimum/maximum values for padding are, which method is most
> effective would depend on that).
>

I changed it to put_be16. Padding value depend on used codec... I don't think 
its a speed-relevant.

-- 
Bartlomiej Wolowiec
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch
Type: text/x-diff
Size: 9695 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090808/399207ed/attachment.diff>



More information about the ffmpeg-devel mailing list