List Info

Thread: CR/CN-Client: 3gp meta-data upgrades (merge from head to atlas)




CR/CN-Client: 3gp meta-data upgrades (merge from head to atlas)
user name
2008-03-19 20:50:51
Modified by: pbasic at real.com
Date: 2008/03/20
Project: strummer

Synopsis: 3gp meta-data upgrades. dtdrplin synchronous
mode.
Merge also includes a few bug-fixes (in affected files) from
the head branch.

Overview:
The change updates 3gp-related components to deal with the
full
meta-data set specified by 3GPP Technical Specification
v7.2.0.

- Rewrote/fixed UTF conversion utilities.
 -Wrote new UTF baseline converters (UTF8 <-> UTF32,
  UTF16 <-> UTF32, ASCII checkers) ->
"uniconv".
 -Removed old UTF baseline converters from
"hlxossstr".
 -Added wchar_t size-based dispatchers where necessary for
  proper wchar_t <-> UTF conversion.
 -Removed old ConvertUTF16ToUTF8 interface from
"hlxossstr".
 -Added custom baseline wchar_t tools like StringLengthW
  (and matching char versions for consistency) to
"hlxossstr",
  to have them available on all platforms.
 -Added more inline converter classes (UTF8 <->
wchar_t,
  CurrentCodePage <-> wchar_t, CurrentCodePage
<-> UTF8).

- Added convenience-level tools for UTF string inspection,
 duplication and conversion (uses HX_TEXT_ENCODING_TYPE):
"encstr".

- Added convenience-level tools for IHXValues data-transfer:
"proptools".

- Added ISO639.2/T language code tools: "iso639".

- Extended list of 3GP meta-data properties to v7.2.0 set.

- Extended/fixed mp4 file format to properly deal with
 3GP v7.2.0. meta-data.
 -Added method which extracts language encoding field from
all
  available atoms and deduces "global" encoding;
this is used as
  a workaround for per-atom language-encoding pathway which
is
  missing in the engine.
 -albm & yrrc atoms and language encoding information
are now
  transferred to the engine.
 -Fixed UTF16 string length calculation bugs.
 -Fixed bugs in SetPropertyOnHeader method.

- Extended/fixed mp4 file writer to properly deal with
 3GP v7.2.0. meta-data.
 -Refactored atom interfaces, added albm & yrrc atoms.
 -Added UTF16 text output.
 -IHXValues properties are now passed from file-writer to
  stream-mixer, so that stream-mixer can configure itself.

- Upgraded dtdriver engine.
 -Added "UTF16Output" option which signals that
the meta-data
  text should be written to the file in UTF16 format.
 -Added "Synchronous" option which signals that
the engine will be
  driven in synchronous mode.
 -Extended meta-data option transfer with full 3GP 7.2 atom
set.

- Added Synchronous mode support to dtdrplin.
 If synchronous mode is selected, the "Drive"
method does not exit
 immediately after setting-up a processing job. Instead, it
uses
 calling thread to perform the driving job. It returns to
the caller
 upon job completion or after occurrence of error condition.
This
 has been added to allow for easier integration in cases
where an
 application wants to use non-event-driven flow-control
model
 for meta-data processing.
 -Refactored CThreadCBMgr classes to derive from new
  CallbackManagerBase class.
 -Introduced CNonThreadCBMgr class which serves as a
pass-through
  to converter notifications.

- Fixed reference-counting bugs in dtdrplin.
 Unix version of CThreadCBMgr::OnFileHeader,
 CThreadCBMgr::OnStreamHeader, CThreadCBMgr::OnPacket were
 expecting equivalent CDataTypeConverter routines to perform
the
 IHXValues releases. Expecting non-local code to clean-up is
a bad
 strategy, but appart from that, old implementation was
clashing
 with Windows version of CThreadCBMgr which did not have the
needed
 AddRef-s. HX_RELEASE calls are moved from
CDataTypeConverter to
 unix version of CThreadCBMgr::OnFileHeader,
 CThreadCBMgr::OnStreamHeader, CThreadCBMgr::OnPacket.

Files Modified:
common/runtime/Umakefil
common/runtime/hlxosstr.cpp
common/runtime/pub/hlxosstr.h
common/util/Umakefil
common/util/pckunpck.cpp
common/util/pub/pckunpck.h
datatype/include/metainfokeys.h
datatype/mp4/fileformat/qtffplin.cpp
datatype/mp4/fileformat/qtatoms.cpp
datatype/mp4/fileformat/qtatmmgs.cpp
datatype/mp4/fileformat/pub/qtffplin.h
datatype/mp4/fileformat/pub/qtatoms.h
datatype/mp4/fileformat/pub/qtatmmgs.h
datatype/mp4/filewriter/Umakefil
datatype/mp4/filewriter/3gpmeta.h
datatype/mp4/filewriter/mp4sm.h
datatype/mp4/filewriter/mp4sm.cpp
datatype/mp4/filewriter/mp4wrtr.cpp
datatype/tools/dtdriver/engine/Umakefil
datatype/tools/dtdriver/engine/ffdriver.cpp
datatype/tools/dtdriver/engine/pub/ffdriver.h
datatype/tools/dtdriver/dtdrplin/platform/win/thrdcbmgr.h
datatype/tools/dtdriver/dtdrplin/platform/win/thrdcbmgr.cpp
datatype/tools/dtdriver/dtdrplin/platform/unix/thrdcbmgr.h
datatype/tools/dtdriver/dtdrplin/platform/unix/thrdcbmgr.cpp

datatype/tools/dtdriver/dtdrplin/pub/datatypedr.h
datatype/tools/dtdriver/dtdrplin/datatypedr.cpp
datatype/tools/dtdriver/dtdrplin/dtdr_genr_lib

Files Added:
common/util/uniconv.cpp
common/util/encstr.cpp
common/util/proptools.cpp
common/util/iso639.cpp
common/util/iso639_codes_inline.h
common/util/pub/uniconv.h
common/util/pub/encstr.h
common/util/pub/proptools.h
common/util/pub/iso639.h
datatype/mp4/filewriter/3gpmeta.cpp
datatype/tools/dtdriver/dtdrplin/cbmgr.h
datatype/tools/dtdriver/dtdrplin/cbmgr.cpp

Image Size and Heap Use impact:
Small increase.

Platforms and Profiles Affected:
All

Platforms and Profiles Build Verified:
system id: win32-i386-vc7
profile: helix-client-all-defines

Branch:
hxclient_3_1_0_atlas

Copyright assignment:
I am a RealNetworks employee or contractor.

_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )