summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/id3/ID3.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Prevent integer underflows in ID3::IteratorJoshua J. Drake2016-03-221-0/+8
| | | | | | | | | | | If mFrameSize is less than or equal to getHeaderLength(), an integer underflow will occur. This typically leads to a crash reading out of bounds in the following code. Prevent this from happening by validating mFrameSize. Also add NULL checks after references to ID3::Iterator::getData. Bug: 23285887 Change-Id: I35eeda3c5349ebbd9ffb3ea49b79af6a940d1395
* Merge tag 'android-6.0.0_r26' into cm-13.0Ricardo Cerqueira2015-11-051-2/+19
|\ | | | | | | | | | | Android 6.0.0 release 26 Change-Id: I8a57007bf6efcd8b95c3cebf5e0444345bdd4cda
| * ID3: check possible integer overflow for extendedHeaderSize and paddingSize.Wei Jia2015-10-051-2/+19
| | | | | | | | | | Bug: 24623447 Change-Id: Ifbc74454d6e28ad7136efe35ab638a07e46398b1
* | stagefright: handle zero size field in ID3v2 headerYamit Mehta2015-10-061-2/+3
|/ | | | | | | | Specific clip contains corrupt ID3v2 header where size field is zero. This corner case isn't handled properly and leads to crash. Change-Id: Ic7e97b9de84b0cb3ce3716db95ab05f8f0db336f CRs-Fixed: 815025
* resolved conflicts for merge of 327afffb to lmp-mr1-ub-devRobert Shih2015-08-241-1/+16
|\ | | | | | | Change-Id: I6c1369f05bbeb83e2152b8dae35f7a53328f7239
| * am eecc406f: am 3b42241a: Merge "Prevent integer issues in ↵Robert Shih2015-08-221-2/+21
| |\ | | | | | | | | | | | | | | | | | | ID3::Iterator::findFrame" into klp-dev * commit 'eecc406f462ef2b3a73cd6bf3c05f7cb45382276': Prevent integer issues in ID3::Iterator::findFrame
| | * am 3b42241a: Merge "Prevent integer issues in ID3::Iterator::findFrame" into ↵Robert Shih2015-08-221-2/+21
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | klp-dev * commit '3b42241aab5855964d1bd60268ae21c2d9cc6065': Prevent integer issues in ID3::Iterator::findFrame
| | | * Prevent integer issues in ID3::Iterator::findFrameJoshua J. Drake2015-08-211-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Integer overflows could occur a few places within findFrame. These can lead to out-of-bounds reads and potentially infinite loops. Ensure that arithmetic does not wrap around to prevent these behaviors. Bug: 23285192 Change-Id: I72a61df7d5719d1d3f2bd0b37fba86f0f4bbedee
* | | | am 06682f94: am 48bdf782: am 00887af1: am e9a8362e: am a2a68264: am ↵Neel Mehta2015-08-201-1/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | c37f7f6f: Fix for memory corruption in ID3::removeUnsynchronizationV2_4(). Bug: 23227354 * commit '06682f94d84f97df0d826f9b15d4c2e861ba4045': Fix for memory corruption in ID3::removeUnsynchronizationV2_4(). Bug: 23227354
| * | | am a2a68264: am c37f7f6f: Fix for memory corruption in ↵Neel Mehta2015-08-181-1/+1
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | ID3::removeUnsynchronizationV2_4(). Bug: 23227354 * commit 'a2a6826494dec4a8fab6bd6828828fae886e516a': Fix for memory corruption in ID3::removeUnsynchronizationV2_4(). Bug: 23227354
| | * | am c37f7f6f: Fix for memory corruption in ↵Neel Mehta2015-08-181-1/+1
| | |\ \ | | | |/ | | | | | | | | | | | | | | | | | | | | ID3::removeUnsynchronizationV2_4(). Bug: 23227354 * commit 'c37f7f6fa0cb7f55cdc5b2d4ccbf2c87c3bc6c3b': Fix for memory corruption in ID3::removeUnsynchronizationV2_4(). Bug: 23227354
| | | * Fix for memory corruption in ID3::removeUnsynchronizationV2_4().Neel Mehta2015-08-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 23227354 Change-Id: Iaa36cfda4fd84ca7e039f56086fd61b4118020db (cherry picked from commit 77e23413a539df16503e356bd4df4a952f3abc47)
* | | | am f153ecd2: am 91c71293: am 91fc84f2: am de5c4c46: am 43131299: am ↵Wei Jia2015-08-201-0/+3
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | 1a09d352: Merge "libstagefright: check remaining data size before parsing it." into klp-dev * commit 'f153ecd2c1b503a404bbb7d1db0fcc19b7bcda0e': libstagefright: check remaining data size before parsing it.
| * | | am 43131299: am 1a09d352: Merge "libstagefright: check remaining data size ↵Wei Jia2015-08-181-0/+3
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | before parsing it." into klp-dev * commit '431312997856ce689e683ee0639cf1f4bedab7f0': libstagefright: check remaining data size before parsing it.
| | * | am 1a09d352: Merge "libstagefright: check remaining data size before parsing ↵Wei Jia2015-08-181-0/+3
| | |\ \ | | | |/ | | | | | | | | | | | | | | | | | | | | it." into klp-dev * commit '1a09d3521e8849dcb1090ecb50393f6e9ee140ec': libstagefright: check remaining data size before parsing it.
| | | * libstagefright: check remaining data size before parsing it.Wei Jia2015-08-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 23248776 Change-Id: I45cf53e58e4375afcf260b122264c968ec0ff6c8 (cherry picked from commit 3bf1e0fdf27e1188b8d3574ed073595b8eacb114)
* | | | am f66b81e7: am f22da1cf: am d7146ce7: am 3bb658ac: am 4e86a483: am ↵Wei Jia2015-08-131-2/+5
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | f51115bd: libstagefright: fix possible overflow in ID3. * commit 'f66b81e7c05f62105e7a8deefeaf395b28cb4bb3': libstagefright: fix possible overflow in ID3.
| * | | am 4e86a483: am f51115bd: libstagefright: fix possible overflow in ID3.Wei Jia2015-08-131-2/+5
| |\ \ \ | | |/ / | | | | | | | | | | | | * commit '4e86a483a12b0139a8babf4754e5de340eaccd40': libstagefright: fix possible overflow in ID3.
| | * | am f51115bd: libstagefright: fix possible overflow in ID3.Wei Jia2015-08-131-2/+5
| | |\ \ | | | |/ | | | | | | | | | | | | * commit 'f51115bd8e44c2779b74477277c6f6046916e7cf': libstagefright: fix possible overflow in ID3.
| | | * libstagefright: fix possible overflow in ID3.Wei Jia2015-08-121-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 23129786 Change-Id: I2e6b7a6927aa4362ab49dd6824bbb1abf7b4e661 (cherry picked from commit 09da86913ca97d7a818a8917b6601527e5e18a24)
* | | | am 0625841d: am dfaea255: am 578d5b66: am 171b5fad: am d6ea7f65: am ↵Marco Nelissen2015-08-071-0/+6
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | f26400c9: Fix crash on malformed id3 * commit '0625841daae5bb1351034909ce705aab517eea2d': Fix crash on malformed id3
| * | | am d6ea7f65: am f26400c9: Fix crash on malformed id3Marco Nelissen2015-08-071-0/+6
| |\ \ \ | | |/ / | | | | | | | | | | | | * commit 'd6ea7f65dd31d5dacf497cc3c494d4fa3910f7c3': Fix crash on malformed id3
| | * | am f26400c9: Fix crash on malformed id3Marco Nelissen2015-08-071-0/+6
| | |\ \ | | | |/ | | | | | | | | | | | | * commit 'f26400c9d01a0e2f71690d5ebc644270f098d590': Fix crash on malformed id3
| | | * Fix crash on malformed id3Marco Nelissen2015-08-041-0/+6
| | | | | | | | | | | | | | | | | | | | Bug: 22954006 Change-Id: I488cb1e2c69fc7043b6040481b30fa866000515d
* | | | Fix id3 parser crashMarco Nelissen2015-01-151-2/+9
| | | | | | | | | | | | | | | | | | | | Bug: 18872896 Change-Id: I953f58f35a76590701234d5707e060499acfc069
* | | | Stagefright: Fix unused variables, functions, valuesAndreas Gampe2014-11-251-1/+1
|/ / / | | | | | | | | | | | | | | | | | | For build-system CFLAGS clean-up, remove unused functions and variables. Change-Id: Ic3dee56b589ea9a693efa1d72ba394036efff168
* | | libstagefright: fix 64-bit warningsColin Cross2014-03-191-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | %lld -> %" PRId64 " for int64_t %d -> %zu for size_t Also fixes some casts from void* to integer types, and some comparisons between signed and unsigned. Change-Id: I9c52f76240e39399da252c66459042a6fc626a90
* | | am 6146f60c: am 319c5640: am 07a017d3: Merge "Added support for ID3v2 meta ↵Marco Nelissen2014-01-171-6/+6
|\ \ \ | |/ / | | | | | | | | | | | | | | | data in 3gp files" * commit '6146f60c87a8a9c66036325c66dea826d2e98f6f': Added support for ID3v2 meta data in 3gp files
| * | Added support for ID3v2 meta data in 3gp filesOscar Rydhé2014-01-161-6/+6
| |/ | | | | | | | | | | | | | | Added support for parsing ID3v2 meta data from the ID32 chunk in 3gp files. The priority will be 3gpp -> ID3v2 -> iTunes per field. Change-Id: I0282ecab58e3e5fa6bd738078d562c8bb8ce00ed
* | Better character set encoding detectionMarco Nelissen2013-12-111-50/+29
|/ | | | | | | | | | Id3 tags are supposed to be ISO-8859-1 or unicode, but often aren't. To better detect the real encoding we now use ICU to detect possible encodings for a given byte sequence, then apply additional heuristics to determine the most likely one. b/5564857 Change-Id: I53bc83b006433da5c2f2ccfcd770ddb3a26b64d0
* Speed up id3v2 unsynchronizationMarco Nelissen2013-06-171-5/+10
| | | | | | | | | | Instead of doing many overlapping memmoves, do a single copy pass that skips over the inserted unsynchronization bytes. For some files this reduces parsing time from minutes to milliseconds. b/9463262 Change-Id: I735b7051e77a093d86fb7a3e46209875946225ed
* New HLS implementation supporting independent stream sources, audio-only streamsAndreas Huber2013-05-311-2/+46
| | | | | | and more. Change-Id: Icfc45a0100243b2f7a14a9e65696be45b67d6495
* Bug fix for the MediaPlayer::prepare() api.Dylan Powers2012-11-271-2/+2
| | | | | | | | | | | | | | | For an MP3 source, within the prepare command, ID3 tags are checked in search of gapless playback info. This causes problems for streamed sources. If ID3v2 tags aren't present, then a check is done for ID3v1 tags. This results in a read command that asks the cache to jump to the end of the file, and subsequently make an extra http call to request those bytes. For a streamed source, this causes the file to not be downloaded automatically when MediaPlayer::prepare() is called, and causes stuttering and extra buffering time to be needed when start() is finally called. The solution is to ignore the ID3v1 tags as the gapless info would never exist there, and only check for ID3v2 tags. Change-Id: I7d1b94cffbfe7c38ca094834dedbc92a58855e20
* Correct ID3::StringSize calculation for UCS-2 data.Jesper Tragardh2012-07-111-1/+2
| | | | | | | | | | | Album art was not displayed when albums were transferred via MediaGo because the length of the description in the APIC tag was not correctly calculated. The method StringSize used to calculate the length of the tag does not add the size of the null termination in UCS-2 case. Change-Id: I5409d42f5e87d315e6e03c4d7e6cbd8a378a160d
* Parse mp3 encoder padding/delayMarco Nelissen2012-03-201-11/+36
| | | | | | Get the mp3 encoder padding and delay from a XING frame or iTunSMPB tag. Change-Id: Icde598c8857d7e7c187a718f478ee9799d6a1b8a
* Move away from MediaDebug and use ADebug insteadJames Dong2012-02-101-1/+1
| | | | Change-Id: I963a3b6f79a7292891973cbeeaf3378b38629f08
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-081-1/+1
| | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
* Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-6/+6
| | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
* Support malformed ID3 V2.4 tags written by early versions of iTunes.Andreas Huber2010-12-141-4/+24
| | | | | Change-Id: I90c2a9bbf216e2ae9a37accdaa2214233f5e54ea related-to-bug: 3275576
* 64-bit file size/offset support for media frameworkJames Dong2010-11-181-2/+2
| | | | Change-Id: I3452bc2c0f1d990cc67285df2fce1f9f86ff8e10
* Fix support for per-frame unsynchronization in ID3V2.4 tags.Andreas Huber2010-08-251-4/+84
| | | | | Change-Id: I6874b596f88817347756a375d9fb1c9bff418eca related-to-bug: 2949149
* Support for ID3 V2.4 tags.Andreas Huber2010-04-081-23/+114
| | | | | Change-Id: I74ee02451bdfd7e50f0d5ff6fa5da5147b683e4c related-to-bug: 2581869
* Limit the total amount of ID3 metadata to something (un-)reasonable: 3MB.Andreas Huber2010-03-291-0/+7
| | | | | Change-Id: I3f9bbcdd4f563bac27c4ccae58e4179656c264b6 related-to-bug: 1903971
* Adjust expected text frame length in ID3Kenny Root2010-03-151-0/+1
| | | | | | | | | When encountering a null character in an ID3 text frame, adjust the expected size accordingly so it isn't misidentified as ASCII. This fixes http://b/2517444 Change-Id: I19a3284d378e882c33b28ecee528a434716c7707
* Use bswap_16 instead of swap16, because swap16 is not available in glibcMarco Nelissen2010-02-091-2/+2
|
* ID3v1 tag's strings are ISO8859, not UTF-8, so do the proper conversion when ↵Andreas Huber2010-02-081-3/+7
| | | | | | extracting metadata. related-to-bug: 2399408
* Skip the endianness marker when converting UCS-2 to UTF-8, since itMarco Nelissen2010-02-081-1/+21
| | | | ends up in the UTF-8 string otherwise.
* Fix trailing garbage after UCS-2 encoded strings in ID3 V2.Andreas Huber2010-01-191-1/+2
| | | | related-to-bug: 2381919
* Support for ID3 version 1 (and 1.1) tags in .mp3 files.Andreas Huber2010-01-191-11/+147
| | | | related-to-bug: 2375219
* Squashed commit of the following:Andreas Huber2010-01-121-0/+465
commit f81bb1dac5ef107bb0d7d5d756fb1ffa532ba2cc Author: Andreas Huber <andih@google.com> Date: Mon Jan 11 14:55:56 2010 -0800 Support for duration metadata, midi and ogg-vorbis files (in mediascanner) commit 0b1385a0dc156ce27985a1ff757c4c142fd7ec39 Author: Andreas Huber <andih@google.com> Date: Mon Jan 11 14:20:45 2010 -0800 Refactor meta data logic. Container specific metadata is now also returned by the MediaExtractor. commit f9818dfac39c96e5fefe8c8295e60580692d5990 Author: Andreas Huber <andih@google.com> Date: Fri Jan 8 14:26:09 2010 -0800 A first pass at supporting metadata through ID3 tags. commit 476e9e253633336ab790f943e2d6c0cd8991d76a Author: Andreas Huber <andih@google.com> Date: Thu Jan 7 15:48:44 2010 -0800 Initial checkin of ID3 (V2.2 and V2.3) parser for use in stagefright. related-to-bug: 2295456