1 ===============================================================================
2 2010-06-25 OpenCORE 2.50
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
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
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
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
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
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
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
84 - If the encoder node marks the frame as keyframe, there is no need to sniff
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
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
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
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
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
120 - Separating registration of ClockStateObserver and the latency in
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
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
136 - Cleanup of 2way engine code.
137 - Add warning logger message in the NegotiateComponentParameters functions for
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
146 - Change MPEG4 encoder OMX component to generate VOL header before getting
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)
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
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
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
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
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
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
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
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
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
260 - Add support of "YUV 420 Semi Planer" in Encoder Node.
261 - Completely eliminate logging from omx proxy and omx component unless
263 - Fix for hang in player engine test case 862
264 - Issue with seek sample number when repositioning near the beginning of a
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
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
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
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
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
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
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
363 - Fix for TC 21 on MP3 clips
364 - TC 414 (FullPlaylistPauseSkipToNextTrackResumeTest) failing with full logging
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
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
387 - Add check to prevent engine clock from starting if engine is not in started
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
422 - Check EOS buffer flag if in the middle of partial frame assembly in omx
424 - Fix for AAC silence insertion for the mono case and the AAC+ case
425 - Disable filewriter thread in composer node
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
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
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.
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
480 - Incorrect handling of INSUFFICIENT_DATA error when parsing mp4 movie fragment
482 - Fixed bug in player engine error-handling code.
483 - Media Output Node sync margins are not being set for video tracks
486 ===============================================================================
487 2009-12-08 OpenCORE 2.07
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
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
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
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
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
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
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
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
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
559 - OMX encoder node bug in processing SPS PPS for components that produce NAL
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
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
590 ===============================================================================
591 2009-11-08 OpenCORE 2.06
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
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
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
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
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
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
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
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
657 - Refactor RTSP client engine node for cleaner interfacing with streaming
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
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
679 - Nodes getting schedule extra number of times
680 - Update Android MIO to use authoring clock to achieve better AV sync in
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
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
695 - RTSP amr-nb streaming can not start playback, need to seek then playback
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
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
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
729 - PVPlayer crashes when trying to do Progressive Streaming of a specific
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
759 ===============================================================================
760 2009-08-06 OpenCORE 2.05
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.
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
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
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
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.
839 - Repositioning takes a long time for YouTube videos after a few
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
847 https://review.source.android.com/9683
848 - MP3 DurationCalcAO logic needs to moved to a place during Prepare and not
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
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
893 - Memory leak in PV2WayMIO
894 - Playerengine needs to be updated to return success even if there are no keys
896 - Correct the Android RTSP UserAgent string
897 - Author Engine : Don't access the queue element without checking its queue
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
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
914 - pvplayer_engine_test is detecting 'rtspt_test.sdp' as a url instead a local
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
919 - PVMFInfoDataReady event being sent to the engine after the unit test calls
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
935 - Do not cancel Init() immediately in case of 3gpp streaming
936 - Transferring MP3 with invalid ID2 tags crashes mediaScanner
939 ===============================================================================
940 2009-05-17 OpenCORE 2.04
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
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
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
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
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
1021 - Moov atom is not being written into .3gp file if Author driver does not
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
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
1036 - AMR Local Playback -> FF to EOS when repeat song is on will cause a force
1038 - some source nodes will put same timestamp for DataTS in old stream id
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)
1050 - Modified OSCL and player driver handling of external file handles in the
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
1057 - Improvements in stability of Author Engine Unit tests when using OMX
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
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
1075 ===============================================================================
1076 2009-03-31 OpenCORE 2.03
1079 - Enable OpenCORE on master - part 2
1081 ===============================================================================
1082 2009-03-10 OpenCORE 2.02
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.
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.
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).
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
1130 ===============================================================================
1131 2009-02-26 OpenCORE 2.1 (2.01)
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.
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
1160 * Added rotation support in the 32-bit color-conversion class.
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
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,
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
1174 * General security improvements found from static analysis in the
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.
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
1211 ===============================================================================
1212 2009-01-26 OpenCORE 2.0 (2.00)
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
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
1238 - Apply new RGB to YUV color conversion libraries to OMX encoder
1240 - Use loadable modules in CPM
1241 - Adding support for YUV420Semiplanar to avc encoder, m4v encoder and
1243 - introduce dynamic loading of individual omx components
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
1259 - The media I/O component configuration process needs to be improved.
1260 - Fundamental change in behavior of repositioning during 3GPP
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
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
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
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
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
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)
1313 - Had to temporarily remove the doc directory because of conflicts
1314 with Gerrit and PDF files. These will be uploaded again now that
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
1324 ===============================================================================
1325 2008-10-21 OpenCORE 1.0 (1.00)
1327 OpenCORE 1.0 is the initial contribution to AOSP. It has both release-1.0
1328 and android-1.0 tags.