of course you need to add the necessary tags that are required by the IOD, but for padding I used this:
...
//----add video bytes
byte[] videoBytes = getVideoBytes(videoFile);
MemoryByteBuffer buffer = new MemoryByteBuffer(videoBytes);
pixelData.AddFrame(buffer);
DicomFile dicomfile = new DicomFile(dataset);
dicomfile.Save("mp4.dcm");
}
private static byte[] getVideoBytes(string videoFile)
{
//FileInputStream fis = new FileInputStream(videoFile);
//ByteArrayOutputStream baos = new ByteArrayOutputStream();
//byte[] buf = new byte[1024];
//int n;
//while (-1 != (n = fis.Read(buf)))
// baos.Write(buf, 0, n);
//byte[] videoBytes = baos.ToByteArray();
//return videoBytes;
byte[] buff = null;
FileStream fs = new FileStream(videoFile,
FileMode.Open,
FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(videoFile).Length;
Console.WriteLine(numBytes);
if (numBytes % 2 != 0)
{
//System.Array.CreateInstance<byte>(ref buff, numBytes+1);
buff = br.ReadBytes((int) numBytes);
Console.WriteLine(buff.Length);
System.Array.Resize<Byte>(ref buff, buff.Length+1);
Console.WriteLine(buff.Length);
buff[buff.Length-1] = 0x00;
}
else
{
buff = br.ReadBytes((int) numBytes);
}
return buff;
}