summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs
Commit message (Collapse)AuthorAgeFilesLines
* Initial-checkin for ON2 Software AVC/H264 decoderJames Dong2011-06-02401-0/+112273
| | | | | | | | | | | | | | o when neon is present, the performance gain of On2 AVC software decoder over PV software decoder is more than 30%. o In addition, it fixes some known PV software decoder issues like missing output frames o allow both pv and on2 software avc to be available for easy comparision o change output frames from 8 to 16 Change-Id: I567ad1842025ead7092f0c47e3513d6d9ca232dd
* Support mpeg1,2 audio and mpeg1,2,4 video content extraction from .ts streams.Andreas Huber2011-05-251-0/+1
| | | | Change-Id: I9d2ee63495f161e30daba7c3aab16cb9d8ced6a5
* Merge "Convert line breaks to Unix style"James Dong2011-05-25175-29631/+29631
|\
| * Convert line breaks to Unix styleMans Rullgard2011-05-21175-29631/+29631
| | | | | | | | Change-Id: I6219725a9fbd72432bad71a176c14f26fabdbd5f
* | Make sure the software mpeg4 decoder supports multiple input frames per ↵Andreas Huber2011-05-241-8/+19
|/ | | | | | | | input buffer to enable faster throughput in ACodec. Change-Id: I6f6a1c70d9446f9d52c3df257b2d22358b0e71f4
* Fix module tags on stagefright software decoders.Andreas Huber2011-05-168-8/+8
| | | | | Change-Id: I8b3f60760e1e8eaa0f66eb6c7ce3df8e425638fb related-to-bug: 4427361
* Squashed commit of the following:Andreas Huber2011-05-1127-22/+4420
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit c80992e419ed567abef451042f09c4958534b90d Author: Andreas Huber <andih@google.com> Date: Wed May 11 14:00:07 2011 -0700 Support for the mp3 audio decoder as a software OMX component. Change-Id: I66e10c4d0be4c3aecdef1c21b15a2c7359ceb807 commit a358d0e1bf2a88897887445f42ccdda0f5f2f528 Author: Andreas Huber <andih@google.com> Date: Wed May 11 13:11:23 2011 -0700 Support for G.711 alaw and mulaw decoders as software OMX components Change-Id: Ia5c76c02cb83a9f94ce39a27b2251e5880218f03 commit 79088b9c9a5c8b8c97ea66cb4f90a2b0f0d34553 Author: Andreas Huber <andih@google.com> Date: Thu May 5 15:43:32 2011 -0700 Instead of using an RGB surface and conversion yuv420->rgb565 convert from OMX_COLOR_FormatYUV420Planar to HAL_PIXEL_FORMAT_YV12 instead. Change-Id: I8c4fc3c54c963f0d4ba6377f3c4ab4e0013152e5 related-to-bug: 4394005 commit 69469d3bd84425777b11b9fc938c5e0c61af26a7 Author: Andreas Huber <andih@google.com> Date: Tue May 10 15:46:42 2011 -0700 voip mustn't link against libstagefright.so Change-Id: I4d0ba9a8b9dc9380b792a1bd04bcda231964862c commit 2a9a9eeeeeb36ae3a9e680469c3016d509ff08c3 Author: Andreas Huber <andih@google.com> Date: Tue May 10 14:37:10 2011 -0700 Remove most non-OMX software decoders by default Change-Id: Ic56514bc1b56b8fa952e8c4a164ea7379ecb69d0 commit a4de62c37b335c318217765403a9fb282b20a216 Author: Andreas Huber <andih@google.com> Date: Mon May 9 16:50:02 2011 -0700 Conditionally build the old-style software decoders. Change-Id: I5de609e1d76c92d26d6eb81d1551462258f3f15f commit 5d8b039f9449dc3dad1e77c42c80cc0b54b0c846 Author: Andreas Huber <andih@google.com> Date: Mon May 9 16:13:12 2011 -0700 Support for MPEG4 and H.263 video decoders as soft OMX components. Change-Id: I5e3a4835afab89f98e3aa128d013628f5830eafe commit b25a1bfbeb0ff6e62e1cc694ce2599c91489c7d0 Author: Andreas Huber <andih@google.com> Date: Mon May 9 11:49:10 2011 -0700 Boost Soft OMX thread priority, fix timestamp handling in vorbis Soft OMX decoder. Change-Id: I68d26d4999f06fcc451d69e5303663fab0cba9e8 commit c0574362f8dc3319ce84d981097867062a698527 Author: Andreas Huber <andih@google.com> Date: Mon May 9 11:28:53 2011 -0700 Support for the AMR decoders (NB and WB) as Soft OMX components. Change-Id: Ia565f59833fb52653e23f26536e7e41fc329a754 commit 3e5575a8f0e27a490cb7bde77bd9456087837f08 Author: Andreas Huber <andih@google.com> Date: Wed May 4 13:41:25 2011 -0700 Signal an error if the aac decoder failed to initialize from codec specific data. Change-Id: I01da7831bdf722edd7d6dc5974486daa2cf2b209 related-to-bug: 4272179 commit f94aeaa9886e772ff4823e671ed237096649f4af Author: Andreas Huber <andih@google.com> Date: Tue May 3 13:07:38 2011 -0700 Software OMX nodes don't (yet?) support native_window mode. Change-Id: I7d9ca9164ef4abf66b573ca21dba12d672f8b12d commit eefdfabac8dc659e00daa56da69aea705c49cb67 Author: Andreas Huber <andih@google.com> Date: Tue May 3 12:57:16 2011 -0700 Fixing the OMX tests to refer to appropriate files from test content. Change-Id: I5b61c3498749bfb876abbd3946a5132356e3f6ff commit f31b7326aef14b6a1b7946520a9688f092e844d5 Author: Andreas Huber <andih@google.com> Date: Tue May 3 11:08:38 2011 -0700 Soft OMX components are now dynamiclly loaded/unloaded, not directly linked against. Change-Id: I1e2ecfbfab67a8869886f738eaf0c7b3c948b6d9 commit b7f0343879e4df06f0a1c9bfece24df557954e2f Author: Andreas Huber <andih@google.com> Date: Mon May 2 15:58:36 2011 -0700 Support for the AVC software decoder as an OMX component. Change-Id: I13c12df435ba4afbd968a9fc659f66b91c818bc2 commit 5bb9e616d6c8e1b13d531fe996b9a9affdfb2977 Author: Andreas Huber <andih@google.com> Date: Fri Apr 29 12:05:37 2011 -0700 Fix Vorbis OMX decoder's component role. Change-Id: I5e871e5e11b3f951c93590210e63fd7987c467b5 commit 089c91f2333062e196c7afd5fb0ca914878aa474 Author: Andreas Huber <andih@google.com> Date: Fri Apr 29 12:05:18 2011 -0700 Support vorbis_decoder OMX testing. Change-Id: I1985be178a12ae3f8768bc72067d9236238be170 commit 56e241fa36fc37219bc536b823bdc2ab82dc1fad Author: Andreas Huber <andih@google.com> Date: Fri Apr 29 12:01:46 2011 -0700 SoftVorbis OMX component now respects the number of valid frames per page. Change-Id: I82a117a064d9b083fc58a54ad900a987a763ef03 commit fcd618ec520c376fdb78f4cbb44b8d9f5d213e2b Author: Andreas Huber <andih@google.com> Date: Fri Apr 29 10:59:38 2011 -0700 Support for the vorbis audio decoder as a soft OMX component. Change-Id: Iaeb057e58ca306d3dce205c0445b74d5aefef492 commit d1fcc3203fc8003ad79c6e96b3a1fc4261743f16 Author: Andreas Huber <andih@google.com> Date: Fri Apr 29 10:07:50 2011 -0700 VPX decoder now properly resizes buffers after a port settings change. Change-Id: I110749a31b6cba087891d8e5dfe420830bdbf831 commit 35c7168243cb69849d88911144a2c7fdfed5c54e Author: Andreas Huber <andih@google.com> Date: Thu Apr 28 13:23:34 2011 -0700 Support for the VPX video decoder as a Software OMX component. Change-Id: Ic345add2d6d768d4af631160153f2e9b97fcea71 commit 923b2534b4211fc5405377b5190bfa6f2dd27f32 Author: Andreas Huber <andih@google.com> Date: Thu Apr 28 11:34:40 2011 -0700 Table-based registration of soft omx components. Change-Id: I7f45f0fa5b3a7950776e69c66349731f7674e937 commit 04a88f3edb2266a463da9c4481b80178be460902 Author: Andreas Huber <andih@google.com> Date: Thu Apr 28 11:22:31 2011 -0700 Apparently OMX_GetParameter is valid in any state other than OMX_StateInvalid OMX_SetParameter is still constrained to OMX_StateLoaded or a disabled port. Change-Id: I1032d7cf4011982d306aa369d4158a82830d26fb commit 9d70ca68445e7c40f5c9b2d12466e468f514de88 Author: Andreas Huber <andih@google.com> Date: Wed Apr 27 15:03:18 2011 -0700 Use the new soft OMX aac decoder for HTTP live playback. Change-Id: Ifbcfb732a9edb855cb46b49f6d0ac942170ee28f commit 213fe4a10ea93cce08e8622dc3908053f29878a1 Author: Andreas Huber <andih@google.com> Date: Tue Apr 12 16:39:45 2011 -0700 Foundation for supporting software decoders as OMX components Change-Id: I7fdab256563b35d1d090617abaea9a26b198d816 Change-Id: I83e9236beed4af985d10333c203f065df9e09a42
* Merge "Initial check-in for AACWriter"James Dong2011-05-041-1/+1
|\
| * Initial check-in for AACWriterJames Dong2011-05-041-1/+1
| | | | | | | | | | | | Change-Id: Ia21ca39a404484b2dda25c6101780d2ff11c4623 related-to-bug: 4211046
* | Signal an error if aac decoding fails early.Andreas Huber2011-05-041-0/+17
|/ | | | | Change-Id: I8b886a7642aaf83fa008fefb38cb4f92267ca948 related-to-bug: 4272179
* Merge "Fix AAC encoder test util and remove files that are not needed"James Dong2011-03-2210-589/+15
|\
| * Fix AAC encoder test util and remove files that are not neededJames Dong2011-03-2110-589/+15
| | | | | | | | Change-Id: Ib6cbe78de9f85e4df357d53365a35d1f9f0bb1d3
* | Fix AMRWB test util and remove useless filesJames Dong2011-03-218-281/+13
|/ | | | Change-Id: Ia11a1ec053855c9e692070d23c7a690c39cb3d5e
* Signal a runtime error if the AVCDecoder encounters an invalid frame.Andreas Huber2011-03-181-1/+2
| | | | | | | Instead of asserting. Change-Id: I4c89f5fef92e5adb11d1ea6b564a67e99fc96595 related-to-bug: 4109304
* am 782ffe91: am 9c0c5b56: am 2f1f2248: Fix missing AOSP copyright headers ↵James Dong2011-03-171-0/+15
|\ | | | | | | | | | | | | for a bunch of media framework files * commit '782ffe91da665c6b1fb9e297faa6e0dc6035f40c': Fix missing AOSP copyright headers for a bunch of media framework files
| * Fix missing AOSP copyright headers for a bunch of media framework filesJames Dong2011-03-171-0/+15
| | | | | | | | | | | | bug - 4119349 Change-Id: If5924e16a5f596d5d73d9beb66eaf5ac9a6f0e50
* | Merge "frameworks/base: remove LOCAL_PRELINK_MODULE"Iliyan Malchev2011-03-143-3/+3
|\ \
| * | frameworks/base: remove LOCAL_PRELINK_MODULEIliyan Malchev2011-03-143-3/+3
| | | | | | | | | | | | | | | Change-Id: I54dd62ebef47e7690afa5a858f3cad941b135481 Signed-off-by: Iliyan Malchev <malchev@google.com>
* | | Merge "libstagefright: Add error handling in AMRNB deooder"James Dong2011-03-141-2/+12
|\ \ \ | |/ / |/| |
| * | libstagefright: Add error handling in AMRNB deooderSidipotu Ashok2011-03-141-2/+12
| | | | | | | | | | | | | | | | | | Return error when AMRNB software decoder fails Change-Id: I1203db4a4b5ac766c8c131d3d0ba18a4ff2e3ceb
* | | Fix PV AAC decoder crash due to out-of-boundary array access.James Dong2011-03-141-7/+25
|/ / | | | | | | | | | | | | | | | | | | Two cases were fixed: o xover had a larger number of bands than the high frequency band, which led to some negative array index under some circumstances o integrated a PV fix from OpenCore.git where the array index for scratch_mem may be over the array boundary bug - 3473128 Change-Id: I844cd8797b4e5b0120fafa0c46a8c1facea78a8b
* | If MP3 decoder output frame size were 0, media server would crash.James Dong2011-03-111-1/+9
|/ | | | | | This is to log an error message should that happen. Change-Id: I0f947cd7a8e6639b4f11a928bf90286a34cc652e
* Fix a leak from AACEncoder.cppJames Dong2011-03-041-0/+3
| | | | | | bug - 3470617 Change-Id: I328e92bc1b2aca72e5856703dae00f957f40bc27
* PV's mp3 decoder mistreated inputBufferCurrentLength in unit of bytes as in ↵James Dong2011-03-021-2/+4
| | | | | | | | unit of bits bug - 3464899 Change-Id: Idef81a1bd3846d60fc5e4a40c11ce1ba78ebaa23
* Remove one log message from the VPXDecoderAndreas Huber2011-02-081-1/+3
| | | | | | | | | | | related-to-bug: 3402216 The VPX format supports "internal-only" frames that are referenced by future content but never actually displayed, so this is a perfectly valid scenario that doesn't require a log message. Change-Id: I8330bfdfefcdf4ab66ae6d2b59b99fd9b89350df
* Report errors to applications if AudioRecord->start() failsJames Dong2011-01-251-11/+15
| | | | | | bug - 3385198 Change-Id: I86ac8071eb28a538b333e102192193d1b9eda5eb
* Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoderAndreas Huber2011-01-243-8/+24
| | | | | Change-Id: Ia22ebce66d9c35de4b04c3eedc9495847796901d related-to-bug: 3384367
* Return a runtime error instead of asserting if the M4vH263Decoder fails in ↵Andreas Huber2011-01-101-1/+4
| | | | | | | start() Change-Id: Ie704a72685f749613fa0ed5fa6f461abc0406371 related-to-bug: 3328200
* Proper recovery of timestamp information in the transport stream parser.Andreas Huber2010-12-151-3/+3
| | | | Change-Id: I647c73688c95529f54f0bb6af17d109dfe2bb11d
* Emit better (correct) timestamps that respect AAC upsampling.Andreas Huber2010-12-141-1/+1
| | | | Change-Id: I6587416c9caa0e263aa8ec6c6d89a42e28f6ff19
* libstagefright: Compile MP3 & AAC decoders in 32bit ARM ModeJames Wylder2010-12-092-0/+4
| | | | | | | | Speeds up the decoding leaving more time for cpuidle (lp2), thus lowering overall current drain. Change-Id: Ia4e0636b1813810072fe0a4f94f6921adf2eab31 Signed-off-by: James Wylder <james.wylder@motorola.com>
* If camera source uses the metadata, we must use HW encoderJames Dong2010-12-022-2/+2
| | | | | | | | Software video encoders are not able to deal with non-YUV metadata in the video buffer sent from camera bug - 3242213 Change-Id: I97361ed88b2a687190e5129459011afff7f32c2d
* Squashed commit of the following:Andreas Huber2010-11-221-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 0870f7bdd10a7cd36087d723d1957d8e1b967ca7 Author: Andreas Huber <andih@google.com> Date: Mon Nov 22 12:57:04 2010 -0800 set_surface_crop doesn't seem to work right yet, stop using it in the SoftwareRenderer. Change-Id: If0a24f78b7810a6cecaa82eb4f23d0f90c22cc42 commit 4767b52bee3a54ae117a8708d6832276a44e6a6a Author: Andreas Huber <andih@google.com> Date: Mon Nov 22 11:14:57 2010 -0800 info->mMediaBuffer may still be NULL at this point... Change-Id: I25a71569015b1bb87f1ea7efff7588958774426f commit 0cef79874e1f1ddb10b7402177a87d3cffc7de92 Author: Andreas Huber <andih@google.com> Date: Mon Nov 22 10:55:12 2010 -0800 QCOM's YVU420 color format conversion has now been tested. Change-Id: I7fef4b642a928af15d42f006f7cdc107d5ff1d67 commit 84fe05a6c969ede0ce8a85a530e110afca07c7a7 Author: Andreas Huber <andih@google.com> Date: Mon Nov 22 09:59:50 2010 -0800 Removed remaining traces of suspend/resume. Proper reporting of video dimensions based on cropping rectangle. Change-Id: Ib238b80cbc1f19e7d312f2422eb5e9ab6b06b1bc commit 50970cdc837c5c498bcf0cb61b436196ca9e2ef7 Author: Andreas Huber <andih@google.com> Date: Fri Nov 19 16:11:06 2010 -0800 Revamped Software Renderer respects the crop rectangle. Removed obsolete ADRENO support code. Change-Id: I984cbc8a99c4d97e09e7d1b1292099c88b9ae535 commit 8abbc6a5608bff650f968540f24a2eab75f254ed Author: Andreas Huber <andih@google.com> Date: Fri Nov 19 16:10:41 2010 -0800 The metadata retriever now respects the crop rectangle while capturing a video frame. Change-Id: Id3377176060086d16717f62c77ce26fabe899050 commit 2d42e4466609d304e88bd2cdd6eb7b297340cc21 Author: Andreas Huber <andih@google.com> Date: Fri Nov 19 16:09:50 2010 -0800 Changed ColorConverter APIs to be more general. Clients can now refer to crop rectangles in both source and destination. Change-Id: Ief151d736818396d0389ec04e7df5650e3ad7c04 commit 273184303d54a54febd3e9c3dd4df30507ea78b5 Author: Andreas Huber <andih@google.com> Date: Fri Nov 19 15:04:06 2010 -0800 The stagefright commandline tool now writes the extracted video frame to /sdcard/out.jpg Change-Id: Ieb2ab3fda7a7cd9294beccb8db0eed75096eeef4 commit 2d43390328cadf4ba94c1c3c02e4fb30baa29690 Author: Andreas Huber <andih@google.com> Date: Fri Nov 19 14:36:55 2010 -0800 The AVC software decoder now properly advertises the cropping rectangle. Change-Id: Idb7a8a7e2fde5740f0fc34b7e8c92eca2577104b commit 9a7ed23c2fac8ce19dce7a34a603acee945a89f6 Author: Andreas Huber <andih@google.com> Date: Fri Nov 19 13:40:39 2010 -0800 OMXCodec now signals a format change if the cropping rectangle changes. ...and puts the cropping info into its output format. Change-Id: I3ffbd8e877ba286fe06a82c536ef20d92548d2e2 commit efe0323947029df1c502599ccc288c8d676dfd31 Author: Andreas Huber <andih@google.com> Date: Fri Nov 19 11:29:39 2010 -0800 Stagefright's MetaData object now supports rectangle items. Change-Id: I5667bb5ee6622c76104b99fb57f60abb802a8504 Change-Id: I27cb78f2c5e0353f95fdfc5cb53991949ed75b70
* Add initial stereo capture support for AAC encoderJames Dong2010-11-151-13/+29
| | | | Change-Id: I1b9335f036ff42d958d0b32f25359b21733f96d4
* Separate the key for audio sampling rate and video frame rate in MetaData.hJames Dong2010-11-112-4/+4
| | | | Change-Id: Ia33befaa7e6df8762703002d01aa79c04f15f040
* Fix missing breaks in the profile/level conversion code in M4vH263 encoderJames Dong2010-11-091-1/+6
| | | | Change-Id: Icd2cac68ffb0f38acb68b2968bbb36210431482d
* Added profile and level translation in SW video encodersJames Dong2010-10-272-5/+188
| | | | Change-Id: I6b9c33c7e4b497f3dc61b2a0dcf4e65727f9bcdd
* Assume that all of the decoded vorbis audio data is valid unless the source ↵Andreas Huber2010-10-261-6/+14
| | | | | | indicates otherwise. Change-Id: Iea88e3f09955d82a9a11fbcc075db8d9c4007490
* Include the framework copy of the OpenMAX headers instead of referencing ↵Andreas Huber2010-10-155-5/+5
| | | | | | | external/opencore. Change-Id: I762f59acf5e1f770e4d7c2d89af362bfffebefa6 related-to-bug: 3101573
* Increase scratch buffers sizes in mp3 software decoder, this integrates a PV ↵Andreas Huber2010-10-073-4/+4
| | | | | | | master/opensource patch. Change-Id: I5a637f1b380e44c94040ec507843d58a1f5a9b61 related-to-bug: 3065605
* Squashed commit of the following:Andreas Huber2010-10-011-0/+1
| | | | | | | | | | | | | | | | | | | | | commit 46744c7697f29aec71aed8de3c95ce035c284d97 Author: Andreas Huber <andih@google.com> Date: Thu Sep 30 16:44:57 2010 -0700 better separation of access units Change-Id: I5a9e2138aed341f0bcf22cfe368a15ca5ea5a73c commit d34952ac0feb1ae722ff65824d7353335502219b Author: Andreas Huber <andih@google.com> Date: Thu Sep 30 15:35:01 2010 -0700 Support for ES packets that do not start on PES packet boundaries. Change-Id: I2cf012833948eddfb20b16a1901206cf22ce71e4 related-to-bug: 2368598 Change-Id: Ib9329bd6bb7149b5a6e2483788a96b1b158952fc
* Merge "AMRNB: use Frame_Type_3GPP defined in frame_type_3gpp.h instead." ↵Chia-chi Yeh2010-09-283-55/+19
|\ | | | | | | into gingerbread
| * AMRNB: use Frame_Type_3GPP defined in frame_type_3gpp.h instead.Chia-chi Yeh2010-09-293-55/+19
| | | | | | | | | | | | | | This allows gsmamr_enc.h and gsmamr_dec.h to be included in the same file without conflict definition. Change-Id: I1c8dac235c122735ba14a1af2fda48c0f8d9f87b
* | Properly flush the AudioTrack/AudioSink on a seek request and make sure that ↵Andreas Huber2010-09-282-0/+8
| | | | | | | | | | | | | | both the mp3 decoder and aac software decoders start fresh after a seek without any dependency on previously decoded content. Change-Id: I4909fdf19518dbabb6c340e2a31b50dfe6c5b067 related-to-bug: 3029947
* | Vorbis files may have more samples encoded that should be used, i.e. we have ↵Andreas Huber2010-09-281-0/+18
|/ | | | | | | to trim samples at the end of the stream. This is crucial for proper looping of some audio files. related-to-bug: 3036592 Change-Id: Ib142b171c829ed74156c0281d9d4543fcc96c802
* Make sure we drain the avc software decoder's output queue once we run out ↵Andreas Huber2010-09-221-43/+53
| | | | | | of input data. Change-Id: I3d92ebae4951b618a6dfcf42936cc4c63d4de539
* Another attempt for fixing AAC+/eAAC+ related issueJames Dong2010-09-201-12/+57
| | | | | | | | | The decoder has to decode the very first two frames (decoder specific data + first data frame) in order to be really sure whether a stream is AAC or AAC+/eAAC+. bug - 2966336 Change-Id: Ib12a07285933df0d6c346370a12f70e99e811881
* Sometimes the avc software decoder will signal that a frame is ready but ↵Andreas Huber2010-09-161-4/+11
| | | | | | | then unexpectedly fail to return the frame... stop asserting on that and return an error instead. Change-Id: I6c0782b51b57e9be0fd410bd34078dc3c2b088d6 related-to-bug: 3005156
* Upgrade to the latest .webm project code.Andreas Huber2010-09-151-5/+7
| | | | Change-Id: I645eff9b7c10bf33144977e6093663407af402e2
* HW audio encoder expects timestamp via kKeyTime from each input bufferJames Dong2010-09-083-3/+3
| | | | | | - This fixes media server crashes on droid Change-Id: I7191cadc5275107425ec3ee3d437b2c5295858dc