★ FAQ ★ Movie relatedPlease tell us about these two points.
The first is to return the return value to the CPK_Pause function after Ver1.10, and if Pause cannot be done correctly, an error code will be output.
| TRUE | : Command accepted |
| FALSE | : Command was not accepted |
Be sure to check the above error code.
Second, if you execute this CPK_Pause function at the turn of the movie, the change cannot be determined in the function, so the same phenomenon may occur even if you perform the first check.
For the processing to be performed before executing the CPK_Pause function, refer to "(11) Changing the registration of the next handle" in the Cinepak User's Manual.
When I pause with Movie2 registered, I am calling the CPK_Pause function for both Movie1 and Movie2, but when I pause while Movie1 is playing (before Movie2 is played), Movie1 is TRUE. Returns FALSE because Movie2 hasn't played yet. What should I do to determine if I was able to pause correctly?
And if you execute CPK_EntryNext, check the transition period of the next handle of the CPK_EntryNext function and do not execute the CPK_Pause function until Movie2 is definitely in the play state.
Also, when playing Cinepak, I got an error (error code 0x301) that the initial value of "FLOP" is too small. What is "FLOP"? How can I make it bigger again?
As a case where this error code is output,
There is a function called CPK_SetPan, which is the so-called left-right balance. Therefore, it does not make the sound of Cinepak stereo / monaural.
For example, when playing A, B, C, and 3 movies seamlessly, can A and C be shared in the same buffer?
There are two possibilities.
In the case of this trouble, there is a possibility that it will be cleared by the response of (1). In fact, the change from 1/60 to 1/50 (from NTSC to PAL) causes symptoms like yours due to the difference in timing.
As a response to the program change, it is possible to change the graphics transfer timing and transfer method.
Other than that, it is conceivable to modify the data for PAL and deal with it, and as a modification method, it is conceivable to drop frames or change keyframes (30 to 25, etc.).
> / * Start movie * /
> CPK_Start (cpk [0]);
>
> / * Register the next movie to play * /
> for (i = 1; i <FILE_MAX; i ++)
> {
> CPK_EntryNext (cpk [i]);
>}
So, if you register when the second movie starts playing, will it behave like detecting the end of the first movie and then issuing CPK_EntryNext?
Be sure to set each error handling function GFS_SetErrFunc, STM_SetErrFunc, CPK_SetErrFunc to detect an error. It also improves debugging efficiency.
CPK_SetTrModeCd (cpk, CPK_TRMODE_SCU); / * Transfer by SCU-DMA * / CPK_SetLoadNum (cpk, 10); / * Maximum value of one transfer [sector] * /
Also, since the bus used during transfer by SCU-DMA is occupied, SH2 will be in a weighted state from the time it tries to access the CPU bus.
Do not use SCU-DMA as much as possible.
Before and after the division condition, the internal compression efficiency and image quality become discontinuous, and it is thought that there are the following tendencies.
The exact division conditions are unknown, but the confirmed range is shown below.
| Area [pixel] | Number of frame divisions (number of tiles) |
|---|---|
| 96000 = 480 x 200 or more | 3 |
| 95744 = 352 × 272 or less 59904 = 208 x 288 or more | 2 |
| 57344 = 256 × 224 or less | 1 (Do not divide) |
It does not support 15-bit color movies. It supports 32K color display of 24-bit data, but it wastes high quality data.
Convert uncompressed QuickTime Movie with MovieToSaturn_J. No functions have been added for playing uncompressed movies.
Since the file header is interpreted and processed, it can be played with exactly the same procedure. However, only the ring buffer must be reserved larger than when compressed.
| Audio conditions | Marginal video performance |
|---|---|
44kHz, 16bit stereo | 320 × 224 [dot] 0.60 [fps] |
22kHz, 8bit monaural | 320 × 224 [dot] 1.32 [fps] |
Video only movie | 320 × 224 [dot] 1.42 [fps] |
Video only movie | 160 × 112 [dot] 5.71 [fps] |
It is easier to analyze the history by making a simpler execution history after confirming the reproducibility of the malfunction.
This function outputs the result to the SIMM area. Therefore, it does not work with SIMM's trivial CartDev + DevSaturn.
In that case, you need to purchase a buffer card of the type that can use SIMM separately.
Example. Operation from the command line of the E7000 / EVA board
: m 060XXXXX 1; l
The output address will be 0x04000000 to 0x047fffff.
(Turn off SW2-5 <SIMMCART> in Programming Box.)
For additional output, make the output size an integral multiple of 164 bytes to make the history information easier to read.
:> hist.txt [RET] : d 04000000 04001000; l [RET] :>-[RET]
-------- + ----------------------------------------- --- +
ADDRESS: 0 1 2 3 4 5 6 7 8 9 ABCDEF:
-------- + ----------------------------------------- --- +
04000000: AAAA_AAAA ---- ---- ---- ---- ---- ----:
04000010: "Err" ---- VVVV ---- ---- EEEE_EEEE: Error
04000020: "Task" PPPP VVVV HHHH_HHHH CCCC_CCCC: start of CPK_MeTask
04000030: "RWri" WWWW VVVV HHHH_HHHH DDDD_DDDD: WRIte Ringbuffer
04000040: "RRea" RRRR VVVV HHHH_HHHH DDDD_DDDD: READ Ringbuffer
04000050: "DOn" FFFF VVVV LLLL_LLLL TTTT_TTTT: set Disp flag On
04000060: "DOff" FFFF VVVV HHHH_HHHH TTTT_TTTT: set Disp flag Off
04000070: "PcmS" MODE VVVV HHHH_HHHH ADDR SIZE: PCM Start
04000080: "PcmE" MODE VVVV HHHH_HHHH ---- ----: PCM Stop
04000090: "LosF" FFFF VVVV LFLF_LFLF SSSS_SSSS: LOse Frame
::
::
Commercial applications typically use the maximum accuracy of 1/600 second.
Author Editor also handles videos assuming TimeScale is 600.
However, some applications, such as Adobe Premiere, do not necessarily fix the Time Scale to 600.
Therefore, if the resulting movie does not treat TimeScale as 600, the playback time (called DurationTime in QuickTime) will look different.
(However, there is no effect on playback.)
An example is shown below.
| TimeScale | TimeCode | DurationTime | ||
|---|---|---|---|---|
| 1. | 600 | 00:00:30:00 | 18000 | Normal movie |
| 2. | 30 | 00:00:30:00 | 900 | A movie with a Time Scale of 30 |
| 3. | 20 | 00:00:30:00 | 600 | A movie with a Time Scale of 20 |
Therefore, the playback time of 30 seconds is mistaken for 1.5 seconds.
In addition, fix the Duration, Track Dur, and samp Dur to be consistent with the TimeScale changes. (Fix all of these as well.) When you have finished making corrections, save and exit.
Other compression tools (MovieConverter, ConvertToMovie, Movie Conversion, MovieShop, CoSA After Effects, etc.) always showed a value of 600 as far as I could see.
Therefore, if you don't have to use Premiere, it's best to use an external compression tool to avoid this problem.
★ FAQ ★ Movie related