Initialize Tizen 2.3
[external/opencore-amr.git] / opencore / ChangeLog
1 ===============================================================================
2 2010-06-25  OpenCORE 2.50
3
4 New Features
5 - Mediascanner-albumart support
6 - Add new player engine test case for HTTP streaming transfer mode
7 - Adding BGR support for CC16 in codecs
8 - Provide a runtime setting to prioritize SW codecs over HW codecs in the case 
9 of thumbnail retrieval.
10 - Addition of DLNA specific 'byte-seek' support for Pause/Resume and Seek cases.
11 - Player engine test configuration modifications
12 - Add profiling capability to OMX AVC/MPEG4/AAC encoder components.
13 - Add support for the PSSH Atom to the mp4 composer, as specified in the 
14 Protected Interoperable File Format (PIFF) Specification
15 - Timestamp smoothing for incoming audio timestamps
16 - Add support for the boxes 'enca', 'encv', 'enct', 'sinf' and 'frma' to the 
17 mp4 composer
18 - Add SetParameter as an extension command to Android MediaPlayer
19 - Adding support of forward playback with rendering only I-frames
20 - Modify the mp4 composer to verify the existence of entries in the mfra box 
21 before rendering it.
22 - Updates to DRM interfaces and test cases
23 - Initialize iSkipToIDR to false for OMX AVC decoder.
24 - Gapless and playlist support for MP4, MP3, and WMA
25 - Framework support for MPEG-2 FF Parser
26 - Changes at the PE Node and mp4 parser node to support PDL random position of 
27 fragmented clips with out-of-band mfra information
28 - Allowing scrubbing inside playerengine
29 - MP4 Parser/composer mods to improve metadata support
30 - Graceful degradation phase 1 (Key-frame-only mode in case of many late frames)
31 - Makefile feature to build static aggregate
32 - Add support for building against Android eclair
33 - Add integration support for 3rd party audio library
34 - AAC lib - Add new message that signals back change of Mode (new PCE)
35 - Allow reconfig of MIOs for playlist scenarios
36 - Android makefile segment separation / refactoring
37 - Addition of new event PVMFInfoSourceFormatUpdated
38 - Support for AAC multichannel contents to be partially decoded (output 
39 only 2 channels).
40 - Implement PVMFOMXEncNode::GetProfileAndLevel() to query for the final 
41 profile/level after intialize.
42 - Add support for changing bit rate/frame rate/intra refresh rate to OMXEncNode.
43 - Allow local.mk file for applications to define steps for running target
44 - Support for m4b file format
45 - New ARM macros in build make system.
46 - Add a target in module level unit test to display the list of available 
47 targets
48 - Support M4V bitstream with short header mode.
49 - Support the PIFF Enhancements in the mp4 parser library
50 - Metadata updates for mp3 parser
51 - Added an utility function to set RTSP proxy server information 
52 (https://review.source.android.com/#change,14369)
53 - Build changes to support a restricted Main Profile AVC decoder optimized for 
54 ARMv6
55 - Adding scaling support for YUV422toYUV420.
56 - When initialization error occurs to one of the selected tracks, allow the 
57 playback of remaining tracks without a complete shut down.
58 - Add progressive playback support in MP4 movie fragment playback
59 - Add stdout from engine unit test output to junit xml logs
60 - Large File Support in MP4 PDL and PPB
61 - Added the test cases in PVME and FMU for protected test content
62 - New Common Parser Node for AMR and WAV
63
64 Improvements
65 - H264 raw support for PVMI MIO file input / output
66 - Retrieve "duration" metadata in mediascanner through metadataretriever
67 - Fix for compiler warnings in mediaoutputnode and player engine test app.
68 - Base node should add itself to Scheduler only in a valid Created state.
69 - Codesize reduction for FMU
70 - Implemented additional APIs in CPM plugin.
71 - AAC lib - Enable redundant PCE syntax element on a raw bitstream
72 - Add metadata support for aac, amr, awb and wav files.
73 - Change logger levels to appropriate values in android video mio and jb node 
74 for certain log statements
75 - H264 raw support for PVMI MIO file input / output
76 - Add Extended Atom types to the mp4 composer
77 - Add test for receiving data in 2way engine unit tests.
78 - Remove unused KVPs from engine and codecs
79 - Changes made to API of a CPM plugin.
80 - OMXConfigParser is modified to differentiate VC1 component from WMV component 
81 so that WMV7 and WMV8 get rejected by VC1 component.
82 - OMX Encoder node needs to save SPS/PPS for its possible query in the case of 
83 H264_RAW format
84 - If the encoder node marks the frame as keyframe, there is no need to sniff 
85 the bitstream
86 - Update source duration for video playlists
87 - Build OMX wrappers in thumb mode in Android
88 - Add a new 2way engine unit test.
89 - Port File Output node to new base node interface design.
90 - Removal of 2way VideoParser Node
91 - Copyright date in OpenCORE source code should reflect the last time the file 
92 was modified
93 - Deprecate support for platforms without native 64-bit functionality.
94 - Modify media layer node to use the base node framework
95 - Add full metadata support for OMX MPEG4/H263 decoders - 
96 profile/level/post-processing
97 - Replace numeric values in code with enum
98 - Add command line configurable timeout for pvplayer_engine_test
99 - Some CML2 rules related to so_name can create errors with "n" symbol used as 
100 module name
101 - Watchdog timer to monitor start of data reception
102 - Update the priority of some log messages
103 - Use parseID3Tag for aac files
104 - Node commands should succeed if the node is already in the resultant state in 
105 the base node.
106 - Miscellaneous DRM-related modifications
107 - Modify jitter buffer node to use the base node framework
108 - Refactor Media Output node
109 - Remove linker warnings w.r.t. libopencore_player and libopencore_net_support
110 - PVMFMediaClock takes care of device latency. Remove the device latency 
111 processing in AMIO.
112 - Port PVMP4FFComposerNode with the new Node Interface
113 - Port Protocol Engine node to new node design
114 - Refactor Media Output node to use new node interface
115 - Changes to a DRM utility
116 - Deprecate (and defunct) support for non-OMX nodes and builds
117 - Introduce authoring clock for recording AV sync
118 - Allow a single MIO to act as both compressed and uncompressed for the author 
119 engine
120 - Separating registration of ClockStateObserver and the latency in 
121 PVMFMediaClock
122 - Add API in PVMp4H263EncExtensionInterface to set H.263 GOB header interval
123 - New constructor and parse method overloads for node interface implementation
124 - OMX call error handling
125 - Handle end of track event in player engine testcase for I-frame mode playback
126 - Add RTSP return error code to the PVMF status return code
127 - Remove PVMFDummyFileOutputNode
128 - Clear the playback intent in PVME to avoid incorrect consumption of rights
129 - Based on most recent Khronos clarifications - partially consumed buffers are 
130 not allowed in OMX
131 - Modify socket node to use the base node framework
132 - Adding support for RTSPT tests for new server
133 - Addition of Large File Support in MP4 Parser Library
134 - Dynamically calculate omx encoder output buffer sizes instead of hard-coding 
135 the size
136 - Cleanup of 2way engine code.
137 - Add warning logger message in the NegotiateComponentParameters functions for 
138 2-way
139 - Update OMX test app to test creation/destruction of the same component 
140 multiple times in a row (especially useful for dynamic loading)
141 - Remove dependency of fileoutputnode on pvPlayer SDK
142 - cleanup of old Keys from MIOs
143 - Remove API QueryUUID from all interfaces
144 - Remove usage of USE_CML2_CONFIG since all the builds have been converted to 
145 CML2
146 - Change MPEG4 encoder OMX component to generate VOL header before getting 
147 any input frames.
148 - Fix gcc 4.4.1 compiler warnings
149 - Remove unnecessary makefile templates from OpenCORE
150 - Support for raw compressed headers in track meta data
151 - Add a 2way engine unit test for when buffers are provided by MIO.
152 - Remove dependency on oscl string from oscl_uuid.
153 - Cleanup of 2way engine code.
154 - NDEBUG and OSCL_RELEASE_BUILD macro consolidation
155 - Use GetEventExtensionInterface to pass indication details from pv2way
156 - Bypass pasp atom box in mp4 parser 
157 (https://review.source.android.com/#change,12330)
158 - CPM cleanup
159 - Add mp3 track support in mp4 parser 
160 (https://review.source.android.com/#change,12329)
161 - Separate variable XCFLAGS to hold C-compiler flags
162 - Use openssl crypto library within pvcrypto
163 - Process the config data in the omx decoder components even if there are no 
164 output buffers available
165 - Add support for multichannel aac clips with no channel distribution 
166 information
167 - Add test duration to junit-like XML log output from test framework
168 - Makefile update for new module
169 - Change component library name in makefile
170 - Move amr and avc common libraries from opencore_common into omx_sharedlibrary
171 - Move libpvmioaviwavfileinput.a libavifileparser.a out of libopencore_common.so
172 - Deprecate GetMetadataKeys, GetNodeMetadataKeys, GetNumMetadataKeys, and 
173 ReleaseNodeMetadataKeys APIs.
174 - Improvement in an internal build and the export of some additional methods
175 - Move amr_common and avc_common lib to libomx_sharedlibrary.so
176 - Print out time taken to complete each OMX test case.
177 - Check for INTRA frames in the MPPTYPE box when the H263 frames are using the 
178 extended PTYPE header
179 - Introduce new KVP string
180 - Improve the check for GLOBAL_CPU_ARCH_VERSION in codecs lib makefile to make 
181 it scalable to higher version of ARM architecture.
182 - Move ResetData() function in android surface output inside Reset()
183 - Improve buffer negotiation with 3rd party omx components, as it will  let 
184 them have the final say in the number of buffers.
185 - Set release level logging to 1 for all platforms
186 - Sending position status update before SetPlaybackRange command completion.
187 - Improving the current logic in player engine for video scrubbing
188 - Improve color conversion unit test
189 - Remove unnecessary check in PEUT PS and SS testcases for the number of 
190 buffering complete events.
191 - Improved error reporting in DRM plugin.
192 - Added player test cases for DRM
193 - Changes to deal with use-cases when sdcard/phone memory gets full while 
194 recording
195 - Reset PaddingFrameInfo in MP3 parser after retrieving frame data
196 - Cleaned up DRM plugin interface
197 - PEUT for shoutcast shall check playback session to verify if it is valid 
198 shoutcast session.
199 - Modify AVCConfigParser to handle multiple SPSs/PPSs, AUD and SEI NALs.
200 - Add profile and channel metadata support in AAC and AMR parsers
201 - Modified CPM plugin data structure
202 - Modify AVCConfigParser to handle multiple SPSs/PPSs, AUD and SEI NALs.
203 - Fix for repositioning large offsets during MP4 PS
204 - Add more metadata support in MP3 Parser and ID3 Parcom
205
206 Bugs Fixed
207 - Unit test fixes for CPM plugin
208 - Improved handling of some MP4 Poison clips
209 - Modify MP4 parser to not send EOS if duration available from content is 0
210 - Fix for deadlock between player engine and OMX component threads caused by a 
211 mismatched queue depth and number of new output AVC buffers during port 
212 reconfiguration
213 - Player hangs on normal playback under certain test conditions
214 - Adjust the AVC decoder to handle non-compliant bitstreams which have a 
215 non-zero frame_num for IDRs
216 - Failure in InitNextValidClipInPlaylist( ) should report a command failure.
217 - Change to support additional argument in constructor of base node interface 
218 implementation
219 - Initialization of display width and display height in the mp4 parser node
220 - Reset PaddingFrameInfo in MP3 parser after retrieving frame data
221 - Handle PVMFErrProcessing condition in case wrong URL is specified in PS or 
222 shoutcast
223 - New CommonParserPort needs to derive from 
224 PvmiCapabilityAndConfigPortFormatImpl
225 - Fix for proper handling of MP4 clips with invalid edit list atoms
226 - Audio timestamp was not initialized properly for LATM case.
227 - Fix for test PEUT 425 by making sure that the state transition in the test 
228 code from STATE_UPDATEDATASOURCE to STATE_GETMETADATAVALUESLIST is serialized.
229 - Separate clock for rendering MIOs for 2way lipsync
230 - This work fixes infinite loop when OMX InitDecoder fails
231 - MP4 recognizer has been modified to further check the brand information 
232 inside "ftyp" atom and not declare OMA2 DCF files as mp4.
233 - If the AVC decoder reports an error in the last frame of a sequence, the 
234 OpenMAX component does not flush the decoder's output
235 - MP3 http playback reports error for low bitrate connection.
236 - Fix for running a test number multiple times in makefile target for running 
237 parallel player engine tests
238 - Fixed OMX base dec node to handle 0 sample size and updated FMU to retrieve 
239 metadata for new file extension
240 - MediaOutputNode module unit test failure
241 - Add dependency of librt to Android x86 builds
242 - Data type inconsistency in code of OMX test app
243 - Wrong thumbnails retrieved for Mp4 contents
244 - Incorrect time stamps with B frames in H264 high profile
245 - Conditionally support -Wno-psabi compiler flag for Android simulator
246 - For AVC clips with more number of SPS/PPS than the number of buffers 
247 allocated, the node returns error and the clip cannot be played.
248 - Specific test mp3 content cannot be played on streaming with HTTP Progressive 
249 protocol
250 - Inconsistent Keep-Alive timer during RTSP streaming
251 - Adding the missing Metadata functionality in the omx audio dec node.
252 - Memory leak in 2way proxy adapter
253 - Use clock_gettime(MONOTONIC) instead of gettimeofday() on linux platform to 
254 have a consistent clock
255 - Fix for playback progress not being reported correctly for sessions in which 
256 the duration is not known upfront.
257 - MP3 duration is not calculated when there is a CPM plugin
258 - Seek on Mp3 PS for contents without having any XING or VBRI headers results 
259 in No-op
260 - Add support of "YUV 420 Semi Planer" in Encoder Node.
261 - Completely eliminate logging from omx proxy and omx component unless 
262 explicitly enabled
263 - Fix for hang in player engine test case 862
264 - Issue with seek sample number when repositioning near the beginning of a 
265 recorded file.
266 - Disable setting OMX_Video_ControlRateMax to OmxComponent
267 - Unreleased array causing memory leaks in mp4 parser node
268 - MP3 parser does not recover from invalid frame embedded on mp3 stream
269 - Disabling outgoing skew indication messages
270 - AVC Sample entry not parsed correctly for picture parameter set
271 - Fix Assert failure in player engine TC 941
272 - Fix memory leak in Android extension media player APIs
273 - Add OMX AVC support to 2way
274 - Set pre-defined VOL header for PV2Way
275 - Logic to detect end of track for Mp4 FF having moof atoms need to modified
276 - Fix get_ISO8601_str_time api on certain platforms
277 - parseMP4() in mediascanner.cpp couldn't detect unknown type correctly.
278 - RTSP streaming start time always start from zero
279 - Failure in PlayerEngine Unit testcase
280 - EOS Timestamp is invalid from mp3 source node
281 - Support for multiple frames in a single data block of AAC ADTS parser
282 - Check for NULL ptr access in CPV324m2Way::HandleNodeErrorEvent
283 - Fix seek failure when seek to almost end of one mp4 content
284 - Protocol engine node download auto resume algorithm simplification
285 - Conditionally convert compiler warnings to errors in android folder
286 - Fix for possible race condition in FMU's thumbnail retrieval
287 - PS/MP3 unable to set start playback time when duration is unknown
288 - Fix for out-of-bound array access in m4v config parser function.
289 - Fix for thumbnail retrieval when using file handle in Android
290 - Remove unnecessary code from android logger config
291 - Bug for Size limitation in case of streaming
292 - Change ParseM4VFSI to be more lenient to profile/level error and add SPL4a 
293 and SPL5 support to m4vencoder.
294 - Set/GetDataSinkFormatType
295 - Thumbnail loading take much more time in all video content
296 - memory access violation occurs -3g2 content containing moof atom
297 - OMX Decoder Node Scheduling may be affected due to node refactoring change
298 - Close the MetadataDriver semaphore to prevent an assert.
299 - Fix an RTSP tunneling url problem
300 - Choppy audio after pausing and resuming 2way call
301 - EOS message being overwritten by BOS in the mediaoutputnode
302 - Do not access iTimestampVec.back() if the vector is empty.
303 - 2way's h223LCtest and h223test are failing.
304 - Use config parser information to configure OMX AAC component. Still expect to 
305 get Port settings changed event in case of implicit AAC+
306 - Calling UpdateDataSource before calling AddDataSource() could result in a 
307 crash
308 - Allow SDKINFO Header to use environment variables if set
309 - Fix 2way unit test assertion failure.
310 - Fix socket communication scenario for 2way
311 - Out of bounds access during CPM Register Content for MP4 and MP3 clips
312 - Fix MP3 gapless playback EOC message iFramesToFollowEOC calculation
313 - Removed OsclThread::EnableKill, added OsclThread::CanTerminate
314 - Delaying the release of a source node until after the engine command completes
315 - PVMFInfoStartOfData and PVMFInfoEndOfData events need to be serialized at the 
316 mediaoutputnode during clip transition
317 - Ensure that PVOMXRegistry calls OsclSharedLibrary LoadLib and Close only once.
318 - Fix player engine test cases 48 and 49
319 - Datasource being removed prematurely
320 - Change some of the time related variables in M4venc and AmrEnc  OMX component 
321 from uint32 to OMX_TICKS or int64.
322 - Fix for incorrect display dimensions under certain conditions.
323 - Add a new testcase for Pause - Skip - Resume
324 - Use Wno-psabi flag when building against eclair SDK
325 - In OMX decoder node -  In case of an invalid input NAL or empty input 
326 message, input OMX buffer needs to be released
327 - Music app crashes and gallery application is not present on android-2.1_r1 
328 emulator
329 - Bug in ColorConvert lib (RGB16 to yuv420 conversion)
330 - Memory access violation occurs
331 - Player engine changes to add a log line and remove regular decoder node 
332 reference
333 - Incoming user input messages are not passed to application
334 - Check semaphore before closing
335 - Timed Text file playback issue
336 - Fix pv_config_selected.mk in opencore_value_add for 2way changes.
337 - Add stub definitions to fix korg master branch build for newly declared 
338 functions
339 - MP4 Fileformat Edit List storing offset in wrong timescale.
340 - AAC lib - colored noise produced when decoding file with clipped levels
341 - ReleaseMetadataValues resulting in a hang when called without GetMetadataKeys
342 - Update the thread safe queue to handle events from multiple threads
343 - Fix MP4 source node metadata retrieval for playlist
344 - Fix PEUT TC 400-455 playlist input file path
345 - Make audio MIOs for gapless tests active so that samples are not dropped for 
346 being late
347 - Fix problem with using external buffers for OMX encoder for 2way.
348 - Check if CPM object exists before creating one in MP4 parser node
349 - PVME unable to retrieve metadata for DRM protected content
350 - Cleanup 2way local.mk
351 - OMX audio dec node should process multiple BOS (BOC/EOC) messages correctly 
352 in case of LATM format
353 - Multiplexed data gets corrupted when is there is no data in logical channel
354 - Prevent redundant oscl file cache writeupdate calls when closing file
355 - OSCL SetSize() implementation
356 - Changed logfile appenders to take boolean flag indicating whether or not 
357 (default) to flush after every write. Add 'fsync' to linux oscl file 
358 implementation
359 - Fix broken build due to pvmedia_io_fileoutput
360 - Move implementation of some 2-way methods from header file into C file
361 - Player engine not using the source node capconfig interface for all engine 
362 capconfig calls
363 - Fix for TC 21 on MP3 clips
364 - TC 414 (FullPlaylistPauseSkipToNextTrackResumeTest) failing with full logging 
365 turned ON
366 - Handling for packets received after RTSP PLAY response with timestamps less 
367 than the advertised rtpbase
368 - Modify the AMR Enc OMX component to take timestamp from the OMX client and 
369 remove logic to detect gaps or overlaps.
370 - Sometimes cancelall command is not executed on all the data sinks in 
371 cancellation process by the engine.
372 - AAC lib - Fix for random crash under certain test condition
373 - Additional changes in the AAC lib to support redundant PCE
374 - Memory leaks when using PVMP4FF_USE_EXTN_UDTA mode in MP4 Composer library
375 - If the ERecognizerStart command is canceled, do not queue a ERecognizerClose.
376 - Fix issue where an RTSP server returns a start NPT that is non-zero despite 
377 the application's request for a zero NPT
378 - MP4 parser node fixes for retrieving key-value pairs without a track index in 
379 the input string
380 - Re-issue commands in 2way engine to be run later.
381 - correct rtpinfo was not used while deciding ts
382 - OMX Decoder Node Scheduling may be affected due to node refactoring change
383 - Duration was not converted to millisec timescale properly
384 - Remove unneeded dependency on header files in mediaoutputnode
385 - Linux oscl time converts time differrently depending on whether or not zulu 
386 is set
387 - Add check to prevent engine clock from starting if engine is not in started 
388 state
389 - Protect oscl file native seek and read operations on the same file handle
390 - A flag needs to be initialized correctly for decoder node codec config data 
391 not to be affected by inserting a pause command
392 - Fix for eAAC clips seek resulting in wrong speed
393 - AAC lib - Audio artifacts when decoding clip with continue saturated levels
394 - Missing metadata key "writer" in metadatadriver.cpp
395 - TARGET_ARCH_VERSION missing from Config.mk
396 - AAC-lib  Compiler bug on Android build creates the wrong assembly code
397 - Disconnect-Seek mode support for pause/resume
398 - Fix for MP3 parser returning incorrect value for bitrate key
399 - When outgoing user input message is deleted, VT crashes
400 - Fixing media scanner inappropriate removal of media files 
401 (https://review.source.android.com/#change,14161)
402 - Change to return engine state as prepared (not started) if the engine 
403 has moved into auto_pause after prepare state, without being started.
404 - Updating out-of-order packets handling logic
405 - Added support to handle multiple 'elst' entries in MP4 FF. That improved AV 
406 sync while playing the content which has multiple edit list.
407 - Remove empty OSCL source files and add comment to empty 2way makefile
408 - This record fixed a streaming module unit test problem
409 - PVME test crashes while running .mp4 files
410 - Oscl file cache read error for large block sizes
411 - Update the mp3ffparser node to handle the cancel command in init.
412 - Null-terminate the string sent as part of PVMFInfoSourceFormatUpdated event
413 - PV_CFLAGS set to wrong value in Config.mk
414 - OMX unit test modifications
415 - AAC recognizer - fails by qualifying valid extension-less MP3 clip as AAC
416 - Fix parsing of certain HTTP URLs.
417 - Initialize _currentPlaybackSampleTimestamp to zero in 
418 SampleTableAtom::resetTrackByTime()
419 - Use threadsafe callback AO in camera input MIO to reschedule the AO
420 - Modified PVME to handle the failures from SetSourceInitializationData in 
421 SourceNode
422 - Check EOS buffer flag if in the middle of partial frame assembly in omx 
423 component
424 - Fix for AAC silence insertion for the mono case and the AAC+ case
425 - Disable filewriter thread in composer node
426 - test_adts_x.pcm
427 - Peeking samples from an mp4 fragmented files may return wrong information
428 - Fixed timestamp conversion for B-frames.
429 - Fix live RTSP streaming issue
430 - MP4 Source node doesnt resets FirstValidClip's index after Stop/Reset
431 - OMX AVCDec output buffer calculation for cropped output could be smaller than 
432 required. Hence, the buffer calculation part must be modified.
433 - Fix an assert involving iStride and iSliceHeight in omx video decoder node
434 - A 64-bit overflow when computing energy levels was incorrectly saturated with 
435 a 32-bit max., instead of a 64-bit max in the AAC decoder
436 - Fix live RTSP streaming issue
437 - Passing the call ReleaseNodeMetadataValues from the source node to the CPM 
438 plugin.
439 - Add robustness to AAC SBR with silence insertion.
440 - Fix BOS and EOS timestamps for MP3
441 - Fix player engine playlist unit test 414
442 - Change implementation of XML escape() for memory leak analysis
443 - Improvements at the Download Manager, PE Node and mp4 parser in order to 
444 accomodate new Progressive Streaming protocols.
445 - Incorrect duration for AAC ADIF file
446 - Call failure when two TCS are received
447 - Allow repositioning in mp4 files without stss atoms
448 - Update the description of setParametersSync API
449 - Fix multiple repositioning usecases with MP3 gapless playlists
450 - Audio distortion heard in AMR-NB audio clip
451 - AAC multichannel decoder robustness improvement to prevent crash.
452 - Export GetRemoteCodecCapability method for 2-way
453 - Fix logical error in error handling
454 - Corrected intialization of ParserObject and ClipIndex for Metadata parsing in 
455 MP3FF.
456 - resolve player engine test RELEASE Linux build compilation errors on gcc 4.3
457 - Recognizer fails to recognize file but file is larger than minimum needed.
458 - Improvements at the Download Manager, Protocol Engine node in order to 
459 accomodate new Progressive Streaming protocols
460 - Error events from the audio thread are not handled correctly
461 - OSCL Unicode to UTF8 modification
462 - Fix deadlock in mp3 parser and node for mp3 files that are smaller than the 
463 minimum desired for recognition
464 - Fix parsing of certain RTSP URLs.
465 - VT TC-58 failure
466 - OsclMemPoolResizableAllocator does not allocate memory in a circular way, 
467 causes fragmentation.
468 - Fix out-of-bounds array index issue in 2way-stack.
469 - Changed bitmask in oscl_UTF8ToUnicode function so sign extension with 32-bit 
470 wchars is handled properly.
471 - cleanup of old Keys from MIOs
472 - Fixed memory leak on file trackfragmentatom.cpp
473 - Corrected SkipMediaTS calculation and FrameDuration for Backward playback
474 - Node shall not set async flag for sync command on CPM.
475 - Follow-on RIO-7292 to fix PV_CPU_ARCH_VERSION value in Android.mk files.
476 - Handle PVMFInfoErrorHandlingComplete info events in the FMU
477 - Fixed track fragment atom parsing to allow UUID atom
478 - BaseNode shall use the logger tag supplied by node and enable complete node 
479 logging.
480 - Incorrect handling of INSUFFICIENT_DATA error when parsing mp4 movie fragment 
481 clip
482 - Fixed bug in player engine error-handling code.
483 - Media Output Node sync margins are not being set for video tracks
484
485
486 ===============================================================================
487 2009-12-08  OpenCORE 2.07
488
489 New Features
490 - Support 3GPP fast content switch
491 - Player engine changes and new interfaces for gapless playback
492 - Player unit test additions
493 - Add KVP mechanism to set max/min UDP port number
494 - Support PE node feature selection for static builds
495 - SetFSIParam( ) extension interface is implemented. It was previously stubbed 
496 out. FSI (VOL header or SPS/PPS) is sent to the encoder as preferred encoding 
497 parameters.
498 - Introduce ASM and condition support for arm in tool generated project files.
499 - GetActualAACConfig - add mime type as input to process properly RFC 3016 type 
500 streams
501 - Updates to player engine and media output node for gapless playback
502 - Implement support for I-frame request in OMX encoder node
503 - Add support for AAC Dual Mono
504 - Add a new KVP to control audio output in trickplay mode.
505 - CPM changes and new player engine unit test cases.
506 - Add Track ID as input parameter to the addTrack mp4 composer API
507
508 Improvements
509 - Added pvlogger_empty_layout.h as an optional logger output string format that 
510 appends nothing to the output string.
511 - Code cleanup in MP4 decoder vop code 
512 - AAC lib - improve ADTS searching capabilities - needed for applications not 
513 using aac parser
514 - Change to use audio output buffer size calculation to be based on time as in 
515 the OMX audio dec node rather than based on a fixed number of samples as in the 
516 OMX components default.
517 - Handle more non-standard OMX component state transition errors
518 - Removal of 2way VideoParser Node
519 - Update MediaIONodeRepositionDuringPreparedTest test case to run till EOS
520 - Improve FillBufferDoneProcessing and ParseAVCFullFrameIntoNALs in OMX encoder 
521 nodes
522 - Add support for linking against eclair-specific libraries
523 - Adding a new api to turn silence insertion logic on or off (engine->omx 
524 decoder node->omx audio component).
525 - Introduce -Wno-psabi into android makefiles
526 - Modify logging in PVME Test so that it's consistent with the other logging
527 - Cleanup in the android folder (logging, whitespace, etc)
528 - Changes in android folder to sync-up with eclair changes
529 - Removed unused code oscl_mempool_allocator.h/.cpp
530 - Include pvlogger library in oscl build
531 - Updating run_ae_test make target for logging
532 - Minor bug fix to support movie fragments MP4 files with empty sample 
533 description tables and common PE Node code refactoring
534
535 Bugs Fixed
536 - Video and timer gets stuck on repositioning while the audio continues
537 - A/V Sync Issue on Simple playback and timer goes beyond the limit with Video 
538 playback only (Audio Stops)
539 - Fix for redundant rule to copy getactualaacconfig.h
540 - MP4 file parser and parser node modified to support a very large value of 
541 timescale
542 - Improvements in AAC file parser for ADTS recognition
543 - Code cleanup in pvmf_node_interface
544 - Failures in Java-based mediaframework unit test cases.
545 - Fix for failure on resumption from long pauses during RTSP streaming.
546 - Remove an extra call of ResetData from ThreadLogoff in AndroidSurfaceOutput
547 - Mp4 composer node File writer hang issue
548 - Typo in the OMX node log statements
549 - Uninitialized variable iPlayElementIndex of structure PVPPlaybackPosition 
550 causing repositioning problems
551 - In AAC and AMR parser nodes, UsageComplete should be called only when the 
552 content is protected
553 - MP4 parser node returning the same command twice
554 - Hang in Player engine when cancel called in prepare
555 - Use clock_gettime(MONOTONIC) instead of gettimeofday() on linux platform to 
556 have a consistent clock
557 - In PVPlayerEngine::DoVerifyAndSetPlayerParameter, hard-coded enum value is 
558 wrong
559 - OMX encoder node bug in processing SPS PPS for components that produce NAL 
560 start codes
561 - Classes with virtual methods should have virtual destructors too
562 - Fix for crash in AAC Decoder unit test app
563 - Map key 'track-info/track-number' to 'tracknumber' for Android MediaScanner 
564 to recognize the key.
565 - MP3 FF parser should not pass the Xing/LAME header frame to dec node
566 - AMR file parser improvements
567 - Removed parsing support for WMF AMR tracks from MP4 file parser.
568 - Improvements in OMX test application
569 - Fix crash in 2way stack unit test
570 - Change in oscl statfs to accomodate blank paths
571 - Add Error handling at buffer memory allocation error
572 - Fix rebuffering after PVMFInfoBufferingComplete at mp4 PPB
573 - AVC configuration modifications
574 - Using sample duration in addition to timestamp for syncronization
575 - FMU video MIO does not set video subformat type correctly
576 - Fix uninitialized memory in 2way engine unit tests
577 - Updated PVPlayerEngine::ReleaseMetadataValues to properly handle clip index 
578 argument
579 - Fix for running a test number multiple times in makefile target for running
580 parallel player engine tests
581 - OMX Encoder node returns failure if OMX components returns Failure for 
582 "OMX_IndexConfigCommonRotate" parameter
583 - Remove tests not applicable for OpenCORE
584 - MediaScanner has some API calls which are missing the interface
585 - Cap lower bound player engine watchdog timer duration to default value
586 - Enable File-writer for Mp4 composer node
587 - Early and Late Sync Margins changed for better AV Sync
588
589
590 ===============================================================================
591 2009-11-08  OpenCORE 2.06
592
593 New Features
594 - Add support for the PLS playlist file format for use with Shoutcast
595 - Adding code to benchmark encoding/decoding operation in the OMX component
596 - Add support for junit-like XML log output to test framework
597 - AAC utility getaacaudioinfo - add support for adts clips parsing
598 - Add support in playerdriver for RTSP streaming based on an input SDP file.
599 - Player engine unit test needs to support a list of test case ranges
600 - Add support for authoring btrt atom in mp4 composer to record bitrate 
601 information.
602 - Unit test logger option unification
603 - Add SetDuration capability and new command status code in the base node
604 - Add build macro for turning compiler warnings into errors in Android.mk files
605 - New color conversion library suite for YUV420 to YUV422 conversion; supports 
606 basic conversion as well as 90 and 270 degree rotation
607 - Add communication between OMXEncNode and Composer node for MaxBitRate and 
608 DecodingBufferDB
609 - Support PVMF_MIME_H264_RAW where decoder config info is not always available 
610 before the actual decoding start
611 - Support for YUV422 to OMX encoder components (M4V and AVC)
612 - Enable track selection helper to choose the OMX component used for each track
613 - Changes in PlayerEngine, FMU, and source nodes to allow retrieval of 
614 thumbnails for protected content 
615 - Gapless audio support at the file format and source node level
616
617 Improvements
618 - Change the default behavior of the local makefiles to flag compiler warnings
619 as errors and provide a new flag to disable it
620 - AMR-NB modifications from AOSP
621 https://review.source.android.com/10904
622 https://review.source.android.com/10905
623 https://review.source.android.com/10906
624 - Eliminate memcopies of output buffers in omx components (where possible)
625 - Move helper functions ( MoveCmdToCurrentQueue and MoveCmdToCancelQueue ) to 
626 base node
627 - Add logic to the OMX encoder to choose another component if one fails
628 - Update the logic in the encoder node when choosing an OMX encoder
629 - Track selection metadata ("track-info/selected") needs to be added in AAC/AMR
630  and MP3 nodes
631 - Code size reduction
632 - Ignore pause and seek for live streaming
633 - New player engine test content
634 - Add API to 2Way engine to support selection of codecs and their preference 
635 order
636 - Port OMXBaseNode, OMXVideoNode and OMXAudioNode to new Node Interface
637 - Build system support for ARM_GCC_V4 from AOSP
638 https://review.source.android.com/9668
639 - Add ID3V2 metadata support in mp4 parser libary defined by 3GPP Rel 7. Move 
640 all metadata related operations from MP4 PN to library
641 - Variable _mp4ErrorCode to UNSUPPORTED_FILE_TYPE for any brand type in 
642 mpeg4file.cpp should not be set
643 - Encoder nodes should be added only for uncompressed MIO in 2way engine
644 - PV OMX component returns invalid supported profile/level pair
645 - Removing memory leaks in MDBS
646 - Create Generic 2Way Pause/Resume unit test
647 - Add insert_element() and clear() methods to OSCL linked list 
648 - Update Player developers guide for CancelCommand and CancelAllCommands error 
649 return values
650 - Remove a check in sliding_window_process to make avc decoder tolerate an 
651 error condition and continue decoding 
652 - Remove YUV buffer alignment calculations from the OMX decoder node. This is 
653 currently done in the OMX components
654 - Add the ability to report info and error events from the author MIOs 
655 - Modifying current command queue and cancel command queue to a single command 
656 in the base node
657 - Refactor RTSP client engine node for cleaner interfacing with streaming 
658 manager node
659 - Adding support for configuring the number of output buffers as a part of 
660 dynamic port reconfiguration in omx test app
661 - Refactor MP3FFParserNode to use the base node implementation
662 - Refactor DownloadManager Node to use the base node implementation
663 - Refactor MP4 FF Parser Node to use the base node implementation
664 - Add CallNativeSetSize() API for OSCL File 
665 - Change H.263 encoding default GOB header interval to 0 
666
667 Bugs Fixed
668 - Track IDs are huge in particular mp4 clip causing crash
669 - Source node's handling of CPM cmds in Reset is incorrect
670 - [PDL] Download resume doesn't work if server response doesn't include the 
671 Content-Length header.
672 - Android_camera_input.cpp method statusUpdate returns unhandled exception
673 - Hardcoded values in mp4a atom in the composer. (2030968)
674 - Download manager node uses shoutcast support by default
675 - atom 'meta' is not skipped 
676 - Video playback is distorted (not normal) during playback for somes clips
677 - Need the ability to disable CPM in source nodes
678 - Crash in OsclTimer 
679 - Nodes getting schedule extra number of times
680 - Update Android MIO to use authoring clock to achieve better AV sync in 
681 encoding 
682 - Implementation of trick play support
683 - Modify player engine's QueryInterface implementation
684 - Not able to play InValidId3Tags.mp3 content
685 - Fixes for building OpenCORE on android-x86
686 - Streaming Manager node modification to make feature specific plugins 
687 dynamically loadable
688 - Memory leak in video telephony engine
689 - OsclMemPoolResizableAllocator has been modified to take into account the 
690 size specified via setMaxSzForNewMemPoolBuffer while expanding the mempool
691 - OMX AMR component fixed to support 3 Role strings properly
692 - Crash in video telephony engine
693 - PVAuthor Developer's Guide has been updated to clarify 3GP vs MP4 file 
694 authoring
695 - RTSP amr-nb streaming can not start playback, need to seek then playback 
696 start
697 - Fix the issues in Table of Contents implementation in Mp3 Parser
698 - Hang in one accepted/negotiated format 2way engine unit test
699 - Fix a problem where a node based on the base node implementation was not 
700 getting resheduled to process the next command when multiple commands 
701 (RequestPort in this case) were queued. 
702 - PVMFRecognizer improvements, including multi-pass recognition etc.
703 - Send correct YUV format to the VMIO instead of PVMF_MIME_FORMAT_UNKNOWN
704 - By default, use current system time as creation & modification date in MP4 
705 composer node
706 - Audio issue in RTSP streaming caused by AMR decoder problem.
707 - Fix an issue where PVPlayerEngine::Prepare() never completes. If server 
708 sends OPTIONS request to the PVPlayer, PVPlayer does not send SETUP request 
709 to the server and PVPlayerEngine::Prepare() never completes
710 - Fix for reading from files using a file descriptor with an non-zero offset
711 - Fix potential crash during streaming session with multiple frames per packet 
712 - Minor refactoring of integer datatype use
713 - Fix issue where an incorrect VOL header for MPEG4 video content results in 
714 no video playback
715 - Add an extra condition for the multi-line check in an HTTP response header
716 - Move inlined code from header to cpp file for pvmf_event_handling 
717 - Update the omx decoder node to reject a component if 
718 iOMXComponentUsesFullAVCFrames is false
719 - Crash in video telephony engine cleanup
720 - Report a more appropriate failure status via the author engine when 
721 underlying node commands fails
722 - Fix the fileoutput MIO to take into account the 422 UYVY format
723 - Fix for opening shared asset file handles multiple times
724 - Fileformat parser changes to support some specific mp4 content
725 - Limit the max size of album art to 3MB
726 - Changes in sending the Buffering Status
727 - Adding support for authoring moof clips for live sessions in mp4 composer 
728 library
729 - PVPlayer crashes when trying to do Progressive Streaming of a specific 
730 MP4 Clip
731 - Incorrect mime string comparision in pv2way datapath
732 - Fix for memory leak in mp4 local playback at GetMetaDataValue
733 - Implement HandleExtensionAPICommands for OMXDecNode
734 - Change OMX enc node Reset() to return success even OMX comp GetState() 
735 fails or returns bad states
736 - Treat OMX_EventError with OMX_ErrorInvalidState as if OMX client get an 
737 OMX_EventCmdComplete indicating state transition failure
738 - Add CTOR in RepositionRequestStruct to init the members 
739 - Fix for testcase 805 with local content
740 - Logging in PVME Test not working properly for threaded mode
741 - Thumbnail extraction when no sample present in stss atom
742 - MP3 frames may have different sampling rate or number of channels. So, 
743 in the omx mp3 component, logic has been added to ensure that only decoding of 
744 consistent frames is sent as output and silence will replace mismatched frames
745 - Content truncated while seeking specific YouTube clip
746 - Player Engine should not fail playback if the Source node does not support 
747 Playback control interface
748 - Cleanup test input and output filenames used in 2way tests
749 - Error in video display while playing minimum size content (48*48)
750 - Valgrind error fixes
751 - Fix a bug in SPS length calculation
752 - PVME doesn't retrieve metadata properly if file has an invalid extension
753 - Wrong sequence numbers from video parser node
754 - Using RTCP SR reports to perform AV sync once, if server does not provide 
755 rtp-info in PLAY response. 
756 - Mp3 parsernode should pass source context to CPM plugins 
757
758
759 ===============================================================================
760 2009-08-06  OpenCORE 2.05
761
762 New Features
763 - Helper function to retrieve extended messages from command responses.
764 - Support for eAAC+ encode in the pvAuthor engine.
765 - Add conversion operations to OSCL_String classes.
766 - RTSPT support (3GPP streaming over TCP). To test, replace "rtsp" with "rtspt"
767 in the control URL (in source URL or SDP file). It is assumed that the user has
768 access to a server with TCP streaming capability.
769 - PV Metadata Engine (ME). This engine is targeted at applications that want
770 to retrieve metadata for any given clip in a generic manner. Typically, a lot
771 of these applications would like to scan large batches of content. Since ME 
772 is mainly targeted at apps like mediascanner, where speed is the most important
773 factor, thumbnail extraction is not supported. For applications that do want 
774 to extract thumbnails in a generic manner along with the metadata, PV's 
775 FrameAndMetadata Utility (FMU) is recommended instead.
776 - 2way Lip-Sync unit test cases.
777
778 Improvements
779 - A new base node implementation is introduced for the purpose of 
780   refactoring and consolidating common logic in the nodes. The changes
781   will improve maintainability and make it easier to create new nodes.
782   Further documentation will be released in the future providing guidelines
783   for authoring nodes.
784 - The following existing nodes were refactored to utilize the base node 
785   implementation mentioned above: AAC, AMR, and WAV parser nodes.
786 - Replace CodecSpecifier with PVMFFormatType.
787 - Move EventHandlerProcessing method to PVMFOMXBaseDecNode class.
788 - Change method type from "protected" to "private" in OMX derived classes
789 (videodec node and audiodec node).
790 - Adding robustness to avcdecoder to verify PPS and SPS parameters.
791 - Display status of every test case after it finishes in 2way unit test app.
792 - Add support to H.245 version 10.
793 - OMX node - Implement interleaved NAL sizes (to replace NAL start codes) in 
794 omx buffers carrying AVC frames.
795 - AMR-WB contributions to enable building in "C":
796 https://review.source.android.com/10014 
797 https://review.source.android.com/10015
798 https://review.source.android.com/10016 
799 https://review.source.android.com/10017 
800 https://review.source.android.com/10018 
801 - AMR-NB contributions to enable building in "C":
802 https://review.source.android.com/10297 
803 https://review.source.android.com/10301 
804 https://review.source.android.com/10302 
805 https://review.source.android.com/10303 
806 - Update OsclFileStats to track total time taken instead of only the 
807 maximum time per operation.
808 - Rename OMX master core methods to avoid linking conflicts.
809 - Pass key MOUT_VIDEO_SUBFORMAT_KEY to the video MIO of FMU.
810 - Remove Direct Render Mode from mp4 composer library. 
811 - AMR-NB and AMR-WB inline assembly is being re-enabled after a bug
812 in the QEMU assembly translation has been fixed.
813 - Modification of MIOs to take all configuration parameters at once.
814 - Move OMX input and output buffer ctrl structure away from data buffers.
815 - Enable byte-stream (H264-RAW) format decoding in OMX dec node.
816 - PVMFInfoTrackDisable information event should be report to java application.
817 - Retrieve the PLATFORM version at run time for the Android UserAgent string.
818 - OMX audio and video dec nodes need to be able to handle PortSettingsChanged
819 event with argument OMX_ALL.
820 - PVMFMediaClock latency handling improvement.
821 - AAC decoder creates artifacts when decoding clip.
822 - Modify MP4 composer node to do sample adds to mp4 composer lib in a separate
823 thread.
824 - Add support for VIDEO_ENCODER_H264 in authordriver.
825 - Author major brand "3gp5" if 3gp clip has TIMED-TEXT track.
826 - No interleaving of mp4 files for just one track.
827 https://review.source.android.com/10510 
828 - Return non-zero code when we detect a memory leak during unit tests.
829 - Add "3g2a", "3g2b" and "3g2c" as compatible branch in all content authored
830 by PvAuthor SDK.
831 - Add support for OMX_COLOR_FormatYCbYCr.
832 - Remove unneeded libraries being linked against individual shared libraries.
833 - Exclude empty directories and unncessary build files from OpenCORE.
834 - In OMX base node, turn the InputBufCtrlStruct from a struct into a class
835 - Updates to pvmf_return_codes.pdf, pvplayer_developers_guide.pdf,
836 omx_decoder_test_app_guide.pdf, and omx_encoder_test_app_guide.pdf.
837
838 Bugs Fixed
839 - Repositioning takes a long time for YouTube videos after a few
840 repositions.
841 - Crash in CPVH223Multiplex::Stop().
842 - PlayerEngine cannot finish a playback session after repeated pause
843 and resume near EndOfStream.
844 - Allow file path to be passed to the pvPlayer SDK on Android.
845 - Add a new constructor for the AVCSampleEntry to be used when parsing the 
846 encv atom
847 https://review.source.android.com/9683
848 - MP3 DurationCalcAO logic needs to moved to a place during Prepare and not 
849 Init.
850 - Change PV_GET_ROW definition in M4V decoder. 
851 - Player Engine unit test TC 55 and 56 has memory leaks
852 - Crash in authordriver if InitializeForThread fails.
853 - Crash in playerdriver if InitializeForThread fails.
854 - Potential memory leak in OMX encoder node.
855 - Memory leaks in AAC file parser node & lib
856 - FindFirst returns wrong element type when find a directory in android
857 - Intermittent timeouts on 2way unit tests
858 - Incorrect DeBlocking logic
859 - AVC Clip Specific Issue: (Play till EOS) OR (Reposition to near EOS) The 
860 video gets stuck at near EOS 
861 - iTunes genre is not parsed correctly
862 - Youtube : AV sync is lost after a seek when playing youtube contents
863 - Crash after recording one minute of Video when duration is specified
864 - Tracknumber metadata key string should be consistent through out all nodes
865 - Possible race condition in singleton lock in omx_init 
866 - CPV2WayDatapath::GetPortFormatType() selects least preferred type 
867 - AAC OMX decoder component needs to process whole audio config buffer
868 - Modify MP3Parser to make seek to 0 a special case and do not use XING header
869 for calculating file offset
870 - AAC Decoder should not try decode any AAC+ clip whose final sampling freq 
871 is > 48 KHz. Should default to AAC in these cases.
872 - Update OMX encoder node to calculate the correct output buffer size in case
873 the encoder has multiple roles.
874 - OMX Encoder MPEG4 unit test fix
875 - Setting AMR_NB bitrate to GSM_AMR_4_75 will fail prepare. 
876 - AuthorEngine should return Success incase Stop is called in
877 PVAE_STATE_INITIALIZED state.
878 - OMX M4V encoding drops the first I-frame
879 - VIDEO_INTERLEAVE_BUFFER_SIZE is too short for some buffers when encoding 
880 D1 resolutions 
881 - Occasional audio glitch in MP3 parser during repositioning
882 - OMX tests for AMR give seg fault on android
883 - pvPlayer sends incorrect HTTP Range header
884 http://code.google.com/p/android/issues/detail?id=3031
885 - PDL/PS - Fix the Mp4 Parser node to pass the correct timestamp to PE node 
886 in RequestResumeNotification during Underflow condition 
887 - H.245 TerminalCapabilitySet (TCS) and MasterSlaveDetermination (MSD) 
888 requests must be sent before any other H.245 messages. 
889 - Logic to set iKeepDroppingMsgsUntilMarkerBit to false in AMR RTSP streaming 
890 - 2way tests hanging when run in Android emulator
891 - Sound Recorder: Incorrect Duration of clip sometimes observed when sdcard is
892 full
893 - Memory leak in PV2WayMIO
894 - Playerengine needs to be updated to return success even if there are no keys
895 for GetMetadataValue
896 - Correct the Android RTSP UserAgent string
897 - Author Engine : Don't access the queue element without checking its queue
898 size
899 - If SSRC is not provided in setup response, then pvplayer cleint doesn't send
900 firewall packets to the server
901 - GetMetadataValues returns invalid number of entries
902 - Modify AUT to parse authored files and validate the files as much as possible
903 - Eliminate media layer node in case of RTSP streaming
904 - AAC timestamps provided to OMX component may be wrong
905 - Clean up warnings and some negotiate parameter changes from omx dec & enc
906 test apps
907 - Fix valgrind issue reported with android simulator in omx base node
908 - Add more supported rate control types in pv_video_encnode_extension.h
909 - Memory leak in player engine test case 807
910 - Addressed compiler warnings in PVME
911 - nBufferAlignment of OMX_PARAM_PORTDEFINITIONTYPE is initialized to negative
912 value when playing clip on android using qcom decoders
913 - MP3 parser crash
914 - pvplayer_engine_test is detecting 'rtspt_test.sdp' as a url instead a local
915 file
916 - Count of command line arguments being read in PVME Test App is incorrect
917 - Player engine test case 1307 fails when run with a mp4 file containing 3GPP 
918 timed text track 
919 - PVMFInfoDataReady event being sent to the engine after the unit test calls
920 stop
921 - PlayerEngine doesn't free reference to PVMFDataSourceNodeRegistryInitInterface
922 - Combine the AMR if statement in pv_omxmastercore.cpp
923 - Player Engine unit test case 154 fails on execution 
924 - Author Engine unit test cases 101-105 fail
925 - Add new return code PVMFErrContentInvalidForProgressivePlayback for a
926 NOT_PROGRESSIVE_STREAMABLE content 
927 - Add USE (AL2, AL3) to 2way test files
928 - H223 2way test not being run 
929 - Avoid calling CCYUV422toYUV420::New() for each thumbnail
930 - Author engine unit test case 101 fails
931 - Ignore encoding flaw, which generates aspec_ratio of value 0 in file
932 codecs_v2\video\m4v_h263\dec\src
933 - Memory leaks in pvmf_mio_fileinput.cpp and performance improvement in mp4
934 composer node
935 - Do not cancel Init() immediately in case of 3gpp streaming 
936 - Transferring MP3 with invalid ID2 tags crashes mediaScanner
937
938
939 ===============================================================================
940 2009-05-17  OpenCORE 2.04
941
942 New Features
943 - Create external download datastream An external download datastream is
944 introduced to allow for an external entity to pass a datastream interface 
945 to the player SDK.  The external entity is responsible for doing the actual 
946 download of the media data.  Full support in Android is not complete until 
947 playerdriver changes and more unit testing is done.
948 - Fixed cache option in Oscl_File
949 Adding an option to configure the Oscl file cache to use one or more fixed
950 caches in addition to the movable cache.
951 - Modify author engine to contain a notion of "authoring clock"
952 Author engine has the option to pass an "authoring clock" to media input
953 components so that they can use this to sync audio and video timestamps.  
954 Author engine has been modified to own a PVMFMediaClock.  Author engine 
955 provides a pointer to its to data source node (media input node typically) 
956 at the end of author engine Init cycle, using PVMF_AUTHORING_CLOCK_KEY.  
957 No media input component changes were done. All media input components 
958 used in author engine unit test currently operate from a file and have no
959 need for such a clock, but some device media input components can make use 
960 of the clock if needed in the future, since author engine will pass the 
961 clock pointer all the time to data sources.
962 - Shoutcast (of MP3) support
963 Shoutcast support of MP3 and internet radio streaming is added.
964 - Enable AAC PDL Support 
965 More robust support of PDL of AAC content, including underflow handling.
966 - Add support for 3GPP2 speech (EVRC, QCELP etc) in MP4 FF library
967 Support for the 3GPP2 speech codecs is added at the file format library
968 level.  No 3GPP2 speech codecs are added.
969 - OpenMAX encoder and decoder unit test suite
970 - Use external filehandle in Android
971 - Introduce new macro to android makefiles to enable 2way
972
973 Improvements
974 - Add support for "all" metadata key in CPM plugins.  This feature provides 
975   a single key to request that all available metadata be returned.
976 - Add support for OMX_ColorFormatCbYCrY 
977 - OMX video dec node now sets the codec parameters (width/height etc.) in the 
978   output port of the omx component.
979 - A loadable module for the OMA1 passthru CPM plugin now exists.  It serves 
980   as an example for creating a loadable CPM plugin.
981 - Compressed testcases have been added in Authior Engine unit tests to 
982   author 3gp file from AVC and M4V and AAC bitstreams
983 - Added checks to verify that the PCM output of the mp3 frame will not exceed
984   the output buffer size, so the mp3 decoder / OMX component is nore robust.
985 - Removed unnecessary "ComponentGetRolesOfComponent" methods from OMX 
986   components.
987 - Restored "/x-pvmf/ff-mux/mp4" MIME Type in Author engine. 
988 - Modified the Initial AVC buffers so that the image that appears initially 
989   is black (not green/pink) if I-frame is missing. 
990 - Fixed the IFrameInterval setting in the OpenMAX video encoder node. 
991 - Added the ability to pass a peer PvmiCapabilityAndConfig interface to 
992   the Media I/O (MIO) components using the Capability Exchange.  The purpose 
993   is to allow the MIO components to set and get parameters (i.e., drive the 
994   process) rather than on relying on the media output node to do it.
995 - Added checks to the OMX components to verify that the buffer size 
996   (in allocate/use buffer) (nAllocLen) is adequate (i.e. >= than nBufferSize)
997 - Updated OMX components so that standard component roles can be queried as 
998   well as set.
999 - AMR-NB common library modified to mark the proper symbol exports and moved
1000   some functions to encoder and decoder libraries instead of common. 
1001 - Updated h264 decoder to take advantage of the fact that there will be no 
1002   in-band SPS/PPS NALs for the mime Video dec node prevents in-band SPS/PPS 
1003   for the format PVMF_MIME_H264_VIDEO_MP4
1004 - Add macro for enabling build of pv test engine executables in Android 
1005 - Remove 12-bit, 24-bit, and 32-bit routines from Android libraries 
1006 - Modified OMX timestamps to be in in microseconds rather than milliseconds
1007   as specified in the OMX spec 1.1.2.
1008 - Improvements and workarounds for non-compliant OMX components
1009 - Replace OPEN_FILE_ONCE_PER_TRACK macro with member variable 
1010 aOpenFileOncePerTrack in mp4ffparser lib
1011 - 2way: send data fragment by fragment from parser side
1012 - Added a new function to convert PVMFStatus to human friendly strings
1013 - Implement logic to choose correct OMX component when decoding streaming 
1014 H264
1015 - OMX dec nodes should report error and not even call config parser if 
1016 config data is missing (but is required by the format)
1017 - Update playerdriver.cpp to send "disable-firewall-packets" KVP key based 
1018 on system Android property
1019
1020 Bugs Fixed
1021 - Moov atom is not being written into .3gp file if Author driver does not 
1022   close file handle.
1023 - omx mp4 component in no-marker-bit mode crashes when playing a certain clip
1024 - Error handling incase of input other then 8K AMR 
1025 - Add PVReleaseInterface method to OMX shared library interfaces 
1026   (components + main)
1027 - pull sdcard while recording causes media server to crash 
1028 - Changes to buffering status notifications while streaming 
1029 - OMX nodes should not send repositioning request to OMX component until 
1030   config data has been processed by OMX components 
1031 - Crash in the author SDK as part of engine Reset 
1032 - If SSRC is not provided in setup response, then pvplayer client doesn't 
1033   send firewall packets to the server 
1034 - PVAuthorEngineNodeUtility::NodeCommandCompleted does not check whether 
1035   iCmdQueue is empty 
1036 - AMR Local Playback -> FF to EOS when repeat song is on will cause a force 
1037   crash 
1038 - some source nodes will put same timestamp for DataTS in old stream id 
1039   and DiscardTS
1040 - Change pv omx encoder node to default iOMXComponentNeedsNALStartCodes to 
1041   false and do sanity check
1042 - When reconfig happen,SinkNode should send reconfig notification with 
1043   FormatSpecificInfo to MIO 
1044 - Race condition - If port settings event and node stop command arrive 
1045   simultaneously - omx component may fail port flush command 
1046 - Mp3FFParserNode: Memory leak in Duration Calculator 
1047 - Playback clock starts even before PlayerEngine Start( ) is issued 
1048 - Clip plays beyond EOS.  Fixed setting of the actual normal play time (NPT)
1049   when repositioning. 
1050 - Modified OSCL and player driver handling of external file handles in the 
1051   player.
1052 - MP3 PS - Repositioning is not working properly 
1053 - MP3 Parser needs to validate consecutive mp3 headers before parsing starts
1054 - Crash in MIO component due to setPeer(NULL) is not called 
1055 - Improvements and robustness in thumbnail generation from normal and 
1056   corrupted clips
1057 - Improvements in stability of Author Engine Unit tests when using OMX 
1058   encoder node
1059 - Modify OSCL Mempool to assert when a buffer is deallocated back to 
1060   mempool twice in a row 
1061 - Fix a possible race condition in omx proxy threads. 
1062 - H263 decoder (OMX version) needs to remove the DEFAULT width-height 
1063   initialization 
1064 - Oscl file cache assert when reading binary file in text mode 
1065 - AAC and MP3 decoders have ARMv4 incorrect defines on normalization routines.
1066   (see https://review.source.android.com/Gerrit#change,9668)
1067 - AMR component roles do not distinguish between AMR_NB and AMR_WB 
1068 - OSCL shared library avoid dlopen() leaking in case of failure(dlsym() fails)
1069 - Mp3 Clip hangs for some time when repositioned near to the end
1070 - PV_atof will return a value that is larger than it should be if the input 
1071 string has a CR at the end
1072 - Sequence number rollover in RTP info param during prolonged RTSP streaming
1073
1074
1075 ===============================================================================
1076 2009-03-31  OpenCORE 2.03
1077
1078 Improvements
1079 - Enable OpenCORE on master - part 2
1080
1081 ===============================================================================
1082 2009-03-10  OpenCORE 2.02
1083
1084 ********
1085    There is minor version number nomenclature change where the 
1086    minor version is now two digits.  So the previous releases 
1087    in the new nomenclature are 2.00 (2.0) and 2.01 (2.1).  The 
1088    new release is 2.02, which is a minor version increment beyond
1089    the previous release.
1090 ********
1091
1092 New Features
1093 - AMR-WB support added to the OMX encoder node so that it can utilize 
1094   an OMX AMR-WB encoder component if it is part of the OMX core. 
1095 - Buffer allocator mechanism allowing the Media I/O components to 
1096   supply buffers to the OMX decoders.  This method is especially useful
1097   as an alternative way to allocate video buffers.  Details can be 
1098   found in the new document "Guide to Supplying Decoder Buffers from 
1099   the MIO Component" in the file mio_decoder_buffer_allocation_guide.pdf
1100   in the top-level doc directory.
1101
1102 Improvements
1103 - Resolution of Valgrind and static analysis warnings in player and author
1104 - Improvements in support for .mov files in MP4 FF Parser(relaxed some checks).
1105 - Modified OMX encoder node to allow setting the AMR bitrate 
1106   based on an extension interface value.
1107 - Fix inconsistencies in OSCL find method related to inclusion of the 
1108   directory name with the filename.
1109 - Improvement in PVMFInfoErrorHandlingComplete in the player datapath
1110 - Refactor of the Protocol Engine node to support a plugin architecture.  
1111   This improves extensibility of the module for new features in the future.
1112 - Introduce QueryInterfaceSync in PVMFNodeInterface and "all" metadata key
1113 - AMR NB and WB have conflicting meaning for frame_type and mode elements
1114 - Change the default settings related to caching for Oscl_File when 
1115   using PVFile within the fileformat parsers.
1116 - Replace test.mp4 with interop clip
1117 - Update of tests for support for progressive download of AMR
1118 - OMX Khronos header files (Omx_Core.h, Omx_Component.h) capitalization 
1119   changed to match that from the Khronos (previously they were all lowercase).
1120
1121 Bugs Fixed
1122 - Memory leak when running GCF TC212 (2way-related)
1123 - MediaClockConverter divided by zero caused by timescale 0
1124 - MP4 composer node destructor memory corruption fixed.
1125 - Fix for intermittent crash in player engine TC 105
1126 - OMX dec node did not reset all the internal state during 
1127   Reset processing.  
1128
1129
1130 ===============================================================================
1131 2009-02-26  OpenCORE 2.1 (2.01)
1132
1133 New Features
1134 * OpenMAX Codec-related:
1135   - Introduced the OMXConfigParser API to help in determining
1136     which OpenMAX components can support the input bitstream.
1137     It is used to narrow the list of candidate OpenMAX components
1138     to be used for playback.  See the OpenMAX Core Integration Guide
1139     document in the doc directory for more information.
1140   - Added OMX AAC encoder support in the OMX encoder.
1141   - Modified to use separate component roles for AMR-NB and AMR-WB as
1142     described in the OpenMAX IL spec version 1.1.2.
1143   - Added support for a new buffer format for H.264/AVC decode and
1144     encode to allow passing multiple NALs in a single buffer.  
1145     The format uses OMX_OTHER_EXTRADATA structure defined in 
1146     section 4.2.33 of the OpenMAX IL spec version 1.1.2 to pass 
1147     NAL lengths.  See the OpenMAX Core Integration Guide document 
1148     in the doc directory for more information.
1149 * Author-related:
1150   - Added support for authoring files with AAC audio.
1151   - Added support for authoring AMR-WB audio to MP4/3GP files and
1152     IETF storage format.
1153   - Added support for writing to an open file descriptor as an option
1154     instead of simply providing a filename.  The file descriptor
1155     option is useful for cases where another process needs to open 
1156     the file because of permissions.
1157 * Added large file support in OSCL (i.e., 64-bit file size/offset
1158     support) to handle files greater than 2 GiB on filesystems that 
1159   support it.
1160 * Added rotation support in the 32-bit color-conversion class.
1161
1162 Improvements
1163 * Removed dynamically loaded modules from the prelink map to avoid
1164   clutter and to make both the prelink map and loadable modules 
1165   easier to manage.  There may be an issue if a single instance of 
1166   a process tries to load libraries not in the prelink map more than 
1167   256 times
1168   (See http://code.google.com/p/android/issues/detail?id=2042).
1169 * Update to the MP3 Decoder to fix security issue (oCERT_2009-002,
1170   CVE-2009-0475)
1171 * Renamed the OSCL config directory linux_nj to android to match the
1172   platform name.  Replaced all references of nj with android in the 
1173   codebase.
1174 * General security improvements found from static analysis in the
1175   following areas:
1176   - Buffer and type overruns and underruns
1177   - Null pointer references
1178 * Refactored the jitter buffer node into a more modular architecture
1179   for better support of different streaming use-cases and protocols.
1180 * Fixed an issue in the MP3 decoder when decoding for very of long
1181   durations (over 2 GiB of data).
1182 * General improvements found during 3GPP packet-switched streaming
1183   interoperability testing.
1184 * General improvements and resolution of issues found from module
1185   level and engine (player, author, 2-way) level unit testing.
1186
1187 New APIs / Behaviors
1188 * Added support in the player engine to cancel a single pending
1189   command using the CancelCommand API.  See the player engine API 
1190   document for details.
1191 * Renumbered the author test cases to avoid issues with
1192   preprocessor conditionals changing the test numbers based on 
1193   settings.  Now the test numbers shouldn't change.
1194 * In the case of 3rd party OMX components that support multiple roles,
1195   returns an error if the component cannot set the role parameter
1196 * OMX components need to explicitly set nPortIndex parameter for
1197   all appropriate parameters
1198 * Added fix for buffering percentage notification in streaming
1199   scenario (see https://review.source.android.com/Gerrit#change,8699)
1200 * Updated omx shared library build configuration to separate component
1201   registration from component build
1202 * Added methods in baselibs to serialize and deserialize the UTF-16,
1203   UTF-16LE, UTF-16BE strings
1204 * Removed the iUseCPMPluginRegistry flag from the source data that was
1205   previously used to enable the content policy manager.  
1206   Since the CPM pluginsare dynamically loaded, the flag is not 
1207   needed and was removed.  See the playerdriver.cpp for details
1208   of the change. 
1209
1210
1211 ===============================================================================
1212 2009-01-26  OpenCORE 2.0 (2.00)
1213
1214 New Features
1215 - Consolidation of the clock logic into a common clock object
1216   (PVMFMediaClock).  More details will be provided in a 
1217   Tech note at a later time.
1218 - Refactor MP4 Composer library
1219 - omx component refactoring (Introducing base omx component class)
1220 - OMX Encoder Support
1221 - Check URIs for illegal characters and run escaping algorithm if any
1222   are found.
1223 - Support for 3GPP AssetInfo Metadata in Author SDK
1224 - MP3 Dynamic TOC Construction
1225 - Modify MPEG4/H.263 node/library to support arbitrary Decoder
1226   Configuration Information (DCI)
1227 - backward playback support for MP4
1228 - Refactoring Colorconversion from mpeg4 encoder and adding support
1229   for YUV420SemiPlanar
1230 - Refactor streaming manager node into feature specifc plugins
1231 - Thread Safe Player Engine APIs and Thread Safe queue
1232 - Adding capability to turn off AC prediction and change
1233   IntraDCVlcThreshold for MPEG4 encoder library
1234 - Dynamically populate recognizer registry
1235 - add 2way support for OpenCORE
1236 - Combine OMX audio dec node and Video Dec node
1237 - OMX MasterCore
1238 - Apply new RGB to YUV color conversion libraries to OMX encoder
1239   components
1240 - Use loadable modules in CPM
1241 - Adding support for YUV420Semiplanar to avc encoder, m4v encoder and
1242   author
1243 - introduce dynamic loading of individual omx components
1244
1245 Improvements
1246 - Removal of all compiler warnings reported by Android compiler
1247   Exception: unit test app code
1248 - Module-level unit test fixes
1249 - Various Valgrind errors and fixes
1250 - Various Codesonar warnings and fixes
1251 - various security audit and fixes
1252 - various memory leak fixes
1253 - various crash, hang fixes for specific test content or test cases
1254 - Re-work Oscl Scheduler semaphore & lock
1255 - Author Engine Error Handling Robustness
1256 - Player Engine Error Handling Robustness
1257 - Add capability of assembling partial frames and inserting NAL start
1258   codes to OMX node
1259 - The media I/O component configuration process needs to be improved.
1260 - Fundamental change in behavior of repositioning during 3GPP
1261   streaming
1262 - Improvements to the PV FrameMetadataUtility [FMU]
1263 - mp3 parser - duration calculation by walking file in background
1264 - IOT merges from 2-way team
1265 - Longevity issues with live streaming
1266 - Local Playback MP3 file does not display attached art work
1267 - Issues with Oscl Leave, Panic, and Assert
1268 - Modify allocators to not leave in case of an alloc failure, but
1269   instead have them return OsclErrNoMemory
1270 - Conversion of strcmp and strstr usage to strncmp for non null
1271   terminated Strings
1272 - Change Oscl memory auditing from TLS-based to Singleton-based
1273 - Buffer status report in a periodical manner to improve the app
1274   awareness about how engine is running in low bandwidth for PDL/PS
1275 - AVC Encoder Improved Rate Control
1276 - State Transition: Remove implicit ThreadLogoff() from Nodes
1277 - Include aac recognizer for Android
1278 - Audit MP4 parser against new iTunes spec
1279 - Replace PVMFSMSharedBufferAllocWithReSize allocator with
1280   OsclMemPoolResizableAllocator
1281 - Player Engine registry re-work
1282
1283 New KVPs / APIs / API behaviors
1284 - Change Download Manager Stop Command to Stop Download
1285 - Add a KVP to configure jitter buffer inactivity run time from the
1286   app
1287 - OSCL Critical Error Handling
1288 - Adding kvp in SM node to set rtsp_timeout timer in rtsp engine node
1289 - Get rid of "getTrackOTIType" API in parser lib and switch mp4 parser
1290   node to use "getTrackMIMEType".
1291 - Adding capability to turn off AC prediction and change
1292   IntraDCVlcThreshold for MPEG4 encoder library
1293 - Deprecate PVMFCPMPluginLocalSyncAccessInterface
1294 - Introduce new API in Engine to Release MetaData Values
1295 - Use of PVMF format types in player registries
1296 - Introduce new kvp key to set jitter buffer size
1297 - Add a new meta data key to Mp3ParserNode to support channel mode
1298   retrieval
1299 - Support for taking in video bitrate and other params from a config
1300   file, for uncompressed AVI test cases.
1301 - Deprecate TLS-based memory audit
1302 - Use KVP "nodedataqueuing_timeout" instead of compile time tuneable
1303   "SYNC_POINT_DIFF_THRESHOLD"
1304 - Please apply "mode=" for "x-pvmf/net/user-agent;valtype=char*" key.
1305 - Change libpv*.so to libopencore_*.so
1306 - Singleton and lock/unlock mechanism needed for OMX master core
1307   globals
1308 - In case of 3rd party OMX components that support multiple roles -
1309   input dec format and output enc format needs to be specified
1310 - OMX Core plugin code (for 3rd party omx cores integration)
1311
1312 Known Issues
1313 - Had to temporarily remove the doc directory because of conflicts
1314   with Gerrit and PDF files. These will be uploaded again now that
1315   Gerrit is updated.
1316 - Additional documentation will be released as soon as possible.
1317 - The OpenMAX encoder node is configuring the OpenMAX component with
1318   the wrong format for AMR. It is using
1319   OMX_AUDIO_AMRFrameFormatRTPPayload when it should be
1320   OMX_AUDIO_AMRFrameFormatFSF.
1321 - The OpenMAX encoder node is not handling Reset correctly in all
1322   cases. 
1323
1324 ===============================================================================
1325 2008-10-21  OpenCORE 1.0 (1.00)
1326
1327 OpenCORE 1.0 is the initial contribution to AOSP.  It has both release-1.0
1328 and android-1.0 tags.