Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

DictData not declared at build

Help
2005-12-03
2013-04-25
  • lakealmaden
    lakealmaden
    2005-12-03

    Hi there
    Just tried to build mxflib but mxfdump bailed out
    with the message DictData not declared.

    Anything needs to happen before make the whole thing?

    Thanks in advance.

    ---------------------

    Here is the error message
    a0801a-dhcp140:~/work/mxflib wenppc$ make
    cd . && /bin/sh ./config.status config.h
    config.status: creating config.h
    config.status: config.h is unchanged
    make  all-recursive
    Making all in mxflib
    make[2]: Nothing to be done for `all'.
    Making all in mxfsplit
    make[2]: Nothing to be done for `all'.
    Making all in mxfwrap
    make[2]: Nothing to be done for `all'.
    Making all in mxfdump
    source='mxfdump.cpp' object='mxfdump.o' libtool=no \ depfile='.deps/mxfdump.Po' tmpdepfile='.deps/mxfdump.TPo' \ depmode=gcc3 /bin/sh ../depcomp \ g++ -DHAVE_CONFIG_H  -I..    -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEFAULT_DICT_PATH=\"/usr/local/share/mxflib\" -g -Wall -c -o mxfdump.o `test -f 'mxfdump.cpp' || echo './'`mxfdump.cpp
    mxfdump.cpp: In function 'int main_process(int, char**)':
    mxfdump.cpp:160: error: 'DictData' was not declared in this scope
    make[2]: *** [mxfdump.o] Error 1
    make[1]: *** [all-recursive] Error 1
    make: *** [all] Error 2

     
    • Matt Beard
      Matt Beard
      2005-12-03

      Ah, good point - this is a bug that shows when COMPILED_DICT is not defined. This is the case if you don't want the compile-time dictionary to be loaded as the default for mxfdump.

      To fix this bug change:

          if( UseCompiledDict )
          {
              printf("- using compile-time dictionary\n");
              LoadDictionary(DictData);
          }
          else
          {
              printf("- using dictionary \"%s\"\n", DictName.c_str());
              LoadDictionary(DictName);
          }

      to:

      #ifdef COMPILED_DICT
          if( UseCompiledDict )
          {
              printf("- using compile-time dictionary\n");
              LoadDictionary(DictData);
          }
          else
      #endif // COMPILED_DICT
          {
              printf("- using dictionary \"%s\"\n", DictName.c_str());
              LoadDictionary(DictName);
          }

      I will also check this in to the CVS.

       
    • lakealmaden
      lakealmaden
      2005-12-04

      Thanks Matt for your quick response.
      It worked now with your fix.

      One more issue is that mxfwrap reported some errors.
      Is this something related to the UUID generator mentioned in
      the README file?  See below for error message.
      I am running this on macos.

      Is there a tool for unwrapping the input to mxfwrap?
      Or mxfdump can be modified to do this such that one can
      verify the round trip mxfwarp->mxfunwrap gets back to the
      origin.

      Thanks,

      -Wenqing
      -----------------------------------------------------
      [172:~/work/mxflib] wenppc% mxfwrap -a -f -i ~/Movies/ZhuoNiQiu-MPEG-2\ 6.2Mbps\ 2-pass\ 4:3.m2v sample.mxf
      MXFlib File Wrapper

      enter loadDict
      Done loading dictionary
      KAGSize     = 1

      Input file  = /Users/wenppc/Movies/ZhuoNiQiu-MPEG-2 6.2Mbps 2-pass 4:3.m2v
      Output file = sample.mxf

      Output OP = OP-Atom
      An updated header will be written after writing the footer
      At least 16384 padding bytes will be left after the initial writing of the header
      Index tables will be written for each frame wrapped essence container
      Index table segments will not share a partition with essence
      enter loadDict
      Done loading dictionary

      Selected wrapping for file "/Users/wenppc/Movies/ZhuoNiQiu-MPEG-2 6.2Mbps 2-pass 4:3.m2v" : SMPTE 381M frame wrapping of MPEG2 video elementary stream

      Processing output file "sample.mxf"
      ERROR: Metadata Object "ContentStorage/Packages" should be a reference source (a UUID), but has no valid value
      ERROR: Metadata Object "ContentStorage/EssenceContainerData" should be a reference source (a UUID), but has no valid value
      ERROR: Metadata Object "Preface/Identifications" should be a reference source (a UUID), but has no valid value
      ERROR: Metadata Object "ContentStorage/Packages" should be a reference source (a UUID), but has no valid value
      ERROR: Metadata Object "ContentStorage/EssenceContainerData" should be a reference source (a UUID), but has no valid value
      ERROR: Metadata Object "Preface/Identifications" should be a reference source (a UUID), but has no valid value

      Done

       
      • Matt Beard
        Matt Beard
        2005-12-04

        The error messages were cause by mxfwrap managing to load the same dictionary twice. Now fixed in mxfwrap, and also fixed so that redefinition with identical data is not a problem.

         
      • Matt Beard
        Matt Beard
        2005-12-04

        >Is there a tool for unwrapping the input to mxfwrap?

        Yes - mxfsplit will do it. It is a little crude and improvements are currently in the pipeline.