Internal change PiperOrigin-RevId: 247330695 Change-Id: Icb3661c2f4241a784e35b76abb4605da8c741beb
diff --git a/CHANGES.logging b/CHANGES.logging deleted file mode 100644 index e1db8f2..0000000 --- a/CHANGES.logging +++ /dev/null
@@ -1,339 +0,0 @@ -change log for logging branch - -$Revision$ -$Date$ - -------------------- - -(31-jan-11, dbyron) - -- fix ASSERTs in win32 implementation of -StandardFileProvider to check against _INVALID_FILE_HANDLE -instead of NULL since that's what the constructor and close -method use - -- merge r440, r441, r442, r443, r444 from trunk - -- fix return value of win32 implementation of -StandardFileProvider::close - -- merge r439 from trunk - -(18-jan-11, dbyron) - -- add __FUNCTION__, filename to warning messages - -- add warning to MP4File::Modify when failing because the -file has no moov atom - -- add __FUNCTION__, filename to error messages - -- add filename to verbose log messages in mp4descriptor.cpp - -- remove __FUNCTION__ from verbose log messages in -mp4atom.cpp since it makes the dump output hard to read - -- add filename to descriptions passed to Log::dump - -- change log messages with Warning: to use Log::warningf - -- fix Log::hexdump to make sure output begins with format -string/varargs instead of overwriting with ascii-hex - -(17-jan-11, dbyron) - -- change the MP4RtpData, MP4RtpNullData, -MP4RtpImmediateData, MP4RtpSampleData, -MP4RtpSampleDescriptionData, MP4RtpPacket, MP4RtpHint and -MP4Track to take references instead of pointers, with -accessors changed appropriately. - -(14-jan-11, dbyron) - -- change the MP4Descriptor constructor (and the constructors -of all its child classes) to take a (MP4Atom &) and remove -MP4Descriptor::SetParentAtom to remove the chance to -dereference a NULL pointer. Similarly for MP4Property and -all its children. Declare default and copy constructors and -assignment operator private to prevent using -compiler-generated routines. - -- change all Read and Write methods that took (MP4File *) to -take a (MP4File &). - -- change the MP4Track, MP4RtpHintTrack constructors to take a -(MP4File &). Corresponding changes to MP4Track::GetFile. - -(13-jan-11, dbyron) - -- change the MP4Atom constructor to take an (MP4File &), remove -MP4Atom::SetFile and change MP4Atom::GetFile to return an -(MP4File &). Change the internal member variable to an -(MP4File &) as well. Corresponding changes to -MP4Atom::ReadAtom, CreateAtom, factory and child class -constructors. This makes it impossible to dereference a -NULL pointer by accident. - -- convert messages with warning in the text to use -Log::warningf - -- include __FUNCTION__ and filename in log messages in -mp4atom.cpp - -(11-jan-11, dbyron) - -- declare Log copy constructor and assignment operator -private but don't implement them to prohibit copies - -(6-jan-11, dbyron) - -- add mp4subtitle.vcproj to build on windows - -(3-jan-11, dbyron) - -- declare MP4File copy constructor and assignment operator -private but don't implement them to prohibit copies - -- remove MP4HexDump and Indent from mp4util since they're -not used anymore - -- change Log::hexDump to dump printable bytes as well as the -hex values - -- remove error_msg_func_t, lib_message_func_t and -MP4SetLibFunc from general.h since they're not used and -don't really make sense now that MP4SetLogCallback exists - -- add MP4TagsHasMetadata to indicate whether a file contains -any metadata at all - -(31-dec-10, dbyron) - -- add MP4GetFilename so the filename associated with a -MP4FileHandle is available. Add MP4File::GetFilename to -support it. - -(27-dec-10, dbyron) - -- remove m_tempFileName from MP4File since it's not used - -- throw an exception from the win32 implementation of -FileSystem::exists, FileSystem::isDirectory and -FileSystem::isFile if there's an error - -- add logging to win32 FileSystem - -- add Utf8ToFilename::GetUTF8 to get the UTF-8 -representation of the filename actually used - -- add Utf8ToFilename::IsUTF16Valid so users of the class can -detect errors - -- rename Utf8ToWideChar to Utf8ToFilename to more accurately -reflect what the class does - -- replace MultiByteToWideChar with custom code to remove -differences across versions of windows and for improved -error detection and illegal character handling - -- add long filename support to Utf8ToWideChar - -(21-dec-10, dbyron) - -- add logging to win32 StandardFileProvider - -(20-dec-10, dbyron) - -- make try/catch blocks more granular in MP4Read, -MP4ReadProvider, MP4Create, MP4CreateEx, MP4Modify, -MP4Optimize, MP4Make3GPCompliant, MP4MakeIsmaCompliant, -MP4MakeIsmaSdpIod so it's easier to figure out the cause of -failure based on the log message. - -- log more specific messages, clean up leak if there's an -error adding the IpodUUID atom in MP4AddIPodUUID - -- remove MP4_DETAILS_* as it was only used in a few internal -places where an MP4_LOG_* replacement is fine until the -verbosity-altering code disappears. For some reason -MP4File::MakeIsmaCompliant alters the verbosity before -calling MP4GetVideoProfileLevel, MP4IsIsmaCrypMediaTrack -does the same before calling MP4File::IsIsmaCrypMediaTrack, -as does MP4CloneTrack before calling -MP4GetTrackESConfiguration. - -- change command line programs to map debug levels as -follows: - 0: MP4_LOG_NONE - 1: MP4_LOG_ERROR - 2, 3: MP4_LOG_VERBOSE2 - 4: MP4_LOG_VERBOSE4 - -- change MP4NormalizeTrackType (an internal function) to -always use MP4_LOG_VERBOSE1. - -- another fix to Log::hexDump so that it now actually dumps -all the bytes it was asked to dump - -- MP4File is no longer a child of Log. Use the global log -object everywhere. - -- remove the verbosity argument to MP4Read, MP4ReadProvider, -MP4Create and MP4CreateEx, MP4Modify, MP4Optimize, -MP4MakeIsmaCompliant, MP4MakeIsmaSdpIod, MP4Make3GPCompliant -and MP4NormalizeTrackType. Remove MP4GetVerbosity, -MP4SetVerbosity and MP4Atom::GetVerbosity. Use -MP4LogSetLevel to change the global log level instead. -There is no more file-specific verbosity since it is more -complicated than one global log level and it's not clear -anyone needs the added complexity. - -- remove the MP4FileHandle argument to MP4LogSetLevel and -MP4LogGetLevel and move them to general.h/log.cpp since -they're no longer file-specific. The default log level is -MP4_LOG_WARNING without any call to MP4LogSetLevel. - -- change MP4BytesProperty::Dump to use Log::hexDump for -large (> 16) byte hex output - -- remove the FILE* argument from MP4Dump, the internal Dump -methods (e.g. MP4File::Dump, MP4Atom::Dump, -MP4Property::Dump, etc.). Use Log::dump instead. - -- remove Indent from mp4util since it may pollute -stdout/stderr - -- add Log::dump, Log::vdump to support dumping with a -particular indent - -- fix Log::hexDump to print the correct ascii-hex info - -(17-dec-10, dbyron) - -- remove C_ASSERT from mp4util.h since it's not used - -- remove MP4Printf to keep from writing to stdout when -logging - -(7-jun-09, dbyron) - -- add MP4LogGetLevel, MP4LogSetLevel - -(5-jun-09, dbyron) - -- change return value of MP4DeleteTrack, -MP4SetTrackTimeScale, MP4GetTrackH264SeqPictHeaders from -void to bool - -- change MP4AddIPodUUID to return bool, check for valid -hFile and catch exceptions - -- check for NULL existingFileName, newFileName in -MP4Optimize - -- check for NULL fileName in MP4ReadProvider, MP4CreateEx, -MP4Modify, MP4Make3GPCompliant, MP4MakeIsmaCompliant - -- properly handle NULL pFile when catching Exception - -- check for NULL parameters in genericAddItem, -genericSetItem, genericRemoveItem - -- change signature of C wrappers to return bool and check -for NULL parameters: - - MP4TagsAddArtwork - - MP4TagsFetch - - MP4TagsRemoveArtwork - - MP4TagsSetArtwork - - MP4TagsStore - - MP4TagsSetName - - MP4TagsSetArtist - - MP4TagsSetAlbumArtist - - MP4TagsSetAlbum - - MP4TagsSetGrouping - - MP4TagsSetComposer( - - MP4TagsSetComments - - MP4TagsSetGenre - - MP4TagsSetGenreType - - MP4TagsSetReleaseDate - - MP4TagsSetTrack - - MP4TagsSetDisk - - MP4TagsSetTempo - - MP4TagsSetCompilation - - MP4TagsSetTVShow - - MP4TagsSetTVNetwork - - MP4TagsSetTVEpisodeID - - MP4TagsSetTVSeason - - MP4TagsSetTVEpisode - - MP4TagsSetSortName - - MP4TagsSetSortArtist - - MP4TagsSetSortAlbumArtist - - MP4TagsSetSortAlbum - - MP4TagsSetSortComposer - - MP4TagsSetSortTVShow - - MP4TagsSetDescription - - MP4TagsSetLongDescription - - MP4TagsSetLyrics - - MP4TagsSetCopyright - - MP4TagsSetEncodingTool - - MP4TagsSetEncodedBy - - MP4TagsSetPurchaseDate - - MP4TagsSetPodcast - - MP4TagsSetKeywords - - MP4TagsSetCategory - - MP4TagsSetHDVideo - - MP4TagsSetMediaType - - MP4TagsSetContentRating - - MP4TagsSetGapless - - MP4TagsSetITunesAccount - - MP4TagsSetITunesAccountType - - MP4TagsSetITunesCountry - - MP4TagsSetCNID - - MP4TagsSetATID - - MP4TagsSetPLID - - MP4TagsSetGEID - -- add catch( ... ) blocks to C wrapper functions - -- add static void errorf ( Log *olog, - const char *format, - ... ) MP4V2_WFORMAT_PRINTF(3,4); - -- add static void errorf ( Log *olog, - const Exception &x ); -- remove MP4Exception, replace with Exception - -- change MP4File::ProtectWriteOperation to take file, line, -function instead of one "where" string. - -- change exception catching code to call Log::errorf(); - -- remove VERBOSE, VERBOSE_ERROR from mp4util.h - -- remove MP4Error, replace with Exception, PlatformException -as appropriate - -- add Exception class and Log::errorf( const Exception &x ); - -(16-feb-09, dbyron) - -- First pass of actually using the Log class: - - - MP4LogNone --> MP4_LOG_NONE - - add global log object (log, declared in log.h) - - change MP4File to inherit from Log - - remove m_verbosity member variable - - remove MP4File::GetVerbosity, SetVerbosity methods - - change MP4NormalizeTrackType to take MP4LogLevel - - replace VERBOSE_* with corresponding Log method calls - (VERBOSE_ERROR remains until exception handling gets - revisited) - - change WARNING macro to take a Log object as the first - argument - - add Log::hexDump to mostly replace MP4HexDump (though - MP4HexDump is still called if there's no logging callback) - - fix MP4_DETAILS_ALL handling in Log::detailsToLevel - - add uint32_t Log::getVerbosity() const - - add Log::hexDump - - add uint32_t Log::getVerbosity - - add Log::verbose3f, verbose4f
diff --git a/CHANGES.md b/CHANGES.md index 220c1ef..a55e763 100644 --- a/CHANGES.md +++ b/CHANGES.md
@@ -1,3 +1,19 @@ -cl/139269315 : Several adoptions for std::string and compiler error fixes for - Android & iOS. -cl/139403250 : Fix for reading local files. +Initial check-in with these changes from the forked library: +- Several adoptions for std::string and compiler error fixes for Android & iOS. +- Fix for reading local files. +- Fix for reading samples from file. +- Adds std:: to stl types (#061) +- Fix memory leak caused by calling MP4Modify(). This is caused by a "free" atom + getting removed without de-allocating. +- Fix rounding issue in mp4util.cpp. +- Support reading mp4 container structure from file offset. +- Fix offset handling. +- Add CAMM atom to mp4v2. +- Create MP4 with CAMM and video using mp4v2. +- Add an MP4FileProvider that uses URLProtocol to do IO to the MediaDecoder + class. +- Add instructions for environment variable setup for mp4v2 muxer. +- Supports muxing a list of frames. +- Changes the type of lat/lng/altitude in case 5 from float to double. +- Adds MP4_CREATE_64BIT_DATA to MP4Create, so that it can handle large files. +- Fix calls to std::string::operator=.