资源简介

里面包括JM8.6版本的H.264编解码器标准参考模型代码,内附有详细的注释,已经通过测试,可用!

资源截图

代码片段和文件信息

/**********************************************************************
 * Software Copyright Licensing Disclaimer
 *
 * This software module was originally developed by contributors to the
 * course of the development of ISO/IEC 14496-10 for reference purposes
 * and its performance may not have been optimized.  This software
 * module is an implementation of one or more tools as specified by
 * ISO/IEC 14496-10.  ISO/IEC gives users free license to this software
 * module or modifications thereof. Those intending to use this software
 * module in products are advised that its use may infringe existing
 * patents.  ISO/IEC have no liability for use of this software module
 * or modifications thereof.  The original contributors retain full
 * rights to modify and use the code for their own purposes and to
 * assign or donate the code to third-parties.
 *
 * This copyright notice must be included in all copies or derivative
 * works.  Copyright (c) ISO/IEC 2004.
 **********************************************************************/

/*!
 *************************************************************************************
 * \file annexb.c
 *
 * \brief
 *    Annex B Byte Stream format//附录B的字节流格式d610829
 *
 * \author
 *    Main contributors (see contributors.h for copyright address and affiliation details)
 *      - Stephan Wenger                  
 *************************************************************************************
 */

#include 
#include 

#include “global.h“
#include “annexb.h“
#include “memalloc.h“


FILE *bits = NULL;                //!< the bit stream file
static int FindStartCode (unsigned char *Buf int zeros_in_startcode);

int IsFirstByteStreamNALU=1;
int LastAccessUnitExists=0;
int NALUCount=0;


/*!
 ************************************************************************
 * \brief
 *    Returns the size of the NALU (bits between start codes in case of
 *    Annex B.  nalu->buf and nalu->len are filled.  Other field in
 *    nalu-> remain uninitialized (will be taken care of by NALUtoRBSP.
 *
 * \return
 *     0 if there is nothing any more to read (EOF)
 *    -1 in case of any error
 *
 *  \note Side-effect: Returns length of start-code in bytes. 
 *
 * \note
 *   GetAnnexbNALU expects start codes at byte aligned positions in the file
 *
 ************************************************************************
 */

int GetAnnexbNALU (NALU_t *nalu)
{
  int info2 info3 pos = 0;
  int StartCodeFound rewind;
  char *Buf;
  int LeadingZero8BitsCount=0 TrailingZero8Bits=0;
    
  if ((Buf = (char*)calloc (nalu->max_size  sizeof(char))) == NULL) no_mem_exit(“GetAnnexbNALU: Buf“);//分配缓冲区内存

  while(!feof(bits) && (Buf[pos++]=fgetc(bits))==0);//fgetc读取文件中一个字符,然后位置不断后移;feof检测文件结束符;读取单位为字节
                                                    //表示不断从文件中读取字符到缓冲区中,直到读到文件结束符
  
  if(feof(bits))//如果遇到文件结束符

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        753  2004-09-16 22:38  JM86_firstime\bin\backup\decoder.cfg

     文件      11222  2004-09-02 12:46  JM86_firstime\bin\backup\encoder_baseline.cfg

     文件      11221  2004-09-02 12:46  JM86_firstime\bin\backup\encoder_extended.cfg

     文件      11221  2004-09-16 22:38  JM86_firstime\bin\backup\encoder_main.cfg

     文件     114048  2001-09-03 13:05  JM86_firstime\bin\backup\foreman_part_qcif.yuv

     文件         16  2001-12-20 10:42  JM86_firstime\bin\backup\leakybucketrate.cfg

     文件         66  2004-05-25 15:54  JM86_firstime\bin\backup\sg0conf.cfg

     文件        126  2004-05-25 15:54  JM86_firstime\bin\backup\sg2conf.cfg

     文件       1188  2004-05-25 15:54  JM86_firstime\bin\backup\sg6conf.cfg

     文件       1196  2013-06-17 13:44  JM86_firstime\bin\data.txt

     文件        753  2004-09-16 22:38  JM86_firstime\bin\decoder.cfg

     文件      11222  2004-09-02 12:46  JM86_firstime\bin\encoder_baseline.cfg

     文件      11221  2004-09-02 12:46  JM86_firstime\bin\encoder_extended.cfg

     文件      11221  2004-09-16 22:38  JM86_firstime\bin\encoder_main.cfg

     文件     114048  2001-09-03 13:05  JM86_firstime\bin\foreman_part_qcif.yuv

     文件     937984  2013-05-17 10:00  JM86_firstime\bin\ldecod.exe

     文件    1213780  2013-05-17 10:00  JM86_firstime\bin\ldecod.ilk

     文件        100  2013-06-17 13:44  JM86_firstime\bin\leakybucketparam.cfg

     文件         16  2001-12-20 10:42  JM86_firstime\bin\leakybucketrate.cfg

     文件    1234432  2013-06-17 13:39  JM86_firstime\bin\lencod.exe

     文件    1489184  2013-06-17 13:39  JM86_firstime\bin\lencod.ilk

     文件       3907  2013-06-17 13:44  JM86_firstime\bin\log.dat

     文件         66  2004-05-25 15:54  JM86_firstime\bin\sg0conf.cfg

     文件        126  2004-05-25 15:54  JM86_firstime\bin\sg2conf.cfg

     文件       1188  2004-05-25 15:54  JM86_firstime\bin\sg6conf.cfg

     文件       2924  2013-06-17 13:44  JM86_firstime\bin\stat.dat

     文件         21  2013-06-17 21:56  JM86_firstime\bin\test.264

     文件          0  2013-06-17 13:44  JM86_firstime\bin\test_rec.yuv

     文件       2807  2013-06-17 22:24  JM86_firstime\bin\trace_enc.txt

     文件      30821  2004-09-16 18:00  JM86_firstime\CHANGES.TXT

............此处省略391个文件信息

评论

共有 条评论