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-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev
|