1 ===============================================================================
2 2009-12-08 OpenCORE 2.07
5 - Support 3GPP fast content switch
6 - Player engine changes and new interfaces for gapless playback
7 - Player unit test additions
8 - Add KVP mechanism to set max/min UDP port number
9 - Support PE node feature selection for static builds
10 - SetFSIParam( ) extension interface is implemented. It was previously stubbed
11 out. FSI (VOL header or SPS/PPS) is sent to the encoder as preferred encoding
13 - Introduce ASM and condition support for arm in tool generated project files.
14 - GetActualAACConfig - add mime type as input to process properly RFC 3016 type
16 - Updates to player engine and media output node for gapless playback
17 - Implement support for I-frame request in OMX encoder node
18 - Add support for AAC Dual Mono
19 - Add a new KVP to control audio output in trickplay mode.
20 - CPM changes and new player engine unit test cases.
21 - Add Track ID as input parameter to the addTrack mp4 composer API
24 - Added pvlogger_empty_layout.h as an optional logger output string format that
25 appends nothing to the output string.
26 - Code cleanup in MP4 decoder vop code
27 - AAC lib - improve ADTS searching capabilities - needed for applications not
29 - Change to use audio output buffer size calculation to be based on time as in
30 the OMX audio dec node rather than based on a fixed number of samples as in the
31 OMX components default.
32 - Handle more non-standard OMX component state transition errors
33 - Removal of 2way VideoParser Node
34 - Update MediaIONodeRepositionDuringPreparedTest test case to run till EOS
35 - Improve FillBufferDoneProcessing and ParseAVCFullFrameIntoNALs in OMX encoder
37 - Add support for linking against eclair-specific libraries
38 - Adding a new api to turn silence insertion logic on or off (engine->omx
39 decoder node->omx audio component).
40 - Introduce -Wno-psabi into android makefiles
41 - Modify logging in PVME Test so that it's consistent with the other logging
42 - Cleanup in the android folder (logging, whitespace, etc)
43 - Changes in android folder to sync-up with eclair changes
44 - Removed unused code oscl_mempool_allocator.h/.cpp
45 - Include pvlogger library in oscl build
46 - Updating run_ae_test make target for logging
47 - Minor bug fix to support movie fragments MP4 files with empty sample
48 description tables and common PE Node code refactoring
51 - Video and timer gets stuck on repositioning while the audio continues
52 - A/V Sync Issue on Simple playback and timer goes beyond the limit with Video
53 playback only (Audio Stops)
54 - Fix for redundant rule to copy getactualaacconfig.h
55 - MP4 file parser and parser node modified to support a very large value of
57 - Improvements in AAC file parser for ADTS recognition
58 - Code cleanup in pvmf_node_interface
59 - Failures in Java-based mediaframework unit test cases.
60 - Fix for failure on resumption from long pauses during RTSP streaming.
61 - Remove an extra call of ResetData from ThreadLogoff in AndroidSurfaceOutput
62 - Mp4 composer node File writer hang issue
63 - Typo in the OMX node log statements
64 - Uninitialized variable iPlayElementIndex of structure PVPPlaybackPosition
65 causing repositioning problems
66 - In AAC and AMR parser nodes, UsageComplete should be called only when the
68 - MP4 parser node returning the same command twice
69 - Hang in Player engine when cancel called in prepare
70 - Use clock_gettime(MONOTONIC) instead of gettimeofday() on linux platform to
71 have a consistent clock
72 - In PVPlayerEngine::DoVerifyAndSetPlayerParameter, hard-coded enum value is
74 - OMX encoder node bug in processing SPS PPS for components that produce NAL
76 - Classes with virtual methods should have virtual destructors too
77 - Fix for crash in AAC Decoder unit test app
78 - Map key 'track-info/track-number' to 'tracknumber' for Android MediaScanner
80 - MP3 FF parser should not pass the Xing/LAME header frame to dec node
81 - AMR file parser improvements
82 - Removed parsing support for WMF AMR tracks from MP4 file parser.
83 - Improvements in OMX test application
84 - Fix crash in 2way stack unit test
85 - Change in oscl statfs to accomodate blank paths
86 - Add Error handling at buffer memory allocation error
87 - Fix rebuffering after PVMFInfoBufferingComplete at mp4 PPB
88 - AVC configuration modifications
89 - Using sample duration in addition to timestamp for syncronization
90 - FMU video MIO does not set video subformat type correctly
91 - Fix uninitialized memory in 2way engine unit tests
92 - Updated PVPlayerEngine::ReleaseMetadataValues to properly handle clip index
94 - Fix for running a test number multiple times in makefile target for running
95 parallel player engine tests
96 - OMX Encoder node returns failure if OMX components returns Failure for
97 "OMX_IndexConfigCommonRotate" parameter
98 - Remove tests not applicable for OpenCORE
99 - MediaScanner has some API calls which are missing the interface
100 - Cap lower bound player engine watchdog timer duration to default value
101 - Enable File-writer for Mp4 composer node
102 - Early and Late Sync Margins changed for better AV Sync
105 ===============================================================================
106 2009-11-08 OpenCORE 2.06
109 - Add support for the PLS playlist file format for use with Shoutcast
110 - Adding code to benchmark encoding/decoding operation in the OMX component
111 - Add support for junit-like XML log output to test framework
112 - AAC utility getaacaudioinfo - add support for adts clips parsing
113 - Add support in playerdriver for RTSP streaming based on an input SDP file.
114 - Player engine unit test needs to support a list of test case ranges
115 - Add support for authoring btrt atom in mp4 composer to record bitrate
117 - Unit test logger option unification
118 - Add SetDuration capability and new command status code in the base node
119 - Add build macro for turning compiler warnings into errors in Android.mk files
120 - New color conversion library suite for YUV420 to YUV422 conversion; supports
121 basic conversion as well as 90 and 270 degree rotation
122 - Add communication between OMXEncNode and Composer node for MaxBitRate and
124 - Support PVMF_MIME_H264_RAW where decoder config info is not always available
125 before the actual decoding start
126 - Support for YUV422 to OMX encoder components (M4V and AVC)
127 - Enable track selection helper to choose the OMX component used for each track
128 - Changes in PlayerEngine, FMU, and source nodes to allow retrieval of
129 thumbnails for protected content
130 - Gapless audio support at the file format and source node level
133 - Change the default behavior of the local makefiles to flag compiler warnings
134 as errors and provide a new flag to disable it
135 - AMR-NB modifications from AOSP
136 https://review.source.android.com/10904
137 https://review.source.android.com/10905
138 https://review.source.android.com/10906
139 - Eliminate memcopies of output buffers in omx components (where possible)
140 - Move helper functions ( MoveCmdToCurrentQueue and MoveCmdToCancelQueue ) to
142 - Add logic to the OMX encoder to choose another component if one fails
143 - Update the logic in the encoder node when choosing an OMX encoder
144 - Track selection metadata ("track-info/selected") needs to be added in AAC/AMR
146 - Code size reduction
147 - Ignore pause and seek for live streaming
148 - New player engine test content
149 - Add API to 2Way engine to support selection of codecs and their preference
151 - Port OMXBaseNode, OMXVideoNode and OMXAudioNode to new Node Interface
152 - Build system support for ARM_GCC_V4 from AOSP
153 https://review.source.android.com/9668
154 - Add ID3V2 metadata support in mp4 parser libary defined by 3GPP Rel 7. Move
155 all metadata related operations from MP4 PN to library
156 - Variable _mp4ErrorCode to UNSUPPORTED_FILE_TYPE for any brand type in
157 mpeg4file.cpp should not be set
158 - Encoder nodes should be added only for uncompressed MIO in 2way engine
159 - PV OMX component returns invalid supported profile/level pair
160 - Removing memory leaks in MDBS
161 - Create Generic 2Way Pause/Resume unit test
162 - Add insert_element() and clear() methods to OSCL linked list
163 - Update Player developers guide for CancelCommand and CancelAllCommands error
165 - Remove a check in sliding_window_process to make avc decoder tolerate an
166 error condition and continue decoding
167 - Remove YUV buffer alignment calculations from the OMX decoder node. This is
168 currently done in the OMX components
169 - Add the ability to report info and error events from the author MIOs
170 - Modifying current command queue and cancel command queue to a single command
172 - Refactor RTSP client engine node for cleaner interfacing with streaming
174 - Adding support for configuring the number of output buffers as a part of
175 dynamic port reconfiguration in omx test app
176 - Refactor MP3FFParserNode to use the base node implementation
177 - Refactor DownloadManager Node to use the base node implementation
178 - Refactor MP4 FF Parser Node to use the base node implementation
179 - Add CallNativeSetSize() API for OSCL File
180 - Change H.263 encoding default GOB header interval to 0
183 - Track IDs are huge in particular mp4 clip causing crash
184 - Source node's handling of CPM cmds in Reset is incorrect
185 - [PDL] Download resume doesn't work if server response doesn't include the
186 Content-Length header.
187 - Android_camera_input.cpp method statusUpdate returns unhandled exception
188 - Hardcoded values in mp4a atom in the composer. (2030968)
189 - Download manager node uses shoutcast support by default
190 - atom 'meta' is not skipped
191 - Video playback is distorted (not normal) during playback for somes clips
192 - Need the ability to disable CPM in source nodes
194 - Nodes getting schedule extra number of times
195 - Update Android MIO to use authoring clock to achieve better AV sync in
197 - Implementation of trick play support
198 - Modify player engine's QueryInterface implementation
199 - Not able to play InValidId3Tags.mp3 content
200 - Fixes for building OpenCORE on android-x86
201 - Streaming Manager node modification to make feature specific plugins
203 - Memory leak in video telephony engine
204 - OsclMemPoolResizableAllocator has been modified to take into account the
205 size specified via setMaxSzForNewMemPoolBuffer while expanding the mempool
206 - OMX AMR component fixed to support 3 Role strings properly
207 - Crash in video telephony engine
208 - PVAuthor Developer's Guide has been updated to clarify 3GP vs MP4 file
210 - RTSP amr-nb streaming can not start playback, need to seek then playback
212 - Fix the issues in Table of Contents implementation in Mp3 Parser
213 - Hang in one accepted/negotiated format 2way engine unit test
214 - Fix a problem where a node based on the base node implementation was not
215 getting resheduled to process the next command when multiple commands
216 (RequestPort in this case) were queued.
217 - PVMFRecognizer improvements, including multi-pass recognition etc.
218 - Send correct YUV format to the VMIO instead of PVMF_MIME_FORMAT_UNKNOWN
219 - By default, use current system time as creation & modification date in MP4
221 - Audio issue in RTSP streaming caused by AMR decoder problem.
222 - Fix an issue where PVPlayerEngine::Prepare() never completes. If server
223 sends OPTIONS request to the PVPlayer, PVPlayer does not send SETUP request
224 to the server and PVPlayerEngine::Prepare() never completes
225 - Fix for reading from files using a file descriptor with an non-zero offset
226 - Fix potential crash during streaming session with multiple frames per packet
227 - Minor refactoring of integer datatype use
228 - Fix issue where an incorrect VOL header for MPEG4 video content results in
230 - Add an extra condition for the multi-line check in an HTTP response header
231 - Move inlined code from header to cpp file for pvmf_event_handling
232 - Update the omx decoder node to reject a component if
233 iOMXComponentUsesFullAVCFrames is false
234 - Crash in video telephony engine cleanup
235 - Report a more appropriate failure status via the author engine when
236 underlying node commands fails
237 - Fix the fileoutput MIO to take into account the 422 UYVY format
238 - Fix for opening shared asset file handles multiple times
239 - Fileformat parser changes to support some specific mp4 content
240 - Limit the max size of album art to 3MB
241 - Changes in sending the Buffering Status
242 - Adding support for authoring moof clips for live sessions in mp4 composer
244 - PVPlayer crashes when trying to do Progressive Streaming of a specific
246 - Incorrect mime string comparision in pv2way datapath
247 - Fix for memory leak in mp4 local playback at GetMetaDataValue
248 - Implement HandleExtensionAPICommands for OMXDecNode
249 - Change OMX enc node Reset() to return success even OMX comp GetState()
250 fails or returns bad states
251 - Treat OMX_EventError with OMX_ErrorInvalidState as if OMX client get an
252 OMX_EventCmdComplete indicating state transition failure
253 - Add CTOR in RepositionRequestStruct to init the members
254 - Fix for testcase 805 with local content
255 - Logging in PVME Test not working properly for threaded mode
256 - Thumbnail extraction when no sample present in stss atom
257 - MP3 frames may have different sampling rate or number of channels. So,
258 in the omx mp3 component, logic has been added to ensure that only decoding of
259 consistent frames is sent as output and silence will replace mismatched frames
260 - Content truncated while seeking specific YouTube clip
261 - Player Engine should not fail playback if the Source node does not support
262 Playback control interface
263 - Cleanup test input and output filenames used in 2way tests
264 - Error in video display while playing minimum size content (48*48)
265 - Valgrind error fixes
266 - Fix a bug in SPS length calculation
267 - PVME doesn't retrieve metadata properly if file has an invalid extension
268 - Wrong sequence numbers from video parser node
269 - Using RTCP SR reports to perform AV sync once, if server does not provide
270 rtp-info in PLAY response.
271 - Mp3 parsernode should pass source context to CPM plugins
274 ===============================================================================
275 2009-08-06 OpenCORE 2.05
278 - Helper function to retrieve extended messages from command responses.
279 - Support for eAAC+ encode in the pvAuthor engine.
280 - Add conversion operations to OSCL_String classes.
281 - RTSPT support (3GPP streaming over TCP). To test, replace "rtsp" with "rtspt"
282 in the control URL (in source URL or SDP file). It is assumed that the user has
283 access to a server with TCP streaming capability.
284 - PV Metadata Engine (ME). This engine is targeted at applications that want
285 to retrieve metadata for any given clip in a generic manner. Typically, a lot
286 of these applications would like to scan large batches of content. Since ME
287 is mainly targeted at apps like mediascanner, where speed is the most important
288 factor, thumbnail extraction is not supported. For applications that do want
289 to extract thumbnails in a generic manner along with the metadata, PV's
290 FrameAndMetadata Utility (FMU) is recommended instead.
291 - 2way Lip-Sync unit test cases.
294 - A new base node implementation is introduced for the purpose of
295 refactoring and consolidating common logic in the nodes. The changes
296 will improve maintainability and make it easier to create new nodes.
297 Further documentation will be released in the future providing guidelines
299 - The following existing nodes were refactored to utilize the base node
300 implementation mentioned above: AAC, AMR, and WAV parser nodes.
301 - Replace CodecSpecifier with PVMFFormatType.
302 - Move EventHandlerProcessing method to PVMFOMXBaseDecNode class.
303 - Change method type from "protected" to "private" in OMX derived classes
304 (videodec node and audiodec node).
305 - Adding robustness to avcdecoder to verify PPS and SPS parameters.
306 - Display status of every test case after it finishes in 2way unit test app.
307 - Add support to H.245 version 10.
308 - OMX node - Implement interleaved NAL sizes (to replace NAL start codes) in
309 omx buffers carrying AVC frames.
310 - AMR-WB contributions to enable building in "C":
311 https://review.source.android.com/10014
312 https://review.source.android.com/10015
313 https://review.source.android.com/10016
314 https://review.source.android.com/10017
315 https://review.source.android.com/10018
316 - AMR-NB contributions to enable building in "C":
317 https://review.source.android.com/10297
318 https://review.source.android.com/10301
319 https://review.source.android.com/10302
320 https://review.source.android.com/10303
321 - Update OsclFileStats to track total time taken instead of only the
322 maximum time per operation.
323 - Rename OMX master core methods to avoid linking conflicts.
324 - Pass key MOUT_VIDEO_SUBFORMAT_KEY to the video MIO of FMU.
325 - Remove Direct Render Mode from mp4 composer library.
326 - AMR-NB and AMR-WB inline assembly is being re-enabled after a bug
327 in the QEMU assembly translation has been fixed.
328 - Modification of MIOs to take all configuration parameters at once.
329 - Move OMX input and output buffer ctrl structure away from data buffers.
330 - Enable byte-stream (H264-RAW) format decoding in OMX dec node.
331 - PVMFInfoTrackDisable information event should be report to java application.
332 - Retrieve the PLATFORM version at run time for the Android UserAgent string.
333 - OMX audio and video dec nodes need to be able to handle PortSettingsChanged
334 event with argument OMX_ALL.
335 - PVMFMediaClock latency handling improvement.
336 - AAC decoder creates artifacts when decoding clip.
337 - Modify MP4 composer node to do sample adds to mp4 composer lib in a separate
339 - Add support for VIDEO_ENCODER_H264 in authordriver.
340 - Author major brand "3gp5" if 3gp clip has TIMED-TEXT track.
341 - No interleaving of mp4 files for just one track.
342 https://review.source.android.com/10510
343 - Return non-zero code when we detect a memory leak during unit tests.
344 - Add "3g2a", "3g2b" and "3g2c" as compatible branch in all content authored
346 - Add support for OMX_COLOR_FormatYCbYCr.
347 - Remove unneeded libraries being linked against individual shared libraries.
348 - Exclude empty directories and unncessary build files from OpenCORE.
349 - In OMX base node, turn the InputBufCtrlStruct from a struct into a class
350 - Updates to pvmf_return_codes.pdf, pvplayer_developers_guide.pdf,
351 omx_decoder_test_app_guide.pdf, and omx_encoder_test_app_guide.pdf.
354 - Repositioning takes a long time for YouTube videos after a few
356 - Crash in CPVH223Multiplex::Stop().
357 - PlayerEngine cannot finish a playback session after repeated pause
358 and resume near EndOfStream.
359 - Allow file path to be passed to the pvPlayer SDK on Android.
360 - Add a new constructor for the AVCSampleEntry to be used when parsing the
362 https://review.source.android.com/9683
363 - MP3 DurationCalcAO logic needs to moved to a place during Prepare and not
365 - Change PV_GET_ROW definition in M4V decoder.
366 - Player Engine unit test TC 55 and 56 has memory leaks
367 - Crash in authordriver if InitializeForThread fails.
368 - Crash in playerdriver if InitializeForThread fails.
369 - Potential memory leak in OMX encoder node.
370 - Memory leaks in AAC file parser node & lib
371 - FindFirst returns wrong element type when find a directory in android
372 - Intermittent timeouts on 2way unit tests
373 - Incorrect DeBlocking logic
374 - AVC Clip Specific Issue: (Play till EOS) OR (Reposition to near EOS) The
375 video gets stuck at near EOS
376 - iTunes genre is not parsed correctly
377 - Youtube : AV sync is lost after a seek when playing youtube contents
378 - Crash after recording one minute of Video when duration is specified
379 - Tracknumber metadata key string should be consistent through out all nodes
380 - Possible race condition in singleton lock in omx_init
381 - CPV2WayDatapath::GetPortFormatType() selects least preferred type
382 - AAC OMX decoder component needs to process whole audio config buffer
383 - Modify MP3Parser to make seek to 0 a special case and do not use XING header
384 for calculating file offset
385 - AAC Decoder should not try decode any AAC+ clip whose final sampling freq
386 is > 48 KHz. Should default to AAC in these cases.
387 - Update OMX encoder node to calculate the correct output buffer size in case
388 the encoder has multiple roles.
389 - OMX Encoder MPEG4 unit test fix
390 - Setting AMR_NB bitrate to GSM_AMR_4_75 will fail prepare.
391 - AuthorEngine should return Success incase Stop is called in
392 PVAE_STATE_INITIALIZED state.
393 - OMX M4V encoding drops the first I-frame
394 - VIDEO_INTERLEAVE_BUFFER_SIZE is too short for some buffers when encoding
396 - Occasional audio glitch in MP3 parser during repositioning
397 - OMX tests for AMR give seg fault on android
398 - pvPlayer sends incorrect HTTP Range header
399 http://code.google.com/p/android/issues/detail?id=3031
400 - PDL/PS - Fix the Mp4 Parser node to pass the correct timestamp to PE node
401 in RequestResumeNotification during Underflow condition
402 - H.245 TerminalCapabilitySet (TCS) and MasterSlaveDetermination (MSD)
403 requests must be sent before any other H.245 messages.
404 - Logic to set iKeepDroppingMsgsUntilMarkerBit to false in AMR RTSP streaming
405 - 2way tests hanging when run in Android emulator
406 - Sound Recorder: Incorrect Duration of clip sometimes observed when sdcard is
408 - Memory leak in PV2WayMIO
409 - Playerengine needs to be updated to return success even if there are no keys
411 - Correct the Android RTSP UserAgent string
412 - Author Engine : Don't access the queue element without checking its queue
414 - If SSRC is not provided in setup response, then pvplayer cleint doesn't send
415 firewall packets to the server
416 - GetMetadataValues returns invalid number of entries
417 - Modify AUT to parse authored files and validate the files as much as possible
418 - Eliminate media layer node in case of RTSP streaming
419 - AAC timestamps provided to OMX component may be wrong
420 - Clean up warnings and some negotiate parameter changes from omx dec & enc
422 - Fix valgrind issue reported with android simulator in omx base node
423 - Add more supported rate control types in pv_video_encnode_extension.h
424 - Memory leak in player engine test case 807
425 - Addressed compiler warnings in PVME
426 - nBufferAlignment of OMX_PARAM_PORTDEFINITIONTYPE is initialized to negative
427 value when playing clip on android using qcom decoders
429 - pvplayer_engine_test is detecting 'rtspt_test.sdp' as a url instead a local
431 - Count of command line arguments being read in PVME Test App is incorrect
432 - Player engine test case 1307 fails when run with a mp4 file containing 3GPP
434 - PVMFInfoDataReady event being sent to the engine after the unit test calls
436 - PlayerEngine doesn't free reference to PVMFDataSourceNodeRegistryInitInterface
437 - Combine the AMR if statement in pv_omxmastercore.cpp
438 - Player Engine unit test case 154 fails on execution
439 - Author Engine unit test cases 101-105 fail
440 - Add new return code PVMFErrContentInvalidForProgressivePlayback for a
441 NOT_PROGRESSIVE_STREAMABLE content
442 - Add USE (AL2, AL3) to 2way test files
443 - H223 2way test not being run
444 - Avoid calling CCYUV422toYUV420::New() for each thumbnail
445 - Author engine unit test case 101 fails
446 - Ignore encoding flaw, which generates aspec_ratio of value 0 in file
447 codecs_v2\video\m4v_h263\dec\src
448 - Memory leaks in pvmf_mio_fileinput.cpp and performance improvement in mp4
450 - Do not cancel Init() immediately in case of 3gpp streaming
451 - Transferring MP3 with invalid ID2 tags crashes mediaScanner
454 ===============================================================================
455 2009-05-17 OpenCORE 2.04
458 - Create external download datastream An external download datastream is
459 introduced to allow for an external entity to pass a datastream interface
460 to the player SDK. The external entity is responsible for doing the actual
461 download of the media data. Full support in Android is not complete until
462 playerdriver changes and more unit testing is done.
463 - Fixed cache option in Oscl_File
464 Adding an option to configure the Oscl file cache to use one or more fixed
465 caches in addition to the movable cache.
466 - Modify author engine to contain a notion of "authoring clock"
467 Author engine has the option to pass an "authoring clock" to media input
468 components so that they can use this to sync audio and video timestamps.
469 Author engine has been modified to own a PVMFMediaClock. Author engine
470 provides a pointer to its to data source node (media input node typically)
471 at the end of author engine Init cycle, using PVMF_AUTHORING_CLOCK_KEY.
472 No media input component changes were done. All media input components
473 used in author engine unit test currently operate from a file and have no
474 need for such a clock, but some device media input components can make use
475 of the clock if needed in the future, since author engine will pass the
476 clock pointer all the time to data sources.
477 - Shoutcast (of MP3) support
478 Shoutcast support of MP3 and internet radio streaming is added.
479 - Enable AAC PDL Support
480 More robust support of PDL of AAC content, including underflow handling.
481 - Add support for 3GPP2 speech (EVRC, QCELP etc) in MP4 FF library
482 Support for the 3GPP2 speech codecs is added at the file format library
483 level. No 3GPP2 speech codecs are added.
484 - OpenMAX encoder and decoder unit test suite
485 - Use external filehandle in Android
486 - Introduce new macro to android makefiles to enable 2way
489 - Add support for "all" metadata key in CPM plugins. This feature provides
490 a single key to request that all available metadata be returned.
491 - Add support for OMX_ColorFormatCbYCrY
492 - OMX video dec node now sets the codec parameters (width/height etc.) in the
493 output port of the omx component.
494 - A loadable module for the OMA1 passthru CPM plugin now exists. It serves
495 as an example for creating a loadable CPM plugin.
496 - Compressed testcases have been added in Authior Engine unit tests to
497 author 3gp file from AVC and M4V and AAC bitstreams
498 - Added checks to verify that the PCM output of the mp3 frame will not exceed
499 the output buffer size, so the mp3 decoder / OMX component is nore robust.
500 - Removed unnecessary "ComponentGetRolesOfComponent" methods from OMX
502 - Restored "/x-pvmf/ff-mux/mp4" MIME Type in Author engine.
503 - Modified the Initial AVC buffers so that the image that appears initially
504 is black (not green/pink) if I-frame is missing.
505 - Fixed the IFrameInterval setting in the OpenMAX video encoder node.
506 - Added the ability to pass a peer PvmiCapabilityAndConfig interface to
507 the Media I/O (MIO) components using the Capability Exchange. The purpose
508 is to allow the MIO components to set and get parameters (i.e., drive the
509 process) rather than on relying on the media output node to do it.
510 - Added checks to the OMX components to verify that the buffer size
511 (in allocate/use buffer) (nAllocLen) is adequate (i.e. >= than nBufferSize)
512 - Updated OMX components so that standard component roles can be queried as
514 - AMR-NB common library modified to mark the proper symbol exports and moved
515 some functions to encoder and decoder libraries instead of common.
516 - Updated h264 decoder to take advantage of the fact that there will be no
517 in-band SPS/PPS NALs for the mime Video dec node prevents in-band SPS/PPS
518 for the format PVMF_MIME_H264_VIDEO_MP4
519 - Add macro for enabling build of pv test engine executables in Android
520 - Remove 12-bit, 24-bit, and 32-bit routines from Android libraries
521 - Modified OMX timestamps to be in in microseconds rather than milliseconds
522 as specified in the OMX spec 1.1.2.
523 - Improvements and workarounds for non-compliant OMX components
524 - Replace OPEN_FILE_ONCE_PER_TRACK macro with member variable
525 aOpenFileOncePerTrack in mp4ffparser lib
526 - 2way: send data fragment by fragment from parser side
527 - Added a new function to convert PVMFStatus to human friendly strings
528 - Implement logic to choose correct OMX component when decoding streaming
530 - OMX dec nodes should report error and not even call config parser if
531 config data is missing (but is required by the format)
532 - Update playerdriver.cpp to send "disable-firewall-packets" KVP key based
533 on system Android property
536 - Moov atom is not being written into .3gp file if Author driver does not
538 - omx mp4 component in no-marker-bit mode crashes when playing a certain clip
539 - Error handling incase of input other then 8K AMR
540 - Add PVReleaseInterface method to OMX shared library interfaces
542 - pull sdcard while recording causes media server to crash
543 - Changes to buffering status notifications while streaming
544 - OMX nodes should not send repositioning request to OMX component until
545 config data has been processed by OMX components
546 - Crash in the author SDK as part of engine Reset
547 - If SSRC is not provided in setup response, then pvplayer client doesn't
548 send firewall packets to the server
549 - PVAuthorEngineNodeUtility::NodeCommandCompleted does not check whether
551 - AMR Local Playback -> FF to EOS when repeat song is on will cause a force
553 - some source nodes will put same timestamp for DataTS in old stream id
555 - Change pv omx encoder node to default iOMXComponentNeedsNALStartCodes to
556 false and do sanity check
557 - When reconfig happen,SinkNode should send reconfig notification with
558 FormatSpecificInfo to MIO
559 - Race condition - If port settings event and node stop command arrive
560 simultaneously - omx component may fail port flush command
561 - Mp3FFParserNode: Memory leak in Duration Calculator
562 - Playback clock starts even before PlayerEngine Start( ) is issued
563 - Clip plays beyond EOS. Fixed setting of the actual normal play time (NPT)
565 - Modified OSCL and player driver handling of external file handles in the
567 - MP3 PS - Repositioning is not working properly
568 - MP3 Parser needs to validate consecutive mp3 headers before parsing starts
569 - Crash in MIO component due to setPeer(NULL) is not called
570 - Improvements and robustness in thumbnail generation from normal and
572 - Improvements in stability of Author Engine Unit tests when using OMX
574 - Modify OSCL Mempool to assert when a buffer is deallocated back to
575 mempool twice in a row
576 - Fix a possible race condition in omx proxy threads.
577 - H263 decoder (OMX version) needs to remove the DEFAULT width-height
579 - Oscl file cache assert when reading binary file in text mode
580 - AAC and MP3 decoders have ARMv4 incorrect defines on normalization routines.
581 (see https://review.source.android.com/Gerrit#change,9668)
582 - AMR component roles do not distinguish between AMR_NB and AMR_WB
583 - OSCL shared library avoid dlopen() leaking in case of failure(dlsym() fails)
584 - Mp3 Clip hangs for some time when repositioned near to the end
585 - PV_atof will return a value that is larger than it should be if the input
586 string has a CR at the end
587 - Sequence number rollover in RTP info param during prolonged RTSP streaming
590 ===============================================================================
591 2009-03-31 OpenCORE 2.03
594 - Enable OpenCORE on master - part 2
596 ===============================================================================
597 2009-03-10 OpenCORE 2.02
600 There is minor version number nomenclature change where the
601 minor version is now two digits. So the previous releases
602 in the new nomenclature are 2.00 (2.0) and 2.01 (2.1). The
603 new release is 2.02, which is a minor version increment beyond
604 the previous release.
608 - AMR-WB support added to the OMX encoder node so that it can utilize
609 an OMX AMR-WB encoder component if it is part of the OMX core.
610 - Buffer allocator mechanism allowing the Media I/O components to
611 supply buffers to the OMX decoders. This method is especially useful
612 as an alternative way to allocate video buffers. Details can be
613 found in the new document "Guide to Supplying Decoder Buffers from
614 the MIO Component" in the file mio_decoder_buffer_allocation_guide.pdf
615 in the top-level doc directory.
618 - Resolution of Valgrind and static analysis warnings in player and author
619 - Improvements in support for .mov files in MP4 FF Parser(relaxed some checks).
620 - Modified OMX encoder node to allow setting the AMR bitrate
621 based on an extension interface value.
622 - Fix inconsistencies in OSCL find method related to inclusion of the
623 directory name with the filename.
624 - Improvement in PVMFInfoErrorHandlingComplete in the player datapath
625 - Refactor of the Protocol Engine node to support a plugin architecture.
626 This improves extensibility of the module for new features in the future.
627 - Introduce QueryInterfaceSync in PVMFNodeInterface and "all" metadata key
628 - AMR NB and WB have conflicting meaning for frame_type and mode elements
629 - Change the default settings related to caching for Oscl_File when
630 using PVFile within the fileformat parsers.
631 - Replace test.mp4 with interop clip
632 - Update of tests for support for progressive download of AMR
633 - OMX Khronos header files (Omx_Core.h, Omx_Component.h) capitalization
634 changed to match that from the Khronos (previously they were all lowercase).
637 - Memory leak when running GCF TC212 (2way-related)
638 - MediaClockConverter divided by zero caused by timescale 0
639 - MP4 composer node destructor memory corruption fixed.
640 - Fix for intermittent crash in player engine TC 105
641 - OMX dec node did not reset all the internal state during
645 ===============================================================================
646 2009-02-26 OpenCORE 2.1 (2.01)
649 * OpenMAX Codec-related:
650 - Introduced the OMXConfigParser API to help in determining
651 which OpenMAX components can support the input bitstream.
652 It is used to narrow the list of candidate OpenMAX components
653 to be used for playback. See the OpenMAX Core Integration Guide
654 document in the doc directory for more information.
655 - Added OMX AAC encoder support in the OMX encoder.
656 - Modified to use separate component roles for AMR-NB and AMR-WB as
657 described in the OpenMAX IL spec version 1.1.2.
658 - Added support for a new buffer format for H.264/AVC decode and
659 encode to allow passing multiple NALs in a single buffer.
660 The format uses OMX_OTHER_EXTRADATA structure defined in
661 section 4.2.33 of the OpenMAX IL spec version 1.1.2 to pass
662 NAL lengths. See the OpenMAX Core Integration Guide document
663 in the doc directory for more information.
665 - Added support for authoring files with AAC audio.
666 - Added support for authoring AMR-WB audio to MP4/3GP files and
668 - Added support for writing to an open file descriptor as an option
669 instead of simply providing a filename. The file descriptor
670 option is useful for cases where another process needs to open
671 the file because of permissions.
672 * Added large file support in OSCL (i.e., 64-bit file size/offset
673 support) to handle files greater than 2 GiB on filesystems that
675 * Added rotation support in the 32-bit color-conversion class.
678 * Removed dynamically loaded modules from the prelink map to avoid
679 clutter and to make both the prelink map and loadable modules
680 easier to manage. There may be an issue if a single instance of
681 a process tries to load libraries not in the prelink map more than
683 (See http://code.google.com/p/android/issues/detail?id=2042).
684 * Update to the MP3 Decoder to fix security issue (oCERT_2009-002,
686 * Renamed the OSCL config directory linux_nj to android to match the
687 platform name. Replaced all references of nj with android in the
689 * General security improvements found from static analysis in the
691 - Buffer and type overruns and underruns
692 - Null pointer references
693 * Refactored the jitter buffer node into a more modular architecture
694 for better support of different streaming use-cases and protocols.
695 * Fixed an issue in the MP3 decoder when decoding for very of long
696 durations (over 2 GiB of data).
697 * General improvements found during 3GPP packet-switched streaming
698 interoperability testing.
699 * General improvements and resolution of issues found from module
700 level and engine (player, author, 2-way) level unit testing.
703 * Added support in the player engine to cancel a single pending
704 command using the CancelCommand API. See the player engine API
705 document for details.
706 * Renumbered the author test cases to avoid issues with
707 preprocessor conditionals changing the test numbers based on
708 settings. Now the test numbers shouldn't change.
709 * In the case of 3rd party OMX components that support multiple roles,
710 returns an error if the component cannot set the role parameter
711 * OMX components need to explicitly set nPortIndex parameter for
712 all appropriate parameters
713 * Added fix for buffering percentage notification in streaming
714 scenario (see https://review.source.android.com/Gerrit#change,8699)
715 * Updated omx shared library build configuration to separate component
716 registration from component build
717 * Added methods in baselibs to serialize and deserialize the UTF-16,
718 UTF-16LE, UTF-16BE strings
719 * Removed the iUseCPMPluginRegistry flag from the source data that was
720 previously used to enable the content policy manager.
721 Since the CPM pluginsare dynamically loaded, the flag is not
722 needed and was removed. See the playerdriver.cpp for details
726 ===============================================================================
727 2009-01-26 OpenCORE 2.0 (2.00)
730 - Consolidation of the clock logic into a common clock object
731 (PVMFMediaClock). More details will be provided in a
732 Tech note at a later time.
733 - Refactor MP4 Composer library
734 - omx component refactoring (Introducing base omx component class)
735 - OMX Encoder Support
736 - Check URIs for illegal characters and run escaping algorithm if any
738 - Support for 3GPP AssetInfo Metadata in Author SDK
739 - MP3 Dynamic TOC Construction
740 - Modify MPEG4/H.263 node/library to support arbitrary Decoder
741 Configuration Information (DCI)
742 - backward playback support for MP4
743 - Refactoring Colorconversion from mpeg4 encoder and adding support
745 - Refactor streaming manager node into feature specifc plugins
746 - Thread Safe Player Engine APIs and Thread Safe queue
747 - Adding capability to turn off AC prediction and change
748 IntraDCVlcThreshold for MPEG4 encoder library
749 - Dynamically populate recognizer registry
750 - add 2way support for OpenCORE
751 - Combine OMX audio dec node and Video Dec node
753 - Apply new RGB to YUV color conversion libraries to OMX encoder
755 - Use loadable modules in CPM
756 - Adding support for YUV420Semiplanar to avc encoder, m4v encoder and
758 - introduce dynamic loading of individual omx components
761 - Removal of all compiler warnings reported by Android compiler
762 Exception: unit test app code
763 - Module-level unit test fixes
764 - Various Valgrind errors and fixes
765 - Various Codesonar warnings and fixes
766 - various security audit and fixes
767 - various memory leak fixes
768 - various crash, hang fixes for specific test content or test cases
769 - Re-work Oscl Scheduler semaphore & lock
770 - Author Engine Error Handling Robustness
771 - Player Engine Error Handling Robustness
772 - Add capability of assembling partial frames and inserting NAL start
774 - The media I/O component configuration process needs to be improved.
775 - Fundamental change in behavior of repositioning during 3GPP
777 - Improvements to the PV FrameMetadataUtility [FMU]
778 - mp3 parser - duration calculation by walking file in background
779 - IOT merges from 2-way team
780 - Longevity issues with live streaming
781 - Local Playback MP3 file does not display attached art work
782 - Issues with Oscl Leave, Panic, and Assert
783 - Modify allocators to not leave in case of an alloc failure, but
784 instead have them return OsclErrNoMemory
785 - Conversion of strcmp and strstr usage to strncmp for non null
787 - Change Oscl memory auditing from TLS-based to Singleton-based
788 - Buffer status report in a periodical manner to improve the app
789 awareness about how engine is running in low bandwidth for PDL/PS
790 - AVC Encoder Improved Rate Control
791 - State Transition: Remove implicit ThreadLogoff() from Nodes
792 - Include aac recognizer for Android
793 - Audit MP4 parser against new iTunes spec
794 - Replace PVMFSMSharedBufferAllocWithReSize allocator with
795 OsclMemPoolResizableAllocator
796 - Player Engine registry re-work
798 New KVPs / APIs / API behaviors
799 - Change Download Manager Stop Command to Stop Download
800 - Add a KVP to configure jitter buffer inactivity run time from the
802 - OSCL Critical Error Handling
803 - Adding kvp in SM node to set rtsp_timeout timer in rtsp engine node
804 - Get rid of "getTrackOTIType" API in parser lib and switch mp4 parser
805 node to use "getTrackMIMEType".
806 - Adding capability to turn off AC prediction and change
807 IntraDCVlcThreshold for MPEG4 encoder library
808 - Deprecate PVMFCPMPluginLocalSyncAccessInterface
809 - Introduce new API in Engine to Release MetaData Values
810 - Use of PVMF format types in player registries
811 - Introduce new kvp key to set jitter buffer size
812 - Add a new meta data key to Mp3ParserNode to support channel mode
814 - Support for taking in video bitrate and other params from a config
815 file, for uncompressed AVI test cases.
816 - Deprecate TLS-based memory audit
817 - Use KVP "nodedataqueuing_timeout" instead of compile time tuneable
818 "SYNC_POINT_DIFF_THRESHOLD"
819 - Please apply "mode=" for "x-pvmf/net/user-agent;valtype=char*" key.
820 - Change libpv*.so to libopencore_*.so
821 - Singleton and lock/unlock mechanism needed for OMX master core
823 - In case of 3rd party OMX components that support multiple roles -
824 input dec format and output enc format needs to be specified
825 - OMX Core plugin code (for 3rd party omx cores integration)
828 - Had to temporarily remove the doc directory because of conflicts
829 with Gerrit and PDF files. These will be uploaded again now that
831 - Additional documentation will be released as soon as possible.
832 - The OpenMAX encoder node is configuring the OpenMAX component with
833 the wrong format for AMR. It is using
834 OMX_AUDIO_AMRFrameFormatRTPPayload when it should be
835 OMX_AUDIO_AMRFrameFormatFSF.
836 - The OpenMAX encoder node is not handling Reset correctly in all