请教下,使用st提供的历程,libjpeg 库解码 ???

2019-07-21 00:17发布

本帖最后由 hpdell 于 2016-1-11 15:50 编辑

各位大侠们,使用st官网提供的libjpeg解码库时,程序运行到

typedef unsigned char JOCTET;          // 这个是libjpeg 库里面的原始定义

GLOBAL(void)
jpeg_stdio_src (j_decompress_ptr cinfo, FILE * infile)
{
  my_src_ptr src;

  /* The source object and input buffer are made permanent so that a series
   * of JPEG images can be read from the same file by calling jpeg_stdio_src
   * only before the first one.  (If we discarded the buffer at the end of
   * one image, we'd likely lose the start of the next one.)
   * This makes it unsafe to use this manager and a different source
   * manager serially with the same JPEG object.  Caveat programmer.
   */
  if (cinfo->src == NULL) {        /* first time for this JPEG object? */
    cinfo->src = (struct jpeg_source_mgr *)
      (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
                                  SIZEOF(my_source_mgr));
    src = (my_src_ptr) cinfo->src;
    src->buffer = (JOCTET *)                      // 程序运行此处时,程序跑飞了,不知是为何  ???????????????
      (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
                                  INPUT_BUF_SIZE * SIZEOF(JOCTET));
  }

  src = (my_src_ptr) cinfo->src;
  src->pub.init_source = init_source;
  src->pub.fill_input_buffer = fill_input_buffer;
  src->pub.skip_input_data = skip_input_data;
  src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */
  src->pub.term_source = term_source;
  src->infile = infile;
  src->pub.bytes_in_buffer = 0; /* forces fill_input_buffer on first read */
  src->pub.next_input_byte = NULL; /* until buffer loaded */
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-21 04:35
 精彩回答 2  元偷偷看……
hpdell
2楼-- · 2019-07-21 07:39
正点原子 发表于 2016-1-12 23:50
可以参考下我们F4的视频播放实验,用的也是libjpeg

好的,
hpdell
3楼-- · 2019-07-21 13:31
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-21 15:28
MJPEG

一周热门 更多>