[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