RIO-7574: By default, use current system time as creation & modification date.
diff --git a/fileformats/mp4/composer/src/atomutils.cpp b/fileformats/mp4/composer/src/atomutils.cpp
index b14bae6..76a3d6d 100644
--- a/fileformats/mp4/composer/src/atomutils.cpp
+++ b/fileformats/mp4/composer/src/atomutils.cpp
@@ -235,8 +235,9 @@
void
PVA_FF_AtomUtils::setTime(uint32 &ulTime)
{
- // This fp not correct, it needs to adjust to base 1904 rather 1970.
- ulTime = uint32(time(NULL));
+ // 2082844800 is number of seconds from Jan 1, 1904 to Jan 1, 1970.
+ // time() returns the seconds since Jan 1, 1970.
+ ulTime = uint32(time(NULL) + 2082844800 );
}
diff --git a/fileformats/mp4/composer/src/mpeg4file.cpp b/fileformats/mp4/composer/src/mpeg4file.cpp
index 74f65ef..7f3f369 100644
--- a/fileformats/mp4/composer/src/mpeg4file.cpp
+++ b/fileformats/mp4/composer/src/mpeg4file.cpp
@@ -1309,10 +1309,13 @@
addCompatibleBrand(BRAND_3GPP5);
}
- uint32 time = convertCreationTime(_creationDate);
+ if( _oSetCreationDateDone )
+ {
+ uint32 time = convertCreationTime(_creationDate);
- _pmovieAtom->getMutableMovieHeaderAtom().setCreationTime(time);
- _pmovieAtom->getMutableMovieHeaderAtom().setModificationTime(time);
+ _pmovieAtom->getMutableMovieHeaderAtom().setCreationTime(time);
+ _pmovieAtom->getMutableMovieHeaderAtom().setModificationTime(time);
+ }
if ((_o3GPPTrack == true) || (_oPVMMTrack == true) || (_oMPEGTrack == true))
{
@@ -2487,7 +2490,6 @@
(_oSetCopyrightDone == false) ||
(_oSetDescriptionDone == false) ||
(_oSetRatingDone == false) ||
- (_oSetCreationDateDone == false) ||
(_pmediaDataAtomVec->size() == 0))
{
// Requirements for this API not met
diff --git a/nodes/pvmp4ffcomposernode/src/pvmp4ffcn_node.cpp b/nodes/pvmp4ffcomposernode/src/pvmp4ffcn_node.cpp
index 0598f58..54d3685 100644
--- a/nodes/pvmp4ffcomposernode/src/pvmp4ffcn_node.cpp
+++ b/nodes/pvmp4ffcomposernode/src/pvmp4ffcn_node.cpp
@@ -1645,7 +1645,10 @@
iMpeg4File->setCopyright(iCopyright.iDataString, iCopyright.iLangCode);
iMpeg4File->setDescription(iDescription.iDataString, iDescription.iLangCode);
iMpeg4File->setRating(iRating.iDataString, iRating.iLangCode);
- iMpeg4File->setCreationDate(iCreationDate);
+ if(iCreationDate.get_size() > 0)
+ {
+ iMpeg4File->setCreationDate(iCreationDate);
+ }
iMpeg4File->setMovieFragmentDuration(iMovieFragmentDuration);
iMpeg4File->setAlbumInfo(iAlbumTitle.iDataString, iAlbumTitle.iLangCode);
iMpeg4File->setRecordingYear(iRecordingYear);