[FFmpeg-cvslog] r11638 - in trunk: libavcodec/avcodec.h libavformat/isom.c libavformat/mov.c

Måns Rullgård mans
Mon Jan 28 00:50:57 CET 2008


Michael Niedermayer <michaelni at gmx.at> writes:

> On Sun, Jan 27, 2008 at 08:48:09PM +0000, M?ns Rullg?rd wrote:
>> Reimar D?ffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de> writes:
>> 
>> > Hello,
>> > On Sun, Jan 27, 2008 at 09:13:19PM +0100, Michael Niedermayer wrote:
>> >> On Sun, Jan 27, 2008 at 08:57:04PM +0100, reimar wrote:
>> >> > Author: reimar
>> >> > Date: Sun Jan 27 20:57:04 2008
>> >> > New Revision: 11638
>> >> > 
>> >> > Log:
>> >> > Add CODEC_ID_MOV_TEXT and use it instead of modifying the stream in the mov demuxer.
>> >> [...]
>> >> > Modified: trunk/libavformat/mov.c
>> >> > ==============================================================================
>> >> > --- trunk/libavformat/mov.c	(original)
>> >> > +++ trunk/libavformat/mov.c	Sun Jan 27 20:57:04 2008
>> >> > @@ -1543,12 +1543,6 @@ static int mov_read_packet(AVFormatConte
>> >> >      } else {
>> >> >  #endif
>> >> >          av_get_packet(s->pb, pkt, sample->size);
>> >> > -        if (s->streams[sc->ffindex]->codec->codec_id == CODEC_ID_TEXT) {
>> >> > -            int textlen = FFMIN(AV_RB16(pkt->data), sample->size - 2);
>> >> > -            textlen = FFMAX(textlen, 0);
>> >> > -            memmove(pkt->data, pkt->data + 2, textlen);
>> >> > -            pkt->size = textlen;
>> >> > -        }
>> >> 
>> >> 
>> >> btw, a bitstream filter doing above would be welcome
>> >
>> > Hm.. is a bitstream filter though the best way to do this? I do not
>> > really like that there is basically only the name for these filters, no
>> > way to give incoming/outgoing codec id etc, which means every
>> > application must code explicit support for this kind of thing...
>> 
>> What exactly distinguishes a bitstream filter from a codec anyway?
>
> compressed frames --- decoder ---> raw video / audio
>                  <--- encoder ---
>
> compressed frames --- bitstream filter ---> compressed frames

I fail to see a fundamental difference there.  Both convert between
different formats.  You choose to call anything with uncompressed data
on one end a codec and everything else a filter.

> we could also rewrite ffmpeg in java and make everything an object
> then build a generic Filter and have codec, muxer, parser, bitstream filter
> video filter, ... be subclasses of that ;)

No need to use java for that.  I'm doing something along those lines
in tcvp, and it's working pretty well.  In brief, a demuxer produces
packets that are passed through a series of filters, typically ending
at a muxer or output device.

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-cvslog mailing list