[theora] trying to encode/decode videos using libtheora

Ribamar Santarosa de Sousa ribamar.santarosa at gmail.com
Sat Aug 26 19:34:24 PDT 2006


On 8/25/06, Ralph Giles <giles at xiph.org> wrote:
> On Thu, Aug 24, 2006 at 10:26:32PM -0300, Ribamar Santarosa de Sousa wrote:
>
> > The source code is here:
> > http://opensvn.csie.org/ribamar/projects/streaming/cvaenc.c
>
> I've only taken a quick look, but it looks like you're not writing out
> all the ogg pages. A packet can map to multiple pages, or many packets
> can map to the same page. You want something like this:
>
>         while((ret = ogg_stream_pageout(&stream, &page) > 0){
>                 fwrite(page.header,1,page.header_len,fout);
>                 fwrite(page.body,1,page.body_len,fout);
>         }
>         if (ret < 0) {
>                 fprintf(finfo, "problem pageout-ing.\n");
>         }
>


Rillian,
        I think I had tried everything you've said (except the
        serial number, but now I did). In truth, I believe to
        have tried any arrangement possible of (packetin,
        pageout, flush) for every ogg_packet, and that the
        updated current code on

http://opensvn.csie.org/ribamar/projects/streaming/cvaenc.c
        is likely to be writing out the things correctly;
        However...

        $ theora/examples/dump_video a.ogg
        YUV4MPEG2 W0 H0 F0:0 Ip A0:0
        Done.

        Maybe the ogg_packets are corrupted. I've isolated the
        theora_decode_init segmentation fault in this file
        http://opensvn.csie.org/ribamar/projects/streaming/decode_init.c
        , which tries to encode and decode only the headers. Any
        light?

Thanks,
Riba


More information about the theora mailing list