Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Anton Khirnov <anton@khirnov.net>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 2/3] lavc: add standalone cached bitstream reader
Date: Tue, 05 Jul 2022 13:30:09 +0200
Message-ID: <165702060959.31466.15042894037922690444@lain.khirnov.net> (raw)
In-Reply-To: =?utf-8?q?=3CDB6PR0101MB22149D72563A594BAD63E8BF8FBF9=40DB6PR01?= =?utf-8?q?01MB2214=2Eeurprd01=2Eprod=2Eexchangelabs=2Ecom=3E?=

Quoting Andreas Rheinhardt (2022-07-03 15:16:39)
> Anton Khirnov:
> > +
> > +#include "mathops.h"
> 
> What exactly is mathops.h for? get_bits.h uses it for NEG_USR32 and
> NEG_SSR32, but you are not using it here.

sign_extend()?

> > +/**
> > + * Skip bits to a byte boundary.
> > + */
> > +static inline const uint8_t *bits_align(BitstreamContext *bc)
> > +{
> > +    unsigned int n = -bits_tell(bc) & 7;
> > +    if (n)
> > +        bits_skip(bc, n);
> 
> Is there a reason that I don't see that makes you not simply use
> bc->bits_left &= ~0xff?

I don't see how that is supposed to work.

> 
> > +    return bc->buffer + (bits_tell(bc) >> 3);
> > +}
> > +
> > +/**
> > + * Read MPEG-1 dc-style VLC (sign bit + mantissa with no MSB).
> > + * If MSB not set it is negative.
> > + * @param n length in bits
> > + */
> > +static inline int bits_read_xbits(BitstreamContext *bc, unsigned int n)
> > +{
> > +    int32_t cache = bits_peek(bc, 32);
> > +    int sign = ~cache >> 31;
> > +    bits_priv_skip_remaining(bc, n);
> 
> FYI: You are potentially skipping more bits here than you have.

Yes, you made that clear in your fake-caching patch. Do you require that
be fixed now? Or can this go in, then we apply some form of your patch?

> > +/* Read sign bit and flip the sign of the provided value accordingly. */
> > +static inline int bits_apply_sign(BitstreamContext *bc, int val)
> > +{
> > +    int sign = bits_read_signed(bc, 1);
> 
> Is there a reason you are not using bits_read_bit here?

I want a signed result.

-- 
Anton Khirnov
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  parent reply	other threads:[~2022-07-05 11:30 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-03 10:26 [FFmpeg-devel] [PATCH 1/3] get_bits: move check_marker() to mpegvideodec.h Anton Khirnov
2022-07-03 10:26 ` [FFmpeg-devel] [PATCH 2/3] lavc: add standalone cached bitstream reader Anton Khirnov
2022-07-03 13:16   ` Andreas Rheinhardt
2022-07-05 11:30   ` Anton Khirnov [this message]
2022-07-03 10:26 ` [FFmpeg-devel] [PATCH 3/3] lavc/tests: add a cached bitstream reader test Anton Khirnov
2022-07-03 13:31 ` [FFmpeg-devel] [PATCH 1/3] get_bits: move check_marker() to mpegvideodec.h Andreas Rheinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=165702060959.31466.15042894037922690444@lain.khirnov.net \
    --to=anton@khirnov.net \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git