-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changelog
1090 lines (1037 loc) · 66.9 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# On-going: GPAC 2.3-DEV
# 19/12/2022: GPAC 2.2
## Media Formats
- 2-pass encoding for FFmpeg codecs other than libx264
- Conversion filters for VTT, TXG3 and TTML
- SubstationAlpha subtitle import (basic)
- DVB subpictures in M2TS mux and demux
- FFMPEG (mostly for Matroska) subtitle import and export (SRT/SSA to TX3G, TX3G to SRT, WebVTT and DVB subpictures)
- EC3+Atmos signaling support
- ALAC support
- Improved DolbyVision muxing
## Media player
- subtitle delay and position adjustment
- audio delay adjustment
## MP4Box
- allow numbers and media types as identifiers for track actions
- dlba option to update atmos+ec3 signaling
## Filters
- UTC-based range extraction in reframer
- Thumbnail generator filter
- Added unframer filter
- FFMPEG bitstream filters support
- initseg support in mp4dmx filter
- Access to GPU textures of decoders in Python and JSF bindings (glpush filter for tests)
- Chapters editing and original timestamp dispatch in reformer range extraction
- dual in-band and out-of-band parameter set support in dasher
- non-blocking IO for RTSP and HTTP servers/clients
- RTSP over HTTP in rtsp server
- Source-Specific multicast for udp and rtp inputs
- User Authentication for HTTP and RTSP servers
- TLS support for RTSP client and server
- Per-filter buffering options
## Encryption
- ClearKey support in dasher and decryption
## Misc
- QT metadata tags in MP4Box and qt muxer
- support for some packet properties in URL templates
## DEPRECATED
- Removed GF_Terminal API
- Removed MP4Client, merged old behaviour in gpac -mp4c
- Removed osmo4ios, direct compilation of gpac is now used on iOS
- Removed Android Osmo4 and MP4Box, replaced by GPAC for Android which can run GUI as well as MP4Box and gpac command lines
- Removed filemode option from dash demure
# 22/02/2022: GPAC 2.0
## Adaptive Streaming
- Low Latency HLS (LL-HLS, generation and playback)
- Custom forwarding modes of DASH reader, allowing for example to encrypt/decrypt a live DASH/HLS session
- DASHing now possible using inband cues (generated by flist, dashin or dasher filters)
- Cue-generation only mode for dasher
- HLS/DASH signaling of intra-only representations
- playback improvements for SRD (HEVC tiling and independent streams)
- CMAF-compatible signaling
- PPS injection for inband parameter set modes
- Improved SmoothStreaming support
- DASH period continuity support (from playlists or reframer)
- DASH MPD Chaining support
- Text segments in native format (WebVTT, TTML) in dasher
- User tags injection for HLS master and variant playlists
## Image File Format (HEIF)
- Grid creation and other derived images
- Encryption
- Time range in -add-image
- Item to sample data reference (no copy)
- Item to item data reference (no copy)
- Generic auxiliary image tagging
- Image replacement in HEIF collection
- AV1 (AVIF) and VVC support
## MP4Box
- In-place editing (no file remultiplexing)
- Improved splitting, including sample-accurate split
- ISOBMFF edit lists modification through :edits and -edits options
- Track extraction from non ISOBMFF sources in MP4Box
- Most import options can now be applied on an existing ISOBMF file or track
- Multiple filter chains per source in -dash or -add modes
- Chunk interleaving dumper
## Filters
- Simplified gpac command line (backward compatible syntax) avoiding links directives for common cases
- Added avmix, a playlist-based audio video mixer/compositor with GPU or software rendering
- Python bindings for filter session
- NodeJS bindings for filter session
- Custom HAS adaptation algorithms (JS, Python and NodeJS)
- Custom Remotery callbacks (JS, Python and NodeJS)
- Added avgen, a simple counter generation
- Splicing support in playlists: raw and compressed domain, vod and live splicing
- Tile splitting now available as a filter
- Added restamp, a stream timestamp rewriter filter
- Added bssplit and bsagg, compressed bitstream splitter and aggregator filters
- Aspect ratio support in rescaler (ffsws)
- Raw (uncompressed) modes for flist and reframer
- Flip and rotate in vout
- Simple UI for vout to test seeking and speed modes
- Improved color space support in rendering (OpenGL only)
- Improved round-trip audio decode
- Improved audio resampler
- Added back old arch compositor features (TEMI support, HEVC tiling JS monitoring, MPEG-4 SegmentDescriptor)
- Reading back frame interface data (GPU, decoder mem) in JS or Python sink filters
- Memory storage in httpout server file sink
- FileIO wrapper available in QJS, Python and NodeJS
## Protocols
- HTTP/2 (client and server) through nghttp2
- ROUTE multiplexer and low-latency ROUTE (mux and demux)
## Media Formats
- Improved MPEG-H audio mux/demux/dashing
- VVC parsing, inspecting, mux/demux (ISOBMFF, M2TS), RTP, DASH and encryption
- VUI color info rewrite for AVC, HEVC and VVC (mp4box and bsrw filter)
- Dolby TrueHD
- DolbyVision muxing
- Improved multichannel AAC (>=8) support
- Improved raw video in ISOBMFF support
- Bitstream dumping for inspect analyze mode
- Improved TTML support: metrics, image embedding (IMSC1), TTML sample merging while exporting, subtitle zero in TTML
- YouTube VR meta-data
- yuv4mpeg format read/write
- Extended NHML syntax for properties, reconfiguration, subsamples and sample auxiliary data
## Encryption
- Multi-key per sample encryption
- HLS full segment encryption and decryption
- Per-segment or per-period key roll
- Master/leaf key schemes
## Misc
- Improved HTTP rate limiter and chunk-transfer rate estimator
- Cleanup of mod-dirs and js-dirs usage, JS filters can now be included in the default available filters
- Support for windows long path
- Moved to latest QuickJS (2021-03-27)
- Added QJS-libc modules, support for exec/waitpid/kill and Workers on most platforms
- Support for FFmpeg 4.4 +
- many bug fixes, improvements and security patches
# 10/09/2020: GPAC 1.0.1
This release fixes build and installation issues in 1.0.0, as well as various bugs introduced during the migration to the filters architecture.
It also adds several small features:
- better ttml import
- better support for MPEGH audio
- support fur DASH UTCTiming
- manifest generation from pre-fragmented DASH/HLS mp4
- speed optimization in isobmf reading (normal and fragmented)
- improved JS API for the filter session
- core tools exposed as JS module (file io, bitstream, etc ...)
- android fixes
# 16/06/2020: GPAC 1.0
- Complete rewrite of GPAC streaming core:
* addition of a filter-based architecture, used by MP4Client and MP4Box.
* moving all decoders and demuxer plugins of MP4Client and most of MP4Box import/export code as filters for this new architecture,
* moving DASH/HLS segmenter to a filter
* moving MP4Client compositor and most of the GF_Terminal internals to a filter
* addition of a new application gpac, whose only purpose is to create and run filter chains
* removal of MP42TS and DashCast applications since these functionalities are provided by gpac
* deprecation of some features (widget management, MSE draft implementation for SVG media, UPnP, TEMI player support).
- Profile system allowing to override through a static file default options of all filters and libgpac core
- Alias system for gpac app to simplify your command lines
- Enhanced DASHer:
* Support for HLS and dual HLS / DASH generation
* Support for any input
* True low-latency mode for DASH
* Support for multiple periods
* Support for other segment formats (raw, mkv, webm currently tested)
- Input and outputs
* Generic pipe, TCP, UDP, and Unix Domain socket input and output
* RTSP server output
* HTTP output (client and server), supporting low latency DASH access
* Ad-hoc stream format called GSF to allow serialization to file, pipe or socket of a session (for distributed filter chains), supporting AES-128 CBC encryption.
- Raw audio (PCM) and video (RGB, YUV) reframers and exporters
- HEVC tile splitting and merging filters
- Compositor is a standalone filter (SVG/BIFS/VRML graphics in a filter chain)
- Image encoding support through libjpg and libpng
- Full FFMPEG support:
* Encoding/decoding through FFMPEG libavcodec
* Multiplexing/demultiplexing through FFMPEG libavformat
* Device grabbers through FFMPEG libavdevice
* Raw audio and video filters through FFMPEG libavfilter
- Support for QuickJS (ES2002) and bindings for:
* Complete filter API
* GPAC software rasterizer (EVG)
* WebGL 1.0 Core
* XmlHttpRequest and uDOM APIs
* Storage
- Inspect and analyze filter
- MPEG-2 TS splitter
- Video cropper filter with zero-copy mode
- Video flip filter
- Source concatenator filter
- Simple audio and video output filters
- Experimental audio and video rewinder filter
- Encryption
* On-the-fly encryption and decryption, now available as filters
* Segment-based encryption and decryption
- ISOBMFF
* box customization
* Better QT support, prores parsing and dumping
* Support for raw media (QT style or ISOBMFF for audio)
* Simplify HEIF batch conversion through item to track mapping
* Reading from pipes (fragmented or progressive files)
* Writing to packets rather than files
* Fast interleaved file creation mode with less storage requirements
- FileIO wrapper for cases where files are not stored in a file system known by GPAC
- Testing and Documentation
* Live doc generation (man and wiki)
* Improved coverage
* Split test suite as dedicated repo
* Moved all resource to https://wiki.gpac.io
* Started howto pages on wiki
* Many bug fixes
27/06/2019: GPAC 0.8.0
- General
* Many security fixes (static compile and fuzzing through AFL, always ongoing).
* Many bugs fixes
* Added :ncl option in log levels to disable color logs
* More tests and coverage
- File Formats
* Better support of QTFF / ProRes files
* Support for AV1
- import and export
- source formats: OBUs (Section 5), IVF and AnnexB
- AV1 in HEIF
* Support for color (nclc, nclx and ICC profiles) in HEIF and ISOBMFF
* Support for HDR (mdcv, clli) info in HEIF and ISOBMFF
* Support for alpha in HEIF
* Support for enforcing pasp presence even for 1:1 ratios
* HEVC temporal sublayer split in MP4Box
* Allow meta storage before mdat for meta-only files (heif and co)
* Added option to keep AU delimiter in isobmff samples
* Support for opus import
* Support for pixi and ccst in HEIF
* DolbyVision 'dvcC' and partial 'dvhe' boxes for HDR
* Support for VP9 import and playback
* Sample dependency in avc and hevc importers, and track thinner for non-refs images
* Support for audio_roll signaling
* New audio import mode to control AudioSampleEntry creation (v0, v1 ISOBMFF, v1 QTFF)
* xHE-AAC import with detection of sync samples
* Added support for MPEG-H 3D audio boxes (no import yet)
* Handle Vobsub empty SPU packets
* Added auxv and pict support
- Common Encryption
* Fully compliant CENC supporting cenc, cens, cbc1 and cbcs
* CENC for AV1
* Improved DASH+CENC support, pssh in MPD
* ForceClear mode for CENC to skip encryption without sample groups
* Made senc in movie fragments always stored before truns
* Added default values handling for cbcs and possibility to set protection system per track
* Compatibility with OpenSSL 1.1.x
- Streaming and Adaptive Streaming
* Support for ATSC3.0 both US and Korean versions !
* Support for for live splices (xlink period insertions) in DASH client
* Automatic period continuity in DASH when no codec change between periods
* Added DASH cue-base segmentation (XML based) and -dsap option to generate cue files from source
* Support for BBA-0 and BOLA implementations
* Write fragment defaults in trex even when not using them
* Support for simple ssix for keyframe data byterange at the start of a segment
* Moved segment template at AdaptationSet level if only one representation
* Changed default bsmode in dasher if single input file
* Added init-seg-ext option
* Added -mvex-after-traks option to MP4Box when dashing for CMAF
* Added segmentation option to insert a tfdt per traf
* Added -closest mode for DASH segmentation
* Added -bound option to use audio segmenting method for video
* Renamed -dash-run-for to -run-for
* Added '=' in dash templates
* Improved bandwith estimation when using HTTP 1.1 chunk transfer
* Add option to force moof base offsets
- MP4Box
* Added -catpl to concatenate from playlist in MP4Box
* Added options to set movie timescale at import and dash time
* Added mpd rip option and top-level box compressor in MP4Box
* Made -dts skip timing check and added -dtsc for that
* Made force-cat option more agressive
* Support for MovieFragmentRandomAccess using -mfra option
* Added -dtsx to dump timing without offset
* Added -dnalc opt for nal CRC dump
* Added chunk extraction up to time until end
* ISOBMFF single track import now removes references by default
- Decoders
* Updated ffmpeg to 4.0.2
* Moved to openHEVC 3.0 API
* Added nvdec support (windows, linux) with reuse of decoder context for tiled VR
* Added HEVC support to mediacodec on android
* AV1 playback through ffmpeg
* Opus playback through ffmpeg
- 3D, VR and 360
* Added vrhud for multiviewpoint 360
* Added forced visibility mode of tiles in VR
* Added tile visibility debug mode
* Added forced stereo output for openhevc
* Disable face nav if mouse grabbed
* Added simple face tracking vr navigation based on udp commands
* Added PSVR support
* Added mouse move emulation at window border to force sphere rotation when inactive
* Changed tile visibility algo to sample points in mesh
- Players (Mobile and Desktop)
* Added about extension
* Added multiple audio objects in dynamic scene
* Added addon splicing of main content
* Added mosaic://v1:.:vN url support
* Added gaze simulation through mouse and gaze-sphere visibility test
- Subtitles
* Allow * as argument of -srt|ttxt to dump all possible tracks (#925)
* Improved support for WebVTT import
* Improved support for WebVTT DASHing/fragmentation
- Misc
* OSX install now done through PKG and modify PATH env in/etc/paths
* Added initial PMT version and disc marker to TS muxer
* Moved dektec output to matrix API, added SDI clipping
* Added temi periodic toggle and manual toggle in MP42TS
# 26/04/2017: GPAC 0.7.1
- Full changelog at https://github.com/gpac/gpac/wiki/GPAC-0.7.0
- Many security fixes (static compile and fuzzing through [AFL](http://lcamtuf.coredump.cx/afl/), always ongoing)
- Colorized log.
- Fix pkg-config Private.libs.
- Changed default audio volume to 100% instead of 75%.
- Expose more experimental options through the [documentation](http://htmlpreview.github.io/?https://github.com/gpac/gpac/blob/master/doc/configuration.html).
- Improved GLES renderer on mobile platforms
- YUV422 and YUV444 8 and 10 bit support in GLES renderer
- Improvements on AVI dump.
- SAT>IP modified RTSP client.
- Added L-HEVC File Format support (SHVC/MV-HEVC tracks and HEVC Tile Tracks).
- Added MPEG IFF (image File Format) support.
- Range extension support for AVC and HEVC.
- SHVC and MV-HEVC importers and playback: moved to final spec version (SHM6+).
- Support of HLS with fragmented MP4 playback.
- APIs: gf_mpd_() functions and new segmenter API.
- Improved alternate groups.
- More support for PIFF PSEC and Smooth Streaming ( file format & playback).
- DASH client: pluggable algorithms + improvements with scalable contents.
- The counter source from the DASH sequences added to the public content.
- HLS and DASH playback minor fixes.
- Cleanup of DASH client logs.
- Added support for DASH SRD in 360 for independent videos videos (NxM partial spheres) [more](https://gpac.wp.imt.fr/2016/05/25/srd/)
- Added support for DASH SRD in 360 for HEV Ctiled videos (NxM tiles on one sphere) - [checkout tuto](https://gpac.wp.imt.fr/2017/02/01/hevc-tile-based-adaptation-guide/)
- Apple VideoToolBox hardware decoding support for OSX and iOS for AVC|H264.
- Android hardware decoding hardware acceleration for AVC|H264 (HEVC on its way).
- Android build is based on Android Studio.
- Android: new File Manager.
- Import of TTML via NHML according to MPEG-4 part 30 improved.
# 19/02/2016: GPAC 0.6.0
Many things added, improved and fixed - see https://github.com/gpac/gpac/releases/tag/v0.6.0
# 25/05/2012: GPAC 0.5.0
- MPEG-DASH and Apple HLS support in GPAC Clients
- MPEG-DASH segmenter for ISO files and MPEG-2 TS in MP4Box
- MP42TS generator now supports HLS output
- Support for MPEG-U and W3C widgets
- UPnP and DLNA support in the player through Platinum libraries, interfaced in JavaScript
- Better support for AVC and SVC muxing in MP4
- Support for OpenSVC decoder
- Stereo and Multi-view renderer for auto-stereoscopic screens
- iOS and Android support (but Symbian support has been dropped)
- Camera input through "camera://default" URLs on Windows, OSX 32bit, Linux V4L v1 and Android
- experimental audio filters
- Better T-DMB support
- experimental DVB-MPE and DSM-CC support
- BIFS ExtendedCore2D profile support
- more work on GUI
- and many many fixes and improvements in players and MP4Box
# 02/12/08: GPAC 0.4.5
- Support for AC3 in ISO Media, AC3 decoder (liba52) RTP hinting
- Support for MediaAccessEvent (spec still under development ??)
- Added support for user extensions (global class only) in JS through modules - cf gpac_js for sample code.
- Initial support for 3GPP DIMS (file creation and dumping + playback)
* Currently only SVG as overlay is supported for DIMS files, we are not sure about the specification on this topic
* RTP hinting /playback is not supported yet
- Support for SVG foreignObject - all GPAC supported content can be played in a foreign object
- Added automatic switch between 2D and 3D context for VRML/BIFS Inline node
- Basic support for DCCI queries:
* the DCCI object is exposed in scripts as 'DCCIRoot'
* the related document can be specified in GPAC configuration file in the [General] section with the 'EnvironmentFile' key
pointing to an XML file to use as the ontology context
* DCCI's propertyFilters are NOT supported yet.
- Added support for YCbCr OpenGL texturing (only tested with GL_MESA_ycbcr_texture)
- Fixed bugs in OSS audio (100% CPU usage when no audio to play) and ALSA (broken playback)
- Initial support for YUV overlays on Win32 and Linux (Needs XVideo)
* only one overlay at the moment
* Vector graphics /images can be drawn above the overlay if the video output supports dest color keying
- Changed 3D mesh object to be slightly more compact (colors and normal)
- Unified focus model for SVG and MPEG-4. MPEG-4 focus can only be used through tab/-tab (no north/east/.. navigation)
* The MPEG-4 focus is based on the groups (2D/3D) presenting interactive features (sensors)
* keyboard mapping for sensors is:
isOver triggered when focus moves in(isOver=TRUE) and out (isOver=FALSE)
isActive triggered when ENTER key is pressed (isActive=TRUE) and released (isActive=TRUE)
direction keys with or without SHIFT to simulate mouse move
* Layout node is considered as a sensor when scroll_rate is 0, so that the user can scroll the layout
* The focus is by default on the UA (GPAC), not on the content.
- Added support for inplace text edition in SVGT and in MPEG4
* support for clipboard paste at current caret pos (win32, wxWidgets - no WinCE/symbian yet)
* VRML/MPEG4/X3D: this is not standard, enabled with "EDITABLE" present in text->fontStyle->styles.
Added because StringSensor does not allow for in-place editing of the string
- Added support for text selection in MPEG4 (non standard) / SVGT with clipboard copy (win32, wxWidgets - no copy for text+tspan - no WinCE/symbian yet)
- Better support for SVG <animation>, added support for SVG->svg linking (ElementID and svgView) and many svg fixes
- Added support for MPEG-4 over MPEG-2 TS in mp42ts (MPEG-4 SL in MPEG-2 PES)
- Added support for MPEG-4 AAC/LOAS/LATM/ over MPEG-2 TS for import in ISO Media and in the player.
Only basic DVB config is supported for LATM
- Fixed support for AVC/H264 over MPEG-2 TS import in ISO Media and in the player. Only one PPS/SPS is allowed
- Added support for offscreen GL rendering on symbian using PBuffers
- SVG fonts should now be quite stable, but does not support kerning
- Moved all Font modules to the new glyph-based architecture
- Moved SVG text to new glyph-based renderer, added support for OpenGL drawing and textured mode
- Added support for AVC/H264 in mp4_streamer
- Added support of MPEG-4 systems over MPEG-2
- Added extended version of "-node" switch in MP4Box, to get the list of possible nodes. For insatnce, "MP4Box -node Anchor.children"
- New glyph-based font manager
- Misc fixes in SVG rendering with OpenGL
- Renderer modules have been removed from GPAC. The new integrated 2D+3D renderer has been moved to libgpac and is now
called "compositor". Some renaming has been done in the process to clarify a bit some functions.
NOTE: EVC3 and MSVC8 projects have not been updated yet
- added support for TrackSelection (tsel) - (c) 2007 ENST & RresonateMP4 - cf MP4Box -h general
- added support for PASP in ISO files
- misc fixes in render_full module
- committed patch fixing VobSub extraction bug
- added support for http playback in ffmpeg demuxer
# 31/05/07: GPAC 0.4.4
- Added support for XMLHttpRequest for both VRML/MPEG-4 and SVG. All methods should be supported, but only GET/HEAD have been tested
- Added a basic subset of DOM Core for xml doc (XMLHttpRequest, SVG) and moved the uDOM implementation in it.
- Added support for SVG focus & navigation in 2D renderer
- new SVG scene graph implementation with much lower memory usage
- Updated LASeR to new SVG implementation and fixed many bugs in codec
current LASeR binary version should now be in sync with the latest spec (IS+COR, AMD still to be done)
- Added support for some LASeR tools:
- conditional
- clipBegin/clipEnd and syncReference on audio/video elements
- WARNING:
* other LASeR (non-SVG) v1 elements and all v2 elements are NOT supported
* LASeR save/restore and sendEvents are NOT supported
* SAF handling is likely not conformant yet
- Moved default SVG implementation to dynamic attribute allocation
- ALSA output module
- DVB support for Linux - connection URL is dvb://ChannelName, cf doc/configuration.html
- Moved ISMA decryption to run-time module for basic DRM tests
- Added support for NAT Keep Alive (RTP streaming only)
- Two new test apps:
mp4_streamer: RTP unicaster/mulitcaster
mp42ts: MPEG-2 TS sample gateway, can output to file or to RTP. Supports ISO file and SDPs (RTP only, no RTSP) as input.
- Changed default behavior in MP4Box when adding AAC-SBR with explicit signaling: full SBR Samplerate is now used in media track.
- Added JP2 and MJP2 support for mux/demux and playback - latest version of openjpeg (1.1) used for decoding (Win32 only).
Win32 user: if you don't want to install openjpeg, remove GPAC_HAS_JP2 from img_in project settings
- large code rewrite in scenegraph and 2D renderer to lower memory usage
- added support for OMA DRM2 packaging in MP4Box (doc to come)
- Symbian OS now supported. Build instructions are in doc/INSTALL.symbian. Network is NOT working on symbian yet
- Major speed improvement of XML SAX parser
- added unthreaded mode in MP4Client (-no-thread switch) to test behavior on symbian
- added fullscreen startup mode in MP4Client (-fs switch)
- better handling of iTunes tags in MP4Box (set/get) and in players (title display)
- added support for multiple RTSP sessions in an SDP description
- added support for faked broadcast mode in SDP (forbids any timeline control by player except initial play/final stop)
syntax is (in media SDP section, per stream): a=gpac-broadcast:1
- added ffmpeg support for WinCE devices (ffmpeg for WinCE is available in gpac_extra_libs)
- added GPAC log system
- moved key/mouse event subsystem to DOM3 model
- Fixed handling of QT V1 and V2 audio descriptions
- Misc source code reorganization for RTP (depacketizers now in libgpac, no longer in plugins)
- Fixed support for IPV6 and for multicast (IPV4 and IPV6). Some issues remain with IPV6 on Win32 XP, so IPV6 is disabled by default on Win32
- Fixed handling of negative delays when adding/appending media tracks with MP4Box
- moved ffmpeg headers to latest CVS version (05/01/2007).
- fixes in MPEG2 TS import and demuxer
- added detection of FPS for raw AVC import when present
- fixed a display freezing bug in osmo4 for PocketPC 2003.
- added support for svg animation and svg use with external resources
- cleanup of MPEG-4 RemoteOD + support for segment identifiers at scene level
- some workarounds for iPod file producing (special UUID needed) (-ipod option, auto on for .m4a and .m4v extensions)
- added windowless mode on Win32: transparent background color is defined in the config file ( [Rendering] ColorKey )
- major speed improvements in MPEG-4/VRML scripts and SVG uDOM regarding node creation
- and a lot more bug fixes...
# 21/07/06: GPAC 0.4.2
- commit of GPAX (GPAC ActiveX) - controller only works in IE and ActiveX control tester for now.
- API changes to Osmozilla to keep in sync with GPAX. Sample html file can be found in applications/GPAX.
- both plugin now support browser navigation (ie link to html within MPEG-4 content)
- Plugins can be used to modify the presentation from a parent HTML doc
- check sample files in regression tests for more details
- iTune tagging support, (patch from Andrew Voznytsa with slight modif). Tagging can be done with MP4Box -itags option. The tags are passed in a single string, separated by ':', formatted as 'tag_name=tag_value'. Supported tags names are: album, artist, comment, compilation, composer, created, disk, encoder, genre, name, tempo, track, tracknum, writer.
NOTE: to make sure you mp4 is importable on an iPod, you must:
- use .m4a extension
- specify the right brands: MP4Box -brand "M4A " -ab mp42
This process is automated in MP4Box for all file with extension .m4a
- added MPEG-1/2 raw importing (extensions: .m1v and .m2v).
- cleanup of all Makefiles:
no more recursive makes for libgpac
gpac can now be compiled outside the main source tree with gcc, eg $ ~/cvs/test>../gpac/configure
- Support for VobSub import and export (.idx) thanks to a great patch from Falco !
- initial version of MPEG-2 TS demuxer (MP4Box and client plugin)
program-based import for MPEG-2 TS streams (MP4Box -add file.ts#program=ProgName).
- initial IPV6 support
- MP42AVI is now deprecated. MP4Client can now be used to produce uncompressed bmp/raw/AVI, dumping the complete presentattion rather than just BIFS scenes (audio is currently not extracted). Usage:
MP4Client -bmp 1-2.5-3 file.mp4 take screenshots of file.mp4 aty T=1, 2.5 and 3 seconds
MP4Client -avi -fps 15.0 -size 176x144 file.mp4 produces an uncompressed AVI of resolution 176x144, framerate 15
MP4Client -avi 4-10 file.mp4 produces an uncompressed AVI of the scene between 4 and 10 seconds
Check MP4Client man page for more details.
- added support for major brand versioning in MP4Box: "-brand GPAC:2" will set the major brand to GPAC, with a version of 2.
- regression tests (.bt and .x3dv) are now part of GPAC source tree
changed all audio and video media in regression tests.
- added 2D/3D selection param for osmozilla: use3d="true" or use3d="false" to force renderer used.
- added support for importing AMR/SMV/EVRC file missing their magic number
- moved all language handling to both ISO 639-1 (2 char code) and 639-2 (3 char code), as 639-1 is used in SVG.
- removed old XML parser, all parsing now relies on a new GPAC SAX parser (avoid dependency on libxml when unneeded).
- support for progressive loading support for XMT and X3D files.
- new svg_in module using gpac sax parser (supports progressive loading too)
- cf configuration.html or man gpac for more info on progressive loading control
- added 'define' support in BT - to use it just do:
#define symbol blab labl a
and reuse the symbol in the BT text. This may be quite buggy, but it can be useful
- support for Scene Carousel in hinters, core and rtp reassembler. Currently only BIFS and BIFS+AV can be use the scene carousel, carouseling of
static data (eg images) is not supported. The OD data must be embedded in the IOD a la ISMA.
- added FPS and size info dumping for MPEG and AVI file import (MP4Box -info file.mpg)
- improved 3D renderer while checking the X3D conformance suite
- changed MPEG-4 SP -> AVI to add VOSH before each I-frame
- Experimental support for LASeR (encoder, decoder and decoder module).
- Far from behing complete or usable at this time, binary syntax not 100% safe and COR to standard is in edition stage...
- LASeR RAP generation in MP4Box
- added SAF (LASeR Simple Aggregation Format) support: mux and demux (MP4Box) + SAF input plugin.
Basic LASeR usage:
encoding: MP4Box -mp4 file.svg, MP4Box -saf file.svg
decoding: MP4Box -svg file.mp4, MP4Box -xsr file.mp4 (dumps to LASeRML format)
- added patch from FT R&D for simple anim mask encoding needed for FAP/BAP streams on FDT/BDP nodes.
- added patch for drift-controled interleaving (interleaves while trying to keep chunk synchronized). This is now the storage mode of MP4Box, old interleaving is possible with -old-inter option.
- added support for tight interleaving without hinting in MP4Box.
- added support for delayed concatenation (-cat file.mp4:delay=2000 test.mp4)
- added "-name" option to MP4Box (track import and general cmd line opt) for setting the track handler name
- More SVG improvements and features:
- support for SVG scripting (ecmascript through SpiderMonkey) - a good subset of microDOM is supported (!! presentation traits are missing).
- support for SVG events (DOM)
- support for SVG scene dumping
- SVG Tiny 1.2 gradients + gradient matrix (1.1 feature)
- SVG.preserveAspectRatio support
- system color paint
- basic conditional processing (switch)
- SMIL anim events (begin, end, restart)
- added PAR modification support to MP4Box (import time and file based)
- improved precision of IsoMedia file splitting
- added NHML import/export. NHML is an XML representation of the NHNT file, with add-ons and a more flexible way of integrating media. Doc to come on web site
- clean-up of 2D direct rendering mode:
* no more bounds tracking for less memory usage
* automatically mode switch to direct rendering when using slide navigation (pan&zoom)
- clean-up of soft raster:
* removed all bezier curbs handling, let gpac core handle those
* paths are now always flatten to reduce rastering times
* misc optimizations of scanline converter (no more Y-sorting, only X-sorting used)
- speed improvements in BT/WRL loader
- updated makefiles for compilation under GPE
- made FreeType plugin log unknown fonts in general cfg file to speed up font selection.
- changed module naming - all modules are now prefixed with "gm_", and module is loaded/unloaded at run-time
- changed isomedia file open API for better support of temporary directories
- simplified 2D blitter for non DirectX output: no more in-middle surface used, direct stretch, blit and yuv conversion to back buffer
- added software and hardware support for MaterialKey in 2D renderer
- Support for SP2003 and PPC2003
- added all project files for evc4
- added osmophone to gpac/applications, demo player for Smartphone devices (tested on SPV C500 and PocketPC)
- support for GDI drawing on WinCE to avoid weird menu behaviour in windowed mode
- added support for OpenGL-ES in 3D renderer, in DX and in GAPI plugins
* tested with Hybrid Graphics and Vincent3D implementations
* Klimt could compile but no decent results
* Result tested on PocketPC/SmartPhone 2003 and regular windows
- added LASeR XML to SVG loader
- improved SRT -> 3GPP convertion - now accepts any number of <b>, <i>, <u> tags at random places.
- fixed AVC/H264 parsing (pic size detection on interleaved stream and cropping were broken)
- fixes on X3D scene parsing and dumping
- fixed mp4 root OD creating when fragmenting file (PLs were not copied over)
- fixed bug in large MP4 file (> 4GB) writing (chunk offset table was corrupted)
- fixes in InputSensor handling.
- fixes in XMT proto+script parsing
- fixed ISOMedia track duration in case of ctts table
- fixed PAR issus at import time setting wrong track sizes for visual media.
- fixed handling of 64-bit timing in GPAC (clients and MP4Box). Impacts on a few APIs (libisomedia, scene manager and terminal).
- fixed bugs in BIFS RAP generation (BT and XMT-A loaders)
- fixed support for node insert and delete in laser
- fixed AVC import bug with multiple PPSs per stream
- fixed stts bug in file concatenation (first inserted sample had a wrong duration)
- fixed v5 and v7 MPEG-4 node templates
- fixed ttxt extraction (fontID was missing in styles)
- fixed MP4Box -add file1 -cat file2 use case (broken CTTS compute)
- fixed 3GP brand when using AVC (3GP6 shall be used)
- fixed misc issues with text import/info display on track sizes and 3GP text track importing.
- fixed bug in gradient raster (spread/pad/repeat modes were broken)
- fixed bevel stroking bug and many SVG rendering ones
- fixed bug in MP4Box track concatenation of MPEG-4 user streams
- fixed bug in meta items storage (existing items were corrupted on file rewrite)
- fixed splitx option to support end times larger than file duration
- fixed globalQP context loading issues
- fixed display bug when switching between MPEG-4 and SVG scenes
- fixed absolute URLs handling on WinCE devices
- fixed redraw bug in 2D renderer for simple video drawing (background was always repaint regardless of video transparency)
- fixed UTF8 vs Win-CP text handling (BT and XMT parsers, subs->bifs and subs->ttxt converters)
- fixed bug in unknown stsd boxes handling
- fixes for gpac compilation on 64 bits platforms
- fixed bugs related to cache in file downloader
# 03/08/05: GPAC 0.4.0 RC2
- fixed Invalid versioning of previous release (was still 0.4.0-DEV...)
- fixed MinGW compilation
- fixed MP4Box handling of full MSDOS paths (C:\)
- fixed GCC 4 compilation issues
- added MacOS X (DARWIN) compilation patches
- fixed OSS audio compilation (seems to perform perfectly on 50% of systems tested and dramatically fail on the rest...)
- fixed MP4A-LATM support at client side
- fixed X11 module in embedded mode (should work well with both Osmo4/wx and Osmozilla)
# 28/07/05: GPAC 0.4.0 release
** GPAC is now licensed under LGPL. **
Massive code rewrite and repository reorganization in order to comply to some base coding style (cf gpac/doc/CODING_STYLE) have taken place
since previous release. Documentation is still a work in progress.
APIs are not backward compatible, but should now be in a frozen state/spelling for the most common tools (utils, MPEG-4 OD, IsoMedia and terminal APIs)
- Fixed FAAD multichannel support with latest FAAD CVS version (bug due to FAAD inner channel creation). Latest version should
support both multichannel and AAC radios.
- added support for normal drawing (for debug purposes) in 3D renderer
- adedd support for single instance of Osmo4/w32
- changed audio configuration options to "Number of buffers" and "TotalDuration"
- fixed old bug in audio renderer screwing up the audio from time to time
- moved ffmpeg to latest CVS version (25/07/05). THIS VERSION IS NO LONGER COMPATIBLE with previous ones used in GPAC, update
your binaries!! Also updated ffmpeg plugin to new ffmpeg API
- moved all fullscreen handling to dedicated windows, refinement of wxOsmo4.
- more work on x11 plugin (events handling, 3D support) - THIS IS EXPERIMENTAL AT THIS RELEASE LEVEL, CHECKOUT CVS FOR BETTER SUPPORT...
- fixed anamorphic video handling in GPAC, both playing (2D and 3D) and MP4Box parsers (only done for MPEG-4 Visual, not AVC). Video is
now only rescaled at blit time
- changed ';' separators to ':' seprators in MP4Box (meta options and track import options) for linux prompt compatibility.
- misc fixes in tx3g track import, tx3g bt dump and couple of issues introduced in 0.3.0->0.4.0 migration
- misc cleanup of GF_VideoOutput interface.
- started doc manager using doxygen (doxyfile added in gpac/doc). APIs may be slightly reworked during the documentation phase.
Documentation will only be produced for libgpac, eg all exported headers in gpac/include/gpac
Development APIs documentation (gpac/include/gpac/internal) will come later.
- cleaned up IsoMedia reading for more efficient and more reliable parsing
- misc fixes in MP4Box option parsing, in RTP multicast setup
- Osmozilla should now be much more stable on Win32 - Linux version to come.
# 20/06/05: GPAC 0.3.0 release
- fixed bug in 4GB file writing in interleaving mode
- fixed bug in absolute path usage in MP4Box
- added -cat file*.mpg syntax support
- added support for mass encryption in ISMACrypt drm_file (trackID="*" means all tracks get encrypted with the desired key)
- fixed compilation of wxOsmo4 with wxWidgets+Unicode
- fixed bug in 3GPP text layout when not fully contained in video
- added mapping between OD.ESD.GF_Language and MP4.MediaHeader.Language (BT/XMT <-> MP4)
- fixed bug in SDP playback without RTSP session attached (live casts)
- added language and delay selection at import time (cf MP4Box -h import)
- made -lang able to change all tracks languages by default !erase language specified at import time!
- added -lang option to MP4Box to change track language
- added -delay option to MP4Box to change initil media delay - ALTHOUGH 100% STANDARD, THIS MAY NOT BE SUPPORTED BY SOME PLAYERS
- updated configure for opengl disabling and fixed-point configuration
- misc fixes in ffmpeg decoder and MP4Box ISMA for PAR - this is disabled by default due to some unsolved crashes, cf gpac/doc/configuration.html or man gpac.s
- misc updates in MP4Box meta handling for item extraction.
- fixed MPEG-2 aac importing and info dumping
- fixed 3GPP text display bug when stopping and changing an animationStream using a 3GPP text object.
- fixed AVC/H264 HP parsing
- added BIFS track visual size info at BT/XMT encoding stage
- MOVED FFMPEG INCLUDE FILES TO LATEST CVS VERSION to support AVC/H264 HP decoding
- added meta self reference item for dual-headed files
- commit MPEG-4 LATM Audio hinting patch and added rtp aggregation. RTP reassembler NOT UPDATED YET
- fixed bugs in TeXML parser
- fixed bt/xmt to MP4 encoding for IOD with single BIFS ESD.URLString set
- fixed SVG outline handling and SVG/SMIL anim on appearance/geometry
- fixed svg_loader compilation on winCE (ARM binaries and include to follow in next release of gpac_extra_libs)
- commit of SVG fixed-point version
- Fixed MP4Box spliter crash introduced by MetaBox support.
- Merged MP21 and MP4 handling, added meta support in MP4Box (creation/extraction - cf MP4Box -h meta)
FROM THIS DAY ON, ALL WORK ADDED TO GPAC IS COPYLEFT ENST
# 15/05/05:
- Updated makefiles and configure for MacOSX support
- commit of GPAC fixed-point version - may not be completely stable yet :)
- changed all project files location for soon-to-come EVC4 and Visual .NET support
- changed 2D path object to directly support cubic and quadratic bezier (outliner do support them too), inspired from FreeType.
- MSVC Users: moved to wxWidgets 2.6.0 !!
- more fixes on CTTS in H264/AVC importer (p-frame reorder and some I/B sequences with neg POC)
- fixed last sample duration in mp4 for BIFS/OD/Text
- completely rewrote AVC CTS computing to handle b-refs properly
- fixed improper instanciation of externProto with VRML files not declaring default field values in externProtos
- reworked file splitter to support duration and size based splittings
- fixes in file concatanation
- support for "self" parameter in Anchor to replace only inline scenes on anchors
- fixed H263 raw importer (frame boundary detection and frame size) - changed default H263 frame rate to 15 fps (more used than 25 in 3GP).
- added support for new chaper format: CHAPTERX=HH:MM:SS[:ms or .ms] and CHAPTERXNAME=string
- committed AVC parser patch from bobolobo (SEI parsing and recovery points)
- added support for nero chapters in MP4 ('chpl' box), in MP4Box (-chap file.chp) and selection in players (chapters mapped to MPEG-4 SegmentDescriptors).
note regarding chp files: not sure about file syntax, currently support for (one chapter entry per line):
ZoomPlayer syntax: AddChapter (-fps for import framerate selection), AddChapterBySecond and AddChapterByTime
Regular time code … la SRT: HH:MM:SS[:ms or .ms] [Chapter Name]
SMPTE time code: HH:MM:SS;fr/fps [Chapter Name] - if fps is omitted, use '-fps' if specified or 25 fps default.
- fixed avi packed bitstream flag removal bug with beta versions of DivX.
- fixed bugs in AVC CTTS compute
- wxOsmo4 now single-windowed on win32 with DirectX output driver (SDL one buggy).
- fixed bugs in media exporter for non-MPEG4 streams (AMR & co).
- added '-dts' option to MP4Box - dumps samp num, DTS and CTS for all tracks and performs sanity check of CTS offsets.
- added '-split time_sec' option to MP4Box - splits a simple AV IsoMedia file (no systems, only ONE VIDEO stream supported) into several movies of time_sec duration.
- added '-cat' option to MP4Box - concatenates several input file (IsoMedia or not) to a single IsoMedia file. Same options as -add.
** Streams with different sample descriptions are imported as distinct tracks **
- fixed bugs in OD and IPMPX parsers (ipmpDescrPtr and IPMP_ToolID)
# 30/03/05: GPAC 0.2.4 release
- Added TeXML import (QT XML format for 3GPP text)
- Added SRT extraction for text tracks.
- Added SUB subtitles support (SUB->3GPP text, SUB->BIFS)
- New lifting for MP4Box - nicer progress notifications and help screens.
- changed MP4Box to OVERRIDE FILES BY DEFAULT if '-out' is not specified.
- changed MP4Box to use 0.5sec interleaving storage by default on all operations.
- added file associations for Osmo4/Win32 (not for wx version)
- added volume control and playlist restoring (Osmo4_w32 and Osmo4_wx) as well as fullscreen restoring when changing file through playlist
- added '-unhint' option in MP4Box to remove all hinting from file.
- many rewrite and fixes in WinCE version (Osmo4 and gapi), much more stable and usable player.
- changed SBR import in MP4Box: -sbr for backward compatible HE-AAC (implicit) signaling, -sbrx for non-backward compatible (explicit) signaling.
- added bandwidth signaling in SDP (b=AS:X) for some players compatibility
- added H263 and MPEG4 Visual(CMP) importers in MP4Box
- added extra SDP lines support in MP4Box - PLEASE refer to rfc2327 before complaining :)
- added hinters for QCELP (RFC 2658) and EVRC/SMV (RFC 3558). Not tested (no decoder available) - QCELP hinter works with QT6.5.
- added QCP importer/export in MP4Box and raw EVRC and SMV importers (not tested)
- added support for 3GPP2 extensions in IsoMedia (EVRC, QCELP and SMV config)
- added basic media cache for stream recording (rtp, internet radios). Only MP4 cache available, but other formats possible (plugin)
- added raw samples export and avi track to raw export in MP4Box
- More H264: import/export/rtp hinter in MP4Box, rtp reassembler
- Basic ISMACryp support in client (RTP and file)
- ISMACryp hinter in MP4Box
- ISMACryp support in MP4Box - cf "MP4Box -h crypt" for more details. Selective encryption (sample-based) is supported but not key switching (only one key at this time).
- added smaller version of libmcrypt to M4Systems library for ISMA AES-128 CTR (but kept other algos for future IPMPX usage)
- added simple converter from cubic QTVR to MP4
- added 3GGP AMR NB and WB (float code) plugin (Fixed Point AMRWB is just so slow ....)
- moved 3GGP AMR NB decoder to 600 release (old lib should still be compatible)
- moved to latest official ffmpeg tarball for AVC B-frames decoding support (older ffmpeg versions should still work despite some API changes)
- added IPMPX base code (read/write and BT/XMT dump/parse)
- added chunk encoding in MP4Box (uses 2 input files, one with base scene, one with BIFS updates only)
- changed OGG muxing in MP4 - one single OTI (0xDD) used for all OGG streams - DSI format same as before.
- Fixed bug in CTTS computing in MPEG4 Video import caused by consecutive I frames.
- fixed MPA hinter RTP agregation mode (was always on).
- misc updates in importers, exporters and ISMACryp APIs
- cleaning of ISMA and 3GP related stuff in m4systems, forced 3GP file to be branded '3GP5' for QT compatibility...
- rewrote AMR hinter for RTP agregation, added maxptime hint param for speech rtp payloads (AMR/QCELP/EVRC/SMV).
- Fixed MediaControl/Inline URL changing
- fixed video RTP timescale in hinters for QT compatibility
- fixed language-based alternate stream selection in ODs
- cleanup of m4_config.h (removing all unneeded includes, misc cleanup for FreeBSD port)
- brought XMT-A in line with spec regarding MFString/MFURL/MFScript (parsers and dumpers)
- added support for "od://" in XMT-A urls according to XMT spec
- fixed raw aac export bug
- fixed DIV5 import issues with PLs
# 05/01/05: GPAC 0.2.3 release
- new regression tests (X3D and some other features)
- MPEG-4 playback from BT/XMT now supports proper startTime/stopTime behaviour
- found a port of XVID for WinCE/ARM, removed OpenDivX from distribution (seemed no longer maintained). This XviD port is BTW much faster & more reliable than old OpenDivx
- split codec_pack in xvid_dec, img_in and mp3_in plugins
- fixed ffmpeg H264 support
- scene time for VRML/X3D now complies with spec (VRML uses absolute UTC timing since 1970)
- fixed 3D spot/point lighting bug
- added support for raw AMR file format (AMR and AMR-WB, multichannel AMR not supported) in MP4Box (import/extract) and reader plugin.
- added MP4Box '-tmp directory': forces temp file creation to given directory rather than OS-specific temp file storage.
- integrated the very nice mpeg ps parser from MPEG4IP - MP4Box now supports MPEG PS import to MP4 (ATM only one audio, one video, and only MP3 audio)
- added basic MPEG 1/2 Video RTP hinter and reassembler, checked MPEG files hinted to MP4 compatibility with QT player.
- fixed color transform and texturing issues.
- various fixes due to "dynamic scenes" in RTP stack and ESM module
- fixed copy/paste in Osmo4 address bar, mp4 on http issues, MP4Box -add pbs with IsoMedia
- Freezing TTXT format version 1.0 - documentation avail on gpac.sf.net
- Updated MP4Box documentation on gpac.sf.net to 0.2.3 version.
- Changed NetClientPluggin API (got rid of status query, status handled internally in ESM and in plugin if needed)
- Updated evc3 projects, made M4Systems READ/WRITE on CE to enable timedtext parsing (and future streaming cache, who knows ...).
- Added 3GPP text hinting in MP4Box and 3GPP text reassembler in rtp plugin.
- Bug fixes and testing of 3GP timed text with some 3GP files
- GF_InlineScene now supports MediaControl with mediaStartTime and mediaStopTime
- AAC SBR import now uses backward compatible decoder config.
- 3GPP/MPEG4 timed text decoder - supports everything except soft wrap & dynamic highlighting (karaoke) - vertical text not fully tested
- new "ttxt" format (for "timed text"): XML representation of 3GPP/MPEG4 timed text streams - importer (from ttxt and from srt) and dumper (to ttxt only) support.
- MP4Box "-ttxt" option: converts an SRT file to a TTXT one.
- Input plugin for ttxt and srt files.
- Support for "dynamic scenes", eg gpac will now generate on the fly a scene description when none is found, and allows stream selection in GUI.
- Modified Osmo4 & wxOsmo4 GUI: stream selection & subtitle adding
- Changed MP4Box "-import" to "-convert" ("-import" is kept for backward compatibility).
- Added MP4Box -nosys (removes all MPEG-4 systems streams and writes an empty IOD)
- Added MP4Box "-add": adds any supported format to an mp4 file (same input conventions as -convert). Several input can be specified (ex: -add audio1.aac -add sub1.srt video.mp4 -out full_movie.mp4)
- fixed a nasty bug in RTSP stack screwing up all mediaControl & rtsp session.
- 3D NonLinearDeformer (AFX) support (taper, twister and bender)
- Completed X3D geometry set: LineSet, (Indexed)TriangleSet, (Indexed)TriangleStripSet, (Indexed)TriangleFanSet
- Full multichannel audio mixing and resampling (and better audio speed support). Multichannel->stereo conversion (not configurable atm).
- Yet Another Announcement of a stable ffmpeg demuxer - stable with avi & mpeg, still sync issues with some QT files (same issues with ffplay).
- added SBR mode for aac importing ('-sbr' switch) in MP4Box.
- fixed: MP4Box hinters (empty tracks), SDL -> BIFS coord mapping in fullscreen, rounding segmentDescriptor.startTime pbs in seeking with mp4menu
- Added Playlist and brower-like navigation to Osmo4 and wxOsmo4
- AAC/ADTS file & streaming input (radios) - FAAD decoder moved to aac_in plugin
- ADTS import/extraction in MP4Box
- fixed OD XMT-A for ESD.OCR_ES_ID and ESD.dependsOn_ES_ID (now use IDREFs and not binary IDs)
- integrated ogg lib in gpac (<gpac/m4_ogg.h>), and added ogg/vorbis and ogg/theora importers to mp4 - THIS IS NOT STANDARD AT ALL.
The current syntax is to put needed headers in the MPEG-4 DecoderSpecificInfo, with the following syntax:
u16 sizeof_header;
char *header_data;
for each header (quite similar to what is found in qtcomponents). Vorbis ObjectTypeIndication is 0xDE, theora ObjectTypeIndication is 0xDF.
Need some more testing before filing a request to mp4ra.org.
Streaming possible as MPEG-4 streams, Vorbis RTP packetizer still to be done.
# 09/11/04: GPAC 0.2.2 release
- Xiph OGG demuxer: supports file, http download (not tested) and icecast servers.
- Xiph Vorbis decoder
- Xiph Theora support (should work with fluendo but I can't get any data from the server...)
- Better FFMPEG support (moved to latest ffmpeg cvs tarball).
- all file associations in client are made through mime types, and changed handling of service (mime type query if possible before loading plugin)
- network stats & changed all UIs for that.
- decoder stats & changed all UIs for that.
- nicer Osmo4/wxGTK
- shoutcast support in mp3 reader
- Install doc cleanup
- MP4Box "-single" option now work for 3GP files
- MP4Box "-rem TrackID" option to remove a track
- made 3GP hinter produce QT-compatible streams (as usual QT only accepts specific RTP timescales)
- moved M4Systems to a dynamic lib (static is still first built & used for MP4Box)
- moved all scene decoders (bifs, OD and context loader) to real plugins
- moved BT & XMT parsers from stdio to ZLIB io, in order to support GZIPed VRML & X3D (and consequently, BT and XMT-A ;). GPAC CAN NO LONGER COMPILE WITHOUT ZLIB
- massive cleanups in scenegraph & MPEG-4 node naming convention
- !!!scene graph no longer customizable without code hacking!!!
- X3D scene graph generator (decided NOT TO SUPPORT VRML 97 extensions, since they are in X3D and with a different format...)
- updated vrml tools for X3D support (Double precision coords & RGBA colors)
- culling of AABB tree against frustum at draw stage in 3D renderer - greatly speeds up large meshes & terrains rendering
- support for weird cyclic graphs in scenegraph (mainly to support encoding of conditionals). Works with nodes as well, configurable through scenegraph but this can
likely crash a renderer other than GPACs (tested with blaxxun & old GPAC versions, crash works each time:)
- lighting and transformations now properly set in 3D renderer
- improved gravity (ground detection) and added jump in walk mode (right click or 'j')
- support for streams without systems timing knowledge (non MPEG4), eg streams where timing is computed after decoding (and not given by transport layer) for simpler ogg support.
- support for multiple URL in VRML nodes (including remote script)
- '#Viewpoint' and 'URL#Viewpoint' support in Anchor and Inline - #segment_name is not supported and should not be used (not standard IMHO)
- ColorRGBA support for X3D
- texture generator (only "SPHERE-LCOAL" and "COORD" supported for now)
- XML scene dumper now supports X3D (scene dumping API has changed)
- X3D support in BT and XMT-A loader
- updated 3D renderer & ESM for X3D support
- added X3D geometry2D nodes in 3D renderer
- Anchor.activate now works with no children
- plethora of bug fixes
# 15/10/04: GPAC 0.2.1 release
- massive fixes in javascript (assignment was only 50% working), new faster, less memory-hungry implementation (and Othello reg test now passes!!)
- CreateVrmlFromScript support for VRML content.
- collision detection
- gravity (not really working)
- Layer3D fully supported (including navigation!)
- InputSensor in non-encoded scenes (bt/xmt)
- aabb tree in 3D meshes for faster picking/collision - needs more cfg options though
- user input in composite texture 2D/3D, and completed TouchSensor (hitNormal & texCoords event out) in 3D renderer
- added full blending support in 3D renderer (depth sorting)
- fixed handling of clipers (layout/form) and layer2D.
- added text change checking in spidermonkey to avoid rebuilding text
- support for usual coords in 2D renderer (window top-left in 0, 0 and decreasing y) for SVG integration
- 3D normal renormalization for GL when scaling (eg now there's a proper lighting)
- 4/3 and 16/9 aspect ratio modes now work as expected
- interactions with fullscreen SDL now happen where they should
- LinearGradient and RadialGradient in 3D renderer
- hide all scene context importing through a single ContextLoader object to get first frame and progress info for swf loading in player
- added Orbit navigation mode (orbit around the user look point) & updated interfaces
- massive cleanup of scene handling & decoders to enable run-time modules for scene decoding. APIs have changed, 2 new ones for scene decoders and media decoders
- finished BT/XMT/WRL scene handler and added support for SWF.
- added toolbar for Osmo4_w32 (_wx one to come)
- added PlanarExtrusion hardcoded proto (2D shape extruded by 2D shape)
- added bt/wrl support in MP4Client, update scene graph accordingly to use a single graph & lots of related fixes in ESM
- added texture text support in 3D renderer (graphics plugin being now loaded by main renderer)
- upgraded avilib to latest version from ogmtools (should support OpenDML 2.0)
- updated configure, Makefiles, & EVC3 project files
- textured text support (eg render to texture then blit) in 2D renderer
- ElevationGrid, Extrusion, VisibilitySensor, LOD support
- Sound support (stereo spatializer only) and reworked generic audio renderer for Sound/Sound2D support
- MPEG-4 V5 animators (not complete)
- reworked hardcoded proto mechanism to comply with VRML recommendations - some doc to come soon
- hardcoded proto PathExtrusion for any 2D shape extrusion except Bitmap and PointSet2D - eg EXTRUDED TEXT SUPPORT :)
- fixed Win32 large file support in GPAC, needs testing of AVI importer...
- cleaned up multichannel support, fixed faad channel reordering
- added background support: sky & ground dome, cube image (6 sides)
- added navigation support (WALK/FLY/EXAMINE/ + extra modes a la blaxxun) and user selection in Osmo4/wxOsmo4 and MP4Client
- added animation between viewpoints
- changed handling of empty boundable stacks according to VRML: no more default backColor, and real 3D scenes (top=Group or Layer3D) no longer may use orthographic projections
- normal smoothing for IFS.
- full lighting support (spot, point and directional)
- fog and billboard support.
- basic AVC support in MP4 (only AVCSampleEntry and child atoms)
- VRML/MPEG-4 interaction sensor support (added ProximitySensor, SphereSensor, PlaneSensor and CylinderSensors). still some work to do on TouchSensor hitNormal & hitTex
- SWF parser updates: PlaceObject2 and defineShape2.NewStyle bugs, support for soundStream
- added user interaction in 3D renderer (ray casting) in both ortho and projection modes
- frustum is now only recomputed when change in size or viewpoint
- viewport/viewpoint selection to osmo4/wxOsmo4 GUIs
- BT parser supports basic VRML (uncompressed .WRL should now be imported fine)
- plethora of bug fixes
# 02/09/04: GPAC 0.2.0 release
- updated cfg file doc man pages & makefiles
- massive re-arch of renderer(s) to be able to load at run-time either 2D or 3D renderer, instead of static linking
- new 2D and 3D renderers
- re-organized development headers
- added basic file<->plugin association by file extension (cf doc)
- Osmo4/wxWidgets version in Applications/Osmo4_wx
- put zoom & pan back in place in 2D render plugin
- fixed V4Studio (upgrade to wxWidgets 2.5.2)
- MP42AVI supports 3D scenes duming
- updated templates for v5 & v6. WARNING: it seems that some nodes will be removed from v5 (AFX COR) which will invalidate v6 bitstreams
- still more fixes related to scenegraph arch changes
- reworked importers & exporters
- updated new regression test suite (no 3D yet)
- bug fixes in MediaControl, MediaSensor & inline scene control
- more fixes related to scenegraph arch changes
- cleanup of SWF importer:
* shape importing is OK, gradient so-so (wrong matrix mapping), no bitmap fill
* font & text OK.
* sprites should work
* sound work - sound stream not done yet
there will likely not be any new SWF feature supported, ActionScript & buttons are out of scope for GPAC.
- added swf support from MP4Box (cf -swf switch)
- fixed XMT-A syntax of script and proto SF/MFNode field, and BIFS/XMT UTF-16 support
- fixed avg/max rate compute on large files for AVI and MP3 importers
- Background2D texturing uses hw blitter when possible (2D renderer only)
- better inline scene & segment descriptors handling
- encoding of IOD extra descriptors now supported
- configure script fixes
- changed all 3D handling, encapsulating all GL calls in a single file
- moved all primitives in 3D renderer to use a single mesh object (rendering done through vertex arrays)
- added IFS, ILS, Sphere
- optimized AVI importer, fixed vbr mp3 in avi import
- changed scenegraph:
* all nodes now keep track of their parents in order to signal sub-tree changes for frustum culling
* no more "SimulationTime" used in scenegraph, using node modif flags instead
* updated 2D and 3D renderer accordingly
- added support for rectangular textures in GL (most graphic cards support this, at least on win32)
- added frustum culling
- added SFTime->SFString formatting in valuator (current MPEG-4 COR)
- plethora of bug fixes
# 11/05/04: JLF: dev version 0.1.9
- changed source code architecture: rendering code is now in a dedicated static link outside libm4systems
- intergated draft 3D renderer:
- Most 2D features have been ported to the new renderer (missing: viewport, colorTransform and gradients)
- no user interaction, no viewpoint, no background, no lighting, NO ETC !!!!
- Box, cylinder, cone working
- texture mapping working (still images and video)
- changed video plugin API accordingly
- changed graphics API: all path handling (building & flatening , outlining & dashing) moved to authoring subproject
- changed font API: no more graphics driver used to get font outline
- cf install documentation to recompile.
- updated all node tables to COMPLETE BIFS (eg all nodes from v1 to v6)
- updated v6 template & code to final amendment version
- fixed inline scene start/stop when modifying inline URL.
- updated TODO :)
- uploaded ultra basic SWF convertor (so that it doesn't get lost on my hard drive:)
- plethora of bug fixes
# 28/04/04: GPAC Release 0.1.4
- MP4Box avi import fixes (key frames, VOL removal, n-VOP handling)
- Fixed MP4 and NHNT importers (visual tracks sizes)
- MP4Box avi extractor for visual tracks
- XMT-A parser fixes (unicode, DEF routes, proto namespaces)
- better ExternProto resolving
- added VRML addressing (eg url "protolib#protoName" and "protolib#protoID")
- added pause/resume in Layout scrolling
- fixed rendering of layout nodes (layout, Form and Layer2D) in layout nodes
- fixed port reuse bug: 2 instances of the client may now use RTP streaming (UDP or TCP) at the same time
- fixed video Profile and Levels handling (was old 2000 spec version)
- added -merge option in MP4Box (merges 2 files into a single AV file)
- Fixes in SDL surfaces handling
- better "end of presentation" support
- plethora of bug fixes
# 18/04/04: JLF: GPAC Release 0.1.3 rc2
- MP4Box default hinting is now QT compatible - b-frame hinting support
- DecodingBuffer and CompositionMemory occupancey in ODInfo
- layout text splitting (word boundaries only)
- linux install and man pages
- OCR stream support in (authoring/playing) - only tested with MP4. MediaControl supported on OCR
- MP4Box B-frame import now works with data referencing
- fixed many seeking and buffering issues
- multi-framed audio units (needed for most formats understood by ffmpeg demux)
- multiplexed input streams now properly setup
- networking under linux (http and rtp)
- fixed udp streaming on win32/winCE, rtp reordering (was never on), default udp buffer size.
- changed config file for reordering
- changed audio driver interface (retrieve the HW config on setup for SDL) + some audio resync addons
- support for console events detection in MP4Client linux (a la win32 kbhit())
- anchor (mp4 navigation only) support in MP4Client
- uploaded linux version of extra libs
- added non-system SDL support in GCC configure script (cf --sdl-cfg)
- default font handling in freetype plugin: some text will be diplayed if at least one font is present
- better MPEG-4 video import (B-frame and packed bitstream)
- updated MP4 with full trackHeader (was old v1) and fixed MP4Box compatibility issues with 3ivx splitter