[Cin] fileffmpeg.C history

Andrew Randrianasulu randrianasulu at gmail.com
Fri Jan 6 01:46:21 CET 2023


On Thu, Jan 5, 2023 at 7:12 PM Phyllis Smith <phylsmith2017 at gmail.com> wrote:
>
> That is because it was COMPLETELY rewritten and there is no resemblance.  Just do a "diff" on the 2 files and you will see the only thing that is the same is blank lines, single brackets, and 6 include files. You can see these same type of differences by just diffing 2 completely different files -- for example, do a "diff" on aplugin.C in CinGG with apluginset.C in HV-8.

well, I look at diff  as it was at time of committing, and yes,
looking at header fileffmpeg.h (describing prototypes for
functions/interface))
I tend to agree with you:



-class FileFFMPEGStream
+class FileFFMPEG : public FileBase
 {
 public:
-    FileFFMPEGStream();
-    ~FileFFMPEGStream();
-
-    void update_pcm_history(int64_t current_sample, int64_t len);
-    void append_history(short *new_data, int len);
-    void read_history(double *dst,
-        int64_t start_sample,
-        int channel,
-        int64_t len);
-    void allocate_history(int len);
-
-
-    void *ffmpeg_file_context;
-
-// Video
-// Next read positions
-    int64_t current_frame;
-// Last decoded positions
-    int64_t decoded_frame;
-    int first_frame;
-
-
-// Audio
-// Interleaved samples
-    double **pcm_history;
-    int64_t history_allocated;
-    int64_t history_size;
-    int64_t history_start;
-    int64_t decode_start;
-    int64_t decode_len;
-    int64_t decode_end;
-    int channels;
-    int64_t current_sample;
-    int64_t decoded_sample;
-
-// Number of the stream in the ffmpeg array
-    int index;
+    FFMPEG *ff;
+
+        FileFFMPEG(Asset *asset, File *file);
+        ~FileFFMPEG();
+    static void ff_lock(const char *cp=0);
+    static void ff_unlock();
+
+    static void get_parameters(BC_WindowBase *parent_window,Asset *asset,
+       BC_WindowBase *&format_window,int audio_options,int video_options);
+    static int check_sig(Asset *asset);
+    int get_video_info(int track, int &pid, double &framerate,
+        int &width, int &height, char *title=0);
+    int get_audio_for_video(int stream, int64_t &channels, int layer);
+    static void get_info(char *path,char *text);
+    int open_file(int rd,int wr);
+    int close_file(void);
+    int set_video_position(int64_t pos);
+    int set_audio_position(int64_t pos);
+    int write_samples(double **buffer,int64_t len);
+    int write_frames(VFrame ***frames,int len);
+    int read_samples(double *buffer,int64_t len);
+    int read_frame(VFrame *frame);
+    int64_t get_memory_usage(void);
+    int colormodel_supported(int colormodel);
+    int get_best_colormodel(Asset *asset,int driver);
 };


=========

guess some similarities result from using same interface layers above and below.

>
>
> On Thu, Jan 5, 2023 at 12:00 AM Andrew Randrianasulu <randrianasulu at gmail.com> wrote:
>>
>> I think this specific file lost its header in
>>
>> Автор: Good1.2Guy <good1.2guy at gmail.com>  2015-04-13 22:18:09
>> Коммитер: Good1.2Guy <good1.2guy at gmail.com>  2015-04-13 22:18:09
>> Предок: 5f709d7d9ee401dd945301432bde747d50c5b704 (repair
>> x_error_handler err msg reporting)
>> Потомок:  c38d89476f399692d846f57b79ad098b6f777030 (fix static build dep jpeg)
>> Ветка: master, remotes/origin/master
>> Следует за:
>> Предшествует:
>>
>>     rework ffmpeg: added encoder upgraded decoder. numerous minor fixes
>>
>>
>> ===
>> ------------------- cinelerra-4.6.mod/cinelerra/fileffmpeg.C -------------------
>> index 77401980..0547fd6f 100644
>> @@ -1,535 +1,206 @@
>>
>> -/*
>> - * CINELERRA
>> - * Copyright (C) 2011 Adam Williams <broadcast at earthling dot net>
>> - *
>> - * This program is free software; you can redistribute it and/or modify
>> - * it under the terms of the GNU General Public License as published by
>> - * the Free Software Foundation; either version 2 of the License, or
>> - * (at your option) any later version.
>> - *
>> - * This program is distributed in the hope that it will be useful,
>> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> - * GNU General Public License for more details.
>> - *
>> - * You should have received a copy of the GNU General Public License
>> - * along with this program; if not, write to the Free Software
>> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
>> - *
>> - */


More information about the Cin mailing list