[FFmpeg-devel] [PATCH] PB-frames support for i263

Michael Niedermayer michaelni
Thu Feb 19 13:59:37 CET 2009


On Thu, Feb 19, 2009 at 09:27:21AM +0200, Kostya wrote:
> On Wed, Feb 18, 2009 at 12:43:04PM +0100, Michael Niedermayer wrote:
> > On Wed, Feb 18, 2009 at 10:40:56AM +0200, Kostya wrote:
> > > On Tue, Feb 17, 2009 at 06:48:57PM +0100, Michael Niedermayer wrote:
> > > > On Tue, Feb 17, 2009 at 08:29:36PM +0200, Kostya wrote:
> > > [..]
> > > > > separated
> > > > > Since i263 are the only codec known (to me) to contain PB-frames, it's the
> > > > > only way to test code.
> > > > 
> > > > huh? ITU h263+ allows PB frames, and id be surprised if there are no reference
> > > > streams around ...
> > > 
> > > I'd like to find them too.
> > 
> > download tmn and generate your own
>  
> Will try
>  
> [for(;;){] 
> > > +        }
> > >      }
> > > +    if(format == 6){
> > > +        int ar = get_bits(&s->gb, 4);
> > > +        skip_bits(&s->gb, 9); // display width
> > 
> > > +        if(!get_bits1(&s->gb))
> > > +            return -1;
> > 
> > dont return here, just print an error
> [}]
> 
> Hier
> 
> > [...]
> > -- 
> > Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

> Index: libavcodec/h263.c
> ===================================================================
> --- libavcodec/h263.c	(revision 16921)
> +++ libavcodec/h263.c	(working copy)
> @@ -6185,17 +6232,48 @@
>          return -1;      /* SAC: off */
>      }
>      s->obmc= get_bits1(&s->gb);
> -    if (get_bits1(&s->gb) != 0) {
> -        av_log(s->avctx, AV_LOG_ERROR, "PB frame mode no supported\n");
> -        return -1;      /* PB frame mode */
> +    s->pb_frame = get_bits1(&s->gb);
> +
> +    if(format == 7){
> +        format = get_bits(&s->gb, 3);
> +        if(format == 0 || format == 7){
> +            av_log(s->avctx, AV_LOG_ERROR, "Wrong Intel H263 format\n");
> +            return -1;
> +        }
> +        if(get_bits(&s->gb, 2))
> +            av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n");
> +        s->loop_filter = get_bits1(&s->gb);

> +        if(get_bits1(&s->gb)){
> +            av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n");
> +            return -1;
> +        }

hmm


> +        if(get_bits1(&s->gb))
> +            s->pb_frame = 2;
> +        if(get_bits(&s->gb, 5))
> +            av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n");
> +        if(get_bits(&s->gb, 5) != 1)
> +            av_log(s->avctx, AV_LOG_ERROR, "Invalid marker\n");
>      }
> +    if(format == 6){
> +        int ar = get_bits(&s->gb, 4);
> +        skip_bits(&s->gb, 9); // display width

> +        if(!get_bits1(&s->gb))
> +            return -1;

hmpf



[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

There will always be a question for which you do not know the correct awnser.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090219/f082068c/attachment.pgp>



More information about the ffmpeg-devel mailing list