[FFmpeg-soc] MXF muxer version 0.0.4
Michael Niedermayer
michaelni at gmx.at
Sat Aug 23 21:23:25 CEST 2008
On Sat, Aug 23, 2008 at 06:23:16PM +0200, Baptiste Coudurier wrote:
> Michael Niedermayer wrote:
> > [...]
> >
> >> static void mxf_update_header_partition(AVFormatContext *s, int64_t footer_partition_offset)
> >> {
> >> MXFContext *mxf = s->priv_data;
> >> Index: mxf.h
> >> ===================================================================
> >> --- mxf.h (revision 14903)
> >> +++ mxf.h (working copy)
> >> @@ -41,6 +41,7 @@
> >> Identification,
> >> ContentStorage,
> >> SubDescriptor,
> >> + TypeBottom,// add metadata type before this
> >> };
> >>
> >> typedef struct {
> >
> > ok
> >
> >
>
> Why do we need this ?
TypeBottom? Iam not happy about it either, i just gave up after
"Sequence" and 0xf0 being used in its place. It didnt appear important
enough to reject the code and i had some communication problems with zhentan
>
> I don't understand why do we need this for uuid genereration ?
>
> My idea is set a MXFContext->cur_uid to a static start value, then
> increment this value for each uid needed.
>
> Is there something wrong with this ? I don't see how this mess (if
> MaterialPackage etc ...) is needed.
that if() can surely be avoided ...
>
> UID is just a way to reference unique metadata in mxf file, enum seems
> not needed, streams[0] and streams[1] does not necessearly need to have
> number in sequence.
no, but if they do not then you will have to store many UUIDs, thats the way
it was originally and it was a huge mess
struct{
thisUUID
thatUUID
moreUUID[10]
*evenMoreUUID;
evenMoreUUID_count;
}
and then
1. init
init_uuid(s->thisUUID);
init_uuid(s->thatUUID);
for(i=0; i<10; i++)
init_uuid(s->moreUUID[i]);
s->evenMoreUUID= malloc(s->evenMoreUUID_count * sizeof)
for(i=0; i<s->evenMoreUUID_count; i++)
init_uuid(s->evenMoreUUID[i]);
2. write references (and the same again for the actual references parts)
write_uuid(s->thisUUID);
write_uuid(s->thatUUID);
for(i=0; i<10; i++)
write_uuid(s->moreUUID[i]);
for(i=0; i<s->evenMoreUUID_count; i++)
write_uuid(s->evenMoreUUID[i]);
3. free
av_freep(&s->evenMoreUUID);
that is vs. the current:
1. init
nothing
2. write reference
write_uuid(THIS_UUID, 0);
write_uuid(THAT_UUID, 1);
for(i=0; i<10; i++)
write_uuid(MORE_UUID, i);
for(i=0; i<s->evenMoreUUID_count; i++)
write_uuid(EVEN_MORE_UUID[i], i);
3. free
nothing
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If a bugfix only changes things apparently unrelated to the bug with no
further explanation, that is a good sign that the bugfix is wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-soc/attachments/20080823/e4efa2e9/attachment.pgp>
More information about the FFmpeg-soc
mailing list